Package google.cloud.gsuiteaddons.v1

  • Google Workspace Add-ons provide a framework for extending the functionality of Google Workspace applications like Gmail, Drive, and Calendar.

  • This API enables management of add-on deployments, including creation, deletion, installation, and updates.

  • Developers can define add-on configurations specifying scopes, manifests, and HTTP options for each supported application.

  • Authorization information for deployments is managed through this API, enabling secure access to user data.

  • Deployments can be installed for testing, and their install status can be monitored using this API.

Index

GSuiteAddOns

A service for managing Google Workspace add-on deployments.

CreateDeployment

rpc CreateDeployment(CreateDeploymentRequest) returns (Deployment)

Creates a deployment with the specified name and configuration.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authorization guide.

DeleteDeployment

rpc DeleteDeployment(DeleteDeploymentRequest) returns (Empty)

Deletes the deployment with the given name.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authorization guide.

GetAuthorization

rpc GetAuthorization(GetAuthorizationRequest) returns (Authorization)

Gets the authorization information for deployments in a given project.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authorization guide.

GetChatAppConfig

rpc GetChatAppConfig(GetChatAppConfigRequest) returns (ChatAppConfig)

Gets the Chat app configuration of a project. Only Chat apps built as Google Workspace add-ons are supported. Each Google Cloud project has exactly one Chat app configuration.

Requires authenticating and authorizing with user credentials and the gsuiteaddons.chatAppConfigs.get and chat.bots.get IAM permissions on the project.

Authorization scopes

Requires one of the following OAuth scopes:

  • https://www.googleapis.com/auth/cloud-platform
  • https://www.googleapis.com/auth/cloud-platform.read-only

For more information, see the Authorization guide.

GetDeployment

rpc GetDeployment(GetDeploymentRequest) returns (Deployment)

Gets the deployment with the specified name.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authorization guide.

GetInstallStatus

rpc GetInstallStatus(GetInstallStatusRequest) returns (InstallStatus)

Gets the install status of a test deployment.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authorization guide.

InstallDeployment

rpc InstallDeployment(InstallDeploymentRequest) returns (Empty)

Installs a deployment to your account for testing. For more information, see Test your add-on

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authorization guide.

ListDeployments

rpc ListDeployments(ListDeploymentsRequest) returns (ListDeploymentsResponse)

Lists all deployments in a particular project.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authorization guide.

ReplaceDeployment

rpc ReplaceDeployment(ReplaceDeploymentRequest) returns (Deployment)

Creates or replaces a deployment with the specified name.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authorization guide.

UninstallDeployment

rpc UninstallDeployment(UninstallDeploymentRequest) returns (Empty)

Uninstalls a test deployment from the user’s account. For more information, see Test your add-on.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authorization guide.

UpdateChatAppConfig

rpc UpdateChatAppConfig(UpdateChatAppConfigRequest) returns (ChatAppConfig)

Updates the Chat app configuration of a project. Only Chat apps built as Google Workspace add-ons are supported. Each Google Cloud project has exactly one Chat app configuration.

Requires authenticating and authorizing with user credentials and the gsuiteaddons.chatAppConfigs.update, chat.bots.update and chat.bots.get IAM permissions on the project.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authorization guide.

AddOns

A Google Workspace add-on configuration.

Fields
common

CommonAddOnManifest

Configuration that is common across all Google Workspace add-ons.

gmail

GmailAddOnManifest

Gmail add-on configuration.

drive

DriveAddOnManifest

Drive add-on configuration.

calendar

CalendarAddOnManifest

Calendar add-on configuration.

docs

DocsAddOnManifest

Docs add-on configuration.

meet

MeetAddOnManifest

Meet add-on configuration.

sheets

SheetsAddOnManifest

Sheets add-on configuration.

slides

SlidesAddOnManifest

Slides add-on configuration.

httpOptions

HttpOptions

Options for sending requests to add-on HTTP endpoints

AppCommand

Configuration for an app command.

Fields
commandType

CommandType

Required. The type of this command.

commandId

int32

Required. The ID of the command (1-1000). Must be unique within the app.

command

string

Optional. The name of the command. Required for SLASH_COMMAND, do not set for other command types. Must start with a "/", e.g., "/command".

displayName

string

Optional. The user-friendly display name of the command. Required for MESSAGE_ACTION and QUICK_COMMAND, do not set for SLASH_COMMAND.

description

