File: //snap/google-cloud-cli/394/lib/surface/identity/groups/create.yaml
# Copyright 2020 Google LLC. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
- release_tracks: [ALPHA, BETA, GA]
help_text:
brief: Create a new group.
description: Create a new group.
GA:
examples: |
To quickly create a new Google Groups discussion group with default settings:
$ {command} eng-discuss@example.com --organization="example.com"
To create a new Google Groups discussion group with a display name and descripton:
$ {command} eng-discuss@example.com \
--organization="example.com" \
--display-name="Engineer Discuss" \
--description="Group for engineering discussions"
To create a new security group:
$ {command} security-group@example.com \
--organization="example.com" \
--group-type="security" \
--display-name="Security Group" \
--description="Description of Security Group"
BETA:
examples: |
To quickly create a new Google Groups discussion group with default settings:
$ {command} eng-discuss@example.com --organization="example.com"
To create a new Google Groups discussion group with a display name and descripton:
$ {command} eng-discuss@example.com \
--organization="example.com" \
--display-name="Engineer Discuss" \
--description="Group for engineering discussions"
To create a new security group:
$ {command} security-group@example.com \
--organization="example.com" \
--group-type="security" \
--display-name="Security Group" \
--description="Description of Security Group"
ALPHA:
examples: |
To quickly create a new Google Groups discussion group with default settings:
$ {command} eng-discuss@example.com --organization="example.com"
To create a new Google Groups discussion group with a display name and descripton:
$ {command} eng-discuss@example.com \
--organization="example.com" \
--display-name="Engineer Discuss" \
--description="Group for engineering discussions"
To create a new security group:
$ {command} security-group@example.com \
--organization="example.com" \
--group-type="security" \
--display-name="Security Group" \
--description="Description of Security Group"
arguments:
params:
- arg_name: email
is_positional: true
required: true
help_text: |
The email address of the group to be created.
- group:
mutex: true
required: true
params:
- arg_name: organization
type: str
help_text: |
The organization the Group being created belongs to. This can be
specified either as an ID ("123456789") or as the associated domain
("example.com").
- arg_name: customer
release_tracks: [GA]
type: str
help_text: |
The customer ID for the customer\'s G Suite account.
Example of customer: "C01k1e9nw"
- arg_name: with-initial-owner
api_field: initialGroupConfig
help_text: |
If specified the user making the request will be added as the initial owner of the group being
created.
choices:
- arg_value: with-initial-owner
enum_value: with-initial-owner
help_text: |
The creator of the group will be the owner of the group. This is
the default for non-dynamic groups.
- arg_value: empty
enum_value: empty
help_text: |
The creator of the group will not be the owner of the group. This is
the default for dynamic groups.
- arg_name: display-name
api_field: group.displayName
help_text: |
The Group's display name.
- arg_name: description
api_field: group.description
help_text: |
An extended description to help users determine the purpose of a Group. For
example, you can include information about who should join the Group, the
types of messages to send to the Group, links to FAQs about the Group, or
related Groups. Maximum length is 4,096 characters.
- arg_name: dynamic-user-query
release_tracks: [ALPHA, BETA, GA]
type: str
help_text: |
Query that determines the memberships of the dynamic group.
Example of a query:
--dynamic-user-query="user.organizations.exists(org,org.title=='SWE')"
- group:
mutex: true
params:
- arg_name: labels
type: str
help_text: |
Labels for group resource.
Example of labels "--labels cloudidentity.googleapis.com/groups.discussion_forum"
- arg_name: group-type
help_text: |
The type of group to create. Setting group-type will add the
appropriate labels for the type of group being created.
choices:
- arg_value: discussion
enum_value: discussion
help_text: Creates a Google Groups discussion group.
- arg_value: dynamic
enum_value: dynamic
help_text: Creates a dynamic group.
- arg_value: security
enum_value: security
help_text: Creates a security group.
default: discussion
- arg_name: posix-group
release_tracks: [ALPHA, BETA]
api_field: group.posixGroups
hidden: true
type:
arg_dict:
flatten: false
spec:
- api_field: gid
arg_name: gid
type: int
- api_field: name
arg_name: name
type: str
help_text: |
Group ID (gid) and name of the POSIX group that you want to associate
with the specified Cloud Identity group. You can specify multiple POSIX
groups with multiple instances of this flag.
For example, use '--posix-group=gid=1005,name=eng' to add a single
group, or '--posix-group=gid=1005,name=eng
--posix-group=gid=1006,name=docs' to add multiple groups.
Caution: POSIX groups are deprecated. As of September 26, 2024, you can
no longer create new POSIX groups. For more information, see [POSIX
groups
deprecation](https://cloud.google.com/identity/docs/deprecations/posix-groups).
request:
collection: cloudidentity.groups
disable_resource_check: true
method: create
ALPHA:
api_version: v1alpha1
modify_request_hooks:
- googlecloudsdk.command_lib.identity.groups.hooks:SetParent
- googlecloudsdk.command_lib.identity.groups.hooks:SetEntityKey
- googlecloudsdk.command_lib.identity.groups.hooks:SetLabelsCreate
- googlecloudsdk.command_lib.identity.groups.hooks:SetDynamicUserQuery
- googlecloudsdk.command_lib.identity.groups.hooks:SetInitialOwner
BETA:
api_version: v1beta1
modify_request_hooks:
- googlecloudsdk.command_lib.identity.groups.hooks:SetParent
- googlecloudsdk.command_lib.identity.groups.hooks:SetEntityKey
- googlecloudsdk.command_lib.identity.groups.hooks:SetLabelsCreate
- googlecloudsdk.command_lib.identity.groups.hooks:SetDynamicUserQuery
- googlecloudsdk.command_lib.identity.groups.hooks:SetInitialOwner
GA:
api_version: v1
modify_request_hooks:
- googlecloudsdk.command_lib.identity.groups.hooks:SetParent
- googlecloudsdk.command_lib.identity.groups.hooks:SetEntityKey
- googlecloudsdk.command_lib.identity.groups.hooks:SetLabelsCreate
- googlecloudsdk.command_lib.identity.groups.hooks:SetDynamicUserQuery
- googlecloudsdk.command_lib.identity.groups.hooks:SetInitialOwner
response:
result_attribute: response