GoSpace Manager

Version v0.12.0

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

batch

Batch updates permissions for a file or shared drive using a CSV file as input.

Synopsis

Implements the API documented at https://developers.google.com/workspace/drive/api/reference/rest/v3/permissions/update

gsm permissions update batch [flags]

Options

      --allowFileDiscovery int       Whether the permission allows the file to be discovered through search.
                                     This is only applicable for permissions of type domain or anyone.
      --allowFileDiscovery_ALL       Same as allowFileDiscovery but value is applied to all lines in the CSV file
      --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 ';'
      --domain int                   The domain to which this permission refers.
      --domain_ALL string            Same as domain but value is applied to all lines in the CSV file
      --emailAddress int             The email address of the user or group to which this permission refers.
      --emailMessage int             A plain text custom message to include in the notification email
      --emailMessage_ALL string      Same as emailMessage but value is applied to all lines in the CSV file
      --enforceExpansiveAccess int   Whether the request should enforce expansive access rules. See also https://developers.google.com/workspace/drive/api/guides/limited-expansive-access
      --enforceExpansiveAccess_ALL   Same as enforceExpansiveAccess but value is applied to all lines in the CSV file
      --expirationTime int           The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions:
                                     They can only be set on user and group permissions
                                     The time must be in the future
                                     The time cannot be more than a year in the future
      --expirationTime_ALL string    Same as expirationTime 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
      --fileId int                   Id of the file or drive
      --fileId_ALL string            Same as fileId but value is applied to all lines in the CSV file
  -h, --help                         help for batch
      --moveToNewOwnersRoot int      This parameter only takes effect if the item is not in a shared drive and the request is attempting to transfer the ownership of the item.
                                     When set to true, the item is moved to the new owner's My Drive root folder and all prior parents removed.
                                     however, the file will be added to the new owner's My Drive root folder, unless it is already in the new owner's My Drive.
      --moveToNewOwnersRoot_ALL      Same as moveToNewOwnersRoot but value is applied to all lines in the CSV file
      --path string                  Path of the import file (CSV)
      --permissionId int             The ID of the permission.
      --removeExpiration int         Whether to remove the expiration date.
      --removeExpiration_ALL         Same as removeExpiration but value is applied to all lines in the CSV file
      --role int                     The role granted by this permission.
                                     While new values may be supported in the future, the following are currently allowed:
                                     [owner|organizer|fileOrganizer|writer|commenter|reader]
      --role_ALL string              Same as role but value is applied to all lines in the CSV file
      --skipHeader                   Whether to skip the first row (header)
      --transferOwnership int        Whether to transfer ownership to the specified user and downgrade the current owner to a writer.
                                     This parameter is required as an acknowledgement of the side effect.
      --transferOwnership_ALL        Same as transferOwnership but value is applied to all lines in the CSV file
      --type int                     The type of the grantee.
                                     [user|group|domain|anyone].
                                     When creating a permission, if type is user or group, you must provide an emailAddress for the user or group.
                                     When type is domain, you must provide a domain.
                                     There isn't extra information required for a anyone type.
      --type_ALL string              Same as type but value is applied to all lines in the CSV file
      --useDomainAdminAccess int     Issue the request as a domain administrator; if set to true, then the requester will be granted access if the file ID parameter refers to a shared drive and the requester is an administrator of the domain to which the shared drive belongs.
      --useDomainAdminAccess_ALL     Same as useDomainAdminAccess but value is applied to all lines in the CSV file

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)
      --errorOutput string     Sets the output where errors should be directed to. Can be 'stderr', 'log' or 'both' (default) (default "both")
      --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