string

Required. A short description of the command.

dialogEnabled

bool

Optional. Whether this command should trigger a dialog. Defaults to false, if not specified.

loadingNotificationMessage

string

Optional. A notification to be sent to the user when they trigger the message action. Only supported for MESSAGE_ACTION commands.

CommandType

The type of the App Command.

Enums
COMMAND_TYPE_UNSPECIFIED Default value. Unspecified.
SLASH_COMMAND A command invoked by typing a '/' followed by the command name. It may accept additional arguments in the message text.
QUICK_COMMAND A quick command invoked from the message compose context menu. Quick commands do not accept additional arguments.
MESSAGE_ACTION A command invoked from a message context menu.

AppsScriptEndpointConfig

Apps Script endpoint configuration.

Fields
deploymentId

string

Required. The Apps Script deployment ID.

perEventEndpointConfig

AppsScriptPerEventEndpointConfig

Optional. The names of the Apps Script functions that Google Chat calls for each type of interactive event. If not specified, Chat calls the default function for each event type.

AppsScriptPerEventEndpointConfig

Apps Script endpoint configuration for specific event types.

Fields
appCommandEndpoint

string

Optional. Function name for app command events. If not specified, the default onAppCommand function name will be used.

addedToSpaceEndpoint

string

Optional. Function name for added to space events. If not specified, the default onAddedToSpace function name will be used.

messageEndpoint

string

Optional. Function name for message events. If not specified, the default onMessage function name will be used.

removedFromSpaceEndpoint

string

Optional. Function name for removed from space events. If not specified, the default onRemovedFromSpace function name will be used.

Authorization

The authorization information used when invoking deployment endpoints.

Fields
name

string

The canonical full name of this resource. Example: projects/123/authorization

serviceAccountEmail

string

The email address of the service account used to authenticate requests to add-on callback endpoints.

oauthClientId

string

The OAuth client ID used to obtain OAuth access tokens for a user on the add-on's behalf.

ChatAppConfig

Represents the configuration of a Google Chat app built as a Google Workspace add-on.

Fields
name

string

Required. Identifier. Resource name of the Chat app configuration.

Format: projects/{project}/chatAppConfig, where {project} is the Google Cloud project number.

displayName

string

Required. The display name of the Chat app. Length should be between 3 and 25 characters.

description

string

Required. A short description of the Chat app. Should be between 1 and 40 characters.

interactiveFeatureConfig

InteractiveFeatureConfig

Optional. The settings for interactive features of the app. If this is not provided, the app will be non-interactive, meaning that it can use the Chat API, but users can't interact with the app.

avatarUri

string

Optional. The URL for the app's avatar image. Must be an HTTPS URL that hosts a square (aspect ratio of 1:1) PNG image. Recommended minimum size: 256 by 256 pixels. A default app avatar will be used if not specified.

state

AppState

Optional. The state of the app. Defaults to ACTIVE if not specified.

errorLoggingEnabled

bool

Optional. Whether to log errors to Cloud Logging. Defaults to false if not specified.

markupSyntax

MarkupSyntax

Optional. The default markup syntax for messages sent or read by this Chat app. Defaults to MARKUP_SYNTAX_MARKDOWN if not specified.

AppState

The current state of the Chat app.

Enums
APP_STATE_UNSPECIFIED Default value. Unspecified.
ACTIVE Maps to LIVE in the Chat API configuration page. The app is active, it can be found and used by people with visibility.
DISABLED The app is disabled, it can no longer be found by anyone, and nobody can talk to the app any more.

MarkupSyntax

The markup syntax used to format message text for this Chat app.

Enums
MARKUP_SYNTAX_UNSPECIFIED Default value. Unspecified. Existing Chat apps created before markup_syntax was introduced have this value and use MARKUP_SYNTAX_CHAT until explicitly updated.
MARKUP_SYNTAX_CHAT Uses Google Chat's markup syntax. See https://developers.google.com/workspace/chat/format-messages#format-texts for more information.
MARKUP_SYNTAX_MARKDOWN Uses Markdown syntax. This syntax is based on the CommonMark specification, with additional extensions. See https://developers.google.com/workspace/chat/format-messages#format-texts for more information.

CloudPubSubEndpointConfig

Pub/Sub endpoint configuration.

Fields
topic

string

