delowan.googlecloud.gcp_compute_resource_policy (1.0.2) — module

Creates a GCP ResourcePolicy

Authors: Google Inc. (@googlecloudplatform)

preview | supported by community

Install collection

Install with ansible-galaxy collection install delowan.googlecloud:==1.0.2


Add to requirements.yml

  collections:
    - name: delowan.googlecloud
      version: 1.0.2

Description

A policy that can be attached to a resource to specify or schedule actions on that resource.


Requirements

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: create a resource policy
  google.cloud.gcp_compute_resource_policy:
    name: test_object
    region: us-central1
    snapshot_schedule_policy:
      schedule:
        daily_schedule:
          days_in_cycle: 1
          start_time: '04:00'
    project: test_project
    auth_kind: serviceaccount
    service_account_file: "/tmp/auth.pem"
    state: present

Inputs

    
name:
    description:
    - The name of the resource, provided by the client when initially creating the resource.
      The resource name must be 1-63 characters long, and comply with RFC1035. Specifically,
      the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])`?
      which means the first character must be a lowercase letter, and all following characters
      must be a dash, lowercase letter, or digit, except the last character, which cannot
      be a dash.
    required: true
    type: str

state:
    choices:
    - present
    - absent
    default: present
    description:
    - Whether the given object should exist in GCP
    type: str

region:
    description:
    - Region where resource policy resides.
    required: true
    type: str

scopes:
    description:
    - Array of scopes to be used
    elements: str
    type: list

project:
    description:
    - The Google Cloud Platform project to use.
    type: str

env_type:
    description:
    - Specifies which Ansible environment you're running this module within.
    - This should not be set unless you know what you're doing.
    - This only alters the User Agent string for any API requests.
    type: str

auth_kind:
    choices:
    - application
    - machineaccount
    - serviceaccount
    description:
    - The type of credential used.
    required: true
    type: str

description:
    description:
    - An optional description of this resource. Provide this property when you create
      the resource.
    required: false
    type: str

service_account_file:
    description:
    - The path of a Service Account JSON file if serviceaccount is selected as type.
    type: path

service_account_email:
    description:
    - An optional service account email address if machineaccount is selected and the
      user does not wish to use the default email.
    type: str

group_placement_policy:
    description:
    - Resource policy for instances used for placement configuration.
    required: false
    suboptions:
      availability_domain_count:
        description:
        - The number of availability domains instances will be spread across. If two instances
          are in different availability domain, they will not be put in the same low latency
          network .
        required: false
        type: int
      collocation:
        description:
        - Collocation specifies whether to place VMs inside the same availability domain
          on the same low-latency network.
        - Specify `COLLOCATED` to enable collocation. Can only be specified with `vm_count`.
          If compute instances are created with a COLLOCATED policy, then exactly `vm_count`
          instances must be created at the same time with the resource policy attached.
        - 'Some valid choices include: "COLLOCATED"'
        required: false
        type: str
      vm_count:
        description:
        - Number of vms in this placement group.
        required: false
        type: int
    type: dict

instance_schedule_policy:
    description:
    - Resource policy for scheduling instance operations.
    required: false
    suboptions:
      expiration_time:
        description:
        - The expiration time of the schedule. The timestamp is an RFC3339 string.
        required: false
        type: str
      start_time:
        description:
        - The start time of the schedule. The timestamp is an RFC3339 string.
        required: false
        type: str
      time_zone:
        description:
        - 'Specifies the time zone to be used in interpreting the schedule. The value
          of this field must be a time zone name from the tz database: http://en.wikipedia.org/wiki/Tz_database.'
        required: true
        type: str
      vm_start_schedule:
        description:
        - Specifies the schedule for starting instances.
        required: false
        suboptions:
          schedule:
            description:
            - Specifies the frequency for the operation, using the unix-cron format.
            required: true
            type: str
        type: dict
      vm_stop_schedule:
        description:
        - Specifies the schedule for stopping instances.
        required: false
        suboptions:
          schedule:
            description:
            - Specifies the frequency for the operation, using the unix-cron format.
            required: true
            type: str
        type: dict
    type: dict

service_account_contents:
    description:
    - The contents of a Service Account JSON file, either in a dictionary or as a JSON
      string that represents it.
    type: jsonarg

snapshot_schedule_policy:
    description:
    - Policy for creating snapshots of persistent disks.
    required: false
    suboptions:
      retention_policy:
        description:
        - Retention policy applied to snapshots created by this resource policy.
        required: false
        suboptions:
          max_retention_days:
            description:
            - Maximum age of the snapshot that is allowed to be kept.
            required: true
            type: int
          on_source_disk_delete:
            default: KEEP_AUTO_SNAPSHOTS
            description:
            - Specifies the behavior to apply to scheduled snapshots when the source disk
              is deleted.
            - 'Some valid choices include: "KEEP_AUTO_SNAPSHOTS", "APPLY_RETENTION_POLICY"'
            required: false
            type: str
        type: dict
      schedule:
        description:
        - Contains one of an `hourlySchedule`, `dailySchedule`, or `weeklySchedule`.
        required: true
        suboptions:
          daily_schedule:
            description:
            - The policy will execute every nth day at the specified time.
            required: false
            suboptions:
              days_in_cycle:
                description:
                - The number of days between snapshots.
                required: true
                type: int
              start_time:
                description:
                - This must be in UTC format that resolves to one of 00:00, 04:00, 08:00,
                  12:00, 16:00, or 20:00. For example, both 13:00-5 and 08:00 are valid.
                required: true
                type: str
            type: dict
          hourly_schedule:
            description:
            - The policy will execute every nth hour starting at the specified time.
            required: false
            suboptions:
              hours_in_cycle:
                description:
                - The number of hours between snapshots.
                required: true
                type: int
              start_time:
                description:
                - Time within the window to start the operations.
                - 'It must be in an hourly format "HH:MM", where HH : [00-23] and MM :
                  [00] GMT.'
                - 'eg: 21:00 .'
                required: true
                type: str
            type: dict
          weekly_schedule:
            description:
            - Allows specifying a snapshot time for each day of the week.
            required: false
            suboptions:
              day_of_weeks:
                description:
                - May contain up to seven (one for each day of the week) snapshot times.
                elements: dict
                required: true
                suboptions:
                  day:
                    description:
                    - The day of the week to create the snapshot. e.g. MONDAY .
                    - 'Some valid choices include: "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY",
                      "FRIDAY", "SATURDAY", "SUNDAY"'
                    required: true
                    type: str
                  start_time:
                    description:
                    - Time within the window to start the operations.
                    - 'It must be in format "HH:MM", where HH : [00-23] and MM : [00-00]
                      GMT.'
                    required: true
                    type: str
                type: list
            type: dict
        type: dict
      snapshot_properties:
        description:
        - Properties with which the snapshots are created, such as labels.
        required: false
        suboptions:
          guest_flush:
            description:
            - Whether to perform a 'guest aware' snapshot.
            required: false
            type: bool
          labels:
            description:
            - A set of key-value pairs.
            required: false
            type: dict
          storage_locations:
            description:
            - Cloud Storage bucket location to store the auto snapshot (regional or multi-regional)
              .
            elements: str
            required: false
            type: list
        type: dict
    type: dict

Outputs

description:
  description:
  - An optional description of this resource. Provide this property when you create
    the resource.
  returned: success
  type: str
groupPlacementPolicy:
  contains:
    availabilityDomainCount:
      description:
      - The number of availability domains instances will be spread across. If two
        instances are in different availability domain, they will not be put in the
        same low latency network .
      returned: success
      type: int
    collocation:
      description:
      - Collocation specifies whether to place VMs inside the same availability domain
        on the same low-latency network.
      - Specify `COLLOCATED` to enable collocation. Can only be specified with `vm_count`.
        If compute instances are created with a COLLOCATED policy, then exactly `vm_count`
        instances must be created at the same time with the resource policy attached.
      returned: success
      type: str
    vmCount:
      description:
      - Number of vms in this placement group.
      returned: success
      type: int
  description:
  - Resource policy for instances used for placement configuration.
  returned: success
  type: complex
instanceSchedulePolicy:
  contains:
    expirationTime:
      description:
      - The expiration time of the schedule. The timestamp is an RFC3339 string.
      returned: success
      type: str
    startTime:
      description:
      - The start time of the schedule. The timestamp is an RFC3339 string.
      returned: success
      type: str
    timeZone:
      description:
      - 'Specifies the time zone to be used in interpreting the schedule. The value
        of this field must be a time zone name from the tz database: http://en.wikipedia.org/wiki/Tz_database.'
      returned: success
      type: str
    vmStartSchedule:
      contains:
        schedule:
          description:
          - Specifies the frequency for the operation, using the unix-cron format.
          returned: success
          type: str
      description:
      - Specifies the schedule for starting instances.
      returned: success
      type: complex
    vmStopSchedule:
      contains:
        schedule:
          description:
          - Specifies the frequency for the operation, using the unix-cron format.
          returned: success
          type: str
      description:
      - Specifies the schedule for stopping instances.
      returned: success
      type: complex
  description:
  - Resource policy for scheduling instance operations.
  returned: success
  type: complex
name:
  description:
  - The name of the resource, provided by the client when initially creating the resource.
    The resource name must be 1-63 characters long, and comply with RFC1035. Specifically,
    the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])`?
    which means the first character must be a lowercase letter, and all following
    characters must be a dash, lowercase letter, or digit, except the last character,
    which cannot be a dash.
  returned: success
  type: str
