GoSpace Manager

Version v0.11.0

Manage Google Workspace resources using a developer-friendly CLI written in Go

batch

Batch creates groups using a CSV file as input.

Synopsis

Implements the API documented at https://cloud.google.com/identity/docs/reference/rest/v1/groups/create

gsm groupsCi create batch [flags]

Options

      --batchThreads int                Specify the number of threads that should be used for batch commands (overrides value in config file. Max 16)
      --delimiter string                Delimiter to use for CSV columns. Must be exactly one character. Default is ';'
      --description int                 An extended description to help users determine the purpose of a Group.
                                        Must not be longer than 4,096 characters.
      --description_ALL string          Same as description but value is applied to all lines in the CSV file
      --displayName int                 The display name of the Group.
      --displayName_ALL string          Same as displayName but value is applied to all lines in the CSV file
      --fields int                      Fields allows partial responses to be retrieved.
                                        See https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more information.
      --fields_ALL string               Same as fields but value is applied to all lines in the CSV file
  -h, --help                            help for batch
      --id int                          The ID of the entity.
                                        
                                        For Google-managed entities, the id must be the email address.
                                        
                                        For external-identity-mapped entities, the id must be a string conforming to the Identity Source's requirements.
                                        
                                        Must be unique within a namespace.
      --initialGroupConfig int          Required. The initial configuration option for the Group.
                                        WITH_INITIAL_OWNER  - The end user making the request will be added as the initial owner of the Group.
                                        EMPTY               - An empty group is created without any initial owners.
                                                              This can only be used by admins of the domain.
      --initialGroupConfig_ALL string   Same as initialGroupConfig but value is applied to all lines in the CSV file
      --labels int                       One or more label entries that apply to the Group. Currently supported labels contain a key with an empty value.
                                        
                                        Google Groups are the default type of group and have a label with a key of cloudidentity.googleapis.com/groups.discussion_forum and an empty value.
                                        
                                        Existing Google Groups can have an additional label with a key of cloudidentity.googleapis.com/groups.security and an empty value added to them. This is an immutable change and the security label cannot be removed once added.
                                        
                                        Dynamic groups have a label with a key of cloudidentity.googleapis.com/groups.dynamic.
                                        
                                        Identity-mapped groups for Cloud Search have a label with a key of system/groups/external and an empty value.
                                        
                                        Examples: {"cloudidentity.googleapis.com/groups.discussion_forum": ""} or {"system/groups/external": ""}.
                                        
                                        An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
      --labels_ALL strings              Same as labels but value is applied to all lines in the CSV file
      --namespace int                   The namespace in which the entity exists.
                                        
                                        If not specified, the EntityKey represents a Google-managed entity such as a Google user or a Google Group.
                                        
                                        If specified, the EntityKey represents an external-identity-mapped group.
                                        The namespace must correspond to an identity source created in Admin Console and must be in the form of identitysources/{identity_source_id}.
      --namespace_ALL string            Same as namespace but value is applied to all lines in the CSV file
      --parent int                      Must be of the form identitysources/{identity_source_id} for external- identity-mapped groups or customers/{customer_id} for Google Groups.
      --parent_ALL string               Same as parent but value is applied to all lines in the CSV file
      --path string                     Path of the import file (CSV)
      --queries int                     Memberships will be the union of all queries.
                                        Only one entry with USER resource is currently supported.
                                        Can be used multiple times in the form of "--queries query=...;resourceType=..."
                                        You may use the following properties:
                                        resourceType  - The following values are valid:
                                        				  - USER - For queries on User
                                        query         - Query that determines the memberships of the dynamic group.
                                        				Examples:
                                        			      - All users with at least one organizations.department of engineering:
                                                            user.organizations.exists(org, org.department=='engineering')
                                                          - All users with at least one location that has area of foo and building_id of bar:
                                                            user.locations.exists(loc, loc.area=='foo' && loc.building_id=='bar')
      --queries_ALL stringArray         Same as queries but value is applied to all lines in the CSV file
      --skipHeader                      Whether to skip the first row (header)

Options inherited from parent commands

      --compressOutput         By default, GSM outputs "pretty" (indented) objects. By setting this flag, GSM's output will be compressed. This may or may not improve performance in scripts.
      --config string          config file (default is $HOME/.config/gsm/.gsm.yaml)
      --delay int              This delay (plus a random jitter between 0 and 50) will be applied after every command to avoid reaching quota and rate limits. Set to 0 to disable.
      --dwdSubject string      Specify a subject used for DWD impersonation (overrides value in config file)
      --log string             Set the path of the log file. Default is either ~/gsm.log or defined in your config file
      --maxElapsedTime int     This is the maximum total time that will be spent retrying a request in minutes. (default 15)
      --maxRetryInterval int   This is the maximum interval that will be used between retry attempts in seconds. (default 320)
      --redirectPort int       This is the TCP port on which GSM will create web server if you authenticate with a user account for the first time. This is necessary for the OAuth flow. See https://developers.google.com/identity/protocols/oauth2/native-app#redirect-uri_loopback (default 8081)
      --retryOn ints           Specify the HTTP error code(s) that GSM should retry on. Note that GSM will always retry on HTTP 403 errors that indicate a quota / rate limit error
      --streamOutput           Setting this flag will cause GSM to output slice values to stdout one by one, instead of one large object

SEE ALSO