diff --git a/plugins/modules/gcp_compute_address.py b/plugins/modules/gcp_compute_address.py index 6af3ecc..6118357 100644 --- a/plugins/modules/gcp_compute_address.py +++ b/plugins/modules/gcp_compute_address.py @@ -51,67 +51,34 @@ requirements: options: state: description: - - Whether the given object should exist in GCP - choices: - - present - - absent - default: present - address: - description: - - The static external IP address represented by this resource. Only IPv4 is supported. - An address may only be specified for INTERNAL address types. The IP address - must be inside the specified subnetwork, if any. - required: false - address_type: - description: - - The type of address to reserve, either INTERNAL or EXTERNAL. - - If unspecified, defaults to EXTERNAL. - required: false - default: EXTERNAL - version_added: 2.7 - choices: - - INTERNAL - - EXTERNAL - description: - description: - - An optional description of this resource. - required: false - name: - description: - - Name of the resource. The 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 - network_tier: - description: - - 'The networking tier used for configuring this address. This field can take - the following values: PREMIUM or STANDARD. If this field is not specified, it - is assumed to be PREMIUM.' - required: false - version_added: 2.8 - choices: - - PREMIUM - - STANDARD - subnetwork: - description: - - The URL of the subnetwork in which to reserve the address. If an IP address - is specified, it must be within the subnetwork's IP range. - - This field can only be used with INTERNAL type with GCE_ENDPOINT/DNS_RESOLVER - purposes. - - 'This field represents a link to a Subnetwork resource in GCP. It can be specified - in two ways. First, you can place a dictionary with key ''selfLink'' and value - of your resource''s selfLink Alternatively, you can add `register: name-of-resource` - to a gcp_compute_subnetwork task and then set this subnetwork field to "{{ name-of-resource - }}"' - required: false - version_added: 2.7 - region: - description: - - URL of the region where the regional address resides. - - This field is not applicable to global addresses. - required: true + description: + - An optional description of this resource. + required: false + name: + description: + - Name of the resource. The 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 + subnetwork: + description: + - The URL of the subnetwork in which to reserve the address. If an IP address is specified, + it must be within the subnetwork's IP range. + - This field can only be used with INTERNAL type with GCE_ENDPOINT/DNS_RESOLVER purposes. + - 'This field represents a link to a Subnetwork resource in GCP. It can be specified + in two ways. You can add `register: name-of-resource` to a gcp_compute_subnetwork + task and then set this subnetwork field to "{{ name-of-resource }}" Alternatively, + you can set this subnetwork to a dictionary with the selfLink key where the value + is the selfLink of your Subnetwork.' + required: false + version_added: 2.7 + region: + description: + - URL of the region where the regional address resides. + - This field is not applicable to global addresses. + required: true extends_documentation_fragment: gcp notes: - 'API Reference: U(https://cloud.google.com/compute/docs/reference/beta/addresses)' diff --git a/plugins/modules/gcp_compute_backend_service.py b/plugins/modules/gcp_compute_backend_service.py index 00b312c..5e0f73e 100644 --- a/plugins/modules/gcp_compute_backend_service.py +++ b/plugins/modules/gcp_compute_backend_service.py @@ -81,8 +81,81 @@ options: completely drained, offering 0% of its available Capacity. Valid range is [0.0,1.0]. required: false - default: '1.0' - description: + suboptions: + balancing_mode: + description: + - Specifies the balancing mode for this backend. + - For global HTTP(S) or TCP/SSL load balancing, the default is UTILIZATION. Valid + values are UTILIZATION, RATE (for HTTP(S)) and CONNECTION (for TCP/SSL). + - This cannot be used for internal load balancing. + required: false + choices: ['UTILIZATION', 'RATE', 'CONNECTION'] + capacity_scaler: + description: + - A multiplier applied to the group's maximum servicing capacity (based on UTILIZATION, + RATE or CONNECTION). + - Default value is 1, which means the group will serve up to 100% of its configured + capacity (depending on balancingMode). A setting of 0 means the group is completely + drained, offering 0% of its available Capacity. Valid range is [0.0,1.0]. + - This cannot be used for internal load balancing. + required: false + description: + description: + - An optional description of this resource. + - Provide this property when you create the resource. + required: false + group: + description: + - This instance group defines the list of instances that serve traffic. Member virtual + machine instances from each instance group must live in the same zone as the instance + group itself. + - No two backends in a backend service are allowed to use same Instance Group resource. + - When the BackendService has load balancing scheme INTERNAL, the instance group must + be in a zone within the same region as the BackendService. + - 'This field represents a link to a InstanceGroup resource in GCP. It can be specified + in two ways. You can add `register: name-of-resource` to a gcp_compute_instance_group + task and then set this group field to "{{ name-of-resource }}" Alternatively, you + can set this group to a dictionary with the selfLink key where the value is the + selfLink of your InstanceGroup.' + required: false + max_connections: + description: + - The max number of simultaneous connections for the group. Can be used with either + CONNECTION or UTILIZATION balancing modes. + - For CONNECTION mode, either maxConnections or maxConnectionsPerInstance must be + set. + - This cannot be used for internal load balancing. + required: false + max_connections_per_instance: + description: + - The max number of simultaneous connections that a single backend instance can handle. + This is used to calculate the capacity of the group. Can be used in either CONNECTION + or UTILIZATION balancing modes. + - For CONNECTION mode, either maxConnections or maxConnectionsPerInstance must be + set. + - This cannot be used for internal load balancing. + required: false + max_rate: + description: + - The max requests per second (RPS) of the group. + - Can be used with either RATE or UTILIZATION balancing modes, but required if RATE + mode. For RATE mode, either maxRate or maxRatePerInstance must be set. + - This cannot be used for internal load balancing. + required: false + max_rate_per_instance: + description: + - The max requests per second (RPS) that a single backend instance can handle. This + is used to calculate the capacity of the group. Can be used in either balancing + mode. For RATE mode, either maxRate or maxRatePerInstance must be set. + - This cannot be used for internal load balancing. + required: false + max_utilization: + description: + - Used when balancingMode is UTILIZATION. This ratio defines the CPU utilization target + for the group. The default is 0.8. Valid range is [0.0, 1.0]. + - This cannot be used for internal load balancing. + required: false + cdn_policy: description: - An optional description of this resource. - Provide this property when you create the resource. diff --git a/plugins/modules/gcp_compute_disk.py b/plugins/modules/gcp_compute_disk.py index d20daf5..5f5429d 100644 --- a/plugins/modules/gcp_compute_disk.py +++ b/plugins/modules/gcp_compute_disk.py @@ -158,26 +158,28 @@ options: description: - The name of the encryption key that is stored in Google Cloud KMS. required: false - source_snapshot: - description: - - The source snapshot used to create this disk. You can provide this as a partial - or full URL to the resource. - - 'This field represents a link to a Snapshot resource in GCP. It can be specified - in two ways. First, you can place a dictionary with key ''selfLink'' and value - of your resource''s selfLink Alternatively, you can add `register: name-of-resource` - to a gcp_compute_snapshot task and then set this source_snapshot field to "{{ - name-of-resource }}"' - required: false - source_snapshot_encryption_key: - description: - - The customer-supplied encryption key of the source snapshot. Required if the - source snapshot is protected by a customer-supplied encryption key. - required: false - suboptions: - raw_key: + suboptions: + raw_key: + description: + - Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 + to either encrypt or decrypt this resource. + required: false + sha256: + description: + - The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key + that protects this resource. + required: false + source_snapshot: description: - - Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 - base64 to either encrypt or decrypt this resource. + - 'The source snapshot used to create this disk. You can provide this as a partial or + full URL to the resource. For example, the following are valid values: * + `U(https://www.googleapis.com/compute/v1/projects/project/global/snapshots/snapshot`) + * `projects/project/global/snapshots/snapshot` * `global/snapshots/snapshot` .' + - 'This field represents a link to a Snapshot resource in GCP. It can be specified + in two ways. You can add `register: name-of-resource` to a gcp_compute_snapshot + task and then set this source_snapshot field to "{{ name-of-resource }}" Alternatively, + you can set this source_snapshot to a dictionary with the selfLink key where the + value is the selfLink of your Snapshot.' required: false kms_key_name: description: diff --git a/plugins/modules/gcp_compute_firewall.py b/plugins/modules/gcp_compute_firewall.py index 6aecf03..7c71f56 100644 --- a/plugins/modules/gcp_compute_firewall.py +++ b/plugins/modules/gcp_compute_firewall.py @@ -141,6 +141,11 @@ options: U(https://www.googleapis.com/compute/v1/projects/myproject/global/) networks/my-network projects/myproject/global/networks/my-network global/networks/default .' + - 'This field represents a link to a Network resource in GCP. It can be specified + in two ways. You can add `register: name-of-resource` to a gcp_compute_network task + and then set this network field to "{{ name-of-resource }}" Alternatively, you can + set this network to a dictionary with the selfLink key where the value is the selfLink + of your Network.' required: true priority: description: diff --git a/plugins/modules/gcp_compute_forwarding_rule.py b/plugins/modules/gcp_compute_forwarding_rule.py index 121015b..d13b321 100644 --- a/plugins/modules/gcp_compute_forwarding_rule.py +++ b/plugins/modules/gcp_compute_forwarding_rule.py @@ -44,183 +44,139 @@ requirements: options: state: description: - - Whether the given object should exist in GCP - choices: - - present - - absent - default: present - description: - description: - - An optional description of this resource. Provide this property when you create - the resource. - required: false - ip_address: - description: - - The IP address that this forwarding rule is serving on behalf of. - - Addresses are restricted based on the forwarding rule's load balancing scheme - (EXTERNAL or INTERNAL) and scope (global or regional). - - When the load balancing scheme is EXTERNAL, for global forwarding rules, the - address must be a global IP, and for regional forwarding rules, the address - must live in the same region as the forwarding rule. If this field is empty, - an ephemeral IPv4 address from the same scope (global or regional) will be assigned. - A regional forwarding rule supports IPv4 only. A global forwarding rule supports - either IPv4 or IPv6. - - When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP - address belonging to the network/subnet configured for the forwarding rule. - By default, if this field is empty, an ephemeral internal IP address will be - automatically allocated from the IP range of the subnet or network configured - for this forwarding rule. - - 'An address can be specified either by a literal IP address or a URL reference - to an existing Address resource. The following examples are all valid: * 100.1.2.3 - * U(https://www.googleapis.com/compute/v1/projects/project/regions/region/addresses/address) - * projects/project/regions/region/addresses/address * regions/region/addresses/address - * global/addresses/address * address .' - required: false - ip_protocol: - description: - - The IP protocol to which this rule applies. Valid options are TCP, UDP, ESP, - AH, SCTP or ICMP. - - When the load balancing scheme is INTERNAL, only TCP and UDP are valid. - required: false - choices: - - TCP - - UDP - - ESP - - AH - - SCTP - - ICMP - backend_service: - description: - - A BackendService to receive the matched traffic. This is used only for INTERNAL - load balancing. - - 'This field represents a link to a BackendService resource in GCP. It can be - specified in two ways. First, you can place a dictionary with key ''selfLink'' - and value of your resource''s selfLink Alternatively, you can add `register: - name-of-resource` to a gcp_compute_backend_service task and then set this backend_service - field to "{{ name-of-resource }}"' - required: false - ip_version: - description: - - ipVersion is not a valid field for regional forwarding rules. - required: false - choices: - - IPV4 - - IPV6 - load_balancing_scheme: - description: - - 'This signifies what the ForwardingRule will be used for and can only take the - following values: INTERNAL, EXTERNAL The value of INTERNAL means that this will - be used for Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL - means that this will be used for External Load Balancing (HTTP(S) LB, External - TCP/UDP LB, SSL Proxy) .' - required: false - choices: - - INTERNAL - - EXTERNAL - name: - description: - - Name of the resource; provided by the client when the resource is created. The - 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 - network: - description: - - For internal load balancing, this field identifies the network that the load - balanced IP should belong to for this Forwarding Rule. If this field is not - specified, the default network will be used. - - This field is only used for INTERNAL load balancing. - - 'This field represents a link to a Network resource in GCP. It can be specified - in two ways. First, you can place a dictionary with key ''selfLink'' and value - of your resource''s selfLink Alternatively, you can add `register: name-of-resource` - to a gcp_compute_network task and then set this network field to "{{ name-of-resource - }}"' - required: false - port_range: - description: - - This field is used along with the target field for TargetHttpProxy, TargetHttpsProxy, - TargetSslProxy, TargetTcpProxy, TargetVpnGateway, TargetPool, TargetInstance. - - Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed - to ports in the specified range will be forwarded to target. - - Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint - port ranges. - - 'Some types of forwarding target have constraints on the acceptable ports: * - TargetHttpProxy: 80, 8080 * TargetHttpsProxy: 443 * TargetTcpProxy: 25, 43, - 110, 143, 195, 443, 465, 587, 700, 993, 995, 1883, 5222 * TargetSslProxy: 25, - 43, 110, 143, 195, 443, 465, 587, 700, 993, 995, 1883, 5222 * TargetVpnGateway: - 500, 4500 .' - required: false - ports: - description: - - This field is used along with the backend_service field for internal load balancing. - - When the load balancing scheme is INTERNAL, a single port or a comma separated - list of ports can be configured. Only packets addressed to these ports will - be forwarded to the backends configured with this forwarding rule. - - You may specify a maximum of up to 5 ports. - required: false - subnetwork: - description: - - The subnetwork that the load balanced IP should belong to for this Forwarding - Rule. This field is only used for INTERNAL load balancing. - - If the network specified is in auto subnet mode, this field is optional. However, - if the network is in custom subnet mode, a subnetwork must be specified. - - 'This field represents a link to a Subnetwork resource in GCP. It can be specified - in two ways. First, you can place a dictionary with key ''selfLink'' and value - of your resource''s selfLink Alternatively, you can add `register: name-of-resource` - to a gcp_compute_subnetwork task and then set this subnetwork field to "{{ name-of-resource - }}"' - required: false - target: - description: - - This field is only used for EXTERNAL load balancing. - - A reference to a TargetPool resource to receive the matched traffic. - - This target must live in the same region as the forwarding rule. - - The forwarded traffic must be of a type appropriate to the target object. - - 'This field represents a link to a TargetPool resource in GCP. It can be specified - in two ways. First, you can place a dictionary with key ''selfLink'' and value - of your resource''s selfLink Alternatively, you can add `register: name-of-resource` - to a gcp_compute_target_pool task and then set this target field to "{{ name-of-resource - }}"' - required: false - version_added: 2.7 - all_ports: - description: - - For internal TCP/UDP load balancing (i.e. load balancing scheme is INTERNAL - and protocol is TCP/UDP), set this to true to allow packets addressed to any - ports to be forwarded to the backends configured with this forwarding rule. - Used with backend service. Cannot be set if port or portRange are set. - required: false - type: bool - version_added: 2.8 - network_tier: - description: - - 'The networking tier used for configuring this address. This field can take - the following values: PREMIUM or STANDARD. If this field is not specified, it - is assumed to be PREMIUM.' - required: false - version_added: 2.8 - choices: - - PREMIUM - - STANDARD - service_label: - description: - - An optional prefix to the service name for this Forwarding Rule. - - If specified, will be the first label of the fully qualified service name. - - The label must be 1-63 characters long, and comply with RFC1035. - - Specifically, the label 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. - - This field is only used for INTERNAL load balancing. - required: false - version_added: 2.8 - region: - description: - - A reference to the region where the regional forwarding rule resides. - - This field is not applicable to global forwarding rules. - required: true + description: + - An optional description of this resource. Provide this property when you create + the resource. + required: false + ip_address: + description: + - The IP address that this forwarding rule is serving on behalf of. + - Addresses are restricted based on the forwarding rule's load balancing scheme (EXTERNAL + or INTERNAL) and scope (global or regional). + - When the load balancing scheme is EXTERNAL, for global forwarding rules, the address + must be a global IP, and for regional forwarding rules, the address must live in + the same region as the forwarding rule. If this field is empty, an ephemeral IPv4 + address from the same scope (global or regional) will be assigned. A regional forwarding + rule supports IPv4 only. A global forwarding rule supports either IPv4 or IPv6. + - When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address + belonging to the network/subnet configured for the forwarding rule. By default, + if this field is empty, an ephemeral internal IP address will be automatically allocated + from the IP range of the subnet or network configured for this forwarding rule. + - 'An address can be specified either by a literal IP address or a URL reference to + an existing Address resource. The following examples are all valid: * 100.1.2.3 + * U(https://www.googleapis.com/compute/v1/projects/project/regions/region/addresses/address) + * projects/project/regions/region/addresses/address * regions/region/addresses/address + * global/addresses/address * address .' + required: false + ip_protocol: + description: + - The IP protocol to which this rule applies. Valid options are TCP, UDP, ESP, AH, + SCTP or ICMP. + - When the load balancing scheme is INTERNAL, only TCP and UDP are valid. + required: false + choices: ['TCP', 'UDP', 'ESP', 'AH', 'SCTP', 'ICMP'] + backend_service: + description: + - A reference to a BackendService to receive the matched traffic. + - This is used for internal load balancing. + - "(not used for external load balancing) ." + - 'This field represents a link to a BackendService resource in GCP. It can be specified + in two ways. You can add `register: name-of-resource` to a gcp_compute_backend_service + task and then set this backend_service field to "{{ name-of-resource }}" Alternatively, + you can set this backend_service to a dictionary with the selfLink key where the + value is the selfLink of your BackendService.' + required: false + ip_version: + description: + - The IP Version that will be used by this forwarding rule. Valid options are IPV4 + or IPV6. This can only be specified for a global forwarding rule. + required: false + choices: ['IPV4', 'IPV6'] + load_balancing_scheme: + description: + - 'This signifies what the ForwardingRule will be used for and can only take the following + values: INTERNAL, EXTERNAL The value of INTERNAL means that this will be used for + Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this + will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy) + .' + required: false + choices: ['INTERNAL', 'EXTERNAL'] + name: + description: + - Name of the resource; provided by the client when the resource is created. The 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 + network: + description: + - For internal load balancing, this field identifies the network that the load balanced + IP should belong to for this Forwarding Rule. If this field is not specified, the + default network will be used. + - This field is not used for external load balancing. + - 'This field represents a link to a Network resource in GCP. It can be specified + in two ways. You can add `register: name-of-resource` to a gcp_compute_network task + and then set this network field to "{{ name-of-resource }}" Alternatively, you can + set this network to a dictionary with the selfLink key where the value is the selfLink + of your Network.' + required: false + port_range: + description: + - This field is used along with the target field for TargetHttpProxy, TargetHttpsProxy, + TargetSslProxy, TargetTcpProxy, TargetVpnGateway, TargetPool, TargetInstance. + - Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to + ports in the specified range will be forwarded to target. + - Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port + ranges. + - 'Some types of forwarding target have constraints on the acceptable ports: * TargetHttpProxy: + 80, 8080 * TargetHttpsProxy: 443 * TargetTcpProxy: 25, 43, 110, 143, 195, 443, 465, + 587, 700, 993, 995, 1883, 5222 * TargetSslProxy: 25, 43, 110, + 143, 195, 443, 465, 587, 700, 993, 995, 1883, 5222 * TargetVpnGateway: + 500, 4500 .' + required: false + ports: + description: + - This field is used along with the backend_service field for internal load balancing. + - When the load balancing scheme is INTERNAL, a single port or a comma separated list + of ports can be configured. Only packets addressed to these ports will be forwarded + to the backends configured with this forwarding rule. + - You may specify a maximum of up to 5 ports. + required: false + subnetwork: + description: + - A reference to a subnetwork. + - For internal load balancing, this field identifies the subnetwork that the load + balanced IP should belong to for this Forwarding Rule. + - If the network specified is in auto subnet mode, this field is optional. However, + if the network is in custom subnet mode, a subnetwork must be specified. + - This field is not used for external load balancing. + - 'This field represents a link to a Subnetwork resource in GCP. It can be specified + in two ways. You can add `register: name-of-resource` to a gcp_compute_subnetwork + task and then set this subnetwork field to "{{ name-of-resource }}" Alternatively, + you can set this subnetwork to a dictionary with the selfLink key where the value + is the selfLink of your Subnetwork.' + required: false + target: + description: + - A reference to a TargetPool resource to receive the matched traffic. + - For regional forwarding rules, this target must live in the same region as the forwarding + rule. For global forwarding rules, this target must be a global load balancing resource. + The forwarded traffic must be of a type appropriate to the target object. + - This field is not used for internal load balancing. + - 'This field represents a link to a TargetPool resource in GCP. It can be specified + in two ways. You can add `register: name-of-resource` to a gcp_compute_target_pool + task and then set this target field to "{{ name-of-resource }}" Alternatively, you + can set this target to a dictionary with the selfLink key where the value is the + selfLink of your TargetPool.' + required: false + version_added: 2.7 + region: + description: + - A reference to the region where the regional forwarding rule resides. + - This field is not applicable to global forwarding rules. + required: true extends_documentation_fragment: gcp notes: - 'API Reference: U(https://cloud.google.com/compute/docs/reference/v1/forwardingRule)' diff --git a/plugins/modules/gcp_compute_global_forwarding_rule.py b/plugins/modules/gcp_compute_global_forwarding_rule.py index 92a2a92..642a764 100644 --- a/plugins/modules/gcp_compute_global_forwarding_rule.py +++ b/plugins/modules/gcp_compute_global_forwarding_rule.py @@ -46,110 +46,126 @@ requirements: options: state: description: - - Whether the given object should exist in GCP - choices: - - present - - absent - default: present - description: - description: - - An optional description of this resource. Provide this property when you create - the resource. - required: false - ip_address: - description: - - The IP address that this forwarding rule is serving on behalf of. - - Addresses are restricted based on the forwarding rule's load balancing scheme - (EXTERNAL or INTERNAL) and scope (global or regional). - - When the load balancing scheme is EXTERNAL, for global forwarding rules, the - address must be a global IP, and for regional forwarding rules, the address - must live in the same region as the forwarding rule. If this field is empty, - an ephemeral IPv4 address from the same scope (global or regional) will be assigned. - A regional forwarding rule supports IPv4 only. A global forwarding rule supports - either IPv4 or IPv6. - - When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP - address belonging to the network/subnet configured for the forwarding rule. - By default, if this field is empty, an ephemeral internal IP address will be - automatically allocated from the IP range of the subnet or network configured - for this forwarding rule. - - 'An address can be specified either by a literal IP address or a URL reference - to an existing Address resource. The following examples are all valid: * 100.1.2.3 - * U(https://www.googleapis.com/compute/v1/projects/project/regions/region/addresses/address) - * projects/project/regions/region/addresses/address * regions/region/addresses/address - * global/addresses/address * address .' - required: false - ip_protocol: - description: - - The IP protocol to which this rule applies. Valid options are TCP, UDP, ESP, - AH, SCTP or ICMP. When the load balancing scheme is INTERNAL_SELF_MANAGED, only - TCP is valid. - required: false - choices: - - TCP - - UDP - - ESP - - AH - - SCTP - - ICMP - ip_version: - description: - - The IP Version that will be used by this global forwarding rule. - - Valid options are IPV4 or IPV6. - required: false - choices: - - IPV4 - - IPV6 - load_balancing_scheme: - description: - - This signifies what the GlobalForwardingRule will be used for. - - 'The value of INTERNAL_SELF_MANAGED means that this will be used for Internal - Global HTTP(S) LB. The value of EXTERNAL means that this will be used for External - Global Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy) NOTE: Currently - global forwarding rules cannot be used for INTERNAL load balancing.' - required: false - choices: - - INTERNAL_SELF_MANAGED - - EXTERNAL - name: - description: - - Name of the resource; provided by the client when the resource is created. The - 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 - network: - description: - - This field is not used for external load balancing. - - For INTERNAL_SELF_MANAGED load balancing, this field identifies the network - that the load balanced IP should belong to for this global forwarding rule. - If this field is not specified, the default network will be used. - - 'This field represents a link to a Network resource in GCP. It can be specified - in two ways. First, you can place a dictionary with key ''selfLink'' and value - of your resource''s selfLink Alternatively, you can add `register: name-of-resource` - to a gcp_compute_network task and then set this network field to "{{ name-of-resource - }}"' - required: false - port_range: - description: - - This field is used along with the target field for TargetHttpProxy, TargetHttpsProxy, - TargetSslProxy, TargetTcpProxy, TargetVpnGateway, TargetPool, TargetInstance. - - Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed - to ports in the specified range will be forwarded to target. - - Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint - port ranges. - - 'Some types of forwarding target have constraints on the acceptable ports: * - TargetHttpProxy: 80, 8080 * TargetHttpsProxy: 443 * TargetTcpProxy: 25, 43, - 110, 143, 195, 443, 465, 587, 700, 993, 995, 1883, 5222 * TargetSslProxy: 25, - 43, 110, 143, 195, 443, 465, 587, 700, 993, 995, 1883, 5222 * TargetVpnGateway: - 500, 4500 .' - required: false - target: - description: - - The URL of the target resource to receive the matched traffic. - - The forwarded traffic must be of a type appropriate to the target object. - required: true + description: + - An optional description of this resource. Provide this property when you create + the resource. + required: false + ip_address: + description: + - The IP address that this forwarding rule is serving on behalf of. + - Addresses are restricted based on the forwarding rule's load balancing scheme (EXTERNAL + or INTERNAL) and scope (global or regional). + - When the load balancing scheme is EXTERNAL, for global forwarding rules, the address + must be a global IP, and for regional forwarding rules, the address must live in + the same region as the forwarding rule. If this field is empty, an ephemeral IPv4 + address from the same scope (global or regional) will be assigned. A regional forwarding + rule supports IPv4 only. A global forwarding rule supports either IPv4 or IPv6. + - When the load balancing scheme is INTERNAL, this can only be an RFC 1918 IP address + belonging to the network/subnet configured for the forwarding rule. By default, + if this field is empty, an ephemeral internal IP address will be automatically allocated + from the IP range of the subnet or network configured for this forwarding rule. + - 'An address can be specified either by a literal IP address or a URL reference to + an existing Address resource. The following examples are all valid: * 100.1.2.3 + * U(https://www.googleapis.com/compute/v1/projects/project/regions/region/addresses/address) + * projects/project/regions/region/addresses/address * regions/region/addresses/address + * global/addresses/address * address .' + required: false + ip_protocol: + description: + - The IP protocol to which this rule applies. Valid options are TCP, UDP, ESP, AH, + SCTP or ICMP. + - When the load balancing scheme is INTERNAL, only TCP and UDP are valid. + required: false + choices: ['TCP', 'UDP', 'ESP', 'AH', 'SCTP', 'ICMP'] + backend_service: + description: + - A reference to a BackendService to receive the matched traffic. + - This is used for internal load balancing. + - "(not used for external load balancing) ." + - 'This field represents a link to a BackendService resource in GCP. It can be specified + in two ways. You can add `register: name-of-resource` to a gcp_compute_backend_service + task and then set this backend_service field to "{{ name-of-resource }}" Alternatively, + you can set this backend_service to a dictionary with the selfLink key where the + value is the selfLink of your BackendService.' + required: false + ip_version: + description: + - The IP Version that will be used by this forwarding rule. Valid options are IPV4 + or IPV6. This can only be specified for a global forwarding rule. + required: false + choices: ['IPV4', 'IPV6'] + load_balancing_scheme: + description: + - 'This signifies what the ForwardingRule will be used for and can only take the following + values: INTERNAL, EXTERNAL The value of INTERNAL means that this will be used for + Internal Network Load Balancing (TCP, UDP). The value of EXTERNAL means that this + will be used for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy) + .' + required: false + choices: ['INTERNAL', 'EXTERNAL'] + name: + description: + - Name of the resource; provided by the client when the resource is created. The 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 + network: + description: + - For internal load balancing, this field identifies the network that the load balanced + IP should belong to for this Forwarding Rule. If this field is not specified, the + default network will be used. + - This field is not used for external load balancing. + - 'This field represents a link to a Network resource in GCP. It can be specified + in two ways. You can add `register: name-of-resource` to a gcp_compute_network task + and then set this network field to "{{ name-of-resource }}" Alternatively, you can + set this network to a dictionary with the selfLink key where the value is the selfLink + of your Network.' + required: false + port_range: + description: + - This field is used along with the target field for TargetHttpProxy, TargetHttpsProxy, + TargetSslProxy, TargetTcpProxy, TargetVpnGateway, TargetPool, TargetInstance. + - Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets addressed to + ports in the specified range will be forwarded to target. + - Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint port + ranges. + - 'Some types of forwarding target have constraints on the acceptable ports: * TargetHttpProxy: + 80, 8080 * TargetHttpsProxy: 443 * TargetTcpProxy: 25, 43, 110, 143, 195, 443, 465, + 587, 700, 993, 995, 1883, 5222 * TargetSslProxy: 25, 43, 110, + 143, 195, 443, 465, 587, 700, 993, 995, 1883, 5222 * TargetVpnGateway: + 500, 4500 .' + required: false + ports: + description: + - This field is used along with the backend_service field for internal load balancing. + - When the load balancing scheme is INTERNAL, a single port or a comma separated list + of ports can be configured. Only packets addressed to these ports will be forwarded + to the backends configured with this forwarding rule. + - You may specify a maximum of up to 5 ports. + required: false + subnetwork: + description: + - A reference to a subnetwork. + - For internal load balancing, this field identifies the subnetwork that the load + balanced IP should belong to for this Forwarding Rule. + - If the network specified is in auto subnet mode, this field is optional. However, + if the network is in custom subnet mode, a subnetwork must be specified. + - This field is not used for external load balancing. + - 'This field represents a link to a Subnetwork resource in GCP. It can be specified + in two ways. You can add `register: name-of-resource` to a gcp_compute_subnetwork + task and then set this subnetwork field to "{{ name-of-resource }}" Alternatively, + you can set this subnetwork to a dictionary with the selfLink key where the value + is the selfLink of your Subnetwork.' + required: false + target: + description: + - This target must be a global load balancing resource. The forwarded traffic must + be of a type appropriate to the target object. + - 'Valid types: HTTP_PROXY, HTTPS_PROXY, SSL_PROXY, TCP_PROXY .' + required: false extends_documentation_fragment: gcp ''' diff --git a/plugins/modules/gcp_compute_image.py b/plugins/modules/gcp_compute_image.py index 90920ff..1a1f225 100644 --- a/plugins/modules/gcp_compute_image.py +++ b/plugins/modules/gcp_compute_image.py @@ -147,24 +147,61 @@ options: - The full Google Cloud Storage URL where disk storage is stored You must provide either this property or the sourceDisk property but not both. required: true - source_disk: - description: - - The source disk to create this image based on. - - You must provide either this property or the rawDisk.source property but not - both to create an image. - - 'This field represents a link to a Disk resource in GCP. It can be specified - in two ways. First, you can place a dictionary with key ''selfLink'' and value - of your resource''s selfLink Alternatively, you can add `register: name-of-resource` - to a gcp_compute_disk task and then set this source_disk field to "{{ name-of-resource - }}"' - required: false - source_disk_encryption_key: - description: - - The customer-supplied encryption key of the source disk. Required if the source - disk is protected by a customer-supplied encryption key. - required: false - suboptions: - raw_key: + raw_disk: + description: + - The parameters of the raw disk image. + required: false + suboptions: + container_type: + description: + - The format used to encode and transmit the block device, which should be TAR. This + is just a container and transmission format and not a runtime format. Provided by + the client when the disk image is created. + required: false + choices: ['TAR'] + sha1_checksum: + description: + - An optional SHA1 checksum of the disk image before unpackaging. + - This is provided by the client when the disk image is created. + required: false + source: + description: + - The full Google Cloud Storage URL where disk storage is stored You must provide + either this property or the sourceDisk property but not both. + required: false + source_disk: + description: + - Refers to a gcompute_disk object You must provide either this property or the rawDisk.source + property but not both to create an image. + - 'This field represents a link to a Disk resource in GCP. It can be specified in + two ways. You can add `register: name-of-resource` to a gcp_compute_disk task and + then set this source_disk field to "{{ name-of-resource }}" Alternatively, you can + set this source_disk to a dictionary with the selfLink key where the value is the + selfLink of your Disk.' + required: false + source_disk_encryption_key: + description: + - The customer-supplied encryption key of the source disk. Required if the source + disk is protected by a customer-supplied encryption key. + required: false + suboptions: + raw_key: + description: + - Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 + to either encrypt or decrypt this resource. + required: false + sha256: + description: + - The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key + that protects this resource. + required: false + source_disk_id: + description: + - The ID value of the disk used to create this image. This value may be used to determine + whether the image was taken from the current or a previous instance of a given disk + name. + required: false + source_type: description: - Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource. diff --git a/plugins/modules/gcp_compute_instance.py b/plugins/modules/gcp_compute_instance.py index 9de3820..14b66f0 100644 --- a/plugins/modules/gcp_compute_instance.py +++ b/plugins/modules/gcp_compute_instance.py @@ -88,17 +88,132 @@ options: - Encrypts or decrypts a disk using a customer-supplied encryption key. required: false suboptions: - raw_key: - description: - - Specifies a 256-bit customer-supplied encryption key, encoded in RFC - 4648 base64 to either encrypt or decrypt this resource. - required: false - rsa_encrypted_key: - description: - - Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied - encryption key to either encrypt or decrypt this resource. - required: false - index: + auto_delete: + description: + - Specifies whether the disk will be auto-deleted when the instance is deleted (but + not when the disk is detached from the instance). + - 'Tip: Disks should be set to autoDelete=true so that leftover disks are not left + behind on machine deletion.' + required: false + type: bool + boot: + description: + - Indicates that this is a boot disk. The virtual machine will use the first partition + of the disk for its root filesystem. + required: false + type: bool + device_name: + description: + - Specifies a unique device name of your choice that is reflected into the /dev/disk/by-id/google-* + tree of a Linux operating system running within the instance. This name can be used + to reference the device for mounting, resizing, and so on, from within the instance. + required: false + disk_encryption_key: + description: + - Encrypts or decrypts a disk using a customer-supplied encryption key. + required: false + suboptions: + raw_key: + description: + - Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 + to either encrypt or decrypt this resource. + required: false + rsa_encrypted_key: + description: + - Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption + key to either encrypt or decrypt this resource. + required: false + sha256: + description: + - The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key + that protects this resource. + required: false + index: + description: + - Assigns a zero-based index to this disk, where 0 is reserved for the boot disk. + For example, if you have many disks attached to an instance, each disk would have + a unique index number. If not specified, the server will choose an appropriate value. + required: false + initialize_params: + description: + - Specifies the parameters for a new disk that will be created alongside the new instance. + Use initialization parameters to create boot disks or local SSDs attached to the + new instance. + required: false + suboptions: + disk_name: + description: + - Specifies the disk name. If not specified, the default is to use the name of the + instance. + required: false + disk_size_gb: + description: + - Specifies the size of the disk in base-2 GB. + required: false + disk_type: + description: + - Reference to a gcompute_disk_type resource. + - Specifies the disk type to use to create the instance. + - If not specified, the default is pd-standard. + required: false + source_image: + description: + - The source image to create this disk. When creating a new instance, one of initializeParams.sourceImage + or disks.source is required. To create a disk with one of the public operating + system images, specify the image by its family name. + required: false + source_image_encryption_key: + description: + - The customer-supplied encryption key of the source image. Required if the source + image is protected by a customer-supplied encryption key. + - Instance templates do not store customer-supplied encryption keys, so you cannot + create disks for instances in a managed instance group if the source images are + encrypted with your own keys. + required: false + suboptions: + raw_key: + description: + - Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 + to either encrypt or decrypt this resource. + required: false + sha256: + description: + - The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key + that protects this resource. + required: false + interface: + description: + - Specifies the disk interface to use for attaching this disk, which is either SCSI + or NVME. The default is SCSI. + - Persistent disks must always use SCSI and the request will fail if you attempt to + attach a persistent disk in any other format than SCSI. + required: false + choices: ['SCSI', 'NVME'] + mode: + description: + - The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not specified, + the default is to attach the disk in READ_WRITE mode. + required: false + choices: ['READ_WRITE', 'READ_ONLY'] + source: + description: + - Reference to a gcompute_disk resource. When creating a new instance, one of initializeParams.sourceImage + or disks.source is required. + - If desired, you can also attach existing non-root persistent disks using this property. + This field is only applicable for persistent disks. + - 'This field represents a link to a Disk resource in GCP. It can be specified in + two ways. You can add `register: name-of-resource` to a gcp_compute_disk task and + then set this source field to "{{ name-of-resource }}" Alternatively, you can set + this source to a dictionary with the selfLink key where the value is the selfLink + of your Disk.' + required: false + type: + description: + - Specifies the type of the disk, either SCRATCH or PERSISTENT. If not specified, + the default is PERSISTENT. + required: false + choices: ['SCRATCH', 'PERSISTENT'] + guest_accelerators: description: - Assigns a zero-based index to this disk, where 0 is reserved for the boot disk. For example, if you have many disks attached to an instance, each @@ -202,45 +317,94 @@ options: description: - Full or partial URL of the accelerator type resource to expose to this instance. required: false - label_fingerprint: - description: - - A fingerprint for this request, which is essentially a hash of the metadata's - contents and used for optimistic locking. The fingerprint is initially generated - by Compute Engine and changes after every request to modify or update metadata. - You must always provide an up-to-date fingerprint hash in order to update or - change metadata. - required: false - metadata: - description: - - The metadata key/value pairs to assign to instances that are created from this - template. These pairs can consist of custom metadata or predefined keys. - required: false - machine_type: - description: - - A reference to a machine type which defines VM kind. - required: false - min_cpu_platform: - description: - - Specifies a minimum CPU platform for the VM instance. Applicable values are - the friendly names of CPU platforms . - required: false - 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: false - network_interfaces: - description: - - An array of configurations for this interface. This specifies how this interface - is configured to interact with other network services, such as connecting to - the internet. Only one network interface is supported per instance. - required: false - suboptions: - access_configs: + suboptions: + access_configs: + description: + - An array of configurations for this interface. Currently, only one access config, + ONE_TO_ONE_NAT, is supported. If there are no accessConfigs specified, then this + instance will have no external internet access. + required: false + suboptions: + name: + description: + - The name of this access configuration. The default and recommended name is External + NAT but you can use any arbitrary string you would like. For example, My external + IP or Network Access. + required: true + nat_ip: + description: + - Specifies the title of a gcompute_address. + - An external IP address associated with this instance. + - Specify an unused static external IP address available to the project or leave this + field undefined to use an IP from a shared ephemeral IP address pool. If you specify + a static external IP address, it must live in the same region as the zone of the + instance. + - 'This field represents a link to a Address resource in GCP. It can be specified + in two ways. You can add `register: name-of-resource` to a gcp_compute_address task + and then set this nat_ip field to "{{ name-of-resource }}" Alternatively, you can + set this nat_ip to a dictionary with the address key where the value is the address + of your Address.' + required: false + type: + description: + - The type of configuration. The default and only option is ONE_TO_ONE_NAT. + required: true + choices: ['ONE_TO_ONE_NAT'] + alias_ip_ranges: + description: + - An array of alias IP ranges for this network interface. Can only be specified for + network interfaces on subnet-mode networks. + required: false + suboptions: + ip_cidr_range: + description: + - The IP CIDR range represented by this alias IP range. + - This IP CIDR range must belong to the specified subnetwork and cannot contain IP + addresses reserved by system or used by other network interfaces. This range may + be a single IP address (e.g. 10.2.3.4), a netmask (e.g. /24) or a CIDR format string + (e.g. 10.1.2.0/24). + required: false + subnetwork_range_name: + description: + - Optional subnetwork secondary range name specifying the secondary range from which + to allocate the IP CIDR range for this alias IP range. If left unspecified, the + primary range of the subnetwork will be used. + required: false + name: + description: + - The name of the network interface, generated by the server. For network devices, + these are eth0, eth1, etc . + required: false + network: + description: + - Specifies the title of an existing gcompute_network. When creating an instance, + if neither the network nor the subnetwork is specified, the default network global/networks/default + is used; if the network is not specified but the subnetwork is specified, the network + is inferred. + - 'This field represents a link to a Network resource in GCP. It can be specified + in two ways. You can add `register: name-of-resource` to a gcp_compute_network task + and then set this network field to "{{ name-of-resource }}" Alternatively, you can + set this network to a dictionary with the selfLink key where the value is the selfLink + of your Network.' + required: false + network_ip: + description: + - An IPv4 internal network address to assign to the instance for this network interface. + If not specified by the user, an unused internal IP is assigned by the system. + required: false + subnetwork: + description: + - Reference to a gcompute_subnetwork resource. + - If the network resource is in legacy mode, do not provide this property. If the + network is in auto subnet mode, providing the subnetwork is optional. If the network + is in custom subnet mode, then this field should be specified. + - 'This field represents a link to a Subnetwork resource in GCP. It can be specified + in two ways. You can add `register: name-of-resource` to a gcp_compute_subnetwork + task and then set this subnetwork field to "{{ name-of-resource }}" Alternatively, + you can set this subnetwork to a dictionary with the selfLink key where the value + is the selfLink of your Subnetwork.' + required: false + scheduling: description: - An array of configurations for this interface. Currently, only one access config, ONE_TO_ONE_NAT, is supported. If there are no accessConfigs specified, diff --git a/plugins/modules/gcp_compute_instance_group.py b/plugins/modules/gcp_compute_instance_group.py index 4e78988..9ecf9f8 100644 --- a/plugins/modules/gcp_compute_instance_group.py +++ b/plugins/modules/gcp_compute_instance_group.py @@ -72,12 +72,54 @@ options: suboptions: name: description: - - The name for this named port. - - The name must be 1-63 characters long, and comply with RFC1035. + - An optional description of this resource. Provide this property when you create + the resource. + required: false + name: + description: + - The name of the instance group. + - The name must be 1-63 characters long, and comply with RFC1035. + required: false + named_ports: + description: + - Assigns a name to a port number. + - 'For example: {name: "http", port: 80}.' + - This allows the system to reference ports by the assigned name instead of a port + number. Named ports can also contain multiple ports. + - 'For example: [{name: "http", port: 80},{name: "http", port: 8080}] Named ports + apply to all instances in this instance group.' + required: false + suboptions: + name: + description: + - The name for this named port. + - The name must be 1-63 characters long, and comply with RFC1035. + required: false + port: + description: + - The port number, which can be a value between 1 and 65535. + required: false + network: + description: + - The network to which all instances in the instance group belong. + - 'This field represents a link to a Network resource in GCP. It can be specified + in two ways. You can add `register: name-of-resource` to a gcp_compute_network task + and then set this network field to "{{ name-of-resource }}" Alternatively, you can + set this network to a dictionary with the selfLink key where the value is the selfLink + of your Network.' + required: false + region: + description: + - The region where the instance group is located (for regional resources). required: false port: description: - - The port number, which can be a value between 1 and 65535. + - The subnetwork to which all instances in the instance group belong. + - 'This field represents a link to a Subnetwork resource in GCP. It can be specified + in two ways. You can add `register: name-of-resource` to a gcp_compute_subnetwork + task and then set this subnetwork field to "{{ name-of-resource }}" Alternatively, + you can set this subnetwork to a dictionary with the selfLink key where the value + is the selfLink of your Subnetwork.' required: false zone: description: diff --git a/plugins/modules/gcp_compute_instance_group_manager.py b/plugins/modules/gcp_compute_instance_group_manager.py index 5860576..27f07ec 100644 --- a/plugins/modules/gcp_compute_instance_group_manager.py +++ b/plugins/modules/gcp_compute_instance_group_manager.py @@ -88,8 +88,44 @@ options: suboptions: name: description: - - The name for this named port. The name must be 1-63 characters long, and - comply with RFC1035. + - An optional description of this resource. Provide this property when you create + the resource. + required: false + instance_template: + description: + - The instance template that is specified for this managed instance group. The group + uses this template to create all new instances in the managed instance group. + - 'This field represents a link to a InstanceTemplate resource in GCP. It can be specified + in two ways. You can add `register: name-of-resource` to a gcp_compute_instance_template + task and then set this instance_template field to "{{ name-of-resource }}" Alternatively, + you can set this instance_template to a dictionary with the selfLink key where the + value is the selfLink of your InstanceTemplate.' + required: true + name: + description: + - The name of the managed instance group. The name must be 1-63 characters long, and + comply with RFC1035. + required: true + named_ports: + description: + - Named ports configured for the Instance Groups complementary to this Instance Group + Manager. + required: false + suboptions: + name: + description: + - The name for this named port. The name must be 1-63 characters long, and comply + with RFC1035. + required: false + port: + description: + - The port number, which can be a value between 1 and 65535. + required: false + target_pools: + description: + - TargetPool resources to which instances in the instanceGroup field are added. The + target pools automatically apply to all of the instances in the managed instance + group. required: false port: description: diff --git a/plugins/modules/gcp_compute_instance_template.py b/plugins/modules/gcp_compute_instance_template.py index 2f77802..482deae 100644 --- a/plugins/modules/gcp_compute_instance_template.py +++ b/plugins/modules/gcp_compute_instance_template.py @@ -142,7 +142,134 @@ options: - Specifies the disk name. If not specified, the default is to use the name of the instance. required: false - disk_size_gb: + suboptions: + auto_delete: + description: + - Specifies whether the disk will be auto-deleted when the instance is deleted (but + not when the disk is detached from the instance). + - 'Tip: Disks should be set to autoDelete=true so that leftover disks are not left + behind on machine deletion.' + required: false + type: bool + boot: + description: + - Indicates that this is a boot disk. The virtual machine will use the first partition + of the disk for its root filesystem. + required: false + type: bool + device_name: + description: + - Specifies a unique device name of your choice that is reflected into the /dev/disk/by-id/google-* + tree of a Linux operating system running within the instance. This name can be used + to reference the device for mounting, resizing, and so on, from within the instance. + required: false + disk_encryption_key: + description: + - Encrypts or decrypts a disk using a customer-supplied encryption key. + required: false + suboptions: + raw_key: + description: + - Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 + to either encrypt or decrypt this resource. + required: false + rsa_encrypted_key: + description: + - Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption + key to either encrypt or decrypt this resource. + required: false + sha256: + description: + - The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key + that protects this resource. + required: false + index: + description: + - Assigns a zero-based index to this disk, where 0 is reserved for the boot disk. + For example, if you have many disks attached to an instance, each disk would have + a unique index number. If not specified, the server will choose an appropriate value. + required: false + initialize_params: + description: + - Specifies the parameters for a new disk that will be created alongside the new instance. + Use initialization parameters to create boot disks or local SSDs attached to the + new instance. + required: false + suboptions: + disk_name: + description: + - Specifies the disk name. If not specified, the default is to use the name of the + instance. + required: false + disk_size_gb: + description: + - Specifies the size of the disk in base-2 GB. + required: false + disk_type: + description: + - Reference to a gcompute_disk_type resource. + - Specifies the disk type to use to create the instance. + - If not specified, the default is pd-standard. + required: false + source_image: + description: + - The source image to create this disk. When creating a new instance, one of initializeParams.sourceImage + or disks.source is required. To create a disk with one of the public operating + system images, specify the image by its family name. + required: false + source_image_encryption_key: + description: + - The customer-supplied encryption key of the source image. Required if the source + image is protected by a customer-supplied encryption key. + - Instance templates do not store customer-supplied encryption keys, so you cannot + create disks for instances in a managed instance group if the source images are + encrypted with your own keys. + required: false + suboptions: + raw_key: + description: + - Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 + to either encrypt or decrypt this resource. + required: false + sha256: + description: + - The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key + that protects this resource. + required: false + interface: + description: + - Specifies the disk interface to use for attaching this disk, which is either SCSI + or NVME. The default is SCSI. + - Persistent disks must always use SCSI and the request will fail if you attempt to + attach a persistent disk in any other format than SCSI. + required: false + choices: ['SCSI', 'NVME'] + mode: + description: + - The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If not specified, + the default is to attach the disk in READ_WRITE mode. + required: false + choices: ['READ_WRITE', 'READ_ONLY'] + source: + description: + - Reference to a gcompute_disk resource. When creating a new instance, one of initializeParams.sourceImage + or disks.source is required. + - If desired, you can also attach existing non-root persistent disks using this property. + This field is only applicable for persistent disks. + - Note that for InstanceTemplate, specify the disk name, not the URL for the disk. + - 'This field represents a link to a Disk resource in GCP. It can be specified in + two ways. You can add `register: name-of-resource` to a gcp_compute_disk task and + then set this source field to "{{ name-of-resource }}" Alternatively, you can set + this source to a dictionary with the name key where the value is the name of your + Disk.' + required: false + type: + description: + - Specifies the type of the disk, either SCRATCH or PERSISTENT. If not specified, + the default is PERSISTENT. + required: false + choices: ['SCRATCH', 'PERSISTENT'] + machine_type: description: - Specifies the size of the disk in base-2 GB. required: false @@ -169,96 +296,93 @@ options: if the source images are encrypted with your own keys. required: false suboptions: - raw_key: - description: - - Specifies a 256-bit customer-supplied encryption key, encoded - in RFC 4648 base64 to either encrypt or decrypt this resource. - required: false - interface: - description: - - Specifies the disk interface to use for attaching this disk, which is - either SCSI or NVME. The default is SCSI. - - Persistent disks must always use SCSI and the request will fail if you - attempt to attach a persistent disk in any other format than SCSI. - required: false - choices: - - SCSI - - NVME - mode: - description: - - The mode in which to attach this disk, either READ_WRITE or READ_ONLY. - If not specified, the default is to attach the disk in READ_WRITE mode. - required: false - choices: - - READ_WRITE - - READ_ONLY - source: - description: - - Reference to a disk. When creating a new instance, one of initializeParams.sourceImage - or disks.source is required. - - If desired, you can also attach existing non-root persistent disks using - this property. This field is only applicable for persistent disks. - - Note that for InstanceTemplate, specify the disk name, not the URL for - the disk. - - 'This field represents a link to a Disk resource in GCP. It can be specified - in two ways. First, you can place a dictionary with key ''name'' and - value of your resource''s name Alternatively, you can add `register: - name-of-resource` to a gcp_compute_disk task and then set this source - field to "{{ name-of-resource }}"' - required: false - type: - description: - - Specifies the type of the disk, either SCRATCH or PERSISTENT. If not - specified, the default is PERSISTENT. - required: false - choices: - - SCRATCH - - PERSISTENT - machine_type: - description: - - The machine type to use in the VM instance template. - required: true - min_cpu_platform: - description: - - Specifies a minimum CPU platform for the VM instance. Applicable values - are the friendly names of CPU platforms . - required: false - metadata: - description: - - The metadata key/value pairs to assign to instances that are created from - this template. These pairs can consist of custom metadata or predefined - keys. - required: false - guest_accelerators: - description: - - List of the type and count of accelerator cards attached to the instance - . - required: false - suboptions: - accelerator_count: - description: - - The number of the guest accelerator cards exposed to this instance. - required: false - accelerator_type: - description: - - Full or partial URL of the accelerator type resource to expose to this - instance. - required: false - network_interfaces: - description: - - An array of configurations for this interface. This specifies how this interface - is configured to interact with other network services, such as connecting - to the internet. Only one network interface is supported per instance. - required: false - suboptions: - access_configs: - description: - - An array of configurations for this interface. Currently, only one access - config, ONE_TO_ONE_NAT, is supported. If there are no accessConfigs - specified, then this instance will have no external internet access. - required: false - suboptions: - name: + access_configs: + description: + - An array of configurations for this interface. Currently, only one access config, + ONE_TO_ONE_NAT, is supported. If there are no accessConfigs specified, then this + instance will have no external internet access. + required: false + suboptions: + name: + description: + - The name of this access configuration. The default and recommended name is External + NAT but you can use any arbitrary string you would like. For example, My external + IP or Network Access. + required: true + nat_ip: + description: + - Specifies the title of a gcompute_address. + - An external IP address associated with this instance. + - Specify an unused static external IP address available to the project or leave this + field undefined to use an IP from a shared ephemeral IP address pool. If you specify + a static external IP address, it must live in the same region as the zone of the + instance. + - 'This field represents a link to a Address resource in GCP. It can be specified + in two ways. You can add `register: name-of-resource` to a gcp_compute_address task + and then set this nat_ip field to "{{ name-of-resource }}" Alternatively, you can + set this nat_ip to a dictionary with the address key where the value is the address + of your Address.' + required: false + type: + description: + - The type of configuration. The default and only option is ONE_TO_ONE_NAT. + required: true + choices: ['ONE_TO_ONE_NAT'] + alias_ip_ranges: + description: + - An array of alias IP ranges for this network interface. Can only be specified for + network interfaces on subnet-mode networks. + required: false + suboptions: + ip_cidr_range: + description: + - The IP CIDR range represented by this alias IP range. + - This IP CIDR range must belong to the specified subnetwork and cannot contain IP + addresses reserved by system or used by other network interfaces. This range may + be a single IP address (e.g. 10.2.3.4), a netmask (e.g. /24) or a CIDR format string + (e.g. 10.1.2.0/24). + required: false + subnetwork_range_name: + description: + - Optional subnetwork secondary range name specifying the secondary range from which + to allocate the IP CIDR range for this alias IP range. If left unspecified, the + primary range of the subnetwork will be used. + required: false + name: + description: + - The name of the network interface, generated by the server. For network devices, + these are eth0, eth1, etc . + required: false + network: + description: + - Specifies the title of an existing gcompute_network. When creating an instance, + if neither the network nor the subnetwork is specified, the default network global/networks/default + is used; if the network is not specified but the subnetwork is specified, the network + is inferred. + - 'This field represents a link to a Network resource in GCP. It can be specified + in two ways. You can add `register: name-of-resource` to a gcp_compute_network task + and then set this network field to "{{ name-of-resource }}" Alternatively, you can + set this network to a dictionary with the selfLink key where the value is the selfLink + of your Network.' + required: false + network_ip: + description: + - An IPv4 internal network address to assign to the instance for this network interface. + If not specified by the user, an unused internal IP is assigned by the system. + required: false + subnetwork: + description: + - Reference to a gcompute_subnetwork resource. + - If the network resource is in legacy mode, do not provide this property. If the + network is in auto subnet mode, providing the subnetwork is optional. If the network + is in custom subnet mode, then this field should be specified. + - 'This field represents a link to a Subnetwork resource in GCP. It can be specified + in two ways. You can add `register: name-of-resource` to a gcp_compute_subnetwork + task and then set this subnetwork field to "{{ name-of-resource }}" Alternatively, + you can set this subnetwork to a dictionary with the selfLink key where the value + is the selfLink of your Subnetwork.' + required: false + scheduling: description: - The name of this access configuration. The default and recommended name is External NAT but you can use any arbitrary string you would diff --git a/plugins/modules/gcp_compute_route.py b/plugins/modules/gcp_compute_route.py index 9342d2f..c7d040e 100644 --- a/plugins/modules/gcp_compute_route.py +++ b/plugins/modules/gcp_compute_route.py @@ -57,85 +57,64 @@ requirements: options: state: description: - - Whether the given object should exist in GCP - choices: - - present - - absent - default: present - dest_range: - description: - - The destination range of outgoing packets that this route applies to. - - Only IPv4 is supported. - required: true - description: - description: - - An optional description of this resource. Provide this property when you create - the resource. - required: false - version_added: 2.7 - name: - description: - - Name of the resource. Provided by the client when the resource is created. The - 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 - network: - description: - - The network that this route applies to. - - 'This field represents a link to a Network resource in GCP. It can be specified - in two ways. First, you can place a dictionary with key ''selfLink'' and value - of your resource''s selfLink Alternatively, you can add `register: name-of-resource` - to a gcp_compute_network task and then set this network field to "{{ name-of-resource - }}"' - required: true - priority: - description: - - The priority of this route. Priority is used to break ties in cases where there - is more than one matching route of equal prefix length. - - In the case of two routes with equal prefix length, the one with the lowest-numbered - priority value wins. - - Default value is 1000. Valid range is 0 through 65535. - required: false - tags: - description: - - A list of instance tags to which this route applies. - required: false - next_hop_gateway: - description: - - URL to a gateway that should handle matching packets. - - 'Currently, you can only specify the internet gateway, using a full or partial - valid URL: * U(https://www.googleapis.com/compute/v1/projects/project/global/gateways/default-internet-gateway) - * projects/project/global/gateways/default-internet-gateway * global/gateways/default-internet-gateway - .' - required: false - next_hop_instance: - description: - - URL to an instance that should handle matching packets. - - 'You can specify this as a full or partial URL. For example: * U(https://www.googleapis.com/compute/v1/projects/project/zones/zone/) - instances/instance * projects/project/zones/zone/instances/instance * zones/zone/instances/instance - .' - - 'This field represents a link to a Instance resource in GCP. It can be specified - in two ways. First, you can place a dictionary with key ''selfLink'' and value - of your resource''s selfLink Alternatively, you can add `register: name-of-resource` - to a gcp_compute_instance task and then set this next_hop_instance field to - "{{ name-of-resource }}"' - required: false - next_hop_ip: - description: - - Network IP address of an instance that should handle matching packets. - required: false - next_hop_vpn_tunnel: - description: - - URL to a VpnTunnel that should handle matching packets. - - 'This field represents a link to a VpnTunnel resource in GCP. It can be specified - in two ways. First, you can place a dictionary with key ''selfLink'' and value - of your resource''s selfLink Alternatively, you can add `register: name-of-resource` - to a gcp_compute_vpn_tunnel task and then set this next_hop_vpn_tunnel field - to "{{ name-of-resource }}"' - required: false + description: + - An optional description of this resource. Provide this property when you create + the resource. + required: false + version_added: 2.7 + name: + description: + - Name of the resource. Provided by the client when the resource is created. The 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 + network: + description: + - The network that this route applies to. + - 'This field represents a link to a Network resource in GCP. It can be specified + in two ways. You can add `register: name-of-resource` to a gcp_compute_network task + and then set this network field to "{{ name-of-resource }}" Alternatively, you can + set this network to a dictionary with the selfLink key where the value is the selfLink + of your Network.' + required: true + priority: + description: + - The priority of this route. Priority is used to break ties in cases where there + is more than one matching route of equal prefix length. + - In the case of two routes with equal prefix length, the one with the lowest-numbered + priority value wins. + - Default value is 1000. Valid range is 0 through 65535. + required: false + tags: + description: + - A list of instance tags to which this route applies. + required: false + next_hop_gateway: + description: + - URL to a gateway that should handle matching packets. + - 'Currently, you can only specify the internet gateway, using a full or partial valid + URL: * U(https://www.googleapis.com/compute/v1/projects/project/global/gateways/default-internet-gateway) + * projects/project/global/gateways/default-internet-gateway * global/gateways/default-internet-gateway + .' + required: false + next_hop_instance: + description: + - URL to an instance that should handle matching packets. + - 'You can specify this as a full or partial URL. For example: * U(https://www.googleapis.com/compute/v1/projects/project/zones/zone/) + instances/instance * projects/project/zones/zone/instances/instance * zones/zone/instances/instance + .' + required: false + next_hop_ip: + description: + - Network IP address of an instance that should handle matching packets. + required: false + next_hop_vpn_tunnel: + description: + - URL to a VpnTunnel that should handle matching packets. + required: false extends_documentation_fragment: gcp notes: - 'API Reference: U(https://cloud.google.com/compute/docs/reference/rest/v1/routes)' diff --git a/plugins/modules/gcp_compute_router.py b/plugins/modules/gcp_compute_router.py index 4740c0b..ca11f27 100644 --- a/plugins/modules/gcp_compute_router.py +++ b/plugins/modules/gcp_compute_router.py @@ -90,14 +90,14 @@ options: - CUSTOM advertised_groups: description: - - User-specified list of prefix groups to advertise in custom mode. - - This field can only be populated if advertiseMode is CUSTOM and is advertised - to all peers of the router. These groups will be advertised in addition - to any specified prefixes. Leave this field blank to advertise no custom - groups. - - 'This enum field has the one valid value: ALL_SUBNETS .' - required: false - advertised_ip_ranges: + - A reference to the network to which this router belongs. + - 'This field represents a link to a Network resource in GCP. It can be specified + in two ways. You can add `register: name-of-resource` to a gcp_compute_network task + and then set this network field to "{{ name-of-resource }}" Alternatively, you can + set this network to a dictionary with the selfLink key where the value is the selfLink + of your Network.' + required: true + bgp: description: - User-specified list of individual IP ranges to advertise in custom mode. This field can only be populated if advertiseMode is CUSTOM and is advertised diff --git a/plugins/modules/gcp_compute_subnetwork.py b/plugins/modules/gcp_compute_subnetwork.py index 46edc9d..b9551fa 100644 --- a/plugins/modules/gcp_compute_subnetwork.py +++ b/plugins/modules/gcp_compute_subnetwork.py @@ -110,9 +110,34 @@ options: suboptions: range_name: description: - - The name associated with this subnetwork secondary range, used when adding - an alias IP range to a VM instance. The name must be 1-63 characters long, - and comply with RFC1035. The name must be unique within the subnetwork. + - An optional description of this resource. Provide this property when you create + the resource. This field can be set only at resource creation time. + required: false + ip_cidr_range: + description: + - The range of internal addresses that are owned by this subnetwork. + - Provide this property when you create the subnetwork. For example, 10.0.0.0/8 or + 192.168.0.0/16. Ranges must be unique and non-overlapping within a network. Only + IPv4 is supported. + required: true + name: + description: + - The name of the resource, provided by the client when initially creating the resource. + The 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 + network: + description: + - The network this subnet belongs to. + - Only networks that are in the distributed mode can have subnetworks. + - 'This field represents a link to a Network resource in GCP. It can be specified + in two ways. You can add `register: name-of-resource` to a gcp_compute_network task + and then set this network field to "{{ name-of-resource }}" Alternatively, you can + set this network to a dictionary with the selfLink key where the value is the selfLink + of your Network.' required: true ip_cidr_range: description: diff --git a/plugins/modules/gcp_compute_target_http_proxy.py b/plugins/modules/gcp_compute_target_http_proxy.py index 7d86253..ac49fec 100644 --- a/plugins/modules/gcp_compute_target_http_proxy.py +++ b/plugins/modules/gcp_compute_target_http_proxy.py @@ -43,34 +43,27 @@ requirements: options: state: description: - - Whether the given object should exist in GCP - choices: - - present - - absent - default: present - description: - description: - - An optional description of this resource. - required: false - name: - description: - - Name of the resource. Provided by the client when the resource is created. The - 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 - url_map: - description: - - A reference to the UrlMap resource that defines the mapping from URL to the - BackendService. - - 'This field represents a link to a UrlMap resource in GCP. It can be specified - in two ways. First, you can place a dictionary with key ''selfLink'' and value - of your resource''s selfLink Alternatively, you can add `register: name-of-resource` - to a gcp_compute_url_map task and then set this url_map field to "{{ name-of-resource - }}"' - required: true + description: + - An optional description of this resource. + required: false + name: + description: + - Name of the resource. Provided by the client when the resource is created. The 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 + url_map: + description: + - A reference to the UrlMap resource that defines the mapping from URL to the BackendService. + - 'This field represents a link to a UrlMap resource in GCP. It can be specified in + two ways. You can add `register: name-of-resource` to a gcp_compute_url_map task + and then set this url_map field to "{{ name-of-resource }}" Alternatively, you can + set this url_map to a dictionary with the selfLink key where the value is the selfLink + of your UrlMap.' + required: true extends_documentation_fragment: gcp notes: - 'API Reference: U(https://cloud.google.com/compute/docs/reference/v1/targetHttpProxies)' diff --git a/plugins/modules/gcp_compute_target_https_proxy.py b/plugins/modules/gcp_compute_target_https_proxy.py index e9c632e..319aefa 100644 --- a/plugins/modules/gcp_compute_target_https_proxy.py +++ b/plugins/modules/gcp_compute_target_https_proxy.py @@ -43,65 +43,42 @@ requirements: options: state: description: - - Whether the given object should exist in GCP - choices: - - present - - absent - default: present - description: - description: - - An optional description of this resource. - required: false - name: - description: - - Name of the resource. Provided by the client when the resource is created. The - 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 - quic_override: - description: - - Specifies the QUIC override policy for this resource. This determines whether - the load balancer will attempt to negotiate QUIC with clients or not. Can specify - one of NONE, ENABLE, or DISABLE. If NONE is specified, uses the QUIC policy - with no user overrides, which is equivalent to DISABLE. Not specifying this - field is equivalent to specifying NONE. - required: false - version_added: 2.7 - choices: - - NONE - - ENABLE - - DISABLE - ssl_certificates: - description: - - A list of SslCertificate resources that are used to authenticate connections - between users and the load balancer. Currently, exactly one SSL certificate - must be specified. - required: true - ssl_policy: - description: - - A reference to the SslPolicy resource that will be associated with the TargetHttpsProxy - resource. If not set, the TargetHttpsProxy resource will not have any SSL policy - configured. - - 'This field represents a link to a SslPolicy resource in GCP. It can be specified - in two ways. First, you can place a dictionary with key ''selfLink'' and value - of your resource''s selfLink Alternatively, you can add `register: name-of-resource` - to a gcp_compute_ssl_policy task and then set this ssl_policy field to "{{ name-of-resource - }}"' - required: false - version_added: 2.8 - url_map: - description: - - A reference to the UrlMap resource that defines the mapping from URL to the - BackendService. - - 'This field represents a link to a UrlMap resource in GCP. It can be specified - in two ways. First, you can place a dictionary with key ''selfLink'' and value - of your resource''s selfLink Alternatively, you can add `register: name-of-resource` - to a gcp_compute_url_map task and then set this url_map field to "{{ name-of-resource - }}"' - required: true + description: + - An optional description of this resource. + required: false + name: + description: + - Name of the resource. Provided by the client when the resource is created. The 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 + quic_override: + description: + - Specifies the QUIC override policy for this resource. This determines whether the + load balancer will attempt to negotiate QUIC with clients or not. Can specify one + of NONE, ENABLE, or DISABLE. If NONE is specified, uses the QUIC policy with no + user overrides, which is equivalent to DISABLE. Not specifying this field is equivalent + to specifying NONE. + required: false + version_added: 2.7 + choices: ['NONE', 'ENABLE', 'DISABLE'] + ssl_certificates: + description: + - A list of SslCertificate resources that are used to authenticate connections between + users and the load balancer. Currently, exactly one SSL certificate must be specified. + required: true + url_map: + description: + - A reference to the UrlMap resource that defines the mapping from URL to the BackendService. + - 'This field represents a link to a UrlMap resource in GCP. It can be specified in + two ways. You can add `register: name-of-resource` to a gcp_compute_url_map task + and then set this url_map field to "{{ name-of-resource }}" Alternatively, you can + set this url_map to a dictionary with the selfLink key where the value is the selfLink + of your UrlMap.' + required: true extends_documentation_fragment: gcp notes: - 'API Reference: U(https://cloud.google.com/compute/docs/reference/v1/targetHttpsProxies)' diff --git a/plugins/modules/gcp_compute_target_pool.py b/plugins/modules/gcp_compute_target_pool.py index 8eab114..010051a 100644 --- a/plugins/modules/gcp_compute_target_pool.py +++ b/plugins/modules/gcp_compute_target_pool.py @@ -40,93 +40,88 @@ requirements: - requests >= 2.18.4 - google-auth >= 1.3.0 options: - state: + state: + description: + - Whether the given object should exist in GCP + choices: ['present', 'absent'] + default: 'present' + backup_pool: + description: + - This field is applicable only when the containing target pool is serving a forwarding + rule as the primary pool, and its failoverRatio field is properly set to a value + between [0, 1]. + - 'backupPool and failoverRatio together define the fallback behavior of the primary + target pool: if the ratio of the healthy instances in the primary pool is at or + below failoverRatio, traffic arriving at the load-balanced IP will be directed to + the backup pool.' + - In case where failoverRatio and backupPool are not set, or all the instances in + the backup pool are unhealthy, the traffic will be directed back to the primary + pool in the "force" mode, where traffic will be spread to the healthy instances + with the best effort, or to all instances when no instance is healthy. + - 'This field represents a link to a TargetPool resource in GCP. It can be specified + in two ways. You can add `register: name-of-resource` to a gcp_compute_target_pool + task and then set this backup_pool field to "{{ name-of-resource }}" Alternatively, + you can set this backup_pool to a dictionary with the selfLink key where the value + is the selfLink of your TargetPool.' + required: false description: - - Whether the given object should exist in GCP - choices: - - present - - absent - default: present - backup_pool: - description: - - This field is applicable only when the containing target pool is serving a forwarding - rule as the primary pool, and its failoverRatio field is properly set to a value - between [0, 1]. - - 'backupPool and failoverRatio together define the fallback behavior of the primary - target pool: if the ratio of the healthy instances in the primary pool is at - or below failoverRatio, traffic arriving at the load-balanced IP will be directed - to the backup pool.' - - In case where failoverRatio and backupPool are not set, or all the instances - in the backup pool are unhealthy, the traffic will be directed back to the primary - pool in the "force" mode, where traffic will be spread to the healthy instances - with the best effort, or to all instances when no instance is healthy. - - 'This field represents a link to a TargetPool resource in GCP. It can be specified - in two ways. First, you can place a dictionary with key ''selfLink'' and value - of your resource''s selfLink Alternatively, you can add `register: name-of-resource` - to a gcp_compute_target_pool task and then set this backup_pool field to "{{ - name-of-resource }}"' - required: false - description: - description: - - An optional description of this resource. - required: false - failover_ratio: - description: - - This field is applicable only when the containing target pool is serving a forwarding - rule as the primary pool (i.e., not as a backup pool to some other target pool). - The value of the field must be in [0, 1]. - - 'If set, backupPool must also be set. They together define the fallback behavior - of the primary target pool: if the ratio of the healthy instances in the primary - pool is at or below this number, traffic arriving at the load-balanced IP will - be directed to the backup pool.' - - In case where failoverRatio is not set or all the instances in the backup pool - are unhealthy, the traffic will be directed back to the primary pool in the - "force" mode, where traffic will be spread to the healthy instances with the - best effort, or to all instances when no instance is healthy. - required: false - health_check: - description: - - A reference to a HttpHealthCheck resource. - - A member instance in this pool is considered healthy if and only if the health - checks pass. If not specified it means all member instances will be considered - healthy at all times. - - 'This field represents a link to a HttpHealthCheck resource in GCP. It can be - specified in two ways. First, you can place a dictionary with key ''selfLink'' - and value of your resource''s selfLink Alternatively, you can add `register: - name-of-resource` to a gcp_compute_http_health_check task and then set this - health_check field to "{{ name-of-resource }}"' - required: false - instances: - description: - - A list of virtual machine instances serving this pool. - - They must live in zones contained in the same region as this pool. - required: false - name: - description: - - Name of the resource. Provided by the client when the resource is created. The - 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 - session_affinity: - description: - - 'Session affinity option. Must be one of these values: - NONE: Connections from - the same client IP may go to any instance in the pool.' - - "- CLIENT_IP: Connections from the same client IP will go to the same instance - in the pool while that instance remains healthy." - - "- CLIENT_IP_PROTO: Connections from the same client IP with the same IP protocol - will go to the same instance in the pool while that instance remains healthy." - required: false - choices: - - NONE - - CLIENT_IP - - CLIENT_IP_PROTO - region: - description: - - The region where the target pool resides. - required: true + description: + - An optional description of this resource. + required: false + failover_ratio: + description: + - This field is applicable only when the containing target pool is serving a forwarding + rule as the primary pool (i.e., not as a backup pool to some other target pool). + The value of the field must be in [0, 1]. + - 'If set, backupPool must also be set. They together define the fallback behavior + of the primary target pool: if the ratio of the healthy instances in the primary + pool is at or below this number, traffic arriving at the load-balanced IP will be + directed to the backup pool.' + - In case where failoverRatio is not set or all the instances in the backup pool are + unhealthy, the traffic will be directed back to the primary pool in the "force" + mode, where traffic will be spread to the healthy instances with the best effort, + or to all instances when no instance is healthy. + required: false + health_check: + description: + - A reference to a HttpHealthCheck resource. + - A member instance in this pool is considered healthy if and only if the health checks + pass. If not specified it means all member instances will be considered healthy + at all times. + - 'This field represents a link to a HttpHealthCheck resource in GCP. It can be specified + in two ways. You can add `register: name-of-resource` to a gcp_compute_http_health_check + task and then set this health_check field to "{{ name-of-resource }}" Alternatively, + you can set this health_check to a dictionary with the selfLink key where the value + is the selfLink of your HttpHealthCheck.' + required: false + instances: + description: + - A list of virtual machine instances serving this pool. + - They must live in zones contained in the same region as this pool. + required: false + name: + description: + - Name of the resource. Provided by the client when the resource is created. The 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 + session_affinity: + description: + - 'Session affinity option. Must be one of these values: - NONE: Connections from + the same client IP may go to any instance in the pool.' + - "- CLIENT_IP: Connections from the same client IP will go to the same instance + in the pool while that instance remains healthy." + - "- CLIENT_IP_PROTO: Connections from the same client IP with the same IP protocol + will go to the same instance in the pool while that instance remains healthy." + required: false + choices: ['NONE', 'CLIENT_IP', 'CLIENT_IP_PROTO'] + region: + description: + - The region where the target pool resides. + required: true extends_documentation_fragment: gcp notes: - 'API Reference: U(https://cloud.google.com/compute/docs/reference/rest/v1/targetPools)' diff --git a/plugins/modules/gcp_compute_target_ssl_proxy.py b/plugins/modules/gcp_compute_target_ssl_proxy.py index 53abd11..6ffca08 100644 --- a/plugins/modules/gcp_compute_target_ssl_proxy.py +++ b/plugins/modules/gcp_compute_target_ssl_proxy.py @@ -43,59 +43,38 @@ requirements: options: state: description: - - Whether the given object should exist in GCP - choices: - - present - - absent - default: present - description: - description: - - An optional description of this resource. - required: false - name: - description: - - Name of the resource. Provided by the client when the resource is created. The - 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 - proxy_header: - description: - - Specifies the type of proxy header to append before sending data to the backend, - either NONE or PROXY_V1. The default is NONE. - required: false - choices: - - NONE - - PROXY_V1 - service: - description: - - A reference to the BackendService resource. - - 'This field represents a link to a BackendService resource in GCP. It can be - specified in two ways. First, you can place a dictionary with key ''selfLink'' - and value of your resource''s selfLink Alternatively, you can add `register: - name-of-resource` to a gcp_compute_backend_service task and then set this service - field to "{{ name-of-resource }}"' - required: true - ssl_certificates: - description: - - A list of SslCertificate resources that are used to authenticate connections - between users and the load balancer. Currently, exactly one SSL certificate - must be specified. - required: true - ssl_policy: - description: - - A reference to the SslPolicy resource that will be associated with the TargetSslProxy - resource. If not set, the TargetSslProxy resource will not have any SSL policy - configured. - - 'This field represents a link to a SslPolicy resource in GCP. It can be specified - in two ways. First, you can place a dictionary with key ''selfLink'' and value - of your resource''s selfLink Alternatively, you can add `register: name-of-resource` - to a gcp_compute_ssl_policy task and then set this ssl_policy field to "{{ name-of-resource - }}"' - required: false - version_added: 2.8 + description: + - An optional description of this resource. + required: false + name: + description: + - Name of the resource. Provided by the client when the resource is created. The 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 + proxy_header: + description: + - Specifies the type of proxy header to append before sending data to the backend, + either NONE or PROXY_V1. The default is NONE. + required: false + choices: ['NONE', 'PROXY_V1'] + service: + description: + - A reference to the BackendService resource. + - 'This field represents a link to a BackendService resource in GCP. It can be specified + in two ways. You can add `register: name-of-resource` to a gcp_compute_backend_service + task and then set this service field to "{{ name-of-resource }}" Alternatively, + you can set this service to a dictionary with the selfLink key where the value is + the selfLink of your BackendService.' + required: true + ssl_certificates: + description: + - A list of SslCertificate resources that are used to authenticate connections between + users and the load balancer. Currently, exactly one SSL certificate must be specified. + required: true extends_documentation_fragment: gcp notes: - 'API Reference: U(https://cloud.google.com/compute/docs/reference/v1/targetSslProxies)' diff --git a/plugins/modules/gcp_compute_target_tcp_proxy.py b/plugins/modules/gcp_compute_target_tcp_proxy.py index 98c9226..c37023b 100644 --- a/plugins/modules/gcp_compute_target_tcp_proxy.py +++ b/plugins/modules/gcp_compute_target_tcp_proxy.py @@ -43,41 +43,33 @@ requirements: options: state: description: - - Whether the given object should exist in GCP - choices: - - present - - absent - default: present - description: - description: - - An optional description of this resource. - required: false - name: - description: - - Name of the resource. Provided by the client when the resource is created. The - 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 - proxy_header: - description: - - Specifies the type of proxy header to append before sending data to the backend, - either NONE or PROXY_V1. The default is NONE. - required: false - choices: - - NONE - - PROXY_V1 - service: - description: - - A reference to the BackendService resource. - - 'This field represents a link to a BackendService resource in GCP. It can be - specified in two ways. First, you can place a dictionary with key ''selfLink'' - and value of your resource''s selfLink Alternatively, you can add `register: - name-of-resource` to a gcp_compute_backend_service task and then set this service - field to "{{ name-of-resource }}"' - required: true + description: + - An optional description of this resource. + required: false + name: + description: + - Name of the resource. Provided by the client when the resource is created. The 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 + proxy_header: + description: + - Specifies the type of proxy header to append before sending data to the backend, + either NONE or PROXY_V1. The default is NONE. + required: false + choices: ['NONE', 'PROXY_V1'] + service: + description: + - A reference to the BackendService resource. + - 'This field represents a link to a BackendService resource in GCP. It can be specified + in two ways. You can add `register: name-of-resource` to a gcp_compute_backend_service + task and then set this service field to "{{ name-of-resource }}" Alternatively, + you can set this service to a dictionary with the selfLink key where the value is + the selfLink of your BackendService.' + required: true extends_documentation_fragment: gcp notes: - 'API Reference: U(https://cloud.google.com/compute/docs/reference/v1/targetTcpProxies)' diff --git a/plugins/modules/gcp_compute_target_vpn_gateway.py b/plugins/modules/gcp_compute_target_vpn_gateway.py index 29f8088..a8abd3b 100644 --- a/plugins/modules/gcp_compute_target_vpn_gateway.py +++ b/plugins/modules/gcp_compute_target_vpn_gateway.py @@ -43,37 +43,31 @@ requirements: options: state: description: - - Whether the given object should exist in GCP - choices: - - present - - absent - default: present - description: - description: - - An optional description of this resource. - required: false - name: - description: - - Name of the resource. Provided by the client when the resource is created. The - 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 - network: - description: - - The network this VPN gateway is accepting traffic for. - - 'This field represents a link to a Network resource in GCP. It can be specified - in two ways. First, you can place a dictionary with key ''selfLink'' and value - of your resource''s selfLink Alternatively, you can add `register: name-of-resource` - to a gcp_compute_network task and then set this network field to "{{ name-of-resource - }}"' - required: true - region: - description: - - The region this gateway should sit in. - required: true + description: + - An optional description of this resource. + required: false + name: + description: + - Name of the resource. Provided by the client when the resource is created. The 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 + network: + description: + - The network this VPN gateway is accepting traffic for. + - 'This field represents a link to a Network resource in GCP. It can be specified + in two ways. You can add `register: name-of-resource` to a gcp_compute_network task + and then set this network field to "{{ name-of-resource }}" Alternatively, you can + set this network to a dictionary with the selfLink key where the value is the selfLink + of your Network.' + required: true + region: + description: + - The region this gateway should sit in. + required: true extends_documentation_fragment: gcp notes: - 'API Reference: U(https://cloud.google.com/compute/docs/reference/rest/v1/targetVpnGateways)' diff --git a/plugins/modules/gcp_compute_url_map.py b/plugins/modules/gcp_compute_url_map.py index 483a3dd..5f7d019 100644 --- a/plugins/modules/gcp_compute_url_map.py +++ b/plugins/modules/gcp_compute_url_map.py @@ -74,14 +74,12 @@ options: required: false hosts: description: - - The list of host patterns to match. They must be valid hostnames, except - * will match any string of ([a-z0-9-.]*). In that case, * must be the first - character and must be followed in the pattern by either - or . - required: true - path_matcher: - description: - - The name of the PathMatcher to use to match the path portion of the URL - if the hostRule matches the URL's host portion. + - A reference to BackendService resource if none of the hostRules match. + - 'This field represents a link to a BackendService resource in GCP. It can be specified + in two ways. You can add `register: name-of-resource` to a gcp_compute_backend_service + task and then set this default_service field to "{{ name-of-resource }}" Alternatively, + you can set this default_service to a dictionary with the selfLink key where the + value is the selfLink of your BackendService.' required: true name: description: @@ -120,50 +118,70 @@ options: - The list of path rules. required: false suboptions: - paths: + default_service: + description: + - A reference to a BackendService resource. This will be used if none of the pathRules + defined by this PathMatcher is matched by the URL's path portion. + - 'This field represents a link to a BackendService resource in GCP. It can be specified + in two ways. You can add `register: name-of-resource` to a gcp_compute_backend_service + task and then set this default_service field to "{{ name-of-resource }}" Alternatively, + you can set this default_service to a dictionary with the selfLink key where the + value is the selfLink of your BackendService.' + required: false description: - - 'The list of path patterns to match. Each must start with / and the - only place a * is allowed is at the end following a /. The string fed - to the path matcher does not include any text after the first ? or #, - and those chars are not allowed here.' - required: true - service: - description: - - A reference to the BackendService resource if this rule is matched. - - 'This field represents a link to a BackendService resource in GCP. It - can be specified in two ways. First, you can place a dictionary with - key ''selfLink'' and value of your resource''s selfLink Alternatively, - you can add `register: name-of-resource` to a gcp_compute_backend_service - task and then set this service field to "{{ name-of-resource }}"' - required: true - tests: - description: - - The list of expected URL mappings. Requests to update this UrlMap will succeed - only if all of the test cases pass. - required: false - suboptions: - description: + description: + - An optional description of this resource. + required: false + name: + description: + - The name to which this PathMatcher is referred by the HostRule. + required: false + path_rules: + description: + - The list of path rules. + required: false + suboptions: + paths: + description: + - 'The list of path patterns to match. Each must start with / and the only place a + * is allowed is at the end following a /. The string fed to the path matcher does + not include any text after the first ? or #, and those chars are not allowed here.' + required: false + service: + description: + - A reference to the BackendService resource if this rule is matched. + - 'This field represents a link to a BackendService resource in GCP. It can be specified + in two ways. You can add `register: name-of-resource` to a gcp_compute_backend_service + task and then set this service field to "{{ name-of-resource }}" Alternatively, + you can set this service to a dictionary with the selfLink key where the value is + the selfLink of your BackendService.' + required: false + tests: description: - Description of this test case. required: false - host: - description: - - Host portion of the URL. - required: true - path: - description: - - Path portion of the URL. - required: true - service: - description: - - A reference to expected BackendService resource the given URL should be - mapped to. - - 'This field represents a link to a BackendService resource in GCP. It can - be specified in two ways. First, you can place a dictionary with key ''selfLink'' - and value of your resource''s selfLink Alternatively, you can add `register: - name-of-resource` to a gcp_compute_backend_service task and then set this - service field to "{{ name-of-resource }}"' - required: true + suboptions: + description: + description: + - Description of this test case. + required: false + host: + description: + - Host portion of the URL. + required: false + path: + description: + - Path portion of the URL. + required: false + service: + description: + - A reference to expected BackendService resource the given URL should be mapped to. + - 'This field represents a link to a BackendService resource in GCP. It can be specified + in two ways. You can add `register: name-of-resource` to a gcp_compute_backend_service + task and then set this service field to "{{ name-of-resource }}" Alternatively, + you can set this service to a dictionary with the selfLink key where the value is + the selfLink of your BackendService.' + required: false extends_documentation_fragment: gcp ''' diff --git a/plugins/modules/gcp_compute_vpn_tunnel.py b/plugins/modules/gcp_compute_vpn_tunnel.py index 6359993..cd28baf 100644 --- a/plugins/modules/gcp_compute_vpn_tunnel.py +++ b/plugins/modules/gcp_compute_vpn_tunnel.py @@ -42,74 +42,64 @@ requirements: options: state: description: - - Whether the given object should exist in GCP - choices: - - present - - absent - default: present - name: - description: - - Name of the resource. The 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 - description: - description: - - An optional description of this resource. - required: false - target_vpn_gateway: - description: - - URL of the Target VPN gateway with which this VPN tunnel is associated. - - 'This field represents a link to a TargetVpnGateway resource in GCP. It can - be specified in two ways. First, you can place a dictionary with key ''selfLink'' - and value of your resource''s selfLink Alternatively, you can add `register: - name-of-resource` to a gcp_compute_target_vpn_gateway task and then set this - target_vpn_gateway field to "{{ name-of-resource }}"' - required: true - router: - description: - - URL of router resource to be used for dynamic routing. - - 'This field represents a link to a Router resource in GCP. It can be specified - in two ways. First, you can place a dictionary with key ''selfLink'' and value - of your resource''s selfLink Alternatively, you can add `register: name-of-resource` - to a gcp_compute_router task and then set this router field to "{{ name-of-resource - }}"' - required: false - peer_ip: - description: - - IP address of the peer VPN gateway. Only IPv4 is supported. - required: true - shared_secret: - description: - - Shared secret used to set the secure session between the Cloud VPN gateway and - the peer VPN gateway. - required: true - ike_version: - description: - - IKE protocol version to use when establishing the VPN tunnel with peer VPN gateway. - - Acceptable IKE versions are 1 or 2. Default version is 2. - required: false - default: '2' - local_traffic_selector: - description: - - Local traffic selector to use when establishing the VPN tunnel with peer VPN - gateway. The value should be a CIDR formatted string, for example `192.168.0.0/16`. - The ranges should be disjoint. - - Only IPv4 is supported. - required: false - remote_traffic_selector: - description: - - Remote traffic selector to use when establishing the VPN tunnel with peer VPN - gateway. The value should be a CIDR formatted string, for example `192.168.0.0/16`. - The ranges should be disjoint. - - Only IPv4 is supported. - required: false - region: - description: - - The region where the tunnel is located. - required: true + description: + - An optional description of this resource. + required: false + target_vpn_gateway: + description: + - URL of the Target VPN gateway with which this VPN tunnel is associated. + - 'This field represents a link to a TargetVpnGateway resource in GCP. It can be specified + in two ways. You can add `register: name-of-resource` to a gcp_compute_target_vpn_gateway + task and then set this target_vpn_gateway field to "{{ name-of-resource }}" Alternatively, + you can set this target_vpn_gateway to a dictionary with the selfLink key where + the value is the selfLink of your TargetVpnGateway.' + required: true + router: + description: + - URL of router resource to be used for dynamic routing. + - 'This field represents a link to a Router resource in GCP. It can be specified in + two ways. You can add `register: name-of-resource` to a gcp_compute_router task + and then set this router field to "{{ name-of-resource }}" Alternatively, you can + set this router to a dictionary with the selfLink key where the value is the selfLink + of your Router.' + required: false + peer_ip: + description: + - IP address of the peer VPN gateway. Only IPv4 is supported. + required: true + shared_secret: + description: + - Shared secret used to set the secure session between the Cloud VPN gateway and the + peer VPN gateway. + required: true + ike_version: + description: + - IKE protocol version to use when establishing the VPN tunnel with peer VPN gateway. + - Acceptable IKE versions are 1 or 2. Default version is 2. + required: false + default: 2 + local_traffic_selector: + description: + - Local traffic selector to use when establishing the VPN tunnel with peer VPN gateway. + The value should be a CIDR formatted string, for example `192.168.0.0/16`. The ranges + should be disjoint. + - Only IPv4 is supported. + required: false + remote_traffic_selector: + description: + - Remote traffic selector to use when establishing the VPN tunnel with peer VPN gateway. + The value should be a CIDR formatted string, for example `192.168.0.0/16`. The ranges + should be disjoint. + - Only IPv4 is supported. + required: false + labels: + description: + - Labels to apply to this VpnTunnel. + required: false + region: + description: + - The region where the tunnel is located. + required: true extends_documentation_fragment: gcp notes: - 'API Reference: U(https://cloud.google.com/compute/docs/reference/rest/v1/vpnTunnels)' diff --git a/plugins/modules/gcp_container_node_pool.py b/plugins/modules/gcp_container_node_pool.py index 2ea3695..70453b5 100644 --- a/plugins/modules/gcp_container_node_pool.py +++ b/plugins/modules/gcp_container_node_pool.py @@ -109,16 +109,14 @@ options: required: false labels: description: - - 'The map of Kubernetes labels (key/value pairs) to be applied to each node. - These will added in addition to any default label(s) that Kubernetes may - apply to the node. In case of conflict in label keys, the applied set may - differ depending on the Kubernetes version -- it''s best to assume the behavior - is undefined and conflicts should be avoided. For more information, including - usage and the valid values, see: U(http://kubernetes.io/v1.1/docs/user-guide/labels.html) - An object containing a list of "key": value pairs.' - - 'Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.' - required: false - local_ssd_count: + - The cluster this node pool belongs to. + - 'This field represents a link to a Cluster resource in GCP. It can be specified + in two ways. You can add `register: name-of-resource` to a gcp_container_cluster + task and then set this cluster field to "{{ name-of-resource }}" Alternatively, + you can set this cluster to a dictionary with the name key where the value is the + name of your Cluster.' + required: true + zone: description: - The number of local SSD disks to be attached to the node. - 'The limit for this value is dependant upon the maximum number of disks diff --git a/plugins/modules/gcp_dns_resource_record_set.py b/plugins/modules/gcp_dns_resource_record_set.py index e24a42d..cd3b255 100644 --- a/plugins/modules/gcp_dns_resource_record_set.py +++ b/plugins/modules/gcp_dns_resource_record_set.py @@ -44,52 +44,38 @@ requirements: - requests >= 2.18.4 - google-auth >= 1.3.0 options: - state: - description: - - Whether the given object should exist in GCP - choices: - - present - - absent - default: present - name: - description: - - For example, U(www.example.com.) - required: true - type: - description: - - One of valid DNS resource types. - required: true - choices: - - A - - AAAA - - CAA - - CNAME - - MX - - NAPTR - - NS - - PTR - - SOA - - SPF - - SRV - - TLSA - - TXT - ttl: - description: - - Number of seconds that this ResourceRecordSet can be cached by resolvers. - required: false - target: - description: - - As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1) . - required: false - managed_zone: - description: - - Identifies the managed zone addressed by this request. - - 'This field represents a link to a ManagedZone resource in GCP. It can be specified - in two ways. First, you can place a dictionary with key ''name'' and value of - your resource''s name Alternatively, you can add `register: name-of-resource` - to a gcp_dns_managed_zone task and then set this managed_zone field to "{{ name-of-resource - }}"' - required: true + state: + description: + - Whether the given object should exist in GCP + choices: ['present', 'absent'] + default: 'present' + name: + description: + - For example, U(www.example.com.) + required: true + type: + description: + - One of valid DNS resource types. + required: true + choices: ['A', 'AAAA', 'CAA', 'CNAME', 'MX', 'NAPTR', 'NS', 'PTR', 'SOA', 'SPF', 'SRV', 'TXT'] + ttl: + description: + - Number of seconds that this ResourceRecordSet can be cached by resolvers. + required: false + target: + description: + - As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1) . + required: false + managed_zone: + description: + - Identifies the managed zone addressed by this request. + - Can be the managed zone name or id. + - 'This field represents a link to a ManagedZone resource in GCP. It can be specified + in two ways. You can add `register: name-of-resource` to a gcp_dns_managed_zone + task and then set this managed_zone field to "{{ name-of-resource }}" Alternatively, + you can set this managed_zone to a dictionary with the name key where the value + is the name of your ManagedZone.' + required: true extends_documentation_fragment: gcp ''' diff --git a/plugins/modules/gcp_dns_resource_record_set_facts.py b/plugins/modules/gcp_dns_resource_record_set_facts.py index 99fc6ae..edafba4 100644 --- a/plugins/modules/gcp_dns_resource_record_set_facts.py +++ b/plugins/modules/gcp_dns_resource_record_set_facts.py @@ -45,6 +45,11 @@ options: description: - Identifies the managed zone addressed by this request. - Can be the managed zone name or id. + - 'This field represents a link to a ManagedZone resource in GCP. It can be specified + in two ways. You can add `register: name-of-resource` to a gcp_dns_managed_zone + task and then set this managed_zone field to "{{ name-of-resource }}" Alternatively, + you can set this managed_zone to a dictionary with the name key where the value + is the name of your ManagedZone.' required: true extends_documentation_fragment: gcp ''' diff --git a/plugins/modules/gcp_pubsub_subscription.py b/plugins/modules/gcp_pubsub_subscription.py index a2409b0..346978b 100644 --- a/plugins/modules/gcp_pubsub_subscription.py +++ b/plugins/modules/gcp_pubsub_subscription.py @@ -75,10 +75,14 @@ options: suboptions: push_endpoint: description: - - A URL locating the endpoint to which messages should be pushed. - - For example, a Webhook endpoint might use "U(https://example.com/push".) - required: true - attributes: + - A reference to a Topic resource. + - 'This field represents a link to a Topic resource in GCP. It can be specified in + two ways. You can add `register: name-of-resource` to a gcp_pubsub_topic task and + then set this topic field to "{{ name-of-resource }}" Alternatively, you can set + this topic to a dictionary with the name key where the value is the name of your + Topic.' + required: false + push_config: description: - Endpoint configuration attributes. - Every endpoint has a set of API supported attributes that can be used to diff --git a/plugins/modules/gcp_spanner_database.py b/plugins/modules/gcp_spanner_database.py index 8cf84ad..61542eb 100644 --- a/plugins/modules/gcp_spanner_database.py +++ b/plugins/modules/gcp_spanner_database.py @@ -40,34 +40,32 @@ requirements: - requests >= 2.18.4 - google-auth >= 1.3.0 options: - state: - description: - - Whether the given object should exist in GCP - choices: - - present - - absent - default: present - name: - description: - - A unique identifier for the database, which cannot be changed after the instance - is created. Values are of the form [a-z][-a-z0-9]*[a-z0-9]. - required: true - extra_statements: - description: - - 'An optional list of DDL statements to run inside the newly created database. - Statements can create tables, indexes, etc. These statements execute atomically - with the creation of the database: if there is an error in any statement, the - database is not created.' - required: false - instance: - description: - - The instance to create the database on. - - 'This field represents a link to a Instance resource in GCP. It can be specified - in two ways. First, you can place a dictionary with key ''name'' and value of - your resource''s name Alternatively, you can add `register: name-of-resource` - to a gcp_spanner_instance task and then set this instance field to "{{ name-of-resource - }}"' - required: true + state: + description: + - Whether the given object should exist in GCP + choices: ['present', 'absent'] + default: 'present' + name: + description: + - A unique identifier for the database, which cannot be changed after the instance + is created. Values are of the form projects//instances/[a-z][-a-z0-9]*[a-z0-9]. + The final segment of the name must be between 6 and 30 characters in length. + required: false + extra_statements: + description: + - 'An optional list of DDL statements to run inside the newly created database. Statements + can create tables, indexes, etc. These statements execute atomically with the creation + of the database: if there is an error in any statement, the database is not created.' + required: false + instance: + description: + - The instance to create the database on. + - 'This field represents a link to a Instance resource in GCP. It can be specified + in two ways. You can add `register: name-of-resource` to a gcp_spanner_instance + task and then set this instance field to "{{ name-of-resource }}" Alternatively, + you can set this instance to a dictionary with the name key where the value is the + name of your Instance.' + required: true extends_documentation_fragment: gcp notes: - 'API Reference: U(https://cloud.google.com/spanner/docs/reference/rest/v1/projects.instances.databases)' diff --git a/plugins/modules/gcp_sql_database.py b/plugins/modules/gcp_sql_database.py index 465ebbc..361692f 100644 --- a/plugins/modules/gcp_sql_database.py +++ b/plugins/modules/gcp_sql_database.py @@ -40,30 +40,33 @@ requirements: - requests >= 2.18.4 - google-auth >= 1.3.0 options: - state: - description: - - Whether the given object should exist in GCP - choices: - - present - - absent - default: present - charset: - description: - - The MySQL charset value. - required: false - collation: - description: - - The MySQL collation value. - required: false - name: - description: - - The name of the database in the Cloud SQL instance. - - This does not include the project ID or instance name. - required: true - instance: - description: - - The name of the Cloud SQL instance. This does not include the project ID. - required: true + state: + description: + - Whether the given object should exist in GCP + choices: ['present', 'absent'] + default: 'present' + charset: + description: + - The MySQL charset value. + required: false + collation: + description: + - The MySQL collation value. + required: false + name: + description: + - The name of the database in the Cloud SQL instance. + - This does not include the project ID or instance name. + required: false + instance: + description: + - The name of the Cloud SQL instance. This does not include the project ID. + - 'This field represents a link to a Instance resource in GCP. It can be specified + in two ways. You can add `register: name-of-resource` to a gcp_sql_instance task + and then set this instance field to "{{ name-of-resource }}" Alternatively, you + can set this instance to a dictionary with the name key where the value is the name + of your Instance.' + required: true extends_documentation_fragment: gcp ''' diff --git a/plugins/modules/gcp_sql_user.py b/plugins/modules/gcp_sql_user.py index 847daae..384a152 100644 --- a/plugins/modules/gcp_sql_user.py +++ b/plugins/modules/gcp_sql_user.py @@ -40,36 +40,34 @@ requirements: - requests >= 2.18.4 - google-auth >= 1.3.0 options: - state: - description: - - Whether the given object should exist in GCP - choices: - - present - - absent - default: present - host: - description: - - The host name from which the user can connect. For insert operations, host defaults - to an empty string. For update operations, host is specified as part of the - request URL. The host name cannot be updated after insertion. - required: true - name: - description: - - The name of the user in the Cloud SQL instance. - required: true - instance: - description: - - The name of the Cloud SQL instance. This does not include the project ID. - - 'This field represents a link to a Instance resource in GCP. It can be specified - in two ways. First, you can place a dictionary with key ''name'' and value of - your resource''s name Alternatively, you can add `register: name-of-resource` - to a gcp_sql_instance task and then set this instance field to "{{ name-of-resource - }}"' - required: true - password: - description: - - The password for the user. - required: false + state: + description: + - Whether the given object should exist in GCP + choices: ['present', 'absent'] + default: 'present' + host: + description: + - The host name from which the user can connect. For insert operations, host defaults + to an empty string. For update operations, host is specified as part of the request + URL. The host name cannot be updated after insertion. + required: true + name: + description: + - The name of the user in the Cloud SQL instance. + required: true + instance: + description: + - The name of the Cloud SQL instance. This does not include the project ID. + - 'This field represents a link to a Instance resource in GCP. It can be specified + in two ways. You can add `register: name-of-resource` to a gcp_sql_instance task + and then set this instance field to "{{ name-of-resource }}" Alternatively, you + can set this instance to a dictionary with the name key where the value is the name + of your Instance.' + required: true + password: + description: + - The password for the user. + required: false extends_documentation_fragment: gcp ''' diff --git a/plugins/modules/gcp_storage_bucket.py b/plugins/modules/gcp_storage_bucket.py index 4eff31b..94d4231 100644 --- a/plugins/modules/gcp_storage_bucket.py +++ b/plugins/modules/gcp_storage_bucket.py @@ -80,7 +80,62 @@ options: description: - The ID for the entity. required: false - project_team: + suboptions: + bucket: + description: + - The name of the bucket. + - 'This field represents a link to a Bucket resource in GCP. It can be specified in + two ways. You can add `register: name-of-resource` to a gcp_storage_bucket task + and then set this bucket field to "{{ name-of-resource }}" Alternatively, you can + set this bucket to a dictionary with the name key where the value is the name of + your Bucket.' + required: true + domain: + description: + - The domain associated with the entity. + required: false + email: + description: + - The email address associated with the entity. + required: false + entity: + description: + - 'The entity holding the permission, in one of the following forms: user-userId + user-email group-groupId group-email domain-domain project-team-projectId allUsers + allAuthenticatedUsers Examples: The user liz@example.com would be + user-liz@example.com.' + - The group example@googlegroups.com would be group-example@googlegroups.com. + - To refer to all members of the Google Apps for Business domain example.com, the + entity would be domain-example.com. + required: true + entity_id: + description: + - The ID for the entity. + required: false + id: + description: + - The ID of the access-control entry. + required: false + project_team: + description: + - The project team associated with the entity. + required: false + suboptions: + project_number: + description: + - The project team associated with the entity. + required: false + team: + description: + - The team. + required: false + choices: ['editors', 'owners', 'viewers'] + role: + description: + - The access permission for the entity. + required: false + choices: ['OWNER', 'READER', 'WRITER'] + cors: description: - The project team associated with the entity. required: false @@ -101,16 +156,71 @@ options: description: - The access permission for the entity. required: false - choices: - - OWNER - - READER - - WRITER - cors: - description: - - The bucket's Cross-Origin Resource Sharing (CORS) configuration. - required: false - suboptions: - max_age_seconds: + version_added: 2.7 + suboptions: + bucket: + description: + - The name of the bucket. + - 'This field represents a link to a Bucket resource in GCP. It can be specified in + two ways. You can add `register: name-of-resource` to a gcp_storage_bucket task + and then set this bucket field to "{{ name-of-resource }}" Alternatively, you can + set this bucket to a dictionary with the name key where the value is the name of + your Bucket.' + required: true + domain: + description: + - The domain associated with the entity. + required: false + email: + description: + - The email address associated with the entity. + required: false + entity: + description: + - 'The entity holding the permission, in one of the following forms: user-userId + user-email group-groupId group-email domain-domain project-team-projectId allUsers + allAuthenticatedUsers Examples: The user liz@example.com would be + user-liz@example.com.' + - The group example@googlegroups.com would be group-example@googlegroups.com. + - To refer to all members of the Google Apps for Business domain example.com, the + entity would be domain-example.com. + required: true + entity_id: + description: + - The ID for the entity. + required: false + generation: + description: + - The content generation of the object, if applied to an object. + required: false + id: + description: + - The ID of the access-control entry. + required: false + object: + description: + - The name of the object, if applied to an object. + required: false + project_team: + description: + - The project team associated with the entity. + required: false + suboptions: + project_number: + description: + - The project team associated with the entity. + required: false + team: + description: + - The team. + required: false + choices: ['editors', 'owners', 'viewers'] + role: + description: + - The access permission for the entity. + required: false + choices: ['OWNER', 'READER'] + lifecycle: description: - The value, in seconds, to return in the Access-Control-Max-Age header used in preflight responses. diff --git a/plugins/modules/gcp_storage_bucket_access_control.py b/plugins/modules/gcp_storage_bucket_access_control.py index b5a12c9..c533085 100644 --- a/plugins/modules/gcp_storage_bucket_access_control.py +++ b/plugins/modules/gcp_storage_bucket_access_control.py @@ -49,41 +49,31 @@ requirements: - requests >= 2.18.4 - google-auth >= 1.3.0 options: - state: - description: - - Whether the given object should exist in GCP - choices: - - present - - absent - default: present - bucket: - description: - - The name of the bucket. - - 'This field represents a link to a Bucket resource in GCP. It can be specified - in two ways. First, you can place a dictionary with key ''name'' and value of - your resource''s name Alternatively, you can add `register: name-of-resource` - to a gcp_storage_bucket task and then set this bucket field to "{{ name-of-resource - }}"' - required: true - entity: - description: - - 'The entity holding the permission, in one of the following forms: user-userId - user-email group-groupId group-email domain-domain project-team-projectId allUsers - allAuthenticatedUsers Examples: The user liz@example.com would be user-liz@example.com.' - - The group example@googlegroups.com would be group-example@googlegroups.com. - - To refer to all members of the Google Apps for Business domain example.com, - the entity would be domain-example.com. - required: true - entity_id: - description: - - The ID for the entity. - required: false - project_team: - description: - - The project team associated with the entity. - required: false - suboptions: - project_number: + state: + description: + - Whether the given object should exist in GCP + choices: ['present', 'absent'] + default: 'present' + bucket: + description: + - The name of the bucket. + - 'This field represents a link to a Bucket resource in GCP. It can be specified in + two ways. You can add `register: name-of-resource` to a gcp_storage_bucket task + and then set this bucket field to "{{ name-of-resource }}" Alternatively, you can + set this bucket to a dictionary with the name key where the value is the name of + your Bucket.' + required: true + entity: + description: + - 'The entity holding the permission, in one of the following forms: user-userId + user-email group-groupId group-email domain-domain project-team-projectId allUsers + allAuthenticatedUsers Examples: The user liz@example.com would be + user-liz@example.com.' + - The group example@googlegroups.com would be group-example@googlegroups.com. + - To refer to all members of the Google Apps for Business domain example.com, the + entity would be domain-example.com. + required: true + entity_id: description: - The project team associated with the entity. required: false