region:
  description:
  - Region where resource policy resides.
  returned: success
  type: str
snapshotSchedulePolicy:
  contains:
    retentionPolicy:
      contains:
        maxRetentionDays:
          description:
          - Maximum age of the snapshot that is allowed to be kept.
          returned: success
          type: int
        onSourceDiskDelete:
          description:
          - Specifies the behavior to apply to scheduled snapshots when the source
            disk is deleted.
          returned: success
          type: str
      description:
      - Retention policy applied to snapshots created by this resource policy.
      returned: success
      type: complex
    schedule:
      contains:
        dailySchedule:
          contains:
            daysInCycle:
              description:
              - The number of days between snapshots.
              returned: success
              type: int
            startTime:
              description:
              - This must be in UTC format that resolves to one of 00:00, 04:00, 08:00,
                12:00, 16:00, or 20:00. For example, both 13:00-5 and 08:00 are valid.
              returned: success
              type: str
          description:
          - The policy will execute every nth day at the specified time.
          returned: success
          type: complex
        hourlySchedule:
          contains:
            hoursInCycle:
              description:
              - The number of hours between snapshots.
              returned: success
              type: int
            startTime:
              description:
              - Time within the window to start the operations.
              - 'It must be in an hourly format "HH:MM", where HH : [00-23] and MM
                : [00] GMT.'
              - 'eg: 21:00 .'
              returned: success
              type: str
          description:
          - The policy will execute every nth hour starting at the specified time.
          returned: success
          type: complex
        weeklySchedule:
          contains:
            dayOfWeeks:
              contains:
                day:
                  description:
                  - The day of the week to create the snapshot. e.g. MONDAY .
                  returned: success
                  type: str
                startTime:
                  description:
                  - Time within the window to start the operations.
                  - 'It must be in format "HH:MM", where HH : [00-23] and MM : [00-00]
                    GMT.'
                  returned: success
                  type: str
              description:
              - May contain up to seven (one for each day of the week) snapshot times.
              returned: success
              type: complex
          description:
          - Allows specifying a snapshot time for each day of the week.
          returned: success
          type: complex
      description:
      - Contains one of an `hourlySchedule`, `dailySchedule`, or `weeklySchedule`.
      returned: success
      type: complex
    snapshotProperties:
      contains:
        guestFlush:
          description:
          - Whether to perform a 'guest aware' snapshot.
          returned: success
          type: bool
        labels:
          description:
          - A set of key-value pairs.
          returned: success
          type: dict
        storageLocations:
          description:
          - Cloud Storage bucket location to store the auto snapshot (regional or
            multi-regional) .
          returned: success
          type: list
      description:
      - Properties with which the snapshots are created, such as labels.
      returned: success
      type: complex
  description:
  - Policy for creating snapshots of persistent disks.
  returned: success
  type: complex