Required. The Pub/Sub topic to which Google Chat publishes all interactive events. The topic must be in the same Google Cloud project as the app, and Chat must have permission to publish messages to the topic. For details, see Build a Google Chat app with Pub/Sub.

Format: projects/{project}/topics/{topic}

ConnectionConfig

How the app receives events.

Fields
Union field config. The type of connection. config can be only one of the following:
httpEndpointConfig

HttpEndpointConfig

HTTP endpoint configuration.

appsScriptEndpointConfig

AppsScriptEndpointConfig

Apps Script deployment configuration.

cloudPubSubEndpointConfig

CloudPubSubEndpointConfig

Pub/Sub topic configuration.

dialogflowEndpointConfig

DialogflowEndpointConfig

Dialogflow configuration.

CreateDeploymentRequest

Request message to create a deployment.

Fields
parent

string

Required. Name of the project in which to create the deployment.

Example: projects/my_project.

Authorization requires the following IAM permission on the specified resource parent:

  • gsuiteaddons.deployments.create
deploymentId

string

Required. The ID to use for this deployment. The full name of the created resource will be projects/<project_number>/deployments/<deployment_id>.

deployment

Deployment

Required. The deployment to create (deployment.name cannot be set).

DeleteDeploymentRequest

Request message to delete a deployment.

Fields
name

string

Required. The full resource name of the deployment to delete.

Example: projects/my_project/deployments/my_deployment.

Authorization requires the following IAM permission on the specified resource name:

  • gsuiteaddons.deployments.delete
etag

string

The etag of the deployment to delete. If this is provided, it must match the server's etag.

Deployment

A Google Workspace add-on deployment

Fields
name

string

The deployment resource name. Example: projects/123/deployments/my_deployment.

oauthScopes[]

string

The list of Google OAuth scopes for which to request consent from the end user before executing an add-on endpoint.

addOns

AddOns

The Google Workspace add-on configuration.

etag

string

This value is computed by the server based on the version of the deployment in storage, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.

DialogflowEndpointConfig

Dialogflow endpoint configuration.

Fields
dialogflowEdition

DialogflowEdition

Required. The Dialogflow edition.

agent

string

Optional. The Dialogflow CX agent or environment name. Required for Dialogflow CX. Do not set for Dialogflow ES.

Format: projects/{project}/locations/{location}/agents/{agent} or projects/{project}/locations/{location}/agents/{agent}/environments/{environment}.

DialogflowEdition

Dialogflow edition type.

Enums
DIALOGFLOW_EDITION_UNSPECIFIED Default value. Unspecified.
ES Dialogflow ES edition. To use this edition, a Dialogflow ES agent must exist in the same Google Cloud project as the app. Google Chat sends all interactive events to that agent.
CX Dialogflow CX edition. To use this edition, a Dialogflow CX agent must exist in the same Google Cloud project as the app and be specified in the agent field. Google Chat sends all interactive events to that agent.

GetAuthorizationRequest

Request message to get the Google Workspace add-on authorization information.

Fields
name

string

Required. Name of the project for which to get the Google Workspace add-on authorization information.

Example: projects/my_project/authorization.

Authorization requires the following IAM permission on the specified resource name:

  • gsuiteaddons.authorizations.get

GetChatAppConfigRequest

Request message to get the Chat app configuration.

Fields
name

string

Required. Resource name of the Chat app configuration.

Format: projects/{project}/chatAppConfig, where {project} is the Google Cloud project number.

Authorization requires the following IAM permission on the specified resource name:

  • gsuiteaddons.chatAppConfigs.get
view

ChatAppConfigView

Optional. The view of the ChatAppConfig to return. If unspecified, defaults to BASIC.

ChatAppConfigView

A view that specifies which fields should be populated in the ChatAppConfig resource.

Enums
CHAT_APP_CONFIG_VIEW_UNSPECIFIED The default or unset value. Defaults to BASIC.
BASIC Populates only the basic metadata about the app configuration, without the interactive feature configuration. This is the default value.
FULL Populates all the fields including the interactive feature configurations.

GetDeploymentRequest

Request message to get a deployment.

Fields
name

string

Required. The full resource name of the deployment to get.

Example: projects/my_project/deployments/my_deployment.

Authorization requires the following IAM permission on the specified resource name:

  • gsuiteaddons.deployments.get

GetInstallStatusRequest

Request message to get the install status of a test deployment.

Fields
name

string

Required. The full resource name of the deployment.

Example: projects/my_project/deployments/my_deployment/installStatus.

