AI-generated Key Takeaways
-  The Google Chat API allows developers to build apps and integrations that interact with Google Chat spaces and messages. 
-  Developers can use the API to create, update, and delete spaces, messages, memberships, and reactions. 
-  Authentication is required and can be app-based or user-based, with varying authorization scopes. 
-  The API offers functionalities like custom emojis, direct messaging, and media attachments. 
-  Comprehensive documentation and examples are provided for developers to utilize the API effectively. 
Index
-  ChatService(interface)
-  AccessoryWidget(message)
-  ActionResponse(message)
-  ActionResponse.ResponseType(enum)
-  ActionResponse.SelectionItems(message)
-  ActionResponse.UpdatedWidget(message)
-  ActionStatus(message)
-  Annotation(message)
-  AnnotationType(enum)
-  AppCommandMetadata(message)
-  AppCommandMetadata.AppCommandType(enum)
-  AttachedGif(message)
-  Attachment(message)
-  Attachment.Source(enum)
-  AttachmentDataRef(message)
-  CalendarEventLinkData(message)
-  CardWithId(message)
-  ChatSpaceLinkData(message)
-  CompleteImportSpaceRequest(message)
-  CompleteImportSpaceResponse(message)
-  ContextualAddOnMarkup(message)
-  ContextualAddOnMarkup.Card(message)
-  ContextualAddOnMarkup.Card.CardAction(message)
-  ContextualAddOnMarkup.Card.CardHeader(message)
-  ContextualAddOnMarkup.Card.CardHeader.ImageStyle(enum)
-  ContextualAddOnMarkup.Card.Section(message)
-  CreateCustomEmojiRequest(message)
-  CreateMembershipRequest(message)
-  CreateMessageRequest(message)
-  CreateMessageRequest.MessageReplyOption(enum)
-  CreateReactionRequest(message)
-  CreateSpaceRequest(message)
-  CustomEmoji(message)
-  CustomEmoji.CustomEmojiPayload(message)
-  CustomEmojiMetadata(message)
-  DeleteCustomEmojiRequest(message)
-  DeleteMembershipRequest(message)
-  DeleteMessageRequest(message)
-  DeleteReactionRequest(message)
-  DeleteSpaceRequest(message)
-  DeletionMetadata(message)
-  DeletionMetadata.DeletionType(enum)
-  Dialog(message)
-  DialogAction(message)
-  DriveDataRef(message)
-  DriveLinkData(message)
-  Emoji(message)
-  EmojiReactionSummary(message)
-  FindDirectMessageRequest(message)
-  FindGroupChatsRequest(message)
-  FindGroupChatsResponse(message)
-  GetAttachmentRequest(message)
-  GetCustomEmojiRequest(message)
-  GetMembershipRequest(message)
-  GetMessageRequest(message)
-  GetSpaceEventRequest(message)
-  GetSpaceNotificationSettingRequest(message)
-  GetSpaceReadStateRequest(message)
-  GetSpaceRequest(message)
-  GetThreadReadStateRequest(message)
-  Group(message)
-  HistoryState(enum)
-  ListCustomEmojisRequest(message)
-  ListCustomEmojisResponse(message)
-  ListMembershipsRequest(message)
-  ListMembershipsResponse(message)
-  ListMessagesRequest(message)
-  ListMessagesResponse(message)
-  ListReactionsRequest(message)
-  ListReactionsResponse(message)
-  ListSpaceEventsRequest(message)
-  ListSpaceEventsResponse(message)
-  ListSpacesRequest(message)
-  ListSpacesResponse(message)
-  MatchedUrl(message)
-  MeetSpaceLinkData(message)
-  MeetSpaceLinkData.HuddleStatus(enum)
-  MeetSpaceLinkData.Type(enum)
-  Membership(message)
-  Membership.MembershipRole(enum)
-  Membership.MembershipState(enum)
-  MembershipBatchCreatedEventData(message)
-  MembershipBatchDeletedEventData(message)
-  MembershipBatchUpdatedEventData(message)
-  MembershipCreatedEventData(message)
-  MembershipDeletedEventData(message)
-  MembershipUpdatedEventData(message)
-  Message(message)
-  MessageBatchCreatedEventData(message)
-  MessageBatchDeletedEventData(message)
-  MessageBatchUpdatedEventData(message)
-  MessageCreatedEventData(message)
-  MessageDeletedEventData(message)
-  MessageUpdatedEventData(message)
-  QuotedMessageMetadata(message)
-  Reaction(message)
-  ReactionBatchCreatedEventData(message)
-  ReactionBatchDeletedEventData(message)
-  ReactionCreatedEventData(message)
-  ReactionDeletedEventData(message)
-  RichLinkMetadata(message)
-  RichLinkMetadata.RichLinkType(enum)
-  SearchSpacesRequest(message)
-  SearchSpacesResponse(message)
-  SetUpSpaceRequest(message)
-  SlashCommand(message)
-  SlashCommandMetadata(message)
-  SlashCommandMetadata.Type(enum)
-  Space(message)
-  Space.AccessSettings(message)
-  Space.AccessSettings.AccessState(enum)
-  Space.MembershipCount(message)
-  Space.PermissionSetting(message)
-  Space.PermissionSettings(message)
-  Space.PredefinedPermissionSettings(enum)
-  Space.SpaceDetails(message)
-  Space.SpaceThreadingState(enum)
-  Space.SpaceType(enum)
-  Space.Type(enum)
-  SpaceBatchUpdatedEventData(message)
-  SpaceEvent(message)
-  SpaceNotificationSetting(message)
-  SpaceNotificationSetting.MuteSetting(enum)
-  SpaceNotificationSetting.NotificationSetting(enum)
-  SpaceReadState(message)
-  SpaceUpdatedEventData(message)
-  SpaceView(enum)
-  Thread(message)
-  ThreadReadState(message)
-  UpdateMembershipRequest(message)
-  UpdateMessageRequest(message)
-  UpdateSpaceNotificationSettingRequest(message)
-  UpdateSpaceReadStateRequest(message)
-  UpdateSpaceRequest(message)
-  User(message)
-  User.Type(enum)
-  UserMentionMetadata(message)
-  UserMentionMetadata.Type(enum)
-  WidgetMarkup(message)
-  WidgetMarkup.Button(message)
-  WidgetMarkup.FormAction(message)
-  WidgetMarkup.FormAction.ActionParameter(message)
-  WidgetMarkup.Icon(enum)
-  WidgetMarkup.Image(message)
-  WidgetMarkup.ImageButton(message)
-  WidgetMarkup.KeyValue(message)
-  WidgetMarkup.OnClick(message)
-  WidgetMarkup.OpenLink(message)
-  WidgetMarkup.TextButton(message)
-  WidgetMarkup.TextParagraph(message)
ChatService
Enables developers to build Chat apps and integrations on Google Chat Platform.
 rpc CompleteImportSpace(  
 CompleteImportSpaceRequest 
 
) returns (  CompleteImportSpaceResponse 
 
)
Completes the import process for the specified space and makes it visible to users.
Requires user authentication and domain-wide delegation with the authorization scope :
-  https://www.googleapis.com/auth/chat.import
For more information, see Authorize Google Chat apps to import data .
- Authorization scopes
-  Requires the following OAuth scope: -  https://www.googleapis.com/auth/chat.import
 For more information, see the Authorization guide . 
-  
 rpc CreateCustomEmoji(  
 CreateCustomEmojiRequest 
 
) returns (  CustomEmoji 
 
)
Creates a custom emoji.
Custom emojis are only available for Google Workspace accounts, and the administrator must turn custom emojis on for the organization. For more information, see Learn about custom emojis in Google Chat and Manage custom emoji permissions .
Requires user authentication with the authorization scope :
-  https://www.googleapis.com/auth/chat.customemojis
- Authorization scopes
-  Requires the following OAuth scope: -  https://www.googleapis.com/auth/chat.customemojis
 For more information, see the Authorization guide . 
-  
 rpc CreateMembership(  
 CreateMembershipRequest 
 
) returns (  Membership 
 
)
Creates a membership for the calling Chat app, a user, or a Google Group. Creating memberships for other Chat apps isn't supported. When creating a membership, if the specified member has their auto-accept policy turned off, then they're invited, and must accept the space invitation before joining. Otherwise, creating a membership adds the member directly to the specified space.
Supports the following types of authentication :
-  App authentication with administrator approval and the authorization scope: -  https://www.googleapis.com/auth/chat.app.memberships
 
-  
-  User authentication with one of the following authorization scopes: -  https://www.googleapis.com/auth/chat.memberships
-  https://www.googleapis.com/auth/chat.memberships.app(to add the calling app to the space)
-  https://www.googleapis.com/auth/chat.import(import mode spaces only)
- User authentication grants administrator privileges when an administrator account authenticates, use_admin_accessistrue, and the following authorization scope is used:-  https://www.googleapis.com/auth/chat.admin.memberships
 
-  
 
-  
App authentication is not supported for the following use cases:
- Inviting users external to the Workspace organization that owns the space.
- Adding a Google Group to a space.
- Adding a Chat app to a space.
For example usage, see:
- Invite or add a user to a space .
- Invite or add a Google Group to a space .
- Add the Chat app to a space .
- Authorization scopes
-  Requires one of the following OAuth scopes: -  https://www.googleapis.com/auth/chat.app.memberships
-  https://www.googleapis.com/auth/chat.admin.memberships
-  https://www.googleapis.com/auth/chat.import
-  https://www.googleapis.com/auth/chat.memberships
-  https://www.googleapis.com/auth/chat.memberships.app
 For more information, see the Authorization guide . 
-  
 rpc CreateMessage(  
 CreateMessageRequest 
 
) returns (  Message 
 
)
Creates a message in a Google Chat space. For an example, see Send a message .
Supports the following types of authentication :
-  App authentication 
with the authorization scope: -  https://www.googleapis.com/auth/chat.bot
 
-  
-  User authentication 
with one of the following authorization scopes: -  https://www.googleapis.com/auth/chat.messages.create
-  https://www.googleapis.com/auth/chat.messages
-  https://www.googleapis.com/auth/chat.import(import mode spaces only)
 
-  
Chat attributes the message sender differently depending on the type of authentication that you use in your request.
The following image shows how Chat attributes a message when you use app authentication. Chat displays the Chat app as the message sender. The content of the message can contain text ( text 
), cards ( cardsV2 
), and accessory widgets ( accessoryWidgets 
).
The following image shows how Chat attributes a message when you use user authentication. Chat displays the user as the message sender and attributes the Chat app to the message by displaying its name. The content of message can only contain text ( text 
).
The maximum message size, including the message contents, is 32,000 bytes.
For webhook 
requests, the response doesn't contain the full message. The response only populates the name 
and thread.name 
fields in addition to the information that was in the request.
- Authorization scopes
-  Requires one of the following OAuth scopes: -  https://www.googleapis.com/auth/chat.bot
-  https://www.googleapis.com/auth/chat.import
-  https://www.googleapis.com/auth/chat.messages
-  https://www.googleapis.com/auth/chat.messages.create
 For more information, see the Authorization guide . 
-  
 rpc CreateReaction(  
 CreateReactionRequest 
 
) returns (  Reaction 
 
)
Creates a reaction and adds it to a message. For an example, see Add a reaction to a message .
Requires user authentication with one of the following authorization scopes :
-  https://www.googleapis.com/auth/chat.messages.reactions.create
-  https://www.googleapis.com/auth/chat.messages.reactions
-  https://www.googleapis.com/auth/chat.messages
-  https://www.googleapis.com/auth/chat.import(import mode spaces only)
- Authorization scopes
-  Requires one of the following OAuth scopes: -  https://www.googleapis.com/auth/chat.import
-  https://www.googleapis.com/auth/chat.messages
-  https://www.googleapis.com/auth/chat.messages.reactions
-  https://www.googleapis.com/auth/chat.messages.reactions.create
 For more information, see the Authorization guide . 
-  
 rpc CreateSpace(  
 CreateSpaceRequest 
 
) returns (  Space 
 
)
Creates a space. Can be used to create a named space, or a group chat in Import mode 
. For an example, see Create a space 
.
Supports the following types of authentication :
-  App authentication with administrator approval and one of the following authorization scopes: -  https://www.googleapis.com/auth/chat.app.spaces.create
-  https://www.googleapis.com/auth/chat.app.spaces
 
-  
-  User authentication with one of the following authorization scopes: -  https://www.googleapis.com/auth/chat.spaces.create
-  https://www.googleapis.com/auth/chat.spaces
-  https://www.googleapis.com/auth/chat.import(import mode spaces only)
 
-  
When authenticating as an app, the space.customer 
field must be set in the request.
When authenticating as an app, the Chat app is added as a member of the space. However, unlike human authentication, the Chat app is not added as a space manager. By default, the Chat app can be removed from the space by all space members. To allow only space managers to remove the app from a space, set space.permission_settings.manage_apps 
to managers_allowed 
.
Space membership upon creation depends on whether the space is created in Import mode 
:
- Import mode:No members are created.
-  All other modes:The calling user is added as a member. This is: - The app itself when using app authentication.
- The human user when using user authentication.
 
If you receive the error message ALREADY_EXISTS 
when creating  a space, try a different displayName 
. An existing space within  the Google Workspace organization might already use this display name.
- Authorization scopes
-  Requires one of the following OAuth scopes: -  https://www.googleapis.com/auth/chat.app.spaces.create
-  https://www.googleapis.com/auth/chat.app.spaces
-  https://www.googleapis.com/auth/chat.import
-  https://www.googleapis.com/auth/chat.spaces
-  https://www.googleapis.com/auth/chat.spaces.create
 For more information, see the Authorization guide . 
-  
 rpc DeleteCustomEmoji(  
 DeleteCustomEmojiRequest 
 
) returns (  Empty 
 
)
Deletes a custom emoji. By default, users can only delete custom emoji they created. Emoji managers assigned by the administrator can delete any custom emoji in the organization. See Learn about custom emojis in Google Chat .
Custom emojis are only available for Google Workspace accounts, and the administrator must turn custom emojis on for the organization. For more information, see Learn about custom emojis in Google Chat and Manage custom emoji permissions .
Requires user authentication with the authorization scope :
-  https://www.googleapis.com/auth/chat.customemojis
- Authorization scopes
-  Requires the following OAuth scope: -  https://www.googleapis.com/auth/chat.customemojis
 For more information, see the Authorization guide . 
-  
 rpc DeleteMembership(  
 DeleteMembershipRequest 
 
) returns (  Membership 
 
)
Deletes a membership. For an example, see Remove a user or a Google Chat app from a space .
Supports the following types of authentication :
-  App authentication with administrator approval and the authorization scope: -  https://www.googleapis.com/auth/chat.app.memberships
 
-  
-  User authentication with one of the following authorization scopes: -  https://www.googleapis.com/auth/chat.memberships
-  https://www.googleapis.com/auth/chat.memberships.app(to remove the calling app from the space)
-  https://www.googleapis.com/auth/chat.import(import mode spaces only)
- User authentication grants administrator privileges when an administrator account authenticates, use_admin_accessistrue, and the following authorization scope is used:-  https://www.googleapis.com/auth/chat.admin.memberships
 
