NAME
    gcloud run services set-iam-policy - set the IAM policy for a service

SYNOPSIS
    gcloud run services set-iam-policy SERVICE POLICY_FILE
        [--platform=PLATFORM; default="managed"]
        [--region=REGION
          | --cluster=CLUSTER --cluster-location=CLUSTER_LOCATION
          | --context=CONTEXT --kubeconfig=KUBECONFIG] [GCLOUD_WIDE_FLAG ...]

DESCRIPTION
    This command replaces the existing IAM policy for a service, given a
    service and a file encoded in JSON or YAML that contains the IAM policy. If
    the given policy file specifies an "etag" value, then the replacement will
    succeed only if the policy already in place matches that etag. (An etag
    obtain via get-iam-policy will prevent the replacement if the policy for
    the service has been subsequently updated.) A policy file that does not
    contain an etag value will replace any existing policy for the service.

EXAMPLES
    The following command will read an IAM policy defined in a JSON file
    'policy.json' and set it for a service with identifier 'my-service'

        $ gcloud run services set-iam-policy --region=us-central1 \
            my-service policy.json

    See https://cloud.google.com/iam/docs/managing-policies for details of the
    policy file format and contents.

POSITIONAL ARGUMENTS
     Service resource - The service for which to set the IAM policy. This
     represents a Cloud resource. (NOTE) Some attributes are not given
     arguments in this group but can be set in other ways. To set the project
     attribute:
      ◆ provide the argument service on the command line with a fully
        specified name;
      ◆ set the property core/project;
      ◆ provide the argument --project on the command line. To set the region
        attribute:
      ◆ provide the argument service on the command line with a fully
        specified name;
      ◆ provide the argument --region on the command line;
      ◆ set the property run/region;
      ◆ specify from a list of available regions in a prompt.

     This must be specified.

       SERVICE
          ID of the service or fully qualified identifier for the service. To
          set the service attribute:
          ▸ provide the argument service on the command line.

     POLICY_FILE
        Path to a local JSON or YAML formatted file containing a valid policy.

        The output of the get-iam-policy command is a valid file, as is any
        JSON or YAML file conforming to the structure of a Policy
        (https://cloud.google.com/iam/reference/rest/v1/Policy).

FLAGS
     --platform=PLATFORM; default="managed"
        Target platform for running commands. Alternatively, set the property
        [run/platform]. PLATFORM must be one of:

         managed
            Fully managed version of Cloud Run. Use with the --region flag or
            set the [run/region] property to specify a Cloud Run region.
         gke
            Cloud Run for Anthos on Google Cloud. Use with the --cluster and
            --cluster-location flags or set the [run/cluster] and
            [run/cluster_location] properties to specify a cluster in a given
            zone.
         kubernetes
            Use a Knative-compatible kubernetes cluster. Use with the
            --kubeconfig and --context flags to specify a kubeconfig file and
            the context for connecting.

     Arguments to locate resources, depending on the platform used.

     At most one of these can be specified:

       Only applicable if connecting to Cloud Run (fully managed). Specify
       --platform=managed to use:

         --region=REGION
            Region in which the resource can be found. Alternatively, set the
            property [run/region].

       Only applicable if connecting to Cloud Run for Anthos deployed on Google
       Cloud. Specify --platform=gke to use:

         Cluster resource - Kubernetes Engine cluster to connect to. The
         arguments in this group can be used to specify the attributes of this
         resource. (NOTE) Some attributes are not given arguments in this group
         but can be set in other ways. To set the project attribute:
          ▫ provide the argument --cluster on the command line with a fully
            specified name;
          ▫ set the property run/cluster with a fully specified name;
          ▫ specify the cluster from a list of available clusters with a
            fully specified name;
          ▫ provide the argument --project on the command line;
          ▫ set the property core/project.

           --cluster=CLUSTER
              ID of the cluster or fully qualified identifier for the cluster.
              To set the cluster attribute:
              ◇ provide the argument --cluster on the command line;
              ◇ set the property run/cluster;
              ◇ specify the cluster from a list of available clusters.

           --cluster-location=CLUSTER_LOCATION
              Zone in which the cluster is located. Alternatively, set the
              property [run/cluster_location]. To set the location attribute:
              ◇ provide the argument --cluster on the command line with a
                fully specified name;
              ◇ set the property run/cluster with a fully specified name;
              ◇ specify the cluster from a list of available clusters with a
                fully specified name;
              ◇ provide the argument --cluster-location on the command line;
              ◇ set the property run/cluster_location;
              ◇ specify the cluster location from a list of available zones.

       Only applicable if connecting to Cloud Run for Anthos deployed on
       VMware. Specify --platform=kubernetes to use:

         --context=CONTEXT
            The name of the context in your kubectl config file to use for
            connecting.

         --kubeconfig=KUBECONFIG
            The absolute path to your kubectl config file. If not specified,
            the colon- or semicolon-delimited list of paths specified by
            $KUBECONFIG will be used. If $KUBECONFIG is unset, this defaults to
            ~/.kube/config.

GCLOUD WIDE FLAGS
    These flags are available to all commands: --access-token-file, --account,
    --billing-project, --configuration, --flags-file, --flatten, --format,
    --help, --impersonate-service-account, --log-http, --project, --quiet,
    --trace-token, --user-output-enabled, --verbosity.

    Run $ gcloud help for details.

API REFERENCE
    This command uses the run/v1 API. The full documentation for this API can
    be found at: https://cloud.google.com/run/

NOTES
    These variants are also available:

        $ gcloud alpha run services set-iam-policy

        $ gcloud beta run services set-iam-policy

