Creating and searching for Google Groups

This page explains how to perform some fundamental operations with the Cloud Identity Groups API.

Before you begin

Perform the following tasks before proceeding with the information on this page:

Creating a Google Group

REST

To create a Google Group, call groups.create() with an instance of the new group. 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. You should use this value in most cases.
  • 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 Pre-built administrator roles.

Python

The following example shows a helper function to create a Google Group using the Python client library:

def create_google_group(service, customer_id, group_id, group_display_name, group_description):
  group_key = {"id": group_id}
  group = {
    "parent": "customers/" + customer_id,
    "description": group_description,
    "displayName": group_display_name,
    "groupKey": group_key,
    # Set the label to specify creation of a Google Group.
    "labels": {
      "cloudidentity.googleapis.com/groups.discussion_forum": ""
    }
  }

  try:
    request = service.groups().create(body=group)
    request.uri += "&initialGroupConfig=WITH_INITIAL_OWNER"
    response = request.execute()
    print(response)
  except Exception as e:
    print(e)

Searching for a Google Group

REST

To search for a Google Group, call groups.search() with a query string. To search for all groups, you only need to provide the label cloudidentity.googleapis.com/groups.discussion_forum.

Python

The following example shows a helper function used to search for a Google Group using the Python client library:

from urllib.parse import urlencode

def search_google_groups(service, customer_id):
  search_query = urlencode({
          "query": "parent=='customerId/{}' && 'cloudidentity.googleapis.com/groups.discussion_forum' in labels".format(customer_id)
  })
  search_group_request = service.groups().search()
  param = "&" + search_query
  search_group_request.uri += param
  response = search_group_request.execute()

  return response

What's next