release_tracks: [ALPHA, BETA, GA]

help_text:
  brief: Set the IAM policy for a Compute Engine node template.
  description: |
    Sets the IAM policy for the given node template as defined in a JSON or YAML file.

  examples: |
    The following command will read am IAM policy defined in a JSON file
    'policy.json' and set it for the node template `my-node-template`:

      $ {command} my-node-template --region=REGION policy.json

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

request:
  collection: compute.nodeTemplates
  api_version: v1
  use_relative_name: false
  modify_request_hooks:
  - googlecloudsdk.command_lib.iam.hooks:UseMaxRequestedPolicyVersion:api_field=regionSetPolicyRequest.policy.version
  BETA:
    api_version: beta
  ALPHA:
    api_version: alpha

iam:
  set_iam_policy_request_path: regionSetPolicyRequest
  message_type_overrides:
    policy: Policy
    set_iam_policy_request: ComputeNodeTemplatesSetIamPolicyRequest

arguments:
  resource:
    help_text: The node template to set the IAM policy for.
    spec: !REF googlecloudsdk.command_lib.compute.resources:node_template
