mmv1/products/compute/ResourcePolicyAttachment.yaml (70 lines of code) (raw):
# Copyright 2024 Google Inc.
# 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.
---
name: 'ResourcePolicyAttachment'
api_resource_type_kind: Instance
description: |
Adds existing resource policies to a compute instance. You can only add one policy
which will be applied to this instance for scheduling start/stop operations.
This resource can be used instead of setting the resource_policy directly in the
compute instance resource to avoid dependency issues when using instance-level IAM
permissions.
docs:
id_format: '{{project}}/{{zone}}/{{instance}}/{{name}}'
base_url: 'projects/{{project}}/zones/{{zone}}/instances/{{instance}}'
self_link: 'projects/{{project}}/zones/{{zone}}/instances/{{instance}}'
create_url: 'projects/{{project}}/zones/{{zone}}/instances/{{instance}}/addResourcePolicies'
delete_url: 'projects/{{project}}/zones/{{zone}}/instances/{{instance}}/removeResourcePolicies'
delete_verb: 'POST'
immutable: true
timeouts:
insert_minutes: 20
update_minutes: 20
delete_minutes: 20
async:
actions: ['create', 'delete', 'update']
type: 'OpAsync'
operation:
base_url: '{{op_id}}'
result:
resource_inside_response: false
identity:
- name
nested_query:
keys:
- resourcePolicies
is_list_of_ids: true
modify_by_patch: false
custom_code:
encoder: 'templates/terraform/encoders/compute_resource_policy_attachment.go.tmpl'
decoder: 'templates/terraform/decoders/compute_resource_policy_attachment.go.tmpl'
pre_delete: 'templates/terraform/pre_delete/compute_resource_policy_attachment.go.tmpl'
examples:
- name: 'compute_resource_policy_attachment_basic'
primary_resource_id: 'attachment'
vars:
instance_name: 'my-instance'
policy_name: 'my-resource-policy'
parameters:
- name: 'instance'
type: ResourceRef
description: |
The name of the instance in which the resource policies are attached to.
url_param_only: true
required: true
resource: 'Instance'
imports: 'name'
- name: 'zone'
type: ResourceRef
description: 'A reference to the zone where the instance resides.'
url_param_only: true
required: false
ignore_read: true
default_from_api: true
resource: 'Zone'
imports: 'name'
properties:
- name: 'name'
type: String
description: |
The resource policy to be attached to the instance for scheduling start/stop
operations. Do not specify the self link.
required: true