-  
 
-  
App authentication is not supported for the following use cases:
- Removing a Google Group from a space.
- Removing a Chat app from a space.
To delete memberships for space managers, the requester must be a space manager. If you're using app authentication the Chat app must be the space creator.
- Authorization scopes
-  Requires one of the following OAuth scopes: -  https://www.googleapis.com/auth/chat.app.memberships
-  https://www.googleapis.com/auth/chat.admin.memberships
-  https://www.googleapis.com/auth/chat.import
-  https://www.googleapis.com/auth/chat.memberships
-  https://www.googleapis.com/auth/chat.memberships.app
 For more information, see the Authorization guide . 
-  
 rpc DeleteMessage(  
 DeleteMessageRequest 
 
) returns (  Empty 
 
)
Deletes a message. For an example, see Delete a message .
Supports the following types of authentication :
-  App authentication with the authorization scope: -  https://www.googleapis.com/auth/chat.bot
 
-  
-  User authentication with one of the following authorization scopes: -  https://www.googleapis.com/auth/chat.messages
-  https://www.googleapis.com/auth/chat.import(import mode spaces only)
 
-  
When using app authentication, requests can only delete messages created by the calling Chat app.
- Authorization scopes
-  Requires one of the following OAuth scopes: -  https://www.googleapis.com/auth/chat.bot
-  https://www.googleapis.com/auth/chat.import
-  https://www.googleapis.com/auth/chat.messages
 For more information, see the Authorization guide . 
-  
 rpc DeleteReaction(  
 DeleteReactionRequest 
 
) returns (  Empty 
 
)
Deletes a reaction to a message. For an example, see Delete a reaction .
Requires user authentication with one of the following authorization scopes :
-  https://www.googleapis.com/auth/chat.messages.reactions
-  https://www.googleapis.com/auth/chat.messages
-  https://www.googleapis.com/auth/chat.import(import mode spaces only)
- Authorization scopes
-  Requires one of the following OAuth scopes: -  https://www.googleapis.com/auth/chat.import
-  https://www.googleapis.com/auth/chat.messages
-  https://www.googleapis.com/auth/chat.messages.reactions
 For more information, see the Authorization guide . 
-  
 rpc DeleteSpace(  
 DeleteSpaceRequest 
 
) returns (  Empty 
 
)
Deletes a named space. Always performs a cascading delete, which means that the space's child resources—like messages posted in the space and memberships in the space—are also deleted. For an example, see Delete a space .
Supports the following types of authentication :
-  App authentication with administrator approval and the authorization scope: -  https://www.googleapis.com/auth/chat.app.delete(only in spaces the app created)
 
-  
-  User authentication with one of the following authorization scopes: -  https://www.googleapis.com/auth/chat.delete
-  https://www.googleapis.com/auth/chat.import(import mode spaces only)
- User authentication grants administrator privileges when an administrator account authenticates, use_admin_accessistrue, and the following authorization scope is used:-  https://www.googleapis.com/auth/chat.admin.delete
 
-  
 
-  
- Authorization scopes
-  Requires one of the following OAuth scopes: -  https://www.googleapis.com/auth/chat.app.delete
-  https://www.googleapis.com/auth/chat.admin.delete
-  https://www.googleapis.com/auth/chat.import
-  https://www.googleapis.com/auth/chat.delete
 For more information, see the Authorization guide . 
-  
 rpc FindDirectMessage(  
 FindDirectMessageRequest 
 
) returns (  Space 
 
)
Returns the existing direct message with the specified user. If no direct message space is found, returns a 404 NOT_FOUND 
error. For an example, see Find a direct message 
.
With app authentication , returns the direct message space between the specified user and the calling Chat app.
With user authentication , returns the direct message space between the specified user and the authenticated user.
Supports the following types of authentication :
-  App authentication with the authorization scope: -  https://www.googleapis.com/auth/chat.bot
 
-  
-  User authentication with one of the following authorization scopes: -  https://www.googleapis.com/auth/chat.spaces.readonly
-  https://www.googleapis.com/auth/chat.spaces
 
-  
- Authorization scopes
-  Requires one of the following OAuth scopes: -  https://www.googleapis.com/auth/chat.spaces
-  https://www.googleapis.com/auth/chat.spaces.readonly
-  https://www.googleapis.com/auth/chat.bot
 For more information, see the Authorization guide . 
-  
 rpc FindGroupChats(  
 FindGroupChatsRequest 
 
) returns (  FindGroupChatsResponse 
 
)
  
Returns all spaces with spaceType == GROUP_CHAT 
, whose human memberships contain exactly the calling user, and the users specified in FindGroupChatsRequest.memberships 
.
If the calling user blocks, or is blocked by, some users, and no spaces with the entire specified set of users are found, this method returns spaces that don't include the blocked or blocking users.
The specified set of users must contain only human (non-app) memberships. A request that contains non-human users doesn't return any spaces.
Requires user authentication with one of the following authorization scopes :
-  https://www.googleapis.com/auth/chat.memberships.readonly
-  https://www.googleapis.com/auth/chat.memberships
- Authorization scopes
-  Requires one of the following OAuth scopes: -  https://www.googleapis.com/auth/chat.memberships
-  https://www.googleapis.com/auth/chat.memberships.readonly
 For more information, see the Authorization guide . 
-  
 rpc GetAttachment(  
 GetAttachmentRequest 
 
) returns (  Attachment 
 
)
Gets the metadata of a message attachment. The attachment data is fetched using the media API . For an example, see Get metadata about a message attachment .
Requires app authentication with the authorization scope :
-  https://www.googleapis.com/auth/chat.bot
- Authorization scopes
-  Requires the following OAuth scope: -  https://www.googleapis.com/auth/chat.bot
 For more information, see the Authorization guide . 
-  
 rpc GetCustomEmoji(  
 GetCustomEmojiRequest 
 
) returns (  CustomEmoji 
 
)
Returns details about a custom emoji.
Custom emojis are only available for Google Workspace accounts, and the administrator must turn custom emojis on for the organization. For more information, see Learn about custom emojis in Google Chat and Manage custom emoji permissions .
Requires user authentication with one of the following authorization scopes :
-  https://www.googleapis.com/auth/chat.customemojis.readonly
-  https://www.googleapis.com/auth/chat.customemojis
- Authorization scopes
-  Requires one of the following OAuth scopes: -  https://www.googleapis.com/auth/chat.customemojis
-  https://www.googleapis.com/auth/chat.customemojis.readonly
 For more information, see the Authorization guide . 
-  
 rpc GetMembership(  
 GetMembershipRequest 
 
) returns (  Membership 
 
)
Returns details about a membership. For an example, see Get details about a user's or Google Chat app's membership .
Supports the following types of authentication :
-  App authentication with one of the following authorization scopes: -  https://www.googleapis.com/auth/chat.bot
-  https://www.googleapis.com/auth/chat.app.memberships(requires administrator approval )
 
-  
-  User authentication with one of the following authorization scopes: -  https://www.googleapis.com/auth/chat.memberships.readonly
-  https://www.googleapis.com/auth/chat.memberships
- User authentication grants administrator privileges when an administrator account authenticates, use_admin_accessistrue, and one of the following authorization scopes is used:-  https://www.googleapis.com/auth/chat.admin.memberships.readonly
-  https://www.googleapis.com/auth/chat.admin.memberships
 
-  
 
-  
- Authorization scopes
-  Requires one of the following OAuth scopes: -  https://www.googleapis.com/auth/chat.admin.memberships
-  https://www.googleapis.com/auth/chat.admin.memberships.readonly
-  https://www.googleapis.com/auth/chat.app.memberships
-  https://www.googleapis.com/auth/chat.bot
-  https://www.googleapis.com/auth/chat.memberships
-  https://www.googleapis.com/auth/chat.memberships.readonly
 For more information, see the Authorization guide . 
-  
 rpc GetMessage(  
 GetMessageRequest 
 
) returns (  Message 
 
)
Returns details about a message. For an example, see Get details about a message .
Supports the following types of authentication :
-  App authentication with one of the following authorization scopes: -  https://www.googleapis.com/auth/chat.bot: When using this authorization scope, this method returns details about a message the Chat app has access to, like direct messages and slash commands that invoke the Chat app.
-  https://www.googleapis.com/auth/chat.app.messages.readonlywith administrator approval (available in Developer Preview ). When using this authentication scope, this method returns details about a public message in a space.
 
-  
-  User authentication with one of the following authorization scopes: -  https://www.googleapis.com/auth/chat.messages.readonly
-  https://www.googleapis.com/auth/chat.messages
 
-  
Note: Might return a message from a blocked member or space.
- Authorization scopes
-  Requires one of the following OAuth scopes: -  https://www.googleapis.com/auth/chat.bot
-  https://www.googleapis.com/auth/chat.messages
-  https://www.googleapis.com/auth/chat.messages.readonly
-  https://www.googleapis.com/auth/chat.app.messages.readonly
 For more information, see the Authorization guide . 
-  
 rpc GetSpace(  
 GetSpaceRequest 
 
) returns (  Space 
 
)
Returns details about a space. For an example, see Get details about a space .
Supports the following types of authentication :
-  App authentication with one of the following authorization scopes: -  https://www.googleapis.com/auth/chat.bot
-  https://www.googleapis.com/auth/chat.app.spaceswith administrator approval
 
-  
-  User authentication with one of the following authorization scopes: -  https://www.googleapis.com/auth/chat.spaces.readonly
-  https://www.googleapis.com/auth/chat.spaces
- User authentication grants administrator privileges when an administrator account authenticates, use_admin_accessistrue, and one of the following authorization scopes is used:-  https://www.googleapis.com/auth/chat.admin.spaces.readonly
-  https://www.googleapis.com/auth/chat.admin.spaces
 
-  
 
-  
App authentication has the following limitations:
-  space.access_settingsis only populated when using thechat.app.spacesscope.
-  space.predefind_permission_settingsandspace.permission_settingsare only populated when using thechat.app.spacesscope, and only for spaces the app created.
- Authorization scopes
-  Requires one of the following OAuth scopes: -  https://www.googleapis.com/auth/chat.admin.spaces
-  https://www.googleapis.com/auth/chat.admin.spaces.readonly
-  https://www.googleapis.com/auth/chat.spaces
-  https://www.googleapis.com/auth/chat.spaces.readonly
-  https://www.googleapis.com/auth/chat.bot
-  https://www.googleapis.com/auth/chat.app.spaces
 For more information, see the Authorization guide . 
-  
 rpc GetSpaceEvent(  
 GetSpaceEventRequest 
 
) returns (  SpaceEvent 
 
)
Returns an event from a Google Chat space. The event payload 
contains the most recent version of the resource that changed. For example, if you request an event about a new message but the message was later updated, the server returns the updated Message 
resource in the event payload.
Note: The permissionSettings 
field is not returned in the Space object of the Space event data for this request.
Supports the following types of authentication with an authorization scope appropriate for reading the requested data:
-  App authentication with administrator approval in Developer Preview with one of the following authorization scopes: -  https://www.googleapis.com/auth/chat.app.spaces
-  https://www.googleapis.com/auth/chat.app.messages.readonly
-  https://www.googleapis.com/auth/chat.app.memberships
 
-  
-  User authentication with one of the following authorization scopes: -  https://www.googleapis.com/auth/chat.spaces.readonly
-  https://www.googleapis.com/auth/chat.spaces
-  https://www.googleapis.com/auth/chat.messages.readonly
-  https://www.googleapis.com/auth/chat.messages
-  https://www.googleapis.com/auth/chat.messages.reactions.readonly
-  https://www.googleapis.com/auth/chat.messages.reactions
-  https://www.googleapis.com/auth/chat.memberships.readonly
-  https://www.googleapis.com/auth/chat.memberships
 
-  
To get an event, the authenticated caller must be a member of the space.
For an example, see Get details about an event from a Google Chat space .
- Authorization scopes
-  Requires one of the following OAuth scopes: -  https://www.googleapis.com/auth/chat.app.memberships
-  https://www.googleapis.com/auth/chat.app.messages.readonly
-  https://www.googleapis.com/auth/chat.app.spaces
-  https://www.googleapis.com/auth/chat.spaces
-  https://www.googleapis.com/auth/chat.spaces.readonly
-  https://www.googleapis.com/auth/chat.messages
-  https://www.googleapis.com/auth/chat.messages.readonly
-  https://www.googleapis.com/auth/chat.memberships
-  https://www.googleapis.com/auth/chat.memberships.readonly
-  https://www.googleapis.com/auth/chat.messages.reactions
-  https://www.googleapis.com/auth/chat.messages.reactions.readonly
 For more information, see the Authorization guide . 
-  
 rpc GetSpaceNotificationSetting(  
 GetSpaceNotificationSettingRequest 
 
) returns (  SpaceNotificationSetting 
 
)
Gets the space notification setting. For an example, see Get the caller's space notification setting .
Requires user authentication with the authorization scope :
-  https://www.googleapis.com/auth/chat.users.spacesettings
- Authorization scopes
-  Requires the following OAuth scope: -  https://www.googleapis.com/auth/chat.users.spacesettings
 For more information, see the Authorization guide . 
-  
 rpc GetSpaceReadState(  
 GetSpaceReadStateRequest 
 
) returns (  SpaceReadState 
 
)
Returns details about a user's read state within a space, used to identify read and unread messages. For an example, see Get details about a user's space read state .
Requires user authentication with one of the following authorization scopes :
-  https://www.googleapis.com/auth/chat.users.readstate.readonly
-  https://www.googleapis.com/auth/chat.users.readstate
- Authorization scopes
-  Requires one of the following OAuth scopes: -  https://www.googleapis.com/auth/chat.users.readstate
-  https://www.googleapis.com/auth/chat.users.readstate.readonly
 For more information, see the Authorization guide . 
-  
 rpc GetThreadReadState(  
 GetThreadReadStateRequest 
 
) returns (  ThreadReadState 
 
)
Returns details about a user's read state within a thread, used to identify read and unread messages. For an example, see Get details about a user's thread read state .
Requires user authentication with one of the following authorization scopes :
-  https://www.googleapis.com/auth/chat.users.readstate.readonly
-  https://www.googleapis.com/auth/chat.users.readstate
- Authorization scopes
-  Requires one of the following OAuth scopes: -  https://www.googleapis.com/auth/chat.users.readstate
-  https://www.googleapis.com/auth/chat.users.readstate.readonly
 For more information, see the Authorization guide . 