Authorization requires the following IAM permission on the specified resource name:

  • gsuiteaddons.deployments.installStatus

HttpEndpointConfig

HTTP endpoint configuration.

Fields
Union field config. The HTTP endpoint URL configuration. config can be only one of the following:
commonUrl

string

Optional. The HTTPS URL to which Google Chat sends all interactive events.

perEventEndpointConfig

HttpPerEventEndpointConfig

Optional. Separate HTTPS URLs to which Google Chat sends each type of interactive event.

HttpPerEventEndpointConfig

HTTP endpoint configuration for specific event types.

Fields
appCommandEndpoint

string

Required. HTTPS URL endpoint for app command events.

addedToSpaceEndpoint

string

Required. HTTPS URL endpoint for added to space events.

messageEndpoint

string

Required. HTTPS URL endpoint for message events.

removedFromSpaceEndpoint

string

Required. HTTPS URL endpoint for removed from space events.

InstallDeploymentRequest

Request message to install a deployment for testing.

Fields
name

string

Required. The full resource name of the deployment to install.

Example: projects/my_project/deployments/my_deployment.

Authorization requires the following IAM permission on the specified resource name:

  • gsuiteaddons.deployments.install

InstallStatus

Install status of a test deployment.

Fields
name

string

The canonical full resource name of the deployment install status.

Example: projects/123/deployments/my_deployment/installStatus.

installed

BoolValue

True if the deployment is installed for the user.

InteractiveFeatureConfig

Settings for the interactive features of the app.

Fields
connectionConfig

ConnectionConfig

Required. How the app receives events from Google Chat.

appCommands[]

AppCommand

Optional. Configuration for app commands.

urlPatterns[]

UrlPattern

Optional. Configuration for link previews.

allowlistedTestingPrincipals[]

string

Optional. The email addresses of users and groups in your Google Workspace domain who can find and use the app.

supportsMultiuserSpaces

bool

Optional. Whether the app can be added to 1:1 human DMs, group chats and spaces. Defaults to false if not specified.

ListDeploymentsRequest

Request message to list deployments for a project.

Fields
parent

string

Required. Name of the project in which to create the deployment.

Example: projects/my_project.

Authorization requires the following IAM permission on the specified resource parent:

  • gsuiteaddons.deployments.list
pageSize

int32

The maximum number of deployments to return. The service might return fewer than this value. If unspecified, at most 1,000 deployments are returned. The maximum possible value is 1,000; values above 1,000 are changed to 1,000.

pageToken

string

A page token, received from a previous ListDeployments call. Provide this to retrieve the subsequent page.

When paginating, all other parameters provided to ListDeployments must match the call that provided the page token.

ListDeploymentsResponse

Response message to list deployments.

Fields
deployments[]

Deployment

The list of deployments for the given project.

nextPageToken

string

A token, which can be sent as page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.

ReplaceDeploymentRequest

Request message to create or replace a deployment.

Fields
deployment

Deployment

Required. The deployment to create or replace.

Authorization requires the following IAM permission on the specified resource deployment:

  • gsuiteaddons.deployments.update

UninstallDeploymentRequest

Request message to uninstall a test deployment.

Fields
name

string

Required. The full resource name of the deployment to install.

Example: projects/my_project/deployments/my_deployment.

Authorization requires the following IAM permission on the specified resource name:

  • gsuiteaddons.deployments.execute

UpdateChatAppConfigRequest

Request message for UpdateChatAppConfig.

Fields
chatAppConfig

ChatAppConfig

Required. The app configuration to update.

Authorization requires the following IAM permission on the specified resource chatAppConfig:

  • gsuiteaddons.chatAppConfigs.update
updateMask

FieldMask

Optional. The list of fields to update.

If omitted, only the fields with non-empty values in the provided Chat app configuration are updated.

UrlPattern

Configuration for a link preview.

Fields
hostPattern

string

Required. The domain to match. Match a specific subdomain, like "subdomain.example.com", or an entire domain by including an asterisk (*) as a leading wildcard character. For example, "*.example.com" matches "https://subdomain.example.com" and "https://any.number.of.subdomains.example.com".

pathPrefix

string

Optional. Path prefix appended to the host pattern. If blank, matches all URLs in the host pattern. For example, when paired with the host pattern "subdomain.example.com", specify "path/" to match page URLs that begin with "https://subdomain.example.com/path/".