Advanced Cloud Identity Groups Service

The advanced Cloud Identity Groups (CIG) service lets you use the CIG API in Apps Script.

Reference

For detailed information on this service, see the reference documentation for the CIG API. Like all advanced services in Apps Script, the advanced CIG service uses the same objects, methods, and parameters as the public API. For more information, see How method signatures are determined .

Sample Code

The following helper functions use version v1 of the API.

Create a Group

To create a Google Group, call groups.create with an instance of the new group resource. The group instance must include a groupKey , parent , and label set to cloudidentity.googleapis.com/groups.discussion_forum . You also need to set the initialGroupConfig parameter, which defines the initial owner of the group. You can use the following values for this parameter:

WITH_INITIAL_OWNER : Makes the person sending the request the owner of the group.

EMPTY : Creates a group with no initial owners. You can only use this value if you're a Google Workspace Super Admin or Groups Admin. For more information about Google Workspace roles, see prebuilt administrator roles.

The following example shows how to create a group such that the user is the owner of the group:

  const 
  
 groups 
  
 = 
  
 CloudIdentityGroups 
 . 
 Groups 
 ; 
 function 
  
 createGroup 
 ( 
 groupId 
 , 
  
 parentId 
 , 
  
 displayName 
 ) 
  
 { 
  
 const 
  
 groupKey 
  
 = 
  
 { 
  
 id 
 : 
  
 groupId 
  
 }; 
  
 const 
  
 group 
  
 = 
  
 { 
  
 parent 
 : 
  
 "customerId/" 
  
 + 
  
 parentId 
 , 
  
 displayName 
 : 
  
 displayName 
 , 
  
 groupKey 
 : 
  
 groupKey 
 , 
  
 // Set the label to specify creation of a Google Group. 
  
 labels 
 : 
  
 { 
  
 "cloudidentity.googleapis.com/groups.discussion_forum" 
 : 
  
 "" 
  
 }, 
  
 }; 
  
 const 
  
 optionalArgs 
  
 = 
  
 { 
  
 initialGroupConfig 
 : 
  
 "WITH_INITIAL_OWNER" 
  
 }; 
  
 try 
  
 { 
  
 const 
  
 response 
  
 = 
  
 groups 
 . 
 create 
 ( 
 group 
 , 
  
 optionalArgs 
 ); 
  
 console 
 . 
 log 
 ( 
 response 
 ); 
  
 } 
  
 catch 
  
 ( 
 error 
 ) 
  
 { 
  
 console 
 . 
 error 
 ( 
 error 
 ); 
  
 } 
 } 
 

Search for a Group

To search for a Google Group, call groups.search with a query string. To search for all groups, provide the label cloudidentity.googleapis.com/groups.discussion_forum .

  const 
  
 groups 
  
 = 
  
 CloudIdentityGroups 
 . 
 Groups 
 ; 
 function 
  
 searchGroup 
 ( 
 customer_id 
 ) 
  
 { 
  
 const 
  
 search_query 
  
 = 
  
 `parent=='customerId/ 
 ${ 
 customer_id 
 } 
 ' && 'cloudidentity.googleapis.com/groups.discussion_forum' in labels` 
 ; 
  
 const 
  
 search_group_request 
  
 = 
  
 groups 
 . 
 search 
 ({ 
  
 query 
 : 
  
 search_query 
  
 }); 
  
 console 
 . 
 log 
 ( 
 JSON 
 . 
 stringify 
 ( 
 search_group_request 
 )); 
 } 
 

Add a Membership to a Group

After a group exists, you can create memberships for it. This method requires a membership resource and the parent's resource name string. The former value can be obtained by by looking up the group through the lookup method.

The following helper method shows an example of adding a membership to a group. expiryDetail is an optional field that can be added to set an expiration for the membership. The value of preferredMemberKey is the member's email address.

  const 
  
 groups 
  
 = 
  
 CloudIdentityGroups 
 . 
 Groups 
 ; 
 function 
  
 createMembership 
 ( 
 namespace 
 , 
  
 groupId 
 , 
  
 memberKey 
 ) 
  
 { 
  
 try 
  
 { 
  
 // Given a group ID and namespace, retrieve the ID for parent group 
  
 const 
  
 groupLookupResponse 
  
 = 
  
 groups 
 . 
 lookup 
 ({ 
  
 'groupKey.id' 
 : 
  
 groupId 
 , 
  
 'groupKey.namespace' 
 : 
  
 namespace 
  
 }); 
  
 const 
  
 groupName 
  
 = 
  
 groupLookupResponse 
 . 
 name 
 ; 
  
 // Create a membership object with a memberKey and a single role of type MEMBER 
  
 const 
  
 membership 
  
 = 
  
 { 
  
 preferredMemberKey 
 : 
  
 { 
  
 id 
 : 
  
 memberKey 
  
 }, 
  
 roles 
 : 
  
 [ 
  
 { 
  
 name 
 : 
  
 "MEMBER" 
 , 
  
 expiryDetail 
 : 
  
 { 
  
 expireTime 
 : 
  
 "2025-10-02T15:01:23Z" 
 , 
  
 }, 
  
 }, 
  
 ], 
  
 }; 
  
 // Create a membership using the ID for the parent group and a membership object 
  
 const 
  
 response 
  
 = 
  
 groups 
 . 
 Memberships 
 . 
 create 
 ( 
 membership 
 , 
  
 groupName 
 ); 
  
 console 
 . 
 log 
 ( 
 JSON 
 . 
 stringify 
 ( 
 response 
 )); 
  
 } 
  
 catch 
  
 ( 
 e 
 ) 
  
 { 
  
 console 
 . 
 error 
 ( 
 e 
 ); 
  
 } 
 } 
 