-  
 rpc ListCustomEmojis(  
 ListCustomEmojisRequest 
 
) returns (  ListCustomEmojisResponse 
 
)
Lists custom emojis visible to the authenticated user.
Custom emojis are only available for Google Workspace accounts, and the administrator must turn custom emojis on for the organization. For more information, see Learn about custom emojis in Google Chat and Manage custom emoji permissions .
Requires user authentication with one of the following authorization scopes :
-  https://www.googleapis.com/auth/chat.customemojis.readonly
-  https://www.googleapis.com/auth/chat.customemojis
- Authorization scopes
-  Requires one of the following OAuth scopes: -  https://www.googleapis.com/auth/chat.customemojis
-  https://www.googleapis.com/auth/chat.customemojis.readonly
 For more information, see the Authorization guide . 
-  
 rpc ListMemberships(  
 ListMembershipsRequest 
 
) returns (  ListMembershipsResponse 
 
)
Lists memberships in a space. For an example, see List users and Google Chat apps in a space . Listing memberships with app authentication lists memberships in spaces that the Chat app has access to, but excludes Chat app memberships, including its own. Listing memberships with User authentication lists memberships in spaces that the authenticated user has access to.
Supports the following types of authentication :
-  App authentication with one of the following authorization scopes: -  https://www.googleapis.com/auth/chat.bot
-  https://www.googleapis.com/auth/chat.app.memberships(requires administrator approval )
 
-  
-  User authentication with one of the following authorization scopes: -  https://www.googleapis.com/auth/chat.memberships.readonly
-  https://www.googleapis.com/auth/chat.memberships
-  https://www.googleapis.com/auth/chat.import(import mode spaces only)
- User authentication grants administrator privileges when an administrator account authenticates, use_admin_accessistrue, and one of the following authorization scopes is used:-  https://www.googleapis.com/auth/chat.admin.memberships.readonly
-  https://www.googleapis.com/auth/chat.admin.memberships
 
-  
 
-  
- Authorization scopes
-  Requires one of the following OAuth scopes: -  https://www.googleapis.com/auth/chat.admin.memberships
-  https://www.googleapis.com/auth/chat.admin.memberships.readonly
-  https://www.googleapis.com/auth/chat.app.memberships
-  https://www.googleapis.com/auth/chat.bot
-  https://www.googleapis.com/auth/chat.import
-  https://www.googleapis.com/auth/chat.memberships
-  https://www.googleapis.com/auth/chat.memberships.readonly
 For more information, see the Authorization guide . 
-  
 rpc ListMessages(  
 ListMessagesRequest 
 
) returns (  ListMessagesResponse 
 
)
Lists messages in a space that the caller is a member of, including messages from blocked members and spaces. System messages, like those announcing new space members, aren't included. If you list messages from a space with no messages, the response is an empty object. When using a REST/HTTP interface, the response contains an empty JSON object, {} 
. For an example, see List messages 
.
Supports the following types of authentication :
-  App authentication with administrator approval in Developer Preview with the authorization scope: -  https://www.googleapis.com/auth/chat.app.messages.readonly. When using this authentication scope, this method only returns public messages in a space. It doesn't include private messages.
 
-  
-  User authentication with one of the following authorization scopes: -  https://www.googleapis.com/auth/chat.messages.readonly
-  https://www.googleapis.com/auth/chat.messages
-  https://www.googleapis.com/auth/chat.import(import mode spaces only)
 
-  
- Authorization scopes
-  Requires one of the following OAuth scopes: -  https://www.googleapis.com/auth/chat.import
-  https://www.googleapis.com/auth/chat.messages
-  https://www.googleapis.com/auth/chat.messages.readonly
-  https://www.googleapis.com/auth/chat.app.messages.readonly
 For more information, see the Authorization guide . 
-  
 rpc ListReactions(  
 ListReactionsRequest 
 
) returns (  ListReactionsResponse 
 
)
Lists reactions to a message. For an example, see List reactions for a message .
Requires user authentication with one of the following authorization scopes :
-  https://www.googleapis.com/auth/chat.messages.reactions.readonly
-  https://www.googleapis.com/auth/chat.messages.reactions
-  https://www.googleapis.com/auth/chat.messages.readonly
-  https://www.googleapis.com/auth/chat.messages
- Authorization scopes
-  Requires one of the following OAuth scopes: -  https://www.googleapis.com/auth/chat.messages
-  https://www.googleapis.com/auth/chat.messages.readonly
-  https://www.googleapis.com/auth/chat.messages.reactions
-  https://www.googleapis.com/auth/chat.messages.reactions.readonly
 For more information, see the Authorization guide . 
-  
 rpc ListSpaceEvents(  
 ListSpaceEventsRequest 
 
) returns (  ListSpaceEventsResponse 
 
)
Lists events from a Google Chat space. For each event, the payload 
contains the most recent version of the Chat resource. For example, if you list events about new space members, the server returns Membership 
resources that contain the latest membership details. If new members were removed during the requested period, the event payload contains an empty Membership 
resource.
Supports the following types of authentication with an authorization scope appropriate for reading the requested data:
-  App authentication with administrator approval in Developer Preview with one of the following authorization scopes: -  https://www.googleapis.com/auth/chat.app.spaces
-  https://www.googleapis.com/auth/chat.app.messages.readonly
-  https://www.googleapis.com/auth/chat.app.memberships
 
-  
-  User authentication with one of the following authorization scopes: -  https://www.googleapis.com/auth/chat.spaces.readonly
-  https://www.googleapis.com/auth/chat.spaces
-  https://www.googleapis.com/auth/chat.messages.readonly
-  https://www.googleapis.com/auth/chat.messages
-  https://www.googleapis.com/auth/chat.messages.reactions.readonly
-  https://www.googleapis.com/auth/chat.messages.reactions
-  https://www.googleapis.com/auth/chat.memberships.readonly
-  https://www.googleapis.com/auth/chat.memberships
 
-  
To list events, the authenticated caller must be a member of the space.
For an example, see List events from a Google Chat space .
- Authorization scopes
-  Requires one of the following OAuth scopes: -  https://www.googleapis.com/auth/chat.app.memberships
-  https://www.googleapis.com/auth/chat.app.messages.readonly
-  https://www.googleapis.com/auth/chat.app.spaces
-  https://www.googleapis.com/auth/chat.spaces
-  https://www.googleapis.com/auth/chat.spaces.readonly
-  https://www.googleapis.com/auth/chat.messages
-  https://www.googleapis.com/auth/chat.messages.readonly
-  https://www.googleapis.com/auth/chat.memberships
-  https://www.googleapis.com/auth/chat.memberships.readonly
-  https://www.googleapis.com/auth/chat.messages.reactions
-  https://www.googleapis.com/auth/chat.messages.reactions.readonly
 For more information, see the Authorization guide . 
-  
 rpc ListSpaces(  
 ListSpacesRequest 
 
) returns (  ListSpacesResponse 
 
)
Lists spaces the caller is a member of. Group chats and DMs aren't listed until the first message is sent. For an example, see List spaces .
Supports the following types of authentication :
-  App authentication with the authorization scope: -  https://www.googleapis.com/auth/chat.bot
 
-  
-  User authentication with one of the following authorization scopes: -  https://www.googleapis.com/auth/chat.spaces.readonly
-  https://www.googleapis.com/auth/chat.spaces
 
-  
To list all named spaces by Google Workspace organization, use the  spaces.search() 
 
method using Workspace administrator privileges instead.
- Authorization scopes
-  Requires one of the following OAuth scopes: -  https://www.googleapis.com/auth/chat.spaces
-  https://www.googleapis.com/auth/chat.spaces.readonly
-  https://www.googleapis.com/auth/chat.bot
 For more information, see the Authorization guide . 
-  
 rpc SearchSpaces(  
 SearchSpacesRequest 
 
) returns (  SearchSpacesResponse 
 
)
Returns a list of spaces in a Google Workspace organization based on an administrator's search. In the request, set use_admin_access 
to true 
. For an example, see Search for and manage spaces 
.
Requires user authentication with administrator privileges and one of the following authorization scopes :
-  https://www.googleapis.com/auth/chat.admin.spaces.readonly
-  https://www.googleapis.com/auth/chat.admin.spaces
- Authorization scopes
-  Requires one of the following OAuth scopes: -  https://www.googleapis.com/auth/chat.admin.spaces
-  https://www.googleapis.com/auth/chat.admin.spaces.readonly
 For more information, see the Authorization guide . 
-  
 rpc SetUpSpace(  
 SetUpSpaceRequest 
 
) returns (  Space 
 
)
Creates a space and adds specified users to it. The calling user is automatically added to the space, and shouldn't be specified as a membership in the request. For an example, see Set up a space with initial members .
To specify the human members to add, add memberships with the appropriate membership.member.name 
. To add a human user, use users/{user} 
, where {user} 
can be the email address for the user. For users in the same Workspace organization {user} 
can also be the id 
for the person from the People API, or the id 
for the user in the Directory API. For example, if the People API Person profile ID for user@example.com 
is 123456789 
, you can add the user to the space by setting the membership.member.name 
to users/user@example.com 
or users/123456789 
.
To specify the Google groups to add, add memberships with the appropriate membership.group_member.name 
. To add or invite a Google group, use groups/{group} 
, where {group} 
is the id 
for the group from the Cloud Identity Groups API. For example, you can use Cloud Identity Groups lookup API 
to retrieve the ID 123456789 
for group email group@example.com 
, then you can add the group to the space by setting the membership.group_member.name 
to groups/123456789 
. Group email is not supported, and Google groups can only be added as members in named spaces.
For a named space or group chat, if the caller blocks, or is blocked by some members, or doesn't have permission to add some members, then those members aren't added to the created space.
To create a direct message (DM) between the calling user and another human user, specify exactly one membership to represent the human user. If one user blocks the other, the request fails and the DM isn't created.
To create a DM between the calling user and the calling app, set Space.singleUserBotDm 
to true 
and don't specify any memberships. You can only use this method to set up a DM with the calling app. To add the calling app as a member of a space or an existing DM between two human users, see Invite or add a user or app to a space 
.
If a DM already exists between two users, even when one user blocks the other at the time a request is made, then the existing DM is returned.
Spaces with threaded replies aren't supported. If you receive the error message ALREADY_EXISTS 
when setting up a space, try a different displayName 
. An existing space within the Google Workspace organization might already use this display name.
Requires user authentication with one of the following authorization scopes :
-  https://www.googleapis.com/auth/chat.spaces.create
-  https://www.googleapis.com/auth/chat.spaces
- Authorization scopes
-  Requires one of the following OAuth scopes: -  https://www.googleapis.com/auth/chat.spaces
-  https://www.googleapis.com/auth/chat.spaces.create
 For more information, see the Authorization guide . 
-  
 rpc UpdateMembership(  
 UpdateMembershipRequest 
 
) returns (  Membership 
 
)
Updates a membership. For an example, see Update a user's membership in a space .
Supports the following types of authentication :
-  App authentication with administrator approval and the authorization scope: -  https://www.googleapis.com/auth/chat.app.memberships(only in spaces the app created)
 
-  
-  User authentication with one of the following authorization scopes: -  https://www.googleapis.com/auth/chat.memberships
-  https://www.googleapis.com/auth/chat.import(import mode spaces only)
- User authentication grants administrator privileges when an administrator account authenticates, use_admin_accessistrue, and the following authorization scope is used:-  https://www.googleapis.com/auth/chat.admin.memberships
 
-  
 
-  
- Authorization scopes
-  Requires one of the following OAuth scopes: -  https://www.googleapis.com/auth/chat.app.memberships
-  https://www.googleapis.com/auth/chat.admin.memberships
-  https://www.googleapis.com/auth/chat.import
-  https://www.googleapis.com/auth/chat.memberships
 For more information, see the Authorization guide . 
-  
 rpc UpdateMessage(  
 UpdateMessageRequest 
 
) returns (  Message 
 
)
Updates a message. There's a difference between the patch 
and update 
methods. The patch 
method uses a patch 
request while the update 
method uses a put 
request. We recommend using the patch 
method. For an example, see Update a message 
.
Supports the following types of authentication :
-  App authentication with the authorization scope: -  https://www.googleapis.com/auth/chat.bot
 
-  
-  User authentication with one of the following authorization scopes: -  https://www.googleapis.com/auth/chat.messages
-  https://www.googleapis.com/auth/chat.import(import mode spaces only)
 
-  
When using app authentication, requests can only update messages created by the calling Chat app.
- Authorization scopes
-  Requires one of the following OAuth scopes: -  https://www.googleapis.com/auth/chat.bot
-  https://www.googleapis.com/auth/chat.import
-  https://www.googleapis.com/auth/chat.messages
 For more information, see the Authorization guide . 
-  
 rpc UpdateSpace(  
 UpdateSpaceRequest 
 
) returns (  Space 
 
)
Updates a space. For an example, see Update a space .
If you're updating the displayName 
field and receive the error message ALREADY_EXISTS 
, try a different display name.. An existing space within the Google Workspace organization might already use this display name.
Supports the following types of authentication :
-  App authentication with administrator approval and one of the following authorization scopes: -  https://www.googleapis.com/auth/chat.app.spaces
 
-  
-  User authentication with one of the following authorization scopes: -  https://www.googleapis.com/auth/chat.spaces
-  https://www.googleapis.com/auth/chat.import(import mode spaces only)
- User authentication grants administrator privileges when an administrator account authenticates, use_admin_accessistrue, and the following authorization scopes is used:-  https://www.googleapis.com/auth/chat.admin.spaces
 
-  
 
-  
App authentication has the following limitations:
- To update either space.predefined_permission_settingsorspace.permission_settings, the app must be the space creator.
- Updating the space.access_settings.audienceis not supported for app authentication.
- Authorization scopes
-  Requires one of the following OAuth scopes: -  https://www.googleapis.com/auth/chat.app.spaces
-  https://www.googleapis.com/auth/chat.admin.spaces
-  https://www.googleapis.com/auth/chat.import
-  https://www.googleapis.com/auth/chat.spaces
 For more information, see the Authorization guide . 
-  
 rpc UpdateSpaceNotificationSetting(  
 UpdateSpaceNotificationSettingRequest 
 
) returns (  SpaceNotificationSetting 
 
)
Updates the space notification setting. For an example, see Update the caller's space notification setting .
Requires user authentication with the authorization scope :
-  https://www.googleapis.com/auth/chat.users.spacesettings
- Authorization scopes
-  Requires the following OAuth scope: -  https://www.googleapis.com/auth/chat.users.spacesettings
 For more information, see the Authorization guide . 
-  
 rpc UpdateSpaceReadState(  
 UpdateSpaceReadStateRequest 
 
) returns (  SpaceReadState 
 
)
Updates a user's read state within a space, used to identify read and unread messages. For an example, see Update a user's space read state .
Requires user authentication with the authorization scope :
-  https://www.googleapis.com/auth/chat.users.readstate
- Authorization scopes
-  Requires the following OAuth scope: -  https://www.googleapis.com/auth/chat.users.readstate
 For more information, see the Authorization guide . 
