AI-generated Key Takeaways
-  Google Chat Spaces are categorized as SPACE, GROUP_CHAT, or DIRECT_MESSAGE and contain properties like name, display name, threading state, and permission settings. 
-  Spaces can be COLLABORATION_SPACE where all members can post or ANNOUNCEMENT_SPACE where only managers can post. 
-  Permission settings, defined by PermissionSetting objects, control user actions such as managing members, modifying space details, posting messages, and using @all mentions. 
-  The Google Chat Spaces API allows for creating, deleting, updating, and retrieving spaces, as well as managing their members, permissions, and settings. 
-  Available API methods include create,delete,get,list,patch, and more to interact with and manage spaces programmatically.
Resource: 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.
| JSON representation | 
|---|
| { "name" : string , "type" : enum ( | 
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) 
 
 enum (  
 Type 
 
)
Output only. Deprecated: Use spaceType 
instead. The type of a space.
spaceType 
 enum (  
 SpaceType 
 
)
Optional. The type of space. Required when creating a space or updating the space type of a space. Output only for other usage.
singleUserBotDm 
 boolean 
Optional. Whether the space is a DM between a Chat app and a single human.
threaded
 (deprecated) 
 
 boolean 
Output only. Deprecated: Use spaceThreadingState 
instead. Whether messages are threaded in this space.
displayName 
 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.
externalUserAllowed 
 boolean 
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.
spaceThreadingState 
 enum (  
 SpaceThreadingState 
 
)
Output only. The threading state in the Chat space.
spaceDetails 
 object (  
 SpaceDetails 
 
)
Optional. Details about the space including description and rules.
spaceHistoryState 
 enum (  
 HistoryState 
 
)
Optional. The message history state for messages and threads in this space.
importMode 
 boolean 
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 
.
createTime 
 string (  
 Timestamp 
 
format)
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 
.
lastActiveTime 
 string (  
 Timestamp 
 
format)
Output only. Timestamp of the last message in the space.
adminInstalled 
 boolean 
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.
membershipCount 
 object (  
 MembershipCount 
 
)
Output only. The count of joined memberships grouped by member type. Populated when the spaceType 
is SPACE 
, DIRECT_MESSAGE 
or GROUP_CHAT 
.
accessSettings 
 object (  
 AccessSettings 
 
)
Optional. Specifies the access setting 
of the space. Only populated when the spaceType 
is SPACE 
.
spaceUri 
 string 
Output only. The URI for a user to access the space.
importModeExpireTime 
 string (  
 Timestamp 
 
format)
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.
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. | 
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. | 
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. | 
SpaceDetails
Details about the space including description and rules.
| JSON representation | 
|---|
| { "description" : string , "guidelines" : string } | 
| 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. | 
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. | 
MembershipCount
Represents the count of memberships of a space, grouped into categories.
| JSON representation | 
|---|
| { "joinedDirectHumanUserCount" : integer , "joinedGroupCount" : integer } | 
| Fields | |
|---|---|
| joinedDirectHumanUserCount |   Output only. Count of human users that have directly joined the space, not counting users joined by having membership in a joined group. | 
| joinedGroupCount |   Output only. Count of all groups that have directly joined the space. | 
AccessSettings
Represents the access setting of the space.
| JSON representation | 
|---|
|  { 
 "accessState" 
 : 
 enum (  | 
accessState 
 enum (  
 AccessState 
 
)
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 . | 
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. | 
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.
| JSON representation | 
|---|
| { "manageMembersAndGroups" : { object ( | 
| Fields | |
|---|---|
| manageMembersAndGroups |   Optional. Setting for managing members and groups in a space. | 
| modifySpaceDetails |   Optional. Setting for updating space name, avatar, description and guidelines. | 
| toggleHistory |   Optional. Setting for toggling space history on and off. | 
| useAtMentionAll |   Optional. Setting for using @all in a space. | 
| manageApps |   Optional. Setting for managing apps in a space. | 
| manageWebhooks |   Optional. Setting for managing webhooks in a space. | 
PermissionSetting
Represents a space permission setting.
| JSON representation | 
|---|
| { "managersAllowed" : boolean , "membersAllowed" : boolean , "assistantManagersAllowed" : boolean } | 
| Fields | |
|---|---|
| managersAllowed |   Optional. Whether space owners (  | 
| membersAllowed |   Optional. Whether basic space members (  | 
| assistantManagersAllowed |   Optional. Whether space managers  | 
| Methods | |
|---|---|
|   | Completes the import process for the specified space and makes it visible to users. | 
|   | Creates a space. | 
|   | Deletes a named space. | 
|   | Returns the existing direct message with the specified user. | 
|   | Returns all spaces with spaceType == GROUP_CHAT, whose human memberships contain exactly the calling user, and the users specified inFindGroupChatsRequest.memberships. | 
|   | Returns details about a space. | 
|   | Lists spaces the caller is a member of. | 
|   | Updates a space. | 
|   | Returns a list of spaces in a Google Workspace organization based on an administrator's search. | 
|   | Creates a space and adds specified users to it. | 

