HEX
Server: Apache/2.4.59 (Debian)
System: Linux keymana 4.19.0-21-cloud-amd64 #1 SMP Debian 4.19.249-2 (2022-06-30) x86_64
User: lijunjie (1003)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //lib/google-cloud-sdk/lib/surface/pubsub/topics/add_iam_policy_binding.yaml
release_tracks: [ALPHA, BETA, GA]
help_text:
  brief: Add IAM policy binding to a topic.
  description: |
    Add an IAM policy binding to a Cloud Pub/Sub Topic.

  examples: |
    To add an IAM policy binding for the role of 'roles/editor' for the user 'test-user@gmail.com'
    with topic 'my-topic', run:

      $ {command} my-topic --member='user:test-user@gmail.com' --role='roles/editor'

    For a service account test-proj1@example.domain.com, the following command
    will add an IAM policy binding for the role of 'roles/editor' to the given
    service account:

      $ {command} my-topic --member='serviceAccount:test-proj1@example.domain.com' --role='roles/editor'

    The following command will add an IAM policy binding for the role of
    'roles/editor' for all authenticated users on a topic with identifier
    'my-topic':

      $ {command} my-topic --member='allAuthenticatedUsers' --role='roles/editor'

    See https://cloud.google.com/iam/docs/managing-policies for details of
    policy role and member types.

request:
  collection: pubsub.projects.topics

arguments:
  resource:
    help_text: The topic to add the IAM policy binding.
    spec: !REF googlecloudsdk.command_lib.pubsub.resources:topic

ALPHA:
  help_text:
    brief: Add IAM policy binding to a topic.
    description: |
      Add an IAM policy binding to the IAM policy of a Cloud Pub/Sub Topic. One binding consists of a member,
      a role, and an optional condition.

    examples: |
      To add an IAM policy binding for the role of 'roles/editor' for the user 'test-user@gmail.com'
      with topic 'my-topic', run:

        $ {command} my-topic --member='user:test-user@gmail.com' --role='roles/editor'
      For a service account test-proj1@example.domain.com, the following command
      will add an IAM policy binding for the role of 'roles/editor' to the given
      service account:

        $ {command} test-proj1@example.domain.com --member='serviceAccount:test-proj1@example.domain.com' --role='roles/editor'

      The following command will add an IAM policy binding for the role of
      'roles/editor' for all authenticated users on a topic with identifier
      'my-topic':

        $ {command} my-topic --member='allAuthenticatedUsers' --role='roles/editor'

      To add an IAM policy binding which expires at the end of the year 2018 for the role of
      'roles/pubsub.publisher' and the user 'test-user@gmail.com' with topic 'my-topic', run:

        $ {command} my-topic --member='user:test-user@gmail.com' --role='roles/pubsub.publisher' --condition='expression=request.time < timestamp("2019-01-01T00:00:00Z"),title=expires_end_of_2018,description=Expires at midnight on 2018-12-31'

      See https://cloud.google.com/iam/docs/managing-policies for details of
      policy role and member types.

  iam:
    enable_condition: true