-  
AccessoryWidget
One or more interactive widgets that appear at the bottom of a message. For details, see Add interactive widgets at the bottom of a message .
action 
. The type of action. action 
can be only one of the following:ActionResponse
Parameters that a Chat app can use to configure how its response is posted.
| Fields | |
|---|---|
| type | Input only. The type of Chat app response. | 
| url |   Input only. URL for users to authenticate or configure. (Only for  | 
| dialog_action | Input only. A response to an interaction event related to a dialog 
. Must be accompanied by  | 
| updated_widget | Input only. The response of the updated widget. | 
ResponseType
The type of Chat app response.
| Enums | |
|---|---|
| TYPE_UNSPECIFIED | Default type that's handled as NEW_MESSAGE. | 
| NEW_MESSAGE | Post as a new message in the topic. | 
| UPDATE_MESSAGE | Update the Chat app's message. This is only permitted on a CARD_CLICKEDevent where the message sender type isBOT. | 
| UPDATE_USER_MESSAGE_CARDS | Update the cards on a user's message. This is only permitted as a response to a MESSAGEevent with a matched url, or aCARD_CLICKEDevent where the message sender type isHUMAN. Text is ignored. | 
| REQUEST_CONFIG | Privately ask the user for additional authentication or configuration. | 
| DIALOG | Presents a dialog . | 
| UPDATE_WIDGET | Widget text autocomplete options query. | 
SelectionItems
List of widget autocomplete results.
| Fields | |
|---|---|
| items[] | An array of the SelectionItem objects. | 
UpdatedWidget
For selectionInput 
widgets, returns autocomplete suggestions for a multiselect menu.
ActionStatus
Represents the status for a request to either invoke or submit a dialog .
| Fields | |
|---|---|
| status_code | The status code. | 
Annotation
Output only. Annotations can be associated with the plain-text body of the message or with chips that link to Google Workspace resources like Google Docs or Sheets with start_index 
and length 
of 0. To add basic formatting to a text message, see Format text messages 
.
Example plain-text message body:
 Hello @FooBot how are you!" 
 
The corresponding annotations metadata:
 "annotations":[{
  "type":"USER_MENTION",
  "startIndex":6,
  "length":7,
  "userMention": {
    "user": {
      "name":"users/{user}",
      "displayName":"FooBot",
      "avatarUrl":"https://goo.gl/aeDtrS",
      "type":"BOT"
    },
    "type":"MENTION"
   }
}] 
 
type 
The type of this annotation.
length 
 int32 
Length of the substring in the plain-text message body this annotation corresponds to. If not present, indicates a length of 0.
start_index 
 int32 
Start index (0-based, inclusive) in the plain-text message body this annotation corresponds to.
user_mention 
The metadata of user mention.
slash_command 
The metadata for a slash command.
AnnotationType
Type of the annotation.
| Enums | |
|---|---|
| ANNOTATION_TYPE_UNSPECIFIED | Default value for the enum. Don't use. | 
| USER_MENTION | A user is mentioned. | 
| SLASH_COMMAND | A slash command is invoked. | 
| RICH_LINK | A rich link annotation. | 
| CUSTOM_EMOJI | A custom emoji annotation. | 
AppCommandMetadata
Metadata about a Chat app command .
| Fields | |
|---|---|
| app_command_id |   The ID for the command specified in the Chat API configuration. | 
| app_command_type | The type of Chat app command. | 
AppCommandType
The type of Chat app command. For details, see Types of Chat app commands .
| Enums | |
|---|---|
| APP_COMMAND_TYPE_UNSPECIFIED | Default value. Unspecified. | 
| SLASH_COMMAND | A slash command. The user sends the command in a Chat message. | 
| QUICK_COMMAND | A quick command. The user selects the command from the Chat menu in the message reply area. | 
AttachedGif
A GIF image that's specified by a URL.
| Fields | |
|---|---|
| uri |   Output only. The URL that hosts the GIF image. | 
Attachment
An attachment in Google Chat.
name 
 string 
Optional. Resource name of the attachment, in the form spaces/{space}/messages/{message}/attachments/{attachment} 
.
content_name 
 string 
Output only. The original file name for the content, not the full path.
content_type 
 string 
Output only. The content type (MIME type) of the file.
thumbnail_uri 
 string 
Output only. The thumbnail URL which should be used to preview the attachment to a human user. Chat apps shouldn't use this URL to download attachment content.
download_uri 
 string 
Output only. The download URL which should be used to allow a human user to download the attachment. Chat apps shouldn't use this URL to download attachment content.
source 
Output only. The source of the attachment.
data_ref 
. The data reference to the attachment. data_ref 
can be only one of the following:drive_data_ref 
Output only. A reference to the Google Drive attachment. This field is used with the Google Drive API.
Source
The source of the attachment.
| Enums | |
|---|---|
| SOURCE_UNSPECIFIED | Reserved. | 
| DRIVE_FILE | The file is a Google Drive file. | 
| UPLOADED_CONTENT | The file is uploaded to Chat. | 
AttachmentDataRef
A reference to the attachment data.
| Fields | |
|---|---|
| resource_name |   Optional. The resource name of the attachment data. This field is used with the media API to download the attachment data. | 
| attachment_upload_token |   Optional. Opaque token containing a reference to an uploaded attachment. Treated by clients as an opaque string and used to create or update Chat messages with attachments. | 
CalendarEventLinkData
Data for Calendar event links.
| Fields | |
|---|---|
| calendar_id |   The Calendar identifier of the linked Calendar. | 
| event_id |   The Event identifier of the linked Calendar event. | 
CardWithId
A card in a Google Chat message.
Only Chat apps can create cards. If your Chat app authenticates as a user , the message can't contain cards.
Design and preview cards with the Card Builder.
Open the Card Builder| Fields | |
|---|---|
| card_id |   Required if the message contains multiple cards. A unique identifier for a card in a message. | 
| card | A card. Maximum size is 32 KB. | 
ChatSpaceLinkData
Data for Chat space links.
| Fields | |
|---|---|
| space |   The space of the linked Chat space resource. Format:  | 
| thread |   The thread of the linked Chat space resource. Format:  | 
CompleteImportSpaceRequest
Request message for completing the import process for a space.
| Fields | |
|---|---|
| name |   Required. Resource name of the import mode space. Format:  | 
CompleteImportSpaceResponse
Response message for completing the import process for a space.
| Fields | |
|---|---|
| space | The import mode space. | 
ContextualAddOnMarkup
This type has no fields.
The markup for developers to specify the contents of a contextual AddOn.
Card
A card is a UI element that can contain UI widgets such as text and images.
| Fields | |
|---|---|
| header | The header of the card. A header usually contains a title and an image. | 
| sections[] | Sections are separated by a line divider. | 
| card_actions[] | The actions of this card. | 
| name |   Name of the card. | 
CardAction
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.
Not supported by Google Chat apps.
| Fields | |
|---|---|
| action_label |   The label used to be displayed in the action menu item. | 
| on_click | The onclick action for this action item. | 
CardHeader
| Fields | |
|---|---|
| title |   The title must be specified. The header has a fixed height: if both a title and subtitle is specified, each takes up one line. If only the title is specified, it takes up both lines. | 
| subtitle |   The subtitle of the card header. | 
| image_style | The image's type (for example, square border or circular border). | 
| image_url |   The URL of the image in the card header. | 
ImageStyle
| Enums | |
|---|---|
| IMAGE_STYLE_UNSPECIFIED | |
| IMAGE | Square border. | 
| AVATAR | Circular border. | 
Section
A section contains a collection of widgets that are rendered (vertically) in the order that they are specified. Across all platforms, cards have a narrow fixed width, so there's currently no need for layout properties (for example, float).
| Fields | |
|---|---|
| header |   The header of the section. Formatted text is supported. For more information about formatting text, see Formatting text in Google Chat apps and Formatting text in Google Workspace Add-ons . | 
| widgets[] | A section must contain at least one widget. | 
CreateCustomEmojiRequest
A request to create a custom emoji.
| Fields | |
|---|---|
| custom_emoji | Required. The custom emoji to create. | 
CreateMembershipRequest
Request message for creating a membership.
parent 
 string 
Required. The resource name of the space for which to create the membership.
Format: spaces/{space}
membership 
Required. The membership relation to create.
The memberType 
field must contain a user with the user.name 
and user.type 
fields populated. The server will assign a resource name and overwrite anything specified.
When a Chat app creates a membership relation for a human user, it must use certain authorization scopes and set specific values for certain fields:
-  When authenticating as a user , the chat.membershipsauthorization scope is required.
-  When authenticating as an app , the chat.app.membershipsauthorization scope is required.
-  Set user.typetoHUMAN, and setuser.namewith formatusers/{user}, where{user}can be the email address for the user. For users in the same Workspace organization{user}can also be theidof the person from the People API, or theidfor the user in the Directory API. For example, if the People API Person profile ID foruser@example.comis123456789, you can add the user to the space by setting themembership.member.nametousers/user@example.comorusers/123456789.
Inviting users external to the Workspace organization that owns the space requires user authentication .
When a Chat app creates a membership relation for itself, it must authenticate as a user 
and use the chat.memberships.app 
scope, set user.type 
to BOT 
, and set user.name 
to users/app 
.
use_admin_access 
 bool 
Optional. When true 
, the method runs using the user's Google Workspace administrator privileges.
The calling user must be a Google Workspace administrator with the manage chat and spaces conversations privilege .
Requires the chat.admin.memberships 
 OAuth 2.0 scope 
.
Creating app memberships or creating memberships for users outside the administrator's Google Workspace organization isn't supported using admin access.
CreateMessageRequest
Creates a message.
parent 
 string 
Required. The resource name of the space in which to create a message.
Format: spaces/{space} 
thread_key
 (deprecated) 
 
 string 
Optional. Deprecated: Use  thread.thread_key 
 
instead. ID for the thread. Supports up to 4000 characters. To start or add to a thread, create a message and specify a threadKey 
or the  thread.name 
 
. For example usage, see Start or reply to a message thread 
.
request_id 
 string 
Optional. A unique request ID for this message. Specifying an existing request ID returns the message created with that ID instead of creating a new message.
MessageReplyOption
Specifies how to reply to a message. More states might be added in the future.
| Enums | |
|---|---|
| MESSAGE_REPLY_OPTION_UNSPECIFIED | Default. Starts a new thread. Using this option ignores any  thread ID 
or  that's included. | 
| REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD | Creates the message as a reply to the thread specified by  thread ID 
or  . If it fails, the message starts a new thread instead. | 
| REPLY_MESSAGE_OR_FAIL | Creates the message as a reply to the thread specified by  thread ID 
or  . If a newthread_keyis used, a new thread is created. If the message creation fails, aNOT_FOUNDerror is returned instead. | 
CreateReactionRequest
Creates a reaction to a message.
| Fields | |
|---|---|
| parent |   Required. The message where the reaction is created. Format:  | 
| reaction | Required. The reaction to create. | 
CreateSpaceRequest
A request to create a named space with no members.
| Fields | |
|---|---|
| space | Required. The  If you receive the error message  The space  | 
| request_id |   Optional. A unique identifier for this request. A random UUID is recommended. Specifying an existing request ID returns the space created with that ID instead of creating a new space. Specifying an existing request ID from the same Chat app with a different authenticated user returns an error. | 
CustomEmoji
Represents a custom emoji .
| Fields | |
|---|---|
| name |   Identifier. The resource name of the custom emoji, assigned by the server. Format:  | 
| uid |   Output only. Unique key for the custom emoji resource. | 
| emoji_name |   Optional. Immutable. User-provided name for the custom emoji, which is unique within the organization. Required when the custom emoji is created, output only otherwise. Emoji names must start and end with colons, must be lowercase and can only contain alphanumeric characters, hyphens, and underscores. Hyphens and underscores should be used to separate words and cannot be used consecutively. Example:  | 
| temporary_image_uri |   Output only. A temporary image URL for the custom emoji, valid for at least 10 minutes. Note that this is not populated in the response when the custom emoji is created. | 
| payload | Optional. Input only. Payload data. Required when the custom emoji is created. | 
CustomEmojiPayload
Payload data for the custom emoji.
| Fields | |
|---|---|
| file_content |   Required. Input only. The image used for the custom emoji. The payload must be under 256 KB and the dimension of the image must be square and between 64 and 500 pixels. The restrictions are subject to change. | 
| filename |   Required. Input only. The image file name. Supported file extensions:  | 
CustomEmojiMetadata
Annotation metadata for custom emoji.
| Fields | |
|---|---|
| custom_emoji | The custom emoji. | 
DeleteCustomEmojiRequest
Request for deleting a custom emoji.
| Fields | |
|---|---|
| name |   Required. Resource name of the custom emoji to delete. Format:  You can use the emoji name as an alias for  | 
DeleteMembershipRequest
Request to delete a membership in a space.
| Fields | |
|---|---|
| name |   Required. Resource name of the membership to delete. Chat apps can delete human users' or their own memberships. Chat apps can't delete other apps' memberships. When deleting a human membership, requires the  When deleting an app membership, requires the  Format:  | 
| use_admin_access |   Optional. When  The calling user must be a Google Workspace administrator with the manage chat and spaces conversations privilege . Requires the  Deleting app memberships in a space isn't supported using admin access. | 
DeleteMessageRequest
Request to delete a message.
| Fields | |
|---|---|
| name |   Required. Resource name of the message. Format:  If you've set a custom ID for your message, you can use the value from the  | 
| force |   Optional. When  Only applies when authenticating as a user . Has no effect when authenticating as a Chat app . | 
DeleteReactionRequest
Deletes a reaction to a message.
| Fields | |
|---|---|
| name |   Required. Name of the reaction to delete. Format:  | 
DeleteSpaceRequest
Request for deleting a space.
| Fields | |
|---|---|
| name |   Required. Resource name of the space to delete. Format:  | 
| use_admin_access |   Optional. When  The calling user must be a Google Workspace administrator with the manage chat and spaces conversations privilege . Requires the  | 
DeletionMetadata
Information about a deleted message. A message is deleted when delete_time 
is set.
| Fields | |
|---|---|
| deletion_type | Indicates who deleted the message. | 
DeletionType
Who deleted the message and how it was deleted. More values may be added in the future. See Edit or delete a message in Google Chat for details on when messages can be deleted.
| Enums | |
|---|---|
| DELETION_TYPE_UNSPECIFIED | This value is unused. | 
| CREATOR | User deleted their own message. | 
| SPACE_OWNER | An owner or manager deleted the message. | 
| ADMIN | A Google Workspace administrator deleted the message. Administrators can delete any message in the space, including messages sent by any space member or Chat app. | 
| APP_MESSAGE_EXPIRY | A Chat app deleted its own message when it expired. | 
| CREATOR_VIA_APP | A Chat app deleted the message on behalf of the creator (using user authentication). | 
| SPACE_OWNER_VIA_APP | A Chat app deleted the message on behalf of a space manager (using user authentication). | 
| SPACE_MEMBER | A member of the space deleted the message. Users can delete messages sent by apps. | 
Dialog
Wrapper around the card body of the dialog.
| Fields | |
|---|---|
| body | Input only. Body of the dialog, which is rendered in a modal. Google Chat apps don't support the following card entities:  | 
DialogAction
Contains a dialog and request status code.
action_status 
Input only. Status for a request to either invoke or submit a dialog . Displays a status and message to users, if necessary. For example, in case of an error or success.
action 
. Action to perform. action 
can be only one of the following:DriveDataRef
A reference to the data of a drive attachment.
| Fields | |
|---|---|
| drive_file_id |   The ID for the drive file. Use with the Drive API. | 
DriveLinkData
Data for Google Drive links.
| Fields | |
|---|---|
| drive_data_ref | A DriveDataRef which references a Google Drive file. | 
| mime_type |   The mime type of the linked Google Drive resource. | 
Emoji
An emoji that is used as a reaction to a message.
content 
. Required. The content of the emoji. content 
can be only one of the following:unicode 
 string 
Optional. A basic emoji represented by a unicode string.
custom_emoji 
A custom emoji.
EmojiReactionSummary
The number of people who reacted to a message with a specific emoji.
| Fields | |
|---|---|
| emoji | Output only. Emoji associated with the reactions. | 
| reaction_count |   Output only. The total number of reactions using the associated emoji. | 
FindDirectMessageRequest
A request to get direct message space based on the user resource.
| Fields | |
|---|---|
| name |   Required. Resource name of the user to find direct message with. Format:  | 
FindGroupChatsRequest
A request to get group chat spaces based on user resources.
| Fields | |
|---|---|
| user[] |   Resource names of all human users in group chat with the calling user. Chat apps cannot be included in the request. Format:  When the calling user is a Google Workspace user, all requested users must be members of the same Google Workspace organization as the calling user. | 
| page_size |   Optional. The maximum number of spaces to return. The service might return fewer than this value. If unspecified, at most 100 spaces are returned. The maximum value is 1000. If you use a value more than 1000, it's automatically changed to 1000. Negative values return an  | 
| page_token |   Optional. A page token, received from a previous call to find group chats. Provide this parameter to retrieve the subsequent page. When paginating, all other parameters provided should match the call that provided the token. Passing different values may lead to unexpected results. | 
| space_view | Requested space view type. If unset, defaults to  | 
FindGroupChatsResponse
A response containing group chat spaces with exactly the calling user and the requested users.
| Fields | |
|---|---|
| spaces[] | List of spaces in the requested (or first) page. | 
| next_page_token |   A token that you can send as  | 
GetAttachmentRequest
Request to get an attachment.
| Fields | |
|---|---|
| name |   Required. Resource name of the attachment, in the form  | 
GetCustomEmojiRequest
A request to return a single custom emoji.
| Fields | |
|---|---|
| name |   Required. Resource name of the custom emoji. Format:  You can use the emoji name as an alias for  | 
GetMembershipRequest
Request to get a membership of a space.
| Fields | |
|---|---|
| name |   Required. Resource name of the membership to retrieve. To get the app's own membership by using user authentication 
, you can optionally use  Format:  You can use the user's email as an alias for  | 
| use_admin_access |   Optional. When  The calling user must be a Google Workspace administrator with the manage chat and spaces conversations privilege . Requires the  Getting app memberships in a space isn't supported when using admin access. | 
GetMessageRequest
Request to get a message.
| Fields | |
|---|---|
| name |   Required. Resource name of the message. Format:  If you've set a custom ID for your message, you can use the value from the  | 
GetSpaceEventRequest
Request message for getting a space event.
| Fields | |
|---|---|
| name |   Required. The resource name of the space event. Format:  | 
GetSpaceNotificationSettingRequest
Request message to get space notification setting. Only supports getting notification setting for the calling user.
name 
 string 
Required. Format: users/{user}/spaces/{space}/spaceNotificationSetting
-  users/me/spaces/{space}/spaceNotificationSetting, OR
-  users/user@example.com/spaces/{space}/spaceNotificationSetting, OR
-  users/123456789/spaces/{space}/spaceNotificationSetting. Note: Only the caller's user id or email is allowed in the path.
GetSpaceReadStateRequest
Request message for GetSpaceReadState API.
name 
 string 
Required. Resource name of the space read state to retrieve.
Only supports getting read state for the calling user.
To refer to the calling user, set one of the following:
-  The mealias. For example,users/me/spaces/{space}/spaceReadState.
-  Their Workspace email address. For example, users/user@example.com/spaces/{space}/spaceReadState.
-  Their user id. For example, users/123456789/spaces/{space}/spaceReadState.
Format: users/{user}/spaces/{space}/spaceReadState
GetSpaceRequest
A request to return a single space.
| Fields | |
|---|---|
| name |   Required. Resource name of the space, in the form  Format:  | 
| use_admin_access |   Optional. When  The calling user must be a Google Workspace administrator with the manage chat and spaces conversations privilege . Requires the  | 
GetThreadReadStateRequest
Request message for GetThreadReadStateRequest API.
name 
 string 
Required. Resource name of the thread read state to retrieve.
Only supports getting read state for the calling user.
To refer to the calling user, set one of the following:
-  The mealias. For example,users/me/spaces/{space}/threads/{thread}/threadReadState.
-  Their Workspace email address. For example, users/user@example.com/spaces/{space}/threads/{thread}/threadReadState.
-  Their user id. For example, users/123456789/spaces/{space}/threads/{thread}/threadReadState.
Format: users/{user}/spaces/{space}/threads/{thread}/threadReadState
Group
A Google Group in Google Chat.
| Fields | |
|---|---|
| name |   Resource name for a Google Group. Represents a group in Cloud Identity Groups API. Format: groups/{group} | 
HistoryState
The history state for messages and spaces. Specifies how long messages and conversation threads are kept after creation.
| Enums | |
|---|---|
| HISTORY_STATE_UNSPECIFIED | Default value. Do not use. | 
| HISTORY_OFF | History off. Messages and threads are kept for 24 hours . | 
| HISTORY_ON | History on. The organization's Vault retention rules specify for how long messages and threads are kept. | 
ListCustomEmojisRequest
A request to return a list of custom emojis.
| Fields | |
|---|---|
| page_size |   Optional. The maximum number of custom emojis returned. The service can return fewer custom emojis than this value. If unspecified, the default value is 25. The maximum value is 200; values above 200 are changed to 200. | 
| page_token |   Optional. (If resuming from a previous query.) A page token received from a previous list custom emoji call. Provide this to retrieve the subsequent page. When paginating, the filter value should match the call that provided the page token. Passing a different value might lead to unexpected results. | 
| filter |   Optional. A query filter. Supports filtering by creator. To filter by creator, you must specify a valid value. Currently only  For example, the following query returns custom emojis created by the caller:  Invalid queries are rejected with an  | 
ListCustomEmojisResponse
A response to list custom emojis.
| Fields | |
|---|---|
| custom_emojis[] | Unordered list. List of custom emojis. | 
| next_page_token |   A token that you can send as  | 
ListMembershipsRequest
Request message for listing memberships.
| Fields | |
|---|---|
| parent |   Required. The resource name of the space for which to fetch a membership list. Format: spaces/{space} | 
| page_size |   Optional. The maximum number of memberships to return. The service might return fewer than this value. If unspecified, at most 100 memberships are returned. The maximum value is 1000. If you use a value more than 1000, it's automatically changed to 1000. Negative values return an  | 
| page_token |   Optional. A page token, received from a previous call to list memberships. Provide this parameter to retrieve the subsequent page. When paginating, all other parameters provided should match the call that provided the page token. Passing different values to the other parameters might lead to unexpected results. | 
| filter |   Optional. A query filter. You can filter memberships by a member's role (   To filter by role, set  To filter by type, set  To filter by both role and type, use the  Either  For example, the following queries are valid:  The following queries are invalid:  Invalid queries are rejected by the server with an  | 
| show_groups |   Optional. When  | 
| show_invited |   Optional. When  Currently requires user authentication . | 
| use_admin_access |   Optional. When  The calling user must be a Google Workspace administrator with the manage chat and spaces conversations privilege . Requires either the  Listing app memberships in a space isn't supported when using admin access. | 
ListMembershipsResponse
Response to list memberships of the space.
| Fields | |
|---|---|
| memberships[] | Unordered list. List of memberships in the requested (or first) page. | 
| next_page_token |   A token that you can send as  | 
ListMessagesRequest
Lists messages in the specified space, that the user is a member of.
parent 
 string 
Required. The resource name of the space to list messages from.
Format: spaces/{space} 
page_size 
 int32 
Optional. The maximum number of messages returned. The service might return fewer messages than this value.
If unspecified, at most 25 are returned.
The maximum value is 1000. If you use a value more than 1000, it's automatically changed to 1000.
Negative values return an INVALID_ARGUMENT 
error.
page_token 
 string 
Optional. A page token received from a previous list messages call. Provide this parameter to retrieve the subsequent page.
When paginating, all other parameters provided should match the call that provided the page token. Passing different values to the other parameters might lead to unexpected results.
filter 
 string 
Optional. A query filter.
You can filter messages by date ( create_time 
) and thread ( thread.name 
).
To filter messages by the date they were created, specify the create_time 
with a timestamp in RFC-3339 
format and double quotation marks. For example, "2023-04-21T11:30:00-04:00" 
. You can use the greater than operator > 
to list messages that were created after a timestamp, or the less than operator < 
to list messages that were created before a timestamp. To filter messages within a time interval, use the AND 
operator between two timestamps.
To filter by thread, specify the thread.name 
, formatted as spaces/{space}/threads/{thread} 
. You can only specify one thread.name 
per query.
To filter by both thread and date, use the AND 
operator in your query.
For example, the following queries are valid:
 create_time > "2012-04-21T11:30:00-04:00"
create_time > "2012-04-21T11:30:00-04:00" AND
  thread.name = spaces/AAAAAAAAAAA/threads/123
create_time > "2012-04-21T11:30:00+00:00" AND
create_time < "2013-01-01T00:00:00+00:00" AND
  thread.name = spaces/AAAAAAAAAAA/threads/123
thread.name = spaces/AAAAAAAAAAA/threads/123 
 
Invalid queries are rejected by the server with an INVALID_ARGUMENT 
error.
order_by 
 string 
Optional. How the list of messages is ordered. Specify a value to order by an ordering operation. Valid ordering operation values are as follows:
-  ASCfor ascending.
-  DESCfor descending.
The default ordering is create_time ASC 
.
show_deleted 
 bool 
Optional. Whether to include deleted messages. Deleted messages include deleted time and metadata about their deletion, but message content is unavailable.
ListMessagesResponse
Response message for listing messages.
| Fields | |
|---|---|
| next_page_token |   You can send a token as  | 
ListReactionsRequest
Lists reactions to a message.
| Fields | |
|---|---|
| parent |   Required. The message users reacted to. Format:  | 
| page_size |   Optional. The maximum number of reactions returned. The service can return fewer reactions than this value. If unspecified, the default value is 25. The maximum value is 200; values above 200 are changed to 200. | 
| page_token |   Optional. (If resuming from a previous query.) A page token received from a previous list reactions call. Provide this to retrieve the subsequent page. When paginating, the filter value should match the call that provided the page token. Passing a different value might lead to unexpected results. | 
| filter |   Optional. A query filter. You can filter reactions by emoji 
(either  To filter reactions for multiple emojis or users, join similar fields with the  To filter reactions by emoji and user, use the  If your query uses both  For example, the following queries are valid:  The following queries are invalid:  Invalid queries are rejected with an  | 
ListReactionsResponse
Response to a list reactions request.
| Fields | |
|---|---|
| reactions[] | List of reactions in the requested (or first) page. | 
| next_page_token |   Continuation token to retrieve the next page of results. It's empty for the last page of results. | 
ListSpaceEventsRequest
Request message for listing space events.
parent 
 string 
Required. Resource name of the Google Chat space where the events occurred.
Format: spaces/{space} 
.
page_size 
 int32 
Optional. The maximum number of space events returned. The service might return fewer than this value.
Negative values return an INVALID_ARGUMENT 
error.
page_token 
 string 
Optional. A page token, received from a previous list space events call. Provide this to retrieve the subsequent page.
When paginating, all other parameters provided to list space events must match the call that provided the page token. Passing different values to the other parameters might lead to unexpected results.
filter 
 string 
Required. A query filter.
You must specify at least one event type ( event_type 
) using the has : 
operator. To filter by multiple event types, use the OR 
operator. Omit batch event types in your filter. The request automatically returns any related batch events. For example, if you filter by new reactions ( google.workspace.chat.reaction.v1.created 
), the server also returns batch new reactions events ( google.workspace.chat.reaction.v1.batchCreated 
). For a list of supported event types, see the  SpaceEvents 
reference documentation 
.
Optionally, you can also filter by start time ( start_time 
) and end time ( end_time 
):
-  start_time: Exclusive timestamp from which to start listing space events. You can list events that occurred up to 28 days ago. If unspecified, lists space events from the past 28 days.
-  end_time: Inclusive timestamp until which space events are listed. If unspecified, lists events up to the time of the request.
To specify a start or end time, use the equals = 
operator and format in RFC-3339 
. To filter by both start_time 
and end_time 
, use the AND 
operator.
For example, the following queries are valid:
 start_time="2023-08-23T19:20:33+00:00" AND
end_time="2023-08-23T19:21:54+00:00" 
 
 start_time="2023-08-23T19:20:33+00:00" AND
(event_types:"google.workspace.chat.space.v1.updated" OR
event_types:"google.workspace.chat.message.v1.created") 
 
The following queries are invalid:
 start_time="2023-08-23T19:20:33+00:00" OR
end_time="2023-08-23T19:21:54+00:00" 
 
 event_types:"google.workspace.chat.space.v1.updated" AND
event_types:"google.workspace.chat.message.v1.created" 
 
Invalid queries are rejected by the server with an INVALID_ARGUMENT 
error.
ListSpaceEventsResponse
Response message for listing space events.
| Fields | |
|---|---|
| space_events[] | Results are returned in chronological order (oldest event first). Note: The  | 
| next_page_token |   Continuation token used to fetch more events. If this field is omitted, there are no subsequent pages. | 
ListSpacesRequest
A request to list the spaces the caller is a member of.
| Fields | |
|---|---|
| page_size |   Optional. The maximum number of spaces to return. The service might return fewer than this value. If unspecified, at most 100 spaces are returned. The maximum value is 1000. If you use a value more than 1000, it's automatically changed to 1000. Negative values return an  | 
| page_token |   Optional. A page token, received from a previous list spaces call. Provide this parameter to retrieve the subsequent page. When paginating, the filter value should match the call that provided the page token. Passing a different value may lead to unexpected results. | 
| filter |   Optional. A query filter. You can filter spaces by the space type (   To filter by space type, you must specify valid enum value, such as  For example, the following queries are valid:  Invalid queries are rejected by the server with an  | 
ListSpacesResponse
The response for a list spaces request.
| Fields | |
|---|---|
| spaces[] | List of spaces in the requested (or first) page. Note: The  | 
| next_page_token |   You can send a token as  | 
MatchedUrl
A matched URL in a Chat message. Chat apps can preview matched URLs. For more information, see Preview links .
| Fields | |
|---|---|
| url |   Output only. The URL that was matched. | 
MeetSpaceLinkData
Data for Meet space links.
| Fields | |
|---|---|
| meeting_code |   Meeting code of the linked Meet space. | 
| type | Indicates the type of the Meet space. | 
| huddle_status | Optional. Output only. If the Meet is a Huddle, indicates the status of the huddle. Otherwise, this is unset. | 
HuddleStatus
The status of the huddle
| Enums | |
|---|---|
| HUDDLE_STATUS_UNSPECIFIED | Default value for the enum. Don't use. | 
| STARTED | The huddle has started. | 
| ENDED | The huddle has ended. In this case the Meet space URI and identifiers will no longer be valid. | 
| MISSED | The huddle has been missed. In this case the Meet space URI and identifiers will no longer be valid. | 
Type
The type of the Meet space.
| Enums | |
|---|---|
| TYPE_UNSPECIFIED | Default value for the enum. Don't use. | 
| MEETING | The Meet space is a meeting. | 
| HUDDLE | The Meet space is a huddle. | 
Membership
Represents a membership relation in Google Chat, such as whether a user or Chat app is invited to, part of, or absent from a space.
name 
 string 
Identifier. Resource name of the membership, assigned by the server.
Format: spaces/{space}/members/{member} 
state 
Output only. State of the membership.
role 
Optional. User's role within a Chat space, which determines their permitted actions in the space.
This field can only be used as input in UpdateMembership 
.
create_time 
Optional. Immutable. The creation time of the membership, such as when a member joined or was invited to join a space. This field is output only, except when used to import historical memberships in import mode spaces.
delete_time 
Optional. Immutable. The deletion time of the membership, such as when a member left or was removed from a space. This field is output only, except when used to import historical memberships in import mode spaces.
memberType 
. Member associated with this membership. Other member types might be supported in the future. memberType 
can be only one of the following:member 
Optional. The Google Chat user or app the membership corresponds to. If your Chat app authenticates as a user 
, the output populates the user 
 name 
and type 
.
group_member 
Optional. The Google Group the membership corresponds to.
Reading or mutating memberships for Google Groups requires user authentication .
MembershipRole
Represents a user's permitted actions in a Chat space. More enum values might be added in the future.
MEMBERSHIP_ROLE_UNSPECIFIED 
 users 
 
: they aren't a member of the space, but can be invited. For  Google Groups 
 
: they're always  assigned this role (other enum values might be used in the future).ROLE_MEMBER 
A member of the space. In the Chat UI, this role is called Member.
The user has basic permissions, like sending messages to the space. Managers and owners can grant members additional permissions in a space, including:
- Add or remove members.
- Modify space details.
- Turn history on or off.
- Mention everyone in the space with @all.
- Manage Chat apps and webhooks installed in the space.
In direct messages and unnamed group conversations, everyone has this role.
ROLE_MANAGER 
A space owner. In the Chat UI, this role is called Owner.
The user has the complete set of space permissions to manage the space, including:
- Change the role of other members in the space to member, manager, or owner.
- Delete the space.
Only supported in  SpaceType.SPACE 
 
(named spaces).
To learn more, see Learn more about your role as a space owner or manager .
ROLE_ASSISTANT_MANAGER 
A space manager. In the Chat UI, this role is called Manager.
The user has all basic permissions of ROLE_MEMBER 
, and can be granted a subset of administrative permissions by an owner. By default, managers have all the permissions of an owner except for the ability to:
- Delete the space.
- Make another space member an owner.
- Change an owner's role.
By default, managers permissions include but aren't limited to:
- Make another member a manager.
- Delete messages in the space.
- Manage space permissions.
- Receive notifications for requests to join the space if the manager has the "manage members" permission in the space settings.
- Make a space discoverable.
Only supported in  SpaceType.SPACE 
 
(named spaces).
To learn more, see Manage space settings .
MembershipState
Specifies the member's relationship with a space. Other membership states might be supported in the future.
| Enums | |
|---|---|
| MEMBERSHIP_STATE_UNSPECIFIED | Default value. Don't use. | 
| JOINED | The user is added to the space, and can participate in the space. | 
| INVITED | The user is invited to join the space, but hasn't joined it. | 
| NOT_A_MEMBER | The user doesn't belong to the space and doesn't have a pending invitation to join the space. | 
MembershipBatchCreatedEventData
Event payload for multiple new memberships.
Event type: google.workspace.chat.membership.v1.batchCreated 
| Fields | |
|---|---|
| memberships[] | A list of new memberships. | 
MembershipBatchDeletedEventData
Event payload for multiple deleted memberships.
Event type: google.workspace.chat.membership.v1.batchDeleted 
| Fields | |
|---|---|
| memberships[] | A list of deleted memberships. | 
MembershipBatchUpdatedEventData
Event payload for multiple updated memberships.
Event type: google.workspace.chat.membership.v1.batchUpdated 
| Fields | |
|---|---|
| memberships[] | A list of updated memberships. | 
MembershipCreatedEventData
Event payload for a new membership.
Event type: google.workspace.chat.membership.v1.created 
.
| Fields | |
|---|---|
| membership | The new membership. | 
MembershipDeletedEventData
Event payload for a deleted membership.
Event type: google.workspace.chat.membership.v1.deleted 
| Fields | |
|---|---|
| membership | The deleted membership. Only the  | 
MembershipUpdatedEventData
Event payload for an updated membership.
Event type: google.workspace.chat.membership.v1.updated 
| Fields | |
|---|---|
| membership | The updated membership. | 
Message
A message in a Google Chat space.
name 
 string 
Identifier. Resource name of the message.
Format: spaces/{space}/messages/{message} 
Where {space} 
is the ID of the space where the message is posted and {message} 
is a system-assigned ID for the message. For example, spaces/AAAAAAAAAAA/messages/BBBBBBBBBBB.BBBBBBBBBBB 
.
If you set a custom ID when you create a message, you can use this ID to specify the message in a request by replacing {message} 
with the value from the clientAssignedMessageId 
field. For example, spaces/AAAAAAAAAAA/messages/client-custom-name 
. For details, see Name a message 
.
sender 
Output only. The user who created the message. If your Chat app authenticates as a user 
, the output populates the user 
 name 
and type 
.
create_time 
Optional. Immutable. For spaces created in Chat, the time at which the message was created. This field is output only, except when used in import mode spaces.
For import mode spaces, set this field to the historical timestamp at which the message was created in the source in order to preserve the original creation time.
last_update_time 
Output only. The time at which the message was last edited by a user. If the message has never been edited, this field is empty.
delete_time 
Output only. The time at which the message was deleted in Google Chat. If the message is never deleted, this field is empty.
text 
 string 
Optional. Plain-text body of the message. The first link to an image, video, or web page generates a preview chip . You can also @mention a Google Chat user , or everyone in the space.
To learn about creating text messages, see Send a message .
formatted_text 
 string 
Output only. Contains the message text 
with markups added to communicate formatting. This field might not capture all formatting visible in the UI, but includes the following:
-  Markup syntax for bold, italic, strikethrough, monospace, monospace block, and bulleted list. 
-  User mentions using the format <users/{user}>.
-  Custom hyperlinks using the format <{url}|{rendered_text}>where the first string is the URL and the second is the rendered text—for example,<http://example.com|custom text>.
-  Custom emoji using the format :{emoji_name}:—for example,:smile:. This doesn't apply to Unicode emoji, such asU+1F600for a grinning face emoji.
-  Bullet list items using asterisks ( *)—for example,* item.
For more information, see View text formatting sent in a message
cards[]
 (deprecated) 
 
Deprecated: Use cards_v2 
instead.
Rich, formatted, and interactive cards that you can use to display UI elements such as: formatted texts, buttons, and clickable images. Cards are normally displayed below the plain-text body of the message. cards 
and cards_v2 
can have a maximum size of 32 KB.
cards_v2[] 
Optional. An array of cards .
Only Chat apps can create cards. If your Chat app authenticates as a user , the messages can't contain cards.
To learn how to create a message that contains cards, see Send a message .
Design and preview cards with the Card Builder.
Open the Card Builderannotations[] 
Output only. Annotations can be associated with the plain-text body of the message or with chips that link to Google Workspace resources like Google Docs or Sheets with start_index 
and length 
of 0.
thread 
The thread the message belongs to. For example usage, see Start or reply to a message thread .
space 
Output only. If your Chat app authenticates as a user 
, the output only populates the space 
 name 
.
fallback_text 
 string 
Optional. A plain-text description of the message's cards, used when the actual cards can't be displayed—for example, mobile notifications.
action_response 
Input only. Parameters that a Chat app can use to configure how its response is posted.
argument_text 
 string 
Output only. Plain-text body of the message with all Chat app mentions stripped out.
slash_command 
Output only. Slash command information, if applicable.
matched_url 
Output only. A URL in spaces.messages.text 
that matches a link preview pattern. For more information, see Preview links 
.
thread_reply 
 bool 
Output only. When true 
, the message is a response in a reply thread. When false 
, the message is visible in the space's top-level conversation as either the first message of a thread or a message with no threaded replies.
If the space doesn't support reply in threads, this field is always false 
.
emoji_reaction_summaries[] 
Output only. The list of emoji reaction summaries on the message.
attached_gifs[] 
Output only. GIF images that are attached to the message.
MessageBatchCreatedEventData
Event payload for multiple new messages.
Event type: google.workspace.chat.message.v1.batchCreated 
| Fields | 
|---|
MessageBatchDeletedEventData
Event payload for multiple deleted messages.
Event type: google.workspace.chat.message.v1.batchDeleted 
| Fields | 
|---|
MessageBatchUpdatedEventData
Event payload for multiple updated messages.
Event type: google.workspace.chat.message.v1.batchUpdated 
| Fields | 
|---|
MessageCreatedEventData
Event payload for a new message.
Event type: google.workspace.chat.message.v1.created 
| Fields | 
|---|
MessageDeletedEventData
Event payload for a deleted message.
Event type: google.workspace.chat.message.v1.deleted 
| Fields | 
|---|
MessageUpdatedEventData
Event payload for an updated message.
Event type: google.workspace.chat.message.v1.updated 
| Fields | 
|---|
QuotedMessageMetadata
Information about a message that another message quotes.
When you create a message, you can quote messages within the same thread, or quote a root message to create a new root message. However, you can't quote a message reply from a different thread.
When you update a message, you can't add or replace the quotedMessageMetadata 
field, but you can remove it.
For example usage, see Quote another message .
| Fields | |
|---|---|
| name |   Required. Resource name of the message that is quoted. Format:  | 
| last_update_time | Required. The timestamp when the quoted message was created or when the quoted message was last updated. If the message was edited, use this field,  If  | 
Reaction
A reaction to a message.
| Fields | |
|---|---|
| name |   Identifier. The resource name of the reaction. Format:  | 
| user | Output only. The user who created the reaction. | 
| emoji | Required. The emoji used in the reaction. | 
ReactionBatchCreatedEventData
Event payload for multiple new reactions.
Event type: google.workspace.chat.reaction.v1.batchCreated 
| Fields | |
|---|---|
| reactions[] | A list of new reactions. | 
ReactionBatchDeletedEventData
Event payload for multiple deleted reactions.
Event type: google.workspace.chat.reaction.v1.batchDeleted 
| Fields | |
|---|---|
| reactions[] | A list of deleted reactions. | 
ReactionCreatedEventData
Event payload for a new reaction.
Event type: google.workspace.chat.reaction.v1.created 
| Fields | |
|---|---|
| reaction | The new reaction. | 
ReactionDeletedEventData
Event payload for a deleted reaction.
Type: google.workspace.chat.reaction.v1.deleted 
| Fields | |
|---|---|
| reaction | The deleted reaction. | 
RichLinkMetadata
A rich link to a resource. Rich links can be associated with the plain-text body of the message or represent chips that link to Google Workspace resources like Google Docs or Sheets with start_index 
and length 
of 0.
uri 
 string 
The URI of this link.
rich_link_type 
The rich link type.
data 
. Data for the linked resource. data 
can be only one of the following:drive_link_data 
Data for a drive link.
chat_space_link_data 
Data for a chat space link.
meet_space_link_data 
Data for a Meet space link.
calendar_event_link_data 
Data for a Calendar event link.
RichLinkType
The rich link type. More types might be added in the future.
| Enums | |
|---|---|
| RICH_LINK_TYPE_UNSPECIFIED | Default value for the enum. Don't use. | 
| DRIVE_FILE | A Google Drive rich link type. | 
| CHAT_SPACE | A Chat space rich link type. For example, a space smart chip. | 
| MEET_SPACE | A Meet message rich link type. For example, a Meet chip. | 
| CALENDAR_EVENT | A Calendar message rich link type. For example, a Calendar chip. | 
SearchSpacesRequest
Request to search for a list of spaces based on a query.
use_admin_access 
 bool 
When true 
, the method runs using the user's Google Workspace administrator privileges.
The calling user must be a Google Workspace administrator with the manage chat and spaces conversations privilege .
Requires either the chat.admin.spaces.readonly 
or chat.admin.spaces 
 OAuth 2.0 scope 
.
This method currently only supports admin access, thus only true 
is accepted for this field.
page_size 
 int32 
The maximum number of spaces to return. The service may return fewer than this value.
If unspecified, at most 100 spaces are returned.
The maximum value is 1000. If you use a value more than 1000, it's automatically changed to 1000.
page_token 
 string 
A token, received from the previous search spaces call. Provide this parameter to retrieve the subsequent page.
When paginating, all other parameters provided should match the call that provided the page token. Passing different values to the other parameters might lead to unexpected results.
query 
 string 
Required. A search query.
You can search by using the following parameters:
-  create_time
-  customer
-  display_name
-  external_user_allowed
-  last_active_time
-  space_history_state
-  space_type
 create_time 
and last_active_time 
accept a timestamp in RFC-3339 
format and the supported comparison operators are: = 
, < 
, > 
, <= 
, >= 
.
 customer 
is required and is used to indicate which customer to fetch spaces from. customers/my_customer 
is the only supported value.
 display_name 
only accepts the HAS 
( : 
) operator. The text to match is first tokenized into tokens and each token is prefix-matched case-insensitively and independently as a substring anywhere in the space's display_name 
. For example, Fun Eve 
matches Fun event 
or The
                  evening was fun 
, but not notFun event 
or even 
.
 external_user_allowed 
accepts either true 
or false 
.
 space_history_state 
only accepts values from the  historyState 
 
field of a space 
resource.
 space_type 
is required and the only valid value is SPACE 
.
Across different fields, only AND 
operators are supported. A valid example is space_type = "SPACE" AND display_name:"Hello" 
and an invalid example is space_type = "SPACE" OR display_name:"Hello" 
.
Among the same field, space_type 
doesn't support AND 
or OR 
operators. display_name 
, 'space_history_state', and 'external_user_allowed' only support OR 
operators. last_active_time 
and create_time 
support both AND 
and OR 
operators. AND 
can only be used to represent an interval, such as last_active_time
                  < "2022-01-01T00:00:00+00:00" AND last_active_time >
                  "2023-01-01T00:00:00+00:00" 
.
The following example queries are valid:
 customer = "customers/my_customer" AND space_type = "SPACE"
customer = "customers/my_customer" AND space_type = "SPACE" AND
display_name:"Hello World"
customer = "customers/my_customer" AND space_type = "SPACE" AND
(last_active_time < "2020-01-01T00:00:00+00:00" OR last_active_time >
"2022-01-01T00:00:00+00:00")
customer = "customers/my_customer" AND space_type = "SPACE" AND
(display_name:"Hello World" OR display_name:"Fun event") AND
(last_active_time > "2020-01-01T00:00:00+00:00" AND last_active_time <
"2022-01-01T00:00:00+00:00")
customer = "customers/my_customer" AND space_type = "SPACE" AND
(create_time > "2019-01-01T00:00:00+00:00" AND create_time <
"2020-01-01T00:00:00+00:00") AND (external_user_allowed = "true") AND
(space_history_state = "HISTORY_ON" OR space_history_state = "HISTORY_OFF") 
 
order_by 
 string 
Optional. How the list of spaces is ordered.
Supported attributes to order by are:
-  membership_count.joined_direct_human_user_count— Denotes the count of human users that have directly joined a space.
-  last_active_time— Denotes the time when last eligible item is added to any topic of this space.
-  create_time— Denotes the time of the space creation.
Valid ordering operation values are:
-  ASCfor ascending. Default value.
-  DESCfor descending.
The supported syntax are:
-  membership_count.joined_direct_human_user_count DESC
-  membership_count.joined_direct_human_user_count ASC
-  last_active_time DESC
-  last_active_time ASC
-  create_time DESC
-  create_time ASC
SearchSpacesResponse
Response with a list of spaces corresponding to the search spaces request.
| Fields | |
|---|---|
| spaces[] | A page of the requested spaces. | 
| next_page_token |   A token that can be used to retrieve the next page. If this field is empty, there are no subsequent pages. | 
| total_size |   The total number of spaces that match the query, across all pages. If the result is over 10,000 spaces, this value is an estimate. | 
SetUpSpaceRequest
Request to create a space and add specified users to it.
| Fields | |
|---|---|
| space | Required. The  To create a space, set  To create a group chat, set  To create a 1:1 conversation between humans, set  To create an 1:1 conversation between a human and the calling Chat app, set  If a  | 
| request_id |   Optional. A unique identifier for this request. A random UUID is recommended. Specifying an existing request ID returns the space created with that ID instead of creating a new space. Specifying an existing request ID from the same Chat app with a different authenticated user returns an error. | 
| memberships[] | Optional. The Google Chat users or groups to invite to join the space. Omit the calling user, as they are added automatically. The set currently allows up to 49 memberships (in addition to the caller). For human membership, the  For Google group membership, the  Optional when setting  Required when setting  Required when setting  Must be empty when creating a 1:1 conversation between a human and the calling Chat app (when setting  | 
SlashCommand
Metadata about a slash command in Google Chat.
| Fields | |
|---|---|
| command_id |   The ID of the slash command. | 
SlashCommandMetadata
Annotation metadata for slash commands (/).
| Fields | |
|---|---|
| bot | The Chat app whose command was invoked. | 
| type | The type of slash command. | 
| command_name |   The name of the invoked slash command. | 
| command_id |   The command ID of the invoked slash command. | 
| triggers_dialog |   Indicates whether the slash command is for a dialog. | 
Type
| Enums | |
|---|---|
| TYPE_UNSPECIFIED | Default value for the enum. Don't use. | 
| ADD | Add Chat app to space. | 
| INVOKE | Invoke slash command in space. | 
Space
A space in Google Chat. Spaces are conversations between two or more users or 1:1 messages between a user and a Chat app.
name 
 string 
Identifier. Resource name of the space.
Format: spaces/{space} 
Where {space} 
represents the system-assigned ID for the space. You can obtain the space ID by calling the  spaces.list() 
 
method or from the space URL. For example, if the space URL is https://mail.google.com/mail/u/0/#chat/space/AAAAAAAAA 
, the space ID is AAAAAAAAA 
.
type
 (deprecated) 
 
Output only. Deprecated: Use space_type 
instead. The type of a space.
space_type 
Optional. The type of space. Required when creating a space or updating the space type of a space. Output only for other usage.
single_user_bot_dm 
 bool 
Optional. Whether the space is a DM between a Chat app and a single human.
threaded
 (deprecated) 
 
 bool 
Output only. Deprecated: Use spaceThreadingState 
instead. Whether messages are threaded in this space.
display_name 
 string 
Optional. The space's display name. Required when creating a space 
with a spaceType 
of SPACE 
. If you receive the error message ALREADY_EXISTS 
when creating a space or updating the displayName 
, try a different displayName 
. An existing space within the Google Workspace organization might already use this display name.
For direct messages, this field might be empty.
Supports up to 128 characters.
external_user_allowed 
 bool 
Optional. Immutable. Whether this space permits any Google Chat user as a member. Input when creating a space in a Google Workspace organization. Omit this field when creating spaces in the following conditions:
- The authenticated user uses a consumer account (unmanaged user account). By default, a space created by a consumer account permits any Google Chat user.
For existing spaces, this field is output only.
space_threading_state 
Output only. The threading state in the Chat space.
space_details 
Optional. Details about the space including description and rules.
space_history_state 
Optional. The message history state for messages and threads in this space.
import_mode 
 bool 
Optional. Whether this space is created in Import Mode 
as part of a data migration into Google Workspace. While spaces are being imported, they aren't visible to users until the import is complete.
Creating a space in Import Mode 
requires user authentication 
.
create_time 
Optional. Immutable. For spaces created in Chat, the time the space was created. This field is output only, except when used in import mode spaces.
For import mode spaces, set this field to the historical timestamp at which the space was created in the source in order to preserve the original creation time.
Only populated in the output when spaceType 
is GROUP_CHAT 
or SPACE 
.
last_active_time 
Output only. Timestamp of the last message in the space.
admin_installed 
 bool 
Output only. For direct message (DM) spaces with a Chat app, whether the space was created by a Google Workspace administrator. Administrators can install and set up a direct message with a Chat app on behalf of users in their organization.
To support admin install, your Chat app must feature direct messaging.
membership_count 
Output only. The count of joined memberships grouped by member type. Populated when the space_type 
is SPACE 
, DIRECT_MESSAGE 
or GROUP_CHAT 
.
access_settings 
Optional. Specifies the access setting 
of the space. Only populated when the space_type 
is SPACE 
.
space_uri 
 string 
Output only. The URI for a user to access the space.
import_mode_expire_time 
Output only. The time when the space will be automatically deleted by the system if it remains in import mode.
Each space created in import mode must exit this mode before this expire time using spaces.completeImport 
.
This field is only populated for spaces that were created with import mode.
customer 
 string 
Optional. Immutable. The customer id of the domain of the space. Required only when creating a space with app authentication 
and SpaceType 
is SPACE 
, otherwise should not be set.
In the format customers/{customer} 
, where customer 
is the id 
from the Admin SDK customer resource 
. Private apps can also use the customers/my_customer 
alias to create the space in the same Google Workspace organization as the app.
This field isn't populated for direct messages (DMs) or when the space is created by non-Google Workspace users.
AccessSettings
Represents the access setting of the space.
access_state 
Output only. Indicates the access state of the space.
audience 
 string 
Optional. The resource name of the target audience who can discover the space, join the space, and preview the messages in the space. If unset, only users or Google Groups who have been individually invited or added to the space can access it. For details, see Make a space discoverable to a target audience .
Format: audiences/{audience} 
To use the default target audience for the Google Workspace organization, set to audiences/default 
.
Reading the target audience supports:
-  App authentication with administrator approval with the chat.app.spacesscope.
This field is not populated when using the chat.bot 
scope with app authentication 
.
Setting the target audience requires user authentication .
AccessState
Represents the access state of the space.
| Enums | |
|---|---|
| ACCESS_STATE_UNSPECIFIED | Access state is unknown or not supported in this API. | 
| PRIVATE | Only users or Google Groups that have been individually added or invited by other users or Google Workspace administrators can discover and access the space. | 
| DISCOVERABLE | A space manager has granted a target audience access to the space. Users or Google Groups that have been individually added or invited to the space can also discover and access the space. To learn more, see Make a space discoverable to specific users . Creating discoverable spaces requires user authentication . | 
MembershipCount
Represents the count of memberships of a space, grouped into categories.
| Fields | |
|---|---|
| joined_direct_human_user_count |   Output only. Count of human users that have directly joined the space, not counting users joined by having membership in a joined group. | 
| joined_group_count |   Output only. Count of all groups that have directly joined the space. | 
PermissionSetting
Represents a space permission setting.
| Fields | |
|---|---|
| managers_allowed |   Optional. Whether space owners (  | 
| members_allowed |   Optional. Whether basic space members (  | 
| assistant_managers_allowed |   Optional. Whether space managers  | 
PermissionSettings
Permission settings that you can specify when updating an existing named space.
To set permission settings when creating a space, specify the PredefinedPermissionSettings 
field in your request.
| Fields | |
|---|---|
| manage_members_and_groups | Optional. Setting for managing members and groups in a space. | 
| modify_space_details | Optional. Setting for updating space name, avatar, description and guidelines. | 
| toggle_history | Optional. Setting for toggling space history on and off. | 
| use_at_mention_all | Optional. Setting for using @all in a space. | 
| manage_apps | Optional. Setting for managing apps in a space. | 
| manage_webhooks | Optional. Setting for managing webhooks in a space. | 
PredefinedPermissionSettings
Predefined permission settings that you can only specify when creating a named space. More settings might be added in the future. For details about permission settings for named spaces, see Learn about spaces .
| Enums | |
|---|---|
| PREDEFINED_PERMISSION_SETTINGS_UNSPECIFIED | Unspecified. Don't use. | 
| COLLABORATION_SPACE | Setting to make the space a collaboration space where all members can post messages. | 
| ANNOUNCEMENT_SPACE | Setting to make the space an announcement space where only space managers can post messages. | 
SpaceDetails
Details about the space including description and rules.
| Fields | |
|---|---|
| description |   Optional. A description of the space. For example, describe the space's discussion topic, functional purpose, or participants. Supports up to 150 characters. | 
| guidelines |   Optional. The space's rules, expectations, and etiquette. Supports up to 5,000 characters. | 
SpaceThreadingState
Specifies the type of threading state in the Chat space.
| Enums | |
|---|---|
| SPACE_THREADING_STATE_UNSPECIFIED | Reserved. | 
| THREADED_MESSAGES | Named spaces that support message threads. When users respond to a message, they can reply in-thread, which keeps their response in the context of the original message. | 
| GROUPED_MESSAGES | Named spaces where the conversation is organized by topic. Topics and their replies are grouped together. | 
| UNTHREADED_MESSAGES | Direct messages (DMs) between two people and group conversations between 3 or more people. | 
SpaceType
The type of space. Required when creating or updating a space. Output only for other usage.
| Enums | |
|---|---|
| SPACE_TYPE_UNSPECIFIED | Reserved. | 
| SPACE | A place where people send messages, share files, and collaborate. A SPACEcan include Chat apps. | 
| GROUP_CHAT | Group conversations between 3 or more people. A GROUP_CHATcan include Chat apps. | 
| DIRECT_MESSAGE | 1:1 messages between two humans or a human and a Chat app. | 
Type
Deprecated: Use SpaceType 
instead.
| Enums | |
|---|---|
| TYPE_UNSPECIFIED | Reserved. | 
| ROOM | Conversations between two or more humans. | 
| DM | 1:1 Direct Message between a human and a Chat app, where all messages are flat. Note that this doesn't include direct messages between two humans. | 
SpaceBatchUpdatedEventData
Event payload for multiple updates to a space.
Event type: google.workspace.chat.space.v1.batchUpdated 
| Fields | |
|---|---|
| spaces[] | A list of updated spaces. | 
SpaceEvent
An event that represents a change or activity in a Google Chat space. To learn more, see Work with events from Google Chat .
name 
 string 
Resource name of the space event.
Format: spaces/{space}/spaceEvents/{spaceEvent} 
event_time 
Time when the event occurred.
event_type 
 string 
Type of space event. Each event type has a batch version, which represents multiple instances of the event type that occur in a short period of time. For spaceEvents.list() 
requests, omit batch event types in your query filter. By default, the server returns both event type and its batch version.
Supported event types for messages :
- New message: google.workspace.chat.message.v1.created
- Updated message: google.workspace.chat.message.v1.updated
- Deleted message: google.workspace.chat.message.v1.deleted
- Multiple new messages: google.workspace.chat.message.v1.batchCreated
- Multiple updated messages: google.workspace.chat.message.v1.batchUpdated
- Multiple deleted messages: google.workspace.chat.message.v1.batchDeleted
Supported event types for memberships :
- New membership: google.workspace.chat.membership.v1.created
- Updated membership: google.workspace.chat.membership.v1.updated
- Deleted membership: google.workspace.chat.membership.v1.deleted
- Multiple new memberships: google.workspace.chat.membership.v1.batchCreated
- Multiple updated memberships: google.workspace.chat.membership.v1.batchUpdated
- Multiple deleted memberships: google.workspace.chat.membership.v1.batchDeleted
Supported event types for reactions :
- New reaction: google.workspace.chat.reaction.v1.created
- Deleted reaction: google.workspace.chat.reaction.v1.deleted
- Multiple new reactions: google.workspace.chat.reaction.v1.batchCreated
- Multiple deleted reactions: google.workspace.chat.reaction.v1.batchDeleted
Supported event types about the space :
- Updated space: google.workspace.chat.space.v1.updated
- Multiple space updates: google.workspace.chat.space.v1.batchUpdated
Union field payload 
.
 payload 
can be only one of the following:
space_updated_event_data 
Event payload for a space update.
Event type: google.workspace.chat.space.v1.updated 
space_batch_updated_event_data 
Event payload for multiple updates to a space.
Event type: google.workspace.chat.space.v1.batchUpdated 
membership_created_event_data 
Event payload for a new membership.
Event type: google.workspace.chat.membership.v1.created 
membership_updated_event_data 
Event payload for an updated membership.
Event type: google.workspace.chat.membership.v1.updated 
membership_deleted_event_data 
Event payload for a deleted membership.
Event type: google.workspace.chat.membership.v1.deleted 
membership_batch_created_event_data 
  MembershipBatchCreatedEventData 
 
Event payload for multiple new memberships.
Event type: google.workspace.chat.membership.v1.batchCreated 
membership_batch_updated_event_data 
  MembershipBatchUpdatedEventData 
 
Event payload for multiple updated memberships.
Event type: google.workspace.chat.membership.v1.batchUpdated 
membership_batch_deleted_event_data 
  MembershipBatchDeletedEventData 
 
Event payload for multiple deleted memberships.
Event type: google.workspace.chat.membership.v1.batchDeleted 
reaction_created_event_data 
Event payload for a new reaction.
Event type: google.workspace.chat.reaction.v1.created 
reaction_deleted_event_data 
Event payload for a deleted reaction.
Event type: google.workspace.chat.reaction.v1.deleted 
reaction_batch_created_event_data 
Event payload for multiple new reactions.
Event type: google.workspace.chat.reaction.v1.batchCreated 
reaction_batch_deleted_event_data 
Event payload for multiple deleted reactions.
Event type: google.workspace.chat.reaction.v1.batchDeleted 
SpaceNotificationSetting
The notification setting of a user in a space.
| Fields | |
|---|---|
| name |   Identifier. The resource name of the space notification setting. Format:  | 
| notification_setting | The notification setting. | 
| mute_setting | The space notification mute setting. | 
MuteSetting
The space notification mute setting types.
| Enums | |
|---|---|
| MUTE_SETTING_UNSPECIFIED | Reserved. | 
| UNMUTED | The user will receive notifications for the space based on the notification setting. | 
| MUTED | The user will not receive any notifications for the space, regardless of the notification setting. | 
NotificationSetting
The notification setting types. Other types might be supported in the future.
| Enums | |
|---|---|
| NOTIFICATION_SETTING_UNSPECIFIED | Reserved. | 
| ALL | Notifications are triggered by @mentions, followed threads, first message of new threads. All new threads are automatically followed, unless manually unfollowed by the user. | 
| MAIN_CONVERSATIONS | The notification is triggered by @mentions, followed threads, first message of new threads. Not available for 1:1 direct messages. | 
| FOR_YOU | The notification is triggered by @mentions, followed threads. Not available for 1:1 direct messages. | 
| OFF | Notification is off. | 
SpaceReadState
A user's read state within a space, used to identify read and unread messages.
| Fields | |
|---|---|
| name |   Resource name of the space read state. Format:  | 
| last_read_time | Optional. The time when the user's space read state was updated. Usually this corresponds with either the timestamp of the last read message, or a timestamp specified by the user to mark the last read position in a space. | 
SpaceUpdatedEventData
Event payload for an updated space.
Event type: google.workspace.chat.space.v1.updated 
| Fields | |
|---|---|
| space | The updated space. | 
SpaceView
A view that specifies which fields should be populated on the  Space 
 
resource. Additional values may be added in the future.  
| Enums | |
|---|---|
| SPACE_VIEW_UNSPECIFIED | The default / unset value. | 
| SPACE_VIEW_RESOURCE_NAME_ONLY | Populates only the Space resource name. | 
| SPACE_VIEW_EXPANDED | Populates Space resource fields. Note: the permissionSettingsfield will not be populated. Requests that specify SPACE_VIEW_EXPANDED must include scopes that allow reading space data, e.g., https://www.googleapis.com/auth/chat.spaces 
or https://www.googleapis.com/auth/chat.spaces.readonly 
. | 
Thread
A thread in a Google Chat space. For example usage, see Start or reply to a message thread .
If you specify a thread when creating a message, you can set the  messageReplyOption 
 
field to determine what happens if no matching thread is found.
| Fields | |
|---|---|
| name |   Identifier. Resource name of the thread. Example:  | 
| thread_key |   Optional. Input for creating or updating a thread. Otherwise, output only. ID for the thread. Supports up to 4000 characters. This ID is unique to the Chat app that sets it. For example, if multiple Chat apps create a message using the same thread key, the messages are posted in different threads. To reply in a thread created by a person or another Chat app, specify the thread  | 
ThreadReadState
A user's read state within a thread, used to identify read and unread messages.
| Fields | |
|---|---|
| name |   Resource name of the thread read state. Format:  | 
| last_read_time | The time when the user's thread read state was updated. Usually this corresponds with the timestamp of the last read message in a thread. | 
UpdateMembershipRequest
Request message for updating a membership.
membership 
Required. The membership to update. Only fields specified by update_mask 
are updated.
update_mask 
Required. The field paths to update. Separate multiple values with commas or use * 
to update all field paths.
Currently supported field paths:
-  role
use_admin_access 
 bool 
Optional. When true 
, the method runs using the user's Google Workspace administrator privileges.
The calling user must be a Google Workspace administrator with the manage chat and spaces conversations privilege .
Requires the chat.admin.memberships 
 OAuth 2.0 scope 
.
UpdateMessageRequest
Request to update a message.
update_mask 
Required. The field paths to update. Separate multiple values with commas or use * 
to update all field paths.
Currently supported field paths:
-  text
-  attachment
-  cards(Requires app authentication .)
-  cards_v2(Requires app authentication .)
-  accessory_widgets(Requires app authentication .)
-  quoted_message_metadata(Only allows removal of the quoted message.)
allow_missing 
 bool 
Optional. If true 
and the message isn't found, a new message is created and updateMask 
is ignored. The specified message ID must be client-assigned 
or the request fails.
UpdateSpaceNotificationSettingRequest
Request to update the space notification settings. Only supports updating notification setting for the calling user.
space_notification_setting 
Required. The resource name for the space notification settings must be populated in the form of users/{user}/spaces/{space}/spaceNotificationSetting 
. Only fields specified by update_mask 
are updated.
update_mask 
UpdateSpaceReadStateRequest
Request message for UpdateSpaceReadState API.
space_read_state 
Required. The space read state and fields to update.
Only supports updating read state for the calling user.
To refer to the calling user, set one of the following:
-  The mealias. For example,users/me/spaces/{space}/spaceReadState.
-  Their Workspace email address. For example, users/user@example.com/spaces/{space}/spaceReadState.
-  Their user id. For example, users/123456789/spaces/{space}/spaceReadState.
Format: users/{user}/spaces/{space}/spaceReadState
update_mask 
Required. The field paths to update. Currently supported field paths:
-  last_read_time
When the last_read_time 
is before the latest message create time, the space appears as unread in the UI.
To mark the space as read, set last_read_time 
to any value later (larger) than the latest message create time. The last_read_time 
is coerced to match the latest message create time. Note that the space read state only affects the read state of messages that are visible in the space's top-level conversation. Replies in threads are unaffected by this timestamp, and instead rely on the thread read state.
UpdateSpaceRequest
A request to update a single space.
space 
Required. Space with fields to be updated. Space.name 
must be populated in the form of spaces/{space} 
. Only fields specified by update_mask 
are updated.
update_mask 
Required. The updated field paths, comma separated if there are multiple.
You can update the following fields for a space:
 space_details 
: Updates the space's description. Supports up to 150 characters.
 display_name 
: Only supports updating the display name for spaces where spaceType 
field is SPACE 
.  If you receive the error message ALREADY_EXISTS 
, try a different  value. An existing space within the Google Workspace organization might already use this display name.
 space_type 
: Only supports changing a GROUP_CHAT 
space type to SPACE 
. Include display_name 
together with space_type 
in the update mask and ensure that the specified space has a non-empty display name and the SPACE 
space type. Including the space_type 
mask and the SPACE 
type in the specified space when updating the display name is optional if the existing space already has the SPACE 
type. Trying to update the space type in other ways results in an invalid argument error. space_type 
is not supported with useAdminAccess 
.
 space_history_state 
: Updates space history settings 
by turning history on or off for the space. Only supported if history settings are enabled for the Google Workspace organization. To update the space history state, you must omit all other field masks in your request. space_history_state 
is not supported with useAdminAccess 
.
 access_settings.audience 
: Updates the access setting 
of who can discover the space, join the space, and preview the messages in named space where spaceType 
field is SPACE 
. If the existing space has a target audience, you can remove the audience and restrict space access by omitting a value for this field mask. To update access settings for a space, the authenticating user must be a space manager and omit all other field masks in your request. You can't update this field if the space is in import mode 
. To learn more, see Make a space discoverable to specific users 
. access_settings.audience 
is not supported with useAdminAccess 
.
 permission_settings 
: Supports changing the permission settings 
of a space. When updating permission settings, you can only specify permissionSettings 
field masks; you cannot update other field masks at the same time. permissionSettings 
is not supported with useAdminAccess 
. The supported field masks include:
-  permission_settings.manageMembersAndGroups
-  permission_settings.modifySpaceDetails
-  permission_settings.toggleHistory
-  permission_settings.useAtMentionAll
-  permission_settings.manageApps
-  permission_settings.manageWebhooks
-  permission_settings.replyMessages
use_admin_access 
 bool 
Optional. When true 
, the method runs using the user's Google Workspace administrator privileges.
The calling user must be a Google Workspace administrator with the manage chat and spaces conversations privilege .
Requires the chat.admin.spaces 
 OAuth 2.0 scope 
.
Some FieldMask 
values are not supported using admin access. For details, see the description of update_mask 
.
User
A user in Google Chat. When returned as an output from a request, if your Chat app authenticates as a user 
, the output for a User 
resource only populates the user's name 
and type 
.
name 
 string 
Resource name for a Google Chat  user 
 
.
Format: users/{user} 
. users/app 
can be used as an alias for the calling app  bot 
 
user.
For  human users 
 
, {user} 
is the same user identifier as:
-  the idfor the Person in the People API. For example,users/123456789in Chat API represents the same person as the123456789Person profile ID in People API.
-  the idfor a user in the Admin SDK Directory API.
-  the user's email address can be used as an alias for {user}in API requests. For example, if the People API Person profile ID foruser@example.comis123456789, you can useusers/user@example.comas an alias to referenceusers/123456789. Only the canonical resource name (for exampleusers/123456789) will be returned from the API.
display_name 
 string 
Output only. The user's display name.
domain_id 
 string 
Unique identifier of the user's Google Workspace domain.
type 
User type.
is_anonymous 
 bool 
Output only. When true 
, the user is deleted or their profile is not visible.
Type
| Enums | |
|---|---|
| TYPE_UNSPECIFIED | Default value for the enum. DO NOT USE. | 
| HUMAN | Human user. | 
| BOT | Chat app user. | 
UserMentionMetadata
Annotation metadata for user mentions (@).
| Fields | |
|---|---|
| user | The user mentioned. | 
| type | The type of user mention. | 
Type
| Enums | |
|---|---|
| TYPE_UNSPECIFIED | Default value for the enum. Don't use. | 
| ADD | Add user to space. | 
| MENTION | Mention user in space. | 
WidgetMarkup
A widget is a UI element that presents text and images.
data 
. A WidgetMarkup 
can only have one of the following items. You can use multiple WidgetMarkup 
fields to display more items. data 
can be only one of the following:text_paragraph 
Display a text paragraph in this widget.
image 
Display an image in this widget.
key_value 
Display a key value item in this widget.
Button
A button. Can be a text button or an image button.
Union field type 
.
 type 
can be only one of the following:
FormAction
A form action describes the behavior when the form is submitted. For example, you can invoke Apps Script to handle the form.
| Fields | |
|---|---|
| action_method_name |   The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the Chat app as part of the card click event. You can use the same method name for several elements that trigger a common behavior. | 
| parameters[] | List of action parameters. | 
ActionParameter
List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze one day, snooze next week. You might use action method = snooze() 
, passing the snooze type and snooze time in the list of string parameters.
| Fields | |
|---|---|
| key |   The name of the parameter for the action script. | 
| value |   The value of the parameter. | 
Icon
The set of supported icons.
| Enums | |
|---|---|
| ICON_UNSPECIFIED | |
| AIRPLANE | |
| BOOKMARK | |
| BUS | |
| CAR | |
| CLOCK | |
| CONFIRMATION_NUMBER_ICON | |
| DOLLAR | |
| DESCRIPTION | |
| EMAIL | |
| EVENT_PERFORMER | |
| EVENT_SEAT | |
| FLIGHT_ARRIVAL | |
| FLIGHT_DEPARTURE | |
| HOTEL | |
| HOTEL_ROOM_TYPE | |
| INVITE | |
| MAP_PIN | |
| MEMBERSHIP | |
| MULTIPLE_PEOPLE | |
| OFFER | |
| PERSON | |
| PHONE | |
| RESTAURANT_ICON | |
| SHOPPING_CART | |
| STAR | |
| STORE | |
| TICKET | |
| TRAIN | |
| VIDEO_CAMERA | |
| VIDEO_PLAY | |
Image
An image that's specified by a URL and can have an onclick 
action.
| Fields | |
|---|---|
| image_url |   The URL of the image. | 
| on_click | The  | 
| aspect_ratio |   The aspect ratio of this image (width and height). This field lets you reserve the right height for the image while waiting for it to load. It's not meant to override the built-in aspect ratio of the image. If unset, the server fills it by prefetching the image. | 
ImageButton
An image button with an onclick 
action.
on_click 
The onclick 
action.
name 
 string 
The name of this image_button 
that's used for accessibility. Default value is provided if this name isn't specified.
icons 
. The icon can be specified by an Icon 
 enum 
or a URL. icons 
can be only one of the following:icon 
The icon specified by an enum 
that indices to an icon provided by Chat API.
icon_url 
 string 
The icon specified by a URL.
KeyValue
A UI element contains a key (label) and a value (content). This element can also contain some actions such as onclick 
button.
top_label 
 string 
The text of the top label. Formatted text supported. For more information about formatting text, see Formatting text in Google Chat apps and Formatting text in Google Workspace Add-ons .
content 
 string 
The text of the content. Formatted text supported and always required. For more information about formatting text, see Formatting text in Google Chat apps and Formatting text in Google Workspace Add-ons .
content_multiline 
 bool 
If the content should be multiline.
bottom_label 
 string 
The text of the bottom label. Formatted text supported. For more information about formatting text, see Formatting text in Google Chat apps and Formatting text in Google Workspace Add-ons .
on_click 
The onclick 
action. Only the top label, bottom label, and content region are clickable.
icons 
. At least one of icons, top_label 
and bottom_label 
must be defined. icons 
can be only one of the following:icon 
An enum value that's replaced by the Chat API with the corresponding icon image.
icon_url 
 string 
The icon specified by a URL.
control 
. A control widget. You can set either button 
or switch_widget 
, but not both. control 
can be only one of the following:OnClick
An onclick 
action (for example, open a link).
Union field data 
.
 data 
can be only one of the following:
action 
A form action is triggered by this onclick 
action if specified.
open_link 
This onclick 
action triggers an open link action if specified.
OpenLink
A link that opens a new window.
| Fields | |
|---|---|
| url |   The URL to open. | 
TextButton
A button with text and onclick 
action.
| Fields | |
|---|---|
| text |   The text of the button. | 
| on_click | The  | 
TextParagraph
A paragraph of text. Formatted text supported. For more information about formatting text, see Formatting text in Google Chat apps and Formatting text in Google Workspace Add-ons .
| Fields | |
|---|---|
| text |   | 

