File: //snap/google-cloud-cli/396/lib/surface/pam/grants/create.yaml
- release_tracks: [ALPHA, BETA, GA]
help_text:
brief: Create a new Privileged Access Manager (PAM) grant.
description: Create a new Privileged Access Manager (PAM) grant under an entitlement.
examples: |
The following command creates a new grant against the entitlement with the full name
``ENTITLEMENT_NAME'', a requested duration of 1 hour 30 minutes, a justification of
`some justification` and two additional email recipients `abc@example.com` and
`xyz@example.com`:
$ {command} --entitlement=ENTITLEMENT_NAME --requested-duration=5400s --justification="some justification" --additional-email-recipients=abc@example.com,xyz@example.com
request:
ALPHA:
api_version: v1alpha
modify_request_hooks:
- googlecloudsdk.command_lib.pam.util:SetRequestedPrivilegedAccessInCreateGrantRequest
BETA:
api_version: v1beta
modify_request_hooks:
- googlecloudsdk.command_lib.pam.util:SetRequestedPrivilegedAccessInCreateGrantRequest
GA:
api_version: v1
collection:
- privilegedaccessmanager.projects.locations.entitlements.grants
- privilegedaccessmanager.folders.locations.entitlements.grants
- privilegedaccessmanager.organizations.locations.entitlements.grants
arguments:
params:
- arg_name: entitlement
resource_spec: !REF googlecloudsdk.command_lib.pam.resources:entitlement
is_parent_resource: true
is_primary_resource: true
is_positional: false
required: true
help_text: |
Entitlement the grant is to be created against.
- arg_name: requested-duration
api_field: grant.requestedDuration
required: true
help_text: |
Duration of the grant being created.
- arg_name: justification
api_field: grant.justification.unstructuredJustification
help_text: |
Justification for the grant.
- arg_name: additional-email-recipients
api_field: grant.additionalEmailRecipients
repeated: true
help_text: |
Additional email addresses that are notified for all actions performed on the grant.
# Group for grant scope selection.
- group:
release_tracks: [ALPHA, BETA]
mutex: true
help_text: |
Specify the grant's scope using either high-level resource or a fine-grained scope
configuration.
params:
- arg_name: requested-resources
type: 'googlecloudsdk.calliope.arg_parsers:ArgList:'
help_text: |
The Google Cloud resources to be granted access to.
Format: `{resource-type}/{resource_id}`.
Example: `projects/{project_id}` or `folders/{folder_id}` or
`organizations/{organization_id}`.
This command currently accepts only one resource.
- arg_name: requested-access-from-file
api_field: grant.requestedPrivilegedAccess
type: "googlecloudsdk.calliope.arg_parsers:FileContents:"
processor: googlecloudsdk.command_lib.pam.util:LoadGrantScopeFromYaml
help_text: |
Path to a YAML file defining the fine-grained scope for the grant.
output:
format: yaml