Get Memberships from Member

Use the groups.memberships.searchDirectGroups method to search for immediate parents of a member.

The following helper method shows an example of iterating through a given member's direct memberships.

  const 
  
 groups 
  
 = 
  
 CloudIdentityGroups 
 . 
 Groups 
 ; 
  
 function 
  
 searchMemberMemberships 
 ( 
 memberId 
 , 
  
 pageSize 
 ) 
  
 { 
  
 try 
  
 { 
  
 let 
  
 memberships 
  
 = 
  
 []; 
  
 let 
  
 nextPageToken 
  
 = 
  
 '' 
 ; 
  
 const 
  
 withinParent 
  
 = 
  
 'groups/-' 
 ; 
  
 // This parameter sets the scope as "all groups" 
  
 do 
  
 { 
  
 // Get page of memberships 
  
 const 
  
 queryParams 
  
 = 
  
 { 
  
 query 
 : 
  
 `member_key_id == \' 
 ${ 
 memberId 
 } 
 \'` 
 , 
  
 page_size 
 : 
  
 pageSize 
 , 
  
 page_token 
 : 
  
 nextPageToken 
 , 
  
 }; 
  
 const 
  
 response 
  
 = 
  
 groups 
 . 
 Memberships 
 . 
 searchDirectGroups 
 ( 
 withinParent 
 , 
  
 queryParams 
 ); 
  
 memberships 
  
 = 
  
 memberships 
 . 
 concat 
 ( 
 response 
 . 
 memberships 
 ); 
  
 // Set up next page 
  
 nextPageToken 
  
 = 
  
 response 
 . 
 nextPageToken 
 ; 
  
 } 
  
 while 
  
 ( 
 nextPageToken 
 ); 
  
 return 
  
 memberships 
 ; 
  
 } 
  
 catch 
 ( 
 e 
 ) 
  
 { 
  
 console 
 . 
 error 
 ( 
 e 
 ); 
  
 } 
 } 
 

Get Memberships from a Group

Use the groups.memberships.list method to list the members of a group.

groupId : The numeric ID of the group that you want to list members for. To find the ID of a single group, use the groups.lookup method. To see all group IDs under a customer or namespace, use the groups.list method.

  const 
  
 groups 
  
 = 
  
 CloudIdentityGroups 
 . 
 Groups 
 ; 
 function 
  
 listGroupMemberships 
 ( 
 groupId 
 , 
  
 pageSize 
 ) 
  
 { 
  
 try 
  
 { 
  
 let 
  
 membershipList 
  
 = 
  
 []; 
  
 let 
  
 nextPageToken 
  
 = 
  
 '' 
 ; 
  
 // Get group name 
  
 const 
  
 groupName 
  
 = 
  
 groups 
 . 
 lookup 
 ({ 
 'groupKey.id' 
 : 
  
 groupId 
 }). 
 name 
 ; 
  
 do 
  
 { 
  
 // Get page of memberships 
  
 const 
  
 queryParams 
  
 = 
  
 { 
  
 pageSize 
 : 
  
 pageSize 
 , 
  
 pageToken 
 : 
  
 nextPageToken 
  
 } 
  
 const 
  
 response 
  
 = 
  
 groups 
 . 
 Memberships 
 . 
 list 
 ( 
 groupName 
 , 
  
 queryParams 
 ); 
  
 membershipList 
  
 = 
  
 membershipList 
 . 
 concat 
 ( 
 response 
 . 
 memberships 
 ); 
  
 // Set up next page 
  
 nextPageToken 
  
 = 
  
 response 
 . 
 nextPageToken 
 ; 
  
 } 
  
 while 
 ( 
 nextPageToken 
 ); 
  
 return 
  
 membershipList 
 ; 
  
 } 
  
 catch 
  
 ( 
 error 
 ) 
  
 { 
  
 console 
 . 
 error 
 ( 
 error 
 ); 
  
 } 
 } 
 
Design a Mobile Site
View Site in Mobile | Classic
Share by: