diff --git a/plugins/modules/cloud/google/gcp_bigquery_dataset_facts.py b/plugins/modules/cloud/google/gcp_bigquery_dataset_facts.py deleted file mode 120000 index 048b511508..0000000000 --- a/plugins/modules/cloud/google/gcp_bigquery_dataset_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_bigquery_dataset_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_bigquery_dataset_info.py b/plugins/modules/cloud/google/gcp_bigquery_dataset_info.py deleted file mode 100644 index e06f17b312..0000000000 --- a/plugins/modules/cloud/google/gcp_bigquery_dataset_info.py +++ /dev/null @@ -1,348 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_bigquery_dataset_info -description: -- Gather info for GCP Dataset -short_description: Gather info for GCP Dataset -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on a dataset - gcp_bigquery_dataset_info: - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - name: - description: - - Dataset name. - returned: success - type: str - access: - description: - - An array of objects that define dataset access for one or more entities. - returned: success - type: complex - contains: - domain: - description: - - A domain to grant access to. Any users signed in with the domain specified - will be granted the specified access . - returned: success - type: str - groupByEmail: - description: - - An email address of a Google Group to grant access to. - returned: success - type: str - role: - description: - - Describes the rights granted to the user specified by the other member - of the access object. Primitive, Predefined and custom roles are supported. - Predefined roles that have equivalent primitive roles are swapped by the - API to their Primitive counterparts, and will show a diff post-create. - See [official docs](U(https://cloud.google.com/bigquery/docs/access-control)). - returned: success - type: str - specialGroup: - description: - - A special group to grant access to. - - 'Possible values include: * `projectOwners`: Owners of the enclosing project.' - - "* `projectReaders`: Readers of the enclosing project." - - "* `projectWriters`: Writers of the enclosing project." - - "* `allAuthenticatedUsers`: All authenticated BigQuery users. ." - returned: success - type: str - userByEmail: - description: - - 'An email address of a user to grant access to. For example: fred@example.com - .' - returned: success - type: str - view: - description: - - A view from a different dataset to grant access to. Queries executed against - that view will have read access to tables in this dataset. The role field - is not required when this field is set. If that view is updated by any - user, access to the view needs to be granted again via an update operation. - returned: success - type: complex - contains: - datasetId: - description: - - The ID of the dataset containing this table. - returned: success - type: str - projectId: - description: - - The ID of the project containing this table. - returned: success - type: str - tableId: - description: - - The ID of the table. The ID must contain only letters (a-z, A-Z), - numbers (0-9), or underscores. The maximum length is 1,024 characters. - returned: success - type: str - creationTime: - description: - - The time when this dataset was created, in milliseconds since the epoch. - returned: success - type: int - datasetReference: - description: - - A reference that identifies the dataset. - returned: success - type: complex - contains: - datasetId: - description: - - A unique ID for this dataset, without the project name. The ID must contain - only letters (a-z, A-Z), numbers (0-9), or underscores. The maximum length - is 1,024 characters. - returned: success - type: str - projectId: - description: - - The ID of the project containing this dataset. - returned: success - type: str - defaultTableExpirationMs: - description: - - The default lifetime of all tables in the dataset, in milliseconds. - - The minimum value is 3600000 milliseconds (one hour). - - Once this property is set, all newly-created tables in the dataset will have - an `expirationTime` property set to the creation time plus the value in this - property, and changing the value will only affect new tables, not existing - ones. When the `expirationTime` for a given table is reached, that table will - be deleted automatically. - - If a table's `expirationTime` is modified or removed before the table expires, - or if you provide an explicit `expirationTime` when creating a table, that - value takes precedence over the default expiration time indicated by this - property. - returned: success - type: int - defaultPartitionExpirationMs: - description: - - The default partition expiration for all partitioned tables in the dataset, - in milliseconds. - - Once this property is set, all newly-created partitioned tables in the dataset - will have an `expirationMs` property in the `timePartitioning` settings set - to this value, and changing the value will only affect new tables, not existing - ones. The storage in a partition will have an expiration time of its partition - time plus this value. - - 'Setting this property overrides the use of `defaultTableExpirationMs` for - partitioned tables: only one of `defaultTableExpirationMs` and `defaultPartitionExpirationMs` - will be used for any new partitioned table. If you provide an explicit `timePartitioning.expirationMs` - when creating or updating a partitioned table, that value takes precedence - over the default partition expiration time indicated by this property.' - returned: success - type: int - description: - description: - - A user-friendly description of the dataset. - returned: success - type: str - etag: - description: - - A hash of the resource. - returned: success - type: str - friendlyName: - description: - - A descriptive name for the dataset. - returned: success - type: str - id: - description: - - The fully-qualified unique name of the dataset in the format projectId:datasetId. - The dataset name without the project name is given in the datasetId field - . - returned: success - type: str - labels: - description: - - The labels associated with this dataset. You can use these to organize and - group your datasets . - returned: success - type: dict - lastModifiedTime: - description: - - The date when this dataset or any of its tables was last modified, in milliseconds - since the epoch. - returned: success - type: int - location: - description: - - The geographic location where the dataset should reside. - - See [official docs](U(https://cloud.google.com/bigquery/docs/dataset-locations)). - - There are two types of locations, regional or multi-regional. A regional location - is a specific geographic place, such as Tokyo, and a multi-regional location - is a large geographic area, such as the United States, that contains at least - two geographic places. - - 'Possible regional values include: `asia-east1`, `asia-northeast1`, `asia-southeast1`, - `australia-southeast1`, `europe-north1`, `europe-west2` and `us-east4`.' - - 'Possible multi-regional values: `EU` and `US`.' - - The default value is multi-regional location `US`. - - Changing this forces a new resource to be created. - returned: success - type: str - defaultEncryptionConfiguration: - description: - - The default encryption key for all tables in the dataset. Once this property - is set, all newly-created partitioned tables in the dataset will have encryption - key set to this value, unless table creation request (or query) overrides - the key. - returned: success - type: complex - contains: - kmsKeyName: - description: - - Describes the Cloud KMS encryption key that will be used to protect destination - BigQuery table. The BigQuery Service Account associated with your project - requires access to this encryption key. - returned: success - type: str -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict()) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/bigquery'] - - return_value = {'resources': fetch_list(module, collection(module))} - module.exit_json(**return_value) - - -def collection(module): - return "https://www.googleapis.com/bigquery/v2/projects/{project}/datasets".format(**module.params) - - -def fetch_list(module, link): - auth = GcpSession(module, 'bigquery') - return auth.list(link, return_if_object, array_name='datasets') - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_bigquery_table_facts.py b/plugins/modules/cloud/google/gcp_bigquery_table_facts.py deleted file mode 120000 index 289c79bcfe..0000000000 --- a/plugins/modules/cloud/google/gcp_bigquery_table_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_bigquery_table_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_bigquery_table_info.py b/plugins/modules/cloud/google/gcp_bigquery_table_info.py deleted file mode 100644 index c2ecd4f9ed..0000000000 --- a/plugins/modules/cloud/google/gcp_bigquery_table_info.py +++ /dev/null @@ -1,623 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_bigquery_table_info -description: -- Gather info for GCP Table -short_description: Gather info for GCP Table -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - dataset: - description: - - Name of the dataset. - required: false - type: str - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on a table - gcp_bigquery_table_info: - dataset: example_dataset - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - tableReference: - description: - - Reference describing the ID of this table. - returned: success - type: complex - contains: - datasetId: - description: - - The ID of the dataset containing this table. - returned: success - type: str - projectId: - description: - - The ID of the project containing this table. - returned: success - type: str - tableId: - description: - - The ID of the table. - returned: success - type: str - clustering: - description: - - One or more fields on which data should be clustered. Only top-level, non-repeated, - simple-type fields are supported. When you cluster a table using multiple - columns, the order of columns you specify is important. The order of the specified - columns determines the sort order of the data. - returned: success - type: list - creationTime: - description: - - The time when this dataset was created, in milliseconds since the epoch. - returned: success - type: int - description: - description: - - A user-friendly description of the dataset. - returned: success - type: str - friendlyName: - description: - - A descriptive name for this table. - returned: success - type: str - id: - description: - - An opaque ID uniquely identifying the table. - returned: success - type: str - labels: - description: - - The labels associated with this dataset. You can use these to organize and - group your datasets . - returned: success - type: dict - lastModifiedTime: - description: - - The time when this table was last modified, in milliseconds since the epoch. - returned: success - type: int - location: - description: - - The geographic location where the table resides. This value is inherited from - the dataset. - returned: success - type: str - name: - description: - - Name of the table. - returned: success - type: str - numBytes: - description: - - The size of this table in bytes, excluding any data in the streaming buffer. - returned: success - type: int - numLongTermBytes: - description: - - The number of bytes in the table that are considered "long-term storage". - returned: success - type: int - numRows: - description: - - The number of rows of data in this table, excluding any data in the streaming - buffer. - returned: success - type: int - requirePartitionFilter: - description: - - If set to true, queries over this table require a partition filter that can - be used for partition elimination to be specified. - returned: success - type: bool - type: - description: - - Describes the table type. - returned: success - type: str - view: - description: - - The view definition. - returned: success - type: complex - contains: - useLegacySql: - description: - - Specifies whether to use BigQuery's legacy SQL for this view . - returned: success - type: bool - userDefinedFunctionResources: - description: - - Describes user-defined function resources used in the query. - returned: success - type: complex - contains: - inlineCode: - description: - - An inline resource that contains code for a user-defined function - (UDF). Providing a inline code resource is equivalent to providing - a URI for a file containing the same code. - returned: success - type: str - resourceUri: - description: - - A code resource to load from a Google Cloud Storage URI (gs://bucket/path). - returned: success - type: str - timePartitioning: - description: - - If specified, configures time-based partitioning for this table. - returned: success - type: complex - contains: - expirationMs: - description: - - Number of milliseconds for which to keep the storage for a partition. - returned: success - type: int - field: - description: - - If not set, the table is partitioned by pseudo column, referenced via - either '_PARTITIONTIME' as TIMESTAMP type, or '_PARTITIONDATE' as DATE - type. If field is specified, the table is instead partitioned by this - field. The field must be a top-level TIMESTAMP or DATE field. Its mode - must be NULLABLE or REQUIRED. - returned: success - type: str - type: - description: - - The only type supported is DAY, which will generate one partition per - day. - returned: success - type: str - streamingBuffer: - description: - - Contains information regarding this table's streaming buffer, if one is present. - This field will be absent if the table is not being streamed to or if there - is no data in the streaming buffer. - returned: success - type: complex - contains: - estimatedBytes: - description: - - A lower-bound estimate of the number of bytes currently in the streaming - buffer. - returned: success - type: int - estimatedRows: - description: - - A lower-bound estimate of the number of rows currently in the streaming - buffer. - returned: success - type: int - oldestEntryTime: - description: - - Contains the timestamp of the oldest entry in the streaming buffer, in - milliseconds since the epoch, if the streaming buffer is available. - returned: success - type: int - schema: - description: - - Describes the schema of this table. - returned: success - type: complex - contains: - fields: - description: - - Describes the fields in a table. - returned: success - type: complex - contains: - description: - description: - - The field description. The maximum length is 1,024 characters. - returned: success - type: str - fields: - description: - - Describes the nested schema fields if the type property is set to - RECORD. - returned: success - type: list - mode: - description: - - The field mode. - returned: success - type: str - name: - description: - - The field name. - returned: success - type: str - type: - description: - - The field data type. - returned: success - type: str - encryptionConfiguration: - description: - - Custom encryption configuration. - returned: success - type: complex - contains: - kmsKeyName: - description: - - Describes the Cloud KMS encryption key that will be used to protect destination - BigQuery table. The BigQuery Service Account associated with your project - requires access to this encryption key. - returned: success - type: str - expirationTime: - description: - - The time when this table expires, in milliseconds since the epoch. If not - present, the table will persist indefinitely. - returned: success - type: int - externalDataConfiguration: - description: - - Describes the data format, location, and other properties of a table stored - outside of BigQuery. By defining these properties, the data source can then - be queried as if it were a standard BigQuery table. - returned: success - type: complex - contains: - autodetect: - description: - - Try to detect schema and format options automatically. Any option specified - explicitly will be honored. - returned: success - type: bool - compression: - description: - - The compression type of the data source. - returned: success - type: str - ignoreUnknownValues: - description: - - Indicates if BigQuery should allow extra values that are not represented - in the table schema . - returned: success - type: bool - maxBadRecords: - description: - - The maximum number of bad records that BigQuery can ignore when reading - data . - returned: success - type: int - sourceFormat: - description: - - The data format. - returned: success - type: str - sourceUris: - description: - - The fully-qualified URIs that point to your data in Google Cloud. - - 'For Google Cloud Storage URIs: Each URI can contain one ''*'' wildcard - character and it must come after the ''bucket'' name. Size limits related - to load jobs apply to external data sources. For Google Cloud Bigtable - URIs: Exactly one URI can be specified and it has be a fully specified - and valid HTTPS URL for a Google Cloud Bigtable table. For Google Cloud - Datastore backups, exactly one URI can be specified. Also, the ''*'' wildcard - character is not allowed.' - returned: success - type: list - schema: - description: - - The schema for the data. Schema is required for CSV and JSON formats. - returned: success - type: complex - contains: - fields: - description: - - Describes the fields in a table. - returned: success - type: complex - contains: - description: - description: - - The field description. - returned: success - type: str - fields: - description: - - Describes the nested schema fields if the type property is set - to RECORD . - returned: success - type: list - mode: - description: - - Field mode. - returned: success - type: str - name: - description: - - Field name. - returned: success - type: str - type: - description: - - Field data type. - returned: success - type: str - googleSheetsOptions: - description: - - Additional options if sourceFormat is set to GOOGLE_SHEETS. - returned: success - type: complex - contains: - skipLeadingRows: - description: - - The number of rows at the top of a Google Sheet that BigQuery will - skip when reading the data. - returned: success - type: int - csvOptions: - description: - - Additional properties to set if sourceFormat is set to CSV. - returned: success - type: complex - contains: - allowJaggedRows: - description: - - Indicates if BigQuery should accept rows that are missing trailing - optional columns . - returned: success - type: bool - allowQuotedNewlines: - description: - - Indicates if BigQuery should allow quoted data sections that contain - newline characters in a CSV file . - returned: success - type: bool - encoding: - description: - - The character encoding of the data. - returned: success - type: str - fieldDelimiter: - description: - - The separator for fields in a CSV file. - returned: success - type: str - quote: - description: - - The value that is used to quote data sections in a CSV file. - returned: success - type: str - skipLeadingRows: - description: - - The number of rows at the top of a CSV file that BigQuery will skip - when reading the data. - returned: success - type: int - bigtableOptions: - description: - - Additional options if sourceFormat is set to BIGTABLE. - returned: success - type: complex - contains: - ignoreUnspecifiedColumnFamilies: - description: - - If field is true, then the column families that are not specified - in columnFamilies list are not exposed in the table schema . - returned: success - type: bool - readRowkeyAsString: - description: - - If field is true, then the rowkey column families will be read and - converted to string. - returned: success - type: bool - columnFamilies: - description: - - List of column families to expose in the table schema along with their - types. - returned: success - type: complex - contains: - columns: - description: - - Lists of columns that should be exposed as individual fields as - opposed to a list of (column name, value) pairs. - returned: success - type: complex - contains: - encoding: - description: - - The encoding of the values when the type is not STRING. - returned: success - type: str - fieldName: - description: - - If the qualifier is not a valid BigQuery field identifier, - a valid identifier must be provided as the column field name - and is used as field name in queries. - returned: success - type: str - onlyReadLatest: - description: - - If this is set, only the latest version of value in this column - are exposed . - returned: success - type: bool - qualifierString: - description: - - Qualifier of the column. - returned: success - type: str - type: - description: - - The type to convert the value in cells of this column. - returned: success - type: str - encoding: - description: - - The encoding of the values when the type is not STRING. - returned: success - type: str - familyId: - description: - - Identifier of the column family. - returned: success - type: str - onlyReadLatest: - description: - - If this is set only the latest version of value are exposed for - all columns in this column family . - returned: success - type: bool - type: - description: - - The type to convert the value in cells of this column family. - returned: success - type: str - dataset: - description: - - Name of the dataset. - returned: success - type: str -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict(dataset=dict(type='str'))) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/bigquery'] - - return_value = {'resources': fetch_list(module, collection(module))} - module.exit_json(**return_value) - - -def collection(module): - return "https://www.googleapis.com/bigquery/v2/projects/{project}/datasets/{dataset}/tables".format(**module.params) - - -def fetch_list(module, link): - auth = GcpSession(module, 'bigquery') - return auth.list(link, return_if_object, array_name='tables') - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_cloudbuild_trigger_facts.py b/plugins/modules/cloud/google/gcp_cloudbuild_trigger_facts.py deleted file mode 120000 index 66c2c93f2c..0000000000 --- a/plugins/modules/cloud/google/gcp_cloudbuild_trigger_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_cloudbuild_trigger_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_cloudbuild_trigger_info.py b/plugins/modules/cloud/google/gcp_cloudbuild_trigger_info.py deleted file mode 100644 index ae0b5ebe62..0000000000 --- a/plugins/modules/cloud/google/gcp_cloudbuild_trigger_info.py +++ /dev/null @@ -1,408 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_cloudbuild_trigger_info -description: -- Gather info for GCP Trigger -short_description: Gather info for GCP Trigger -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on a trigger - gcp_cloudbuild_trigger_info: - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - id: - description: - - The unique identifier for the trigger. - returned: success - type: str - name: - description: - - Name of the trigger. Must be unique within the project. - returned: success - type: str - description: - description: - - Human-readable description of the trigger. - returned: success - type: str - disabled: - description: - - Whether the trigger is disabled or not. If true, the trigger will never result - in a build. - returned: success - type: bool - createTime: - description: - - Time when the trigger was created. - returned: success - type: str - substitutions: - description: - - Substitutions data for Build resource. - returned: success - type: dict - filename: - description: - - Path, from the source root, to a file whose contents is used for the template. - Either a filename or build template must be provided. - returned: success - type: str - ignoredFiles: - description: - - ignoredFiles and includedFiles are file glob matches using http://godoc/pkg/path/filepath#Match - extended with support for `**`. - - If ignoredFiles and changed files are both empty, then they are not used to - determine whether or not to trigger a build. - - If ignoredFiles is not empty, then we ignore any files that match any of the - ignored_file globs. If the change has no files that are outside of the ignoredFiles - globs, then we do not trigger a build. - returned: success - type: list - includedFiles: - description: - - ignoredFiles and includedFiles are file glob matches using http://godoc/pkg/path/filepath#Match - extended with support for `**`. - - If any of the files altered in the commit pass the ignoredFiles filter and - includedFiles is empty, then as far as this filter is concerned, we should - trigger the build. - - If any of the files altered in the commit pass the ignoredFiles filter and - includedFiles is not empty, then we make sure that at least one of those files - matches a includedFiles glob. If not, then we do not trigger a build. - returned: success - type: list - triggerTemplate: - description: - - Template describing the types of source changes to trigger a build. - - Branch and tag names in trigger templates are interpreted as regular expressions. - Any branch or tag change that matches that regular expression will trigger - a build. - returned: success - type: complex - contains: - projectId: - description: - - ID of the project that owns the Cloud Source Repository. If omitted, the - project ID requesting the build is assumed. - returned: success - type: str - repoName: - description: - - Name of the Cloud Source Repository. If omitted, the name "default" is - assumed. - returned: success - type: str - dir: - description: - - Directory, relative to the source root, in which to run the build. - - This must be a relative path. If a step's dir is specified and is an absolute - path, this value is ignored for that step's execution. - returned: success - type: str - branchName: - description: - - Name of the branch to build. Exactly one a of branch name, tag, or commit - SHA must be provided. - - This field is a regular expression. - returned: success - type: str - tagName: - description: - - Name of the tag to build. Exactly one of a branch name, tag, or commit - SHA must be provided. - - This field is a regular expression. - returned: success - type: str - commitSha: - description: - - Explicit commit SHA to build. Exactly one of a branch name, tag, or commit - SHA must be provided. - returned: success - type: str - build: - description: - - Contents of the build template. Either a filename or build template must be - provided. - returned: success - type: complex - contains: - tags: - description: - - Tags for annotation of a Build. These are not docker tags. - returned: success - type: list - images: - description: - - A list of images to be pushed upon the successful completion of all build - steps. - - The images are pushed using the builder service account's credentials. - - The digests of the pushed images will be stored in the Build resource's - results field. - - If any of the images fail to be pushed, the build status is marked FAILURE. - returned: success - type: list - steps: - description: - - The operations to be performed on the workspace. - returned: success - type: complex - contains: - name: - description: - - The name of the container image that will run this particular build - step. - - If the image is available in the host's Docker daemon's cache, it - will be run directly. If not, the host will attempt to pull the image - first, using the builder service account's credentials if necessary. - - The Docker daemon's cache will already have the latest versions of - all of the officially supported build steps (U(https://github.com/GoogleCloudPlatform/cloud-builders)). - - The Docker daemon will also have cached many of the layers for some - popular images, like "ubuntu", "debian", but they will be refreshed - at the time you attempt to use them. - - If you built an image in a previous build step, it will be stored - in the host's Docker daemon's cache and is available to use as the - name for a later build step. - returned: success - type: str - args: - description: - - A list of arguments that will be presented to the step when it is - started. - - If the image used to run the step's container has an entrypoint, the - args are used as arguments to that entrypoint. If the image does not - define an entrypoint, the first element in args is used as the entrypoint, - and the remainder will be used as arguments. - returned: success - type: list - env: - description: - - A list of environment variable definitions to be used when running - a step. - - The elements are of the form "KEY=VALUE" for the environment variable - "KEY" being given the value "VALUE". - returned: success - type: list - id: - description: - - Unique identifier for this build step, used in `wait_for` to reference - this build step as a dependency. - returned: success - type: str - entrypoint: - description: - - Entrypoint to be used instead of the build step image's default entrypoint. - - If unset, the image's default entrypoint is used . - returned: success - type: str - dir: - description: - - Working directory to use when running this step's container. - - If this value is a relative path, it is relative to the build's working - directory. If this value is absolute, it may be outside the build's - working directory, in which case the contents of the path may not - be persisted across build step executions, unless a `volume` for that - path is specified. - - If the build specifies a `RepoSource` with `dir` and a step with a - `dir`, which specifies an absolute path, the `RepoSource` `dir` is - ignored for the step's execution. - returned: success - type: str - secretEnv: - description: - - A list of environment variables which are encrypted using a Cloud - Key Management Service crypto key. These values must be specified - in the build's `Secret`. - returned: success - type: list - timeout: - description: - - Time limit for executing this build step. If not defined, the step - has no time limit and will be allowed to continue to run until either - it completes or the build itself times out. - returned: success - type: str - timing: - description: - - Output only. Stores timing information for executing this build step. - returned: success - type: str - volumes: - description: - - List of volumes to mount into the build step. - - Each volume is created as an empty volume prior to execution of the - build step. Upon completion of the build, volumes and their contents - are discarded. - - Using a named volume in only one step is not valid as it is indicative - of a build request with an incorrect configuration. - returned: success - type: complex - contains: - name: - description: - - Name of the volume to mount. - - Volume names must be unique per build step and must be valid names - for Docker volumes. Each named volume must be used by at least - two build steps. - returned: success - type: str - path: - description: - - Path at which to mount the volume. - - Paths must be absolute and cannot conflict with other volume paths - on the same build step or with certain reserved volume paths. - returned: success - type: str - waitFor: - description: - - The ID(s) of the step(s) that this build step depends on. - - This build step will not start until all the build steps in `wait_for` - have completed successfully. If `wait_for` is empty, this build step - will start when all previous build steps in the `Build.Steps` list - have completed successfully. - returned: success - type: list -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict()) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/cloud-platform'] - - return_value = {'resources': fetch_list(module, collection(module))} - module.exit_json(**return_value) - - -def collection(module): - return "https://cloudbuild.googleapis.com/v1/projects/{project}/triggers".format(**module.params) - - -def fetch_list(module, link): - auth = GcpSession(module, 'cloudbuild') - return auth.list(link, return_if_object, array_name='triggers') - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_compute_address_facts.py b/plugins/modules/cloud/google/gcp_compute_address_facts.py deleted file mode 120000 index d12b7e4d49..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_address_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_compute_address_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_compute_address_info.py b/plugins/modules/cloud/google/gcp_compute_address_info.py deleted file mode 100644 index 4ac3cb240c..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_address_info.py +++ /dev/null @@ -1,262 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_compute_address_info -description: -- Gather info for GCP Address -short_description: Gather info for GCP Address -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - filters: - description: - - A list of filter value pairs. Available filters are listed here U(https://cloud.google.com/sdk/gcloud/reference/topic/filters). - - Each additional filter in the list will act be added as an AND condition (filter1 - and filter2) . - type: list - region: - description: - - URL of the region where the regional address resides. - - This field is not applicable to global addresses. - required: true - type: str - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on an address - gcp_compute_address_info: - region: us-west1 - filters: - - name = test_object - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - 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. - returned: success - type: str - addressType: - description: - - The type of address to reserve, either INTERNAL or EXTERNAL. - - If unspecified, defaults to EXTERNAL. - returned: success - type: str - creationTimestamp: - description: - - Creation timestamp in RFC3339 text format. - returned: success - type: str - description: - description: - - An optional description of this resource. - returned: success - type: str - id: - description: - - The unique identifier for the resource. - returned: success - type: int - 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. - returned: success - type: str - purpose: - description: - - 'The purpose of this resource, which can be one of the following values: - - GCE_ENDPOINT for addresses that are used by VM instances, alias IP ranges, - internal load balancers, and similar resources.' - - This should only be set when using an Internal address. - returned: success - type: str - networkTier: - 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.' - returned: success - type: str - 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. - returned: success - type: dict - users: - description: - - The URLs of the resources that are using this address. - returned: success - type: list - region: - description: - - URL of the region where the regional address resides. - - This field is not applicable to global addresses. - returned: success - type: str -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict(filters=dict(type='list', elements='str'), region=dict(required=True, type='str'))) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - - return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} - module.exit_json(**return_value) - - -def collection(module): - return "https://www.googleapis.com/compute/v1/projects/{project}/regions/{region}/addresses".format(**module.params) - - -def fetch_list(module, link, query): - auth = GcpSession(module, 'compute') - return auth.list(link, return_if_object, array_name='items', params={'filter': query}) - - -def query_options(filters): - if not filters: - return '' - - if len(filters) == 1: - return filters[0] - else: - queries = [] - for f in filters: - # For multiple queries, all queries should have () - if f[0] != '(' and f[-1] != ')': - queries.append("(%s)" % ''.join(f)) - else: - queries.append(f) - - return ' '.join(queries) - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_compute_backend_bucket_facts.py b/plugins/modules/cloud/google/gcp_compute_backend_bucket_facts.py deleted file mode 120000 index d80cf8b0ae..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_backend_bucket_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_compute_backend_bucket_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_compute_backend_bucket_info.py b/plugins/modules/cloud/google/gcp_compute_backend_bucket_info.py deleted file mode 100644 index f9cde48de4..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_backend_bucket_info.py +++ /dev/null @@ -1,237 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_compute_backend_bucket_info -description: -- Gather info for GCP BackendBucket -short_description: Gather info for GCP BackendBucket -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - filters: - description: - - A list of filter value pairs. Available filters are listed here U(https://cloud.google.com/sdk/gcloud/reference/topic/filters). - - Each additional filter in the list will act be added as an AND condition (filter1 - and filter2) . - type: list - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on a backend bucket - gcp_compute_backend_bucket_info: - filters: - - name = test_object - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - bucketName: - description: - - Cloud Storage bucket name. - returned: success - type: str - cdnPolicy: - description: - - Cloud CDN configuration for this Backend Bucket. - returned: success - type: complex - contains: - signedUrlCacheMaxAgeSec: - description: - - Maximum number of seconds the response to a signed URL request will be - considered fresh. Defaults to 1hr (3600s). After this time period, the - response will be revalidated before being served. - - 'When serving responses to signed URL requests, Cloud CDN will internally - behave as though all responses from this backend had a "Cache-Control: - public, max-age=[TTL]" header, regardless of any existing Cache-Control - header. The actual headers served in responses will not be altered.' - returned: success - type: int - creationTimestamp: - description: - - Creation timestamp in RFC3339 text format. - returned: success - type: str - description: - description: - - An optional textual description of the resource; provided by the client when - the resource is created. - returned: success - type: str - enableCdn: - description: - - If true, enable Cloud CDN for this BackendBucket. - returned: success - type: bool - id: - description: - - Unique identifier for the resource. - returned: success - type: int - 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. - returned: success - type: str -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict(filters=dict(type='list', elements='str'))) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - - return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} - module.exit_json(**return_value) - - -def collection(module): - return "https://www.googleapis.com/compute/v1/projects/{project}/global/backendBuckets".format(**module.params) - - -def fetch_list(module, link, query): - auth = GcpSession(module, 'compute') - return auth.list(link, return_if_object, array_name='items', params={'filter': query}) - - -def query_options(filters): - if not filters: - return '' - - if len(filters) == 1: - return filters[0] - else: - queries = [] - for f in filters: - # For multiple queries, all queries should have () - if f[0] != '(' and f[-1] != ')': - queries.append("(%s)" % ''.join(f)) - else: - queries.append(f) - - return ' '.join(queries) - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_compute_backend_service_facts.py b/plugins/modules/cloud/google/gcp_compute_backend_service_facts.py deleted file mode 120000 index def0ed0e6f..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_backend_service_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_compute_backend_service_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_compute_backend_service_info.py b/plugins/modules/cloud/google/gcp_compute_backend_service_info.py deleted file mode 100644 index 95a60beac1..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_backend_service_info.py +++ /dev/null @@ -1,473 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_compute_backend_service_info -description: -- Gather info for GCP BackendService -short_description: Gather info for GCP BackendService -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - filters: - description: - - A list of filter value pairs. Available filters are listed here U(https://cloud.google.com/sdk/gcloud/reference/topic/filters). - - Each additional filter in the list will act be added as an AND condition (filter1 - and filter2) . - type: list - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on a backend service - gcp_compute_backend_service_info: - filters: - - name = test_object - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - affinityCookieTtlSec: - description: - - Lifetime of cookies in seconds if session_affinity is GENERATED_COOKIE. If - set to 0, the cookie is non-persistent and lasts only until the end of the - browser session (or equivalent). The maximum allowed value for TTL is one - day. - - When the load balancing scheme is INTERNAL, this field is not used. - returned: success - type: int - backends: - description: - - The set of backends that serve this BackendService. - returned: success - type: complex - contains: - balancingMode: - 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). - returned: success - type: str - capacityScaler: - 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]. - returned: success - type: str - description: - description: - - An optional description of this resource. - - Provide this property when you create the resource. - returned: success - type: str - group: - description: - - The fully-qualified URL of an Instance Group or Network Endpoint Group - resource. In case of instance group this 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. - - For Network Endpoint Groups this defines list of endpoints. All endpoints - of Network Endpoint Group must be hosted on instances located in the same - zone as the Network Endpoint Group. - - Backend services cannot mix Instance Group and Network Endpoint Group - backends. - - Note that you must specify an Instance Group or Network Endpoint Group - resource using the fully-qualified URL, rather than a partial URL. - returned: success - type: str - maxConnections: - 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 one of maxConnectionsPerInstance - or maxConnectionsPerEndpoint, as appropriate for group type, must be set. - returned: success - type: int - maxConnectionsPerInstance: - 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. - returned: success - type: int - maxConnectionsPerEndpoint: - description: - - The max number of simultaneous connections that a single backend network - endpoint 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 maxConnectionsPerEndpoint - must be set. - returned: success - type: int - maxRate: - 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 one of maxRatePerInstance - or maxRatePerEndpoint, as appropriate for group type, must be set. - returned: success - type: int - maxRatePerInstance: - 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. - returned: success - type: str - maxRatePerEndpoint: - description: - - The max requests per second (RPS) that a single backend network endpoint - 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 maxRatePerEndpoint - must be set. - returned: success - type: str - maxUtilization: - 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]. - returned: success - type: str - cdnPolicy: - description: - - Cloud CDN configuration for this BackendService. - returned: success - type: complex - contains: - cacheKeyPolicy: - description: - - The CacheKeyPolicy for this CdnPolicy. - returned: success - type: complex - contains: - includeHost: - description: - - If true requests to different hosts will be cached separately. - returned: success - type: bool - includeProtocol: - description: - - If true, http and https requests will be cached separately. - returned: success - type: bool - includeQueryString: - description: - - If true, include query string parameters in the cache key according - to query_string_whitelist and query_string_blacklist. If neither is - set, the entire query string will be included. - - If false, the query string will be excluded from the cache key entirely. - returned: success - type: bool - queryStringBlacklist: - description: - - Names of query string parameters to exclude in cache keys. - - All other parameters will be included. Either specify query_string_whitelist - or query_string_blacklist, not both. - - "'&' and '=' will be percent encoded and not treated as delimiters." - returned: success - type: list - queryStringWhitelist: - description: - - Names of query string parameters to include in cache keys. - - All other parameters will be excluded. Either specify query_string_whitelist - or query_string_blacklist, not both. - - "'&' and '=' will be percent encoded and not treated as delimiters." - returned: success - type: list - signedUrlCacheMaxAgeSec: - description: - - Maximum number of seconds the response to a signed URL request will be - considered fresh, defaults to 1hr (3600s). After this time period, the - response will be revalidated before being served. - - 'When serving responses to signed URL requests, Cloud CDN will internally - behave as though all responses from this backend had a "Cache-Control: - public, max-age=[TTL]" header, regardless of any existing Cache-Control - header. The actual headers served in responses will not be altered.' - returned: success - type: int - connectionDraining: - description: - - Settings for connection draining . - returned: success - type: complex - contains: - drainingTimeoutSec: - description: - - Time for which instance will be drained (not accept new connections, but - still work to finish started). - returned: success - type: int - creationTimestamp: - description: - - Creation timestamp in RFC3339 text format. - returned: success - type: str - fingerprint: - description: - - Fingerprint of this resource. A hash of the contents stored in this object. - This field is used in optimistic locking. - returned: success - type: str - description: - description: - - An optional description of this resource. - returned: success - type: str - enableCDN: - description: - - If true, enable Cloud CDN for this BackendService. - returned: success - type: bool - healthChecks: - description: - - The set of URLs to the HttpHealthCheck or HttpsHealthCheck resource for health - checking this BackendService. Currently at most one health check can be specified, - and a health check is required. - - For internal load balancing, a URL to a HealthCheck resource must be specified - instead. - returned: success - type: list - id: - description: - - The unique identifier for the resource. - returned: success - type: int - iap: - description: - - Settings for enabling Cloud Identity Aware Proxy. - returned: success - type: complex - contains: - enabled: - description: - - Enables IAP. - returned: success - type: bool - oauth2ClientId: - description: - - OAuth2 Client ID for IAP . - returned: success - type: str - oauth2ClientSecret: - description: - - OAuth2 Client Secret for IAP . - returned: success - type: str - oauth2ClientSecretSha256: - description: - - OAuth2 Client Secret SHA-256 for IAP . - returned: success - type: str - loadBalancingScheme: - description: - - Indicates whether the backend service will be used with internal or external - load balancing. A backend service created for one type of load balancing cannot - be used with the other. Must be `EXTERNAL` or `INTERNAL_SELF_MANAGED` for - a global backend service. Defaults to `EXTERNAL`. - returned: success - type: str - 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. - returned: success - type: str - portName: - description: - - Name of backend port. The same name should appear in the instance groups referenced - by this service. Required when the load balancing scheme is EXTERNAL. - returned: success - type: str - protocol: - description: - - The protocol this BackendService uses to communicate with backends. - - 'Possible values are HTTP, HTTPS, HTTP2, TCP, and SSL. The default is HTTP. - **NOTE**: HTTP2 is only valid for beta HTTP/2 load balancer types and may - result in errors if used with the GA API.' - returned: success - type: str - securityPolicy: - description: - - The security policy associated with this backend service. - returned: success - type: str - sessionAffinity: - description: - - Type of session affinity to use. The default is NONE. Session affinity is - not applicable if the protocol is UDP. - returned: success - type: str - timeoutSec: - description: - - How many seconds to wait for the backend before considering it a failed request. - Default is 30 seconds. Valid range is [1, 86400]. - returned: success - type: int -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict(filters=dict(type='list', elements='str'))) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - - return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} - module.exit_json(**return_value) - - -def collection(module): - return "https://www.googleapis.com/compute/v1/projects/{project}/global/backendServices".format(**module.params) - - -def fetch_list(module, link, query): - auth = GcpSession(module, 'compute') - return auth.list(link, return_if_object, array_name='items', params={'filter': query}) - - -def query_options(filters): - if not filters: - return '' - - if len(filters) == 1: - return filters[0] - else: - queries = [] - for f in filters: - # For multiple queries, all queries should have () - if f[0] != '(' and f[-1] != ')': - queries.append("(%s)" % ''.join(f)) - else: - queries.append(f) - - return ' '.join(queries) - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_compute_disk_facts.py b/plugins/modules/cloud/google/gcp_compute_disk_facts.py deleted file mode 120000 index 52aabea81a..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_disk_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_compute_disk_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_compute_disk_info.py b/plugins/modules/cloud/google/gcp_compute_disk_info.py deleted file mode 100644 index 886bfb8374..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_disk_info.py +++ /dev/null @@ -1,399 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_compute_disk_info -description: -- Gather info for GCP Disk -short_description: Gather info for GCP Disk -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - filters: - description: - - A list of filter value pairs. Available filters are listed here U(https://cloud.google.com/sdk/gcloud/reference/topic/filters). - - Each additional filter in the list will act be added as an AND condition (filter1 - and filter2) . - type: list - zone: - description: - - A reference to the zone where the disk resides. - required: true - type: str - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on a disk - gcp_compute_disk_info: - zone: us-central1-a - filters: - - name = test_object - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - labelFingerprint: - description: - - The fingerprint used for optimistic locking of this resource. Used internally - during updates. - returned: success - type: str - creationTimestamp: - description: - - Creation timestamp in RFC3339 text format. - returned: success - type: str - description: - description: - - An optional description of this resource. Provide this property when you create - the resource. - returned: success - type: str - id: - description: - - The unique identifier for the resource. - returned: success - type: int - lastAttachTimestamp: - description: - - Last attach timestamp in RFC3339 text format. - returned: success - type: str - lastDetachTimestamp: - description: - - Last detach timestamp in RFC3339 text format. - returned: success - type: str - labels: - description: - - Labels to apply to this disk. A list of key->value pairs. - returned: success - type: dict - licenses: - description: - - Any applicable publicly visible licenses. - returned: success - type: list - 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. - returned: success - type: str - sizeGb: - description: - - Size of the persistent disk, specified in GB. You can specify this field when - creating a persistent disk using the sourceImage or sourceSnapshot parameter, - or specify it alone to create an empty persistent disk. - - If you specify this field along with sourceImage or sourceSnapshot, the value - of sizeGb must not be less than the size of the sourceImage or the size of - the snapshot. - returned: success - type: int - users: - description: - - 'Links to the users of the disk (attached instances) in form: project/zones/zone/instances/instance - .' - returned: success - type: list - physicalBlockSizeBytes: - description: - - Physical block size of the persistent disk, in bytes. If not present in a - request, a default value is used. Currently supported sizes are 4096 and 16384, - other sizes may be added in the future. - - If an unsupported value is requested, the error message will list the supported - values for the caller's project. - returned: success - type: int - type: - description: - - URL of the disk type resource describing which disk type to use to create - the disk. Provide this when creating the disk. - returned: success - type: str - sourceImage: - description: - - The source image used to create this disk. If the source image is deleted, - this field will not be set. - - 'To create a disk with one of the public operating system images, specify - the image by its family name. For example, specify family/debian-8 to use - the latest Debian 8 image: projects/debian-cloud/global/images/family/debian-8 - Alternatively, use a specific version of a public operating system image: - projects/debian-cloud/global/images/debian-8-jessie-vYYYYMMDD To create a - disk with a private image that you created, specify the image name in the - following format: global/images/my-private-image You can also specify a private - image by its image family, which returns the latest version of the image in - that family. Replace the image name with family/family-name: global/images/family/my-private-family - .' - returned: success - type: str - zone: - description: - - A reference to the zone where the disk resides. - returned: success - type: str - sourceImageEncryptionKey: - description: - - The customer-supplied encryption key of the source image. Required if the - source image is protected by a customer-supplied encryption key. - returned: success - type: complex - contains: - rawKey: - description: - - Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 - base64 to either encrypt or decrypt this resource. - returned: success - type: str - sha256: - description: - - The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption - key that protects this resource. - returned: success - type: str - kmsKeyName: - description: - - The name of the encryption key that is stored in Google Cloud KMS. - returned: success - type: str - sourceImageId: - description: - - The ID value of the image used to create this disk. This value identifies - the exact image that was used to create this persistent disk. For example, - if you created the persistent disk from an image that was later deleted and - recreated under the same name, the source image ID would identify the exact - version of the image that was used. - returned: success - type: str - diskEncryptionKey: - description: - - Encrypts the disk using a customer-supplied encryption key. - - After you encrypt a disk with a customer-supplied key, you must provide the - same key if you use the disk later (e.g. to create a disk snapshot or an image, - or to attach the disk to a virtual machine). - - Customer-supplied encryption keys do not protect access to metadata of the - disk. - - If you do not provide an encryption key when creating the disk, then the disk - will be encrypted using an automatically generated key and you do not need - to provide a key to use the disk later. - returned: success - type: complex - contains: - rawKey: - description: - - Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 - base64 to either encrypt or decrypt this resource. - returned: success - type: str - sha256: - description: - - The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption - key that protects this resource. - returned: success - type: str - kmsKeyName: - description: - - The name of the encryption key that is stored in Google Cloud KMS. - - Your project's Compute Engine System service account (`service-{{PROJECT_NUMBER}}@compute-system.iam.gserviceaccount.com`) - must have `roles/cloudkms.cryptoKeyEncrypterDecrypter` to use this feature. - returned: success - type: str - sourceSnapshot: - description: - - The source snapshot used to create this disk. You can provide this as a partial - or full URL to the resource. - returned: success - type: dict - sourceSnapshotEncryptionKey: - description: - - The customer-supplied encryption key of the source snapshot. Required if the - source snapshot is protected by a customer-supplied encryption key. - returned: success - type: complex - contains: - rawKey: - description: - - Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 - base64 to either encrypt or decrypt this resource. - returned: success - type: str - kmsKeyName: - description: - - The name of the encryption key that is stored in Google Cloud KMS. - returned: success - type: str - sha256: - description: - - The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption - key that protects this resource. - returned: success - type: str - sourceSnapshotId: - description: - - The unique ID of the snapshot used to create this disk. This value identifies - the exact snapshot that was used to create this persistent disk. For example, - if you created the persistent disk from a snapshot that was later deleted - and recreated under the same name, the source snapshot ID would identify the - exact version of the snapshot that was used. - returned: success - type: str -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict(filters=dict(type='list', elements='str'), zone=dict(required=True, type='str'))) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - - return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} - module.exit_json(**return_value) - - -def collection(module): - return "https://www.googleapis.com/compute/v1/projects/{project}/zones/{zone}/disks".format(**module.params) - - -def fetch_list(module, link, query): - auth = GcpSession(module, 'compute') - return auth.list(link, return_if_object, array_name='items', params={'filter': query}) - - -def query_options(filters): - if not filters: - return '' - - if len(filters) == 1: - return filters[0] - else: - queries = [] - for f in filters: - # For multiple queries, all queries should have () - if f[0] != '(' and f[-1] != ')': - queries.append("(%s)" % ''.join(f)) - else: - queries.append(f) - - return ' '.join(queries) - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_compute_firewall_facts.py b/plugins/modules/cloud/google/gcp_compute_firewall_facts.py deleted file mode 120000 index 7a8ccaa415..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_firewall_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_compute_firewall_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_compute_firewall_info.py b/plugins/modules/cloud/google/gcp_compute_firewall_info.py deleted file mode 100644 index aefee6feca..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_firewall_info.py +++ /dev/null @@ -1,366 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_compute_firewall_info -description: -- Gather info for GCP Firewall -short_description: Gather info for GCP Firewall -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - filters: - description: - - A list of filter value pairs. Available filters are listed here U(https://cloud.google.com/sdk/gcloud/reference/topic/filters). - - Each additional filter in the list will act be added as an AND condition (filter1 - and filter2) . - type: list - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on a firewall - gcp_compute_firewall_info: - filters: - - name = test_object - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - allowed: - description: - - The list of ALLOW rules specified by this firewall. Each rule specifies a - protocol and port-range tuple that describes a permitted connection. - returned: success - type: complex - contains: - ip_protocol: - description: - - The IP protocol to which this rule applies. The protocol type is required - when creating a firewall rule. This value can either be one of the following - well known protocol strings (tcp, udp, icmp, esp, ah, sctp), or the IP - protocol number. - returned: success - type: str - ports: - description: - - An optional list of ports to which this rule applies. This field is only - applicable for UDP or TCP protocol. Each entry must be either an integer - or a range. If not specified, this rule applies to connections through - any port. - - 'Example inputs include: ["22"], ["80","443"], and ["12345-12349"].' - returned: success - type: list - creationTimestamp: - description: - - Creation timestamp in RFC3339 text format. - returned: success - type: str - denied: - description: - - The list of DENY rules specified by this firewall. Each rule specifies a protocol - and port-range tuple that describes a denied connection. - returned: success - type: complex - contains: - ip_protocol: - description: - - The IP protocol to which this rule applies. The protocol type is required - when creating a firewall rule. This value can either be one of the following - well known protocol strings (tcp, udp, icmp, esp, ah, sctp), or the IP - protocol number. - returned: success - type: str - ports: - description: - - An optional list of ports to which this rule applies. This field is only - applicable for UDP or TCP protocol. Each entry must be either an integer - or a range. If not specified, this rule applies to connections through - any port. - - 'Example inputs include: ["22"], ["80","443"], and ["12345-12349"].' - returned: success - type: list - description: - description: - - An optional description of this resource. Provide this property when you create - the resource. - returned: success - type: str - destinationRanges: - description: - - If destination ranges are specified, the firewall will apply only to traffic - that has destination IP address in these ranges. These ranges must be expressed - in CIDR format. Only IPv4 is supported. - returned: success - type: list - direction: - description: - - 'Direction of traffic to which this firewall applies; default is INGRESS. - Note: For INGRESS traffic, it is NOT supported to specify destinationRanges; - For EGRESS traffic, it is NOT supported to specify sourceRanges OR sourceTags.' - returned: success - type: str - disabled: - description: - - Denotes whether the firewall rule is disabled, i.e not applied to the network - it is associated with. When set to true, the firewall rule is not enforced - and the network behaves as if it did not exist. If this is unspecified, the - firewall rule will be enabled. - returned: success - type: bool - logConfig: - description: - - This field denotes whether to enable logging for a particular firewall rule. - If logging is enabled, logs will be exported to Stackdriver. - returned: success - type: complex - contains: - enableLogging: - description: - - This field denotes whether to enable logging for a particular firewall - rule. If logging is enabled, logs will be exported to Stackdriver. - returned: success - type: bool - id: - description: - - The unique identifier for the resource. - returned: success - type: int - 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. - returned: success - type: str - network: - description: - - 'URL of the network resource for this firewall rule. If not specified when - creating a firewall rule, the default network is used: global/networks/default - If you choose to specify this property, you can specify the network as a full - or partial URL. For example, the following are all valid URLs: https://www.googleapis.com/compute/v1/projects/myproject/global/ - networks/my-network projects/myproject/global/networks/my-network global/networks/default - .' - returned: success - type: dict - priority: - description: - - Priority for this rule. This is an integer between 0 and 65535, both inclusive. - When not specified, the value assumed is 1000. Relative priorities determine - precedence of conflicting rules. Lower value of priority implies higher precedence - (eg, a rule with priority 0 has higher precedence than a rule with priority - 1). DENY rules take precedence over ALLOW rules having equal priority. - returned: success - type: int - sourceRanges: - description: - - If source ranges are specified, the firewall will apply only to traffic that - has source IP address in these ranges. These ranges must be expressed in CIDR - format. One or both of sourceRanges and sourceTags may be set. If both properties - are set, the firewall will apply to traffic that has source IP address within - sourceRanges OR the source IP that belongs to a tag listed in the sourceTags - property. The connection does not need to match both properties for the firewall - to apply. Only IPv4 is supported. - returned: success - type: list - sourceServiceAccounts: - description: - - If source service accounts are specified, the firewall will apply only to - traffic originating from an instance with a service account in this list. - Source service accounts cannot be used to control traffic to an instance's - external IP address because service accounts are associated with an instance, - not an IP address. sourceRanges can be set at the same time as sourceServiceAccounts. - If both are set, the firewall will apply to traffic that has source IP address - within sourceRanges OR the source IP belongs to an instance with service account - listed in sourceServiceAccount. The connection does not need to match both - properties for the firewall to apply. sourceServiceAccounts cannot be used - at the same time as sourceTags or targetTags. - returned: success - type: list - sourceTags: - description: - - If source tags are specified, the firewall will apply only to traffic with - source IP that belongs to a tag listed in source tags. Source tags cannot - be used to control traffic to an instance's external IP address. Because tags - are associated with an instance, not an IP address. One or both of sourceRanges - and sourceTags may be set. If both properties are set, the firewall will apply - to traffic that has source IP address within sourceRanges OR the source IP - that belongs to a tag listed in the sourceTags property. The connection does - not need to match both properties for the firewall to apply. - returned: success - type: list - targetServiceAccounts: - description: - - A list of service accounts indicating sets of instances located in the network - that may make network connections as specified in allowed[]. - - targetServiceAccounts cannot be used at the same time as targetTags or sourceTags. - If neither targetServiceAccounts nor targetTags are specified, the firewall - rule applies to all instances on the specified network. - returned: success - type: list - targetTags: - description: - - A list of instance tags indicating sets of instances located in the network - that may make network connections as specified in allowed[]. - - If no targetTags are specified, the firewall rule applies to all instances - on the specified network. - returned: success - type: list -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict(filters=dict(type='list', elements='str'))) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - - return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} - module.exit_json(**return_value) - - -def collection(module): - return "https://www.googleapis.com/compute/v1/projects/{project}/global/firewalls".format(**module.params) - - -def fetch_list(module, link, query): - auth = GcpSession(module, 'compute') - return auth.list(link, return_if_object, array_name='items', params={'filter': query}) - - -def query_options(filters): - if not filters: - return '' - - if len(filters) == 1: - return filters[0] - else: - queries = [] - for f in filters: - # For multiple queries, all queries should have () - if f[0] != '(' and f[-1] != ')': - queries.append("(%s)" % ''.join(f)) - else: - queries.append(f) - - return ' '.join(queries) - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_compute_forwarding_rule_facts.py b/plugins/modules/cloud/google/gcp_compute_forwarding_rule_facts.py deleted file mode 120000 index 4f09197451..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_forwarding_rule_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_compute_forwarding_rule_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_compute_forwarding_rule_info.py b/plugins/modules/cloud/google/gcp_compute_forwarding_rule_info.py deleted file mode 100644 index 5e5f24a4f8..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_forwarding_rule_info.py +++ /dev/null @@ -1,352 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_compute_forwarding_rule_info -description: -- Gather info for GCP ForwardingRule -short_description: Gather info for GCP ForwardingRule -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - filters: - description: - - A list of filter value pairs. Available filters are listed here U(https://cloud.google.com/sdk/gcloud/reference/topic/filters). - - Each additional filter in the list will act be added as an AND condition (filter1 - and filter2) . - type: list - region: - description: - - A reference to the region where the regional forwarding rule resides. - - This field is not applicable to global forwarding rules. - required: true - type: str - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on a forwarding rule - gcp_compute_forwarding_rule_info: - region: us-west1 - filters: - - name = test_object - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - creationTimestamp: - description: - - Creation timestamp in RFC3339 text format. - returned: success - type: str - description: - description: - - An optional description of this resource. Provide this property when you create - the resource. - returned: success - type: str - id: - description: - - The unique identifier for the resource. - returned: success - type: int - IPAddress: - 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 - * 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 .' - returned: success - type: str - IPProtocol: - 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. - returned: success - type: str - backendService: - description: - - A BackendService to receive the matched traffic. This is used only for INTERNAL - load balancing. - returned: success - type: dict - loadBalancingScheme: - description: - - This signifies what the ForwardingRule will be used for and can be EXTERNAL, - INTERNAL, or INTERNAL_MANAGED. EXTERNAL is used for Classic Cloud VPN gateways, - protocol forwarding to VMs from an external IP address, and HTTP(S), SSL Proxy, - TCP Proxy, and Network TCP/UDP load balancers. - - INTERNAL is used for protocol forwarding to VMs from an internal IP address, - and internal TCP/UDP load balancers. - - INTERNAL_MANAGED is used for internal HTTP(S) load balancers. - returned: success - type: str - 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. - returned: success - type: str - 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. - returned: success - type: dict - portRange: - 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 .' - returned: success - type: str - 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. - returned: success - type: list - 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. - returned: success - type: dict - 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. - returned: success - type: dict - allPorts: - 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. - returned: success - type: bool - networkTier: - 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.' - returned: success - type: str - serviceLabel: - 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. - returned: success - type: str - serviceName: - description: - - The internal fully qualified service name for this Forwarding Rule. - - This field is only used for INTERNAL load balancing. - returned: success - type: str - region: - description: - - A reference to the region where the regional forwarding rule resides. - - This field is not applicable to global forwarding rules. - returned: success - type: str -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict(filters=dict(type='list', elements='str'), region=dict(required=True, type='str'))) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - - return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} - module.exit_json(**return_value) - - -def collection(module): - return "https://www.googleapis.com/compute/v1/projects/{project}/regions/{region}/forwardingRules".format(**module.params) - - -def fetch_list(module, link, query): - auth = GcpSession(module, 'compute') - return auth.list(link, return_if_object, array_name='items', params={'filter': query}) - - -def query_options(filters): - if not filters: - return '' - - if len(filters) == 1: - return filters[0] - else: - queries = [] - for f in filters: - # For multiple queries, all queries should have () - if f[0] != '(' and f[-1] != ')': - queries.append("(%s)" % ''.join(f)) - else: - queries.append(f) - - return ' '.join(queries) - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_compute_global_address_facts.py b/plugins/modules/cloud/google/gcp_compute_global_address_facts.py deleted file mode 120000 index 497372674a..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_global_address_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_compute_global_address_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_compute_global_address_info.py b/plugins/modules/cloud/google/gcp_compute_global_address_info.py deleted file mode 100644 index 49409dba81..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_global_address_info.py +++ /dev/null @@ -1,254 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_compute_global_address_info -description: -- Gather info for GCP GlobalAddress -short_description: Gather info for GCP GlobalAddress -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - filters: - description: - - A list of filter value pairs. Available filters are listed here U(https://cloud.google.com/sdk/gcloud/reference/topic/filters). - - Each additional filter in the list will act be added as an AND condition (filter1 - and filter2) . - type: list - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on a global address - gcp_compute_global_address_info: - filters: - - name = test_object - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - address: - description: - - The static external IP address represented by this resource. - returned: success - type: str - creationTimestamp: - description: - - Creation timestamp in RFC3339 text format. - returned: success - type: str - description: - description: - - An optional description of this resource. - returned: success - type: str - id: - description: - - The unique identifier for the resource. This identifier is defined by the - server. - returned: success - type: int - 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. - returned: success - type: str - ipVersion: - description: - - The IP Version that will be used by this address. Valid options are `IPV4` - or `IPV6`. The default value is `IPV4`. - returned: success - type: str - region: - description: - - A reference to the region where the regional address resides. - returned: success - type: str - prefixLength: - description: - - The prefix length of the IP range. If not present, it means the address field - is a single IP address. - - This field is not applicable to addresses with addressType=EXTERNAL. - returned: success - type: int - addressType: - description: - - The type of the address to reserve, default is EXTERNAL. - - "* EXTERNAL indicates public/external single IP address." - - "* INTERNAL indicates internal IP ranges belonging to some network." - returned: success - type: str - purpose: - description: - - The purpose of the resource. For global internal addresses it can be * VPC_PEERING - - for peer networks This should only be set when using an Internal address. - returned: success - type: str - network: - description: - - The URL of the network in which to reserve the IP range. The IP range must - be in RFC1918 space. The network cannot be deleted if there are any reserved - IP ranges referring to it. - - This should only be set when using an Internal address. - returned: success - type: dict -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict(filters=dict(type='list', elements='str'))) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - - return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} - module.exit_json(**return_value) - - -def collection(module): - return "https://www.googleapis.com/compute/v1/projects/{project}/global/addresses".format(**module.params) - - -def fetch_list(module, link, query): - auth = GcpSession(module, 'compute') - return auth.list(link, return_if_object, array_name='items', params={'filter': query}) - - -def query_options(filters): - if not filters: - return '' - - if len(filters) == 1: - return filters[0] - else: - queries = [] - for f in filters: - # For multiple queries, all queries should have () - if f[0] != '(' and f[-1] != ')': - queries.append("(%s)" % ''.join(f)) - else: - queries.append(f) - - return ' '.join(queries) - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_compute_global_forwarding_rule_facts.py b/plugins/modules/cloud/google/gcp_compute_global_forwarding_rule_facts.py deleted file mode 120000 index 18d0b3b5db..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_global_forwarding_rule_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_compute_global_forwarding_rule_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_compute_global_forwarding_rule_info.py b/plugins/modules/cloud/google/gcp_compute_global_forwarding_rule_info.py deleted file mode 100644 index 791e814b6a..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_global_forwarding_rule_info.py +++ /dev/null @@ -1,334 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_compute_global_forwarding_rule_info -description: -- Gather info for GCP GlobalForwardingRule -short_description: Gather info for GCP GlobalForwardingRule -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - filters: - description: - - A list of filter value pairs. Available filters are listed here U(https://cloud.google.com/sdk/gcloud/reference/topic/filters). - - Each additional filter in the list will act be added as an AND condition (filter1 - and filter2) . - type: list - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on a global forwarding rule - gcp_compute_global_forwarding_rule_info: - filters: - - name = test_object - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - creationTimestamp: - description: - - Creation timestamp in RFC3339 text format. - returned: success - type: str - description: - description: - - An optional description of this resource. Provide this property when you create - the resource. - returned: success - type: str - id: - description: - - The unique identifier for the resource. - returned: success - type: int - IPAddress: - 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 - * 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 .' - returned: success - type: str - IPProtocol: - 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. - returned: success - type: str - ipVersion: - description: - - The IP Version that will be used by this global forwarding rule. - - Valid options are IPV4 or IPV6. - returned: success - type: str - loadBalancingScheme: - 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.' - returned: success - type: str - metadataFilters: - description: - - Opaque filter criteria used by Loadbalancer to restrict routing configuration - to a limited set xDS compliant clients. In their xDS requests to Loadbalancer, - xDS clients present node metadata. If a match takes place, the relevant routing - configuration is made available to those proxies. - - For each metadataFilter in this list, if its filterMatchCriteria is set to - MATCH_ANY, at least one of the filterLabels must match the corresponding label - provided in the metadata. If its filterMatchCriteria is set to MATCH_ALL, - then all of its filterLabels must match with corresponding labels in the provided - metadata. - - metadataFilters specified here can be overridden by those specified in the - UrlMap that this ForwardingRule references. - - metadataFilters only applies to Loadbalancers that have their loadBalancingScheme - set to INTERNAL_SELF_MANAGED. - returned: success - type: complex - contains: - filterMatchCriteria: - description: - - Specifies how individual filterLabel matches within the list of filterLabels - contribute towards the overall metadataFilter match. - - MATCH_ANY - At least one of the filterLabels must have a matching label - in the provided metadata. - - MATCH_ALL - All filterLabels must have matching labels in the provided - metadata. - returned: success - type: str - filterLabels: - description: - - The list of label value pairs that must match labels in the provided metadata - based on filterMatchCriteria This list must not be empty and can have - at the most 64 entries. - returned: success - type: complex - contains: - name: - description: - - Name of the metadata label. The length must be between 1 and 1024 - characters, inclusive. - returned: success - type: str - value: - description: - - The value that the label must match. The value has a maximum length - of 1024 characters. - returned: success - type: str - 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. - returned: success - type: str - 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. - returned: success - type: dict - portRange: - 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 .' - returned: success - type: str - 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. - - For INTERNAL_SELF_MANAGED load balancing, only HTTP and HTTPS targets are - valid. - returned: success - type: str -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict(filters=dict(type='list', elements='str'))) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - - return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} - module.exit_json(**return_value) - - -def collection(module): - return "https://www.googleapis.com/compute/v1/projects/{project}/global/forwardingRules".format(**module.params) - - -def fetch_list(module, link, query): - auth = GcpSession(module, 'compute') - return auth.list(link, return_if_object, array_name='items', params={'filter': query}) - - -def query_options(filters): - if not filters: - return '' - - if len(filters) == 1: - return filters[0] - else: - queries = [] - for f in filters: - # For multiple queries, all queries should have () - if f[0] != '(' and f[-1] != ')': - queries.append("(%s)" % ''.join(f)) - else: - queries.append(f) - - return ' '.join(queries) - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_compute_health_check_facts.py b/plugins/modules/cloud/google/gcp_compute_health_check_facts.py deleted file mode 120000 index a2646a6c8d..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_health_check_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_compute_health_check_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_compute_health_check_info.py b/plugins/modules/cloud/google/gcp_compute_health_check_info.py deleted file mode 100644 index 8a54ae5f01..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_health_check_info.py +++ /dev/null @@ -1,522 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_compute_health_check_info -description: -- Gather info for GCP HealthCheck -short_description: Gather info for GCP HealthCheck -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - filters: - description: - - A list of filter value pairs. Available filters are listed here U(https://cloud.google.com/sdk/gcloud/reference/topic/filters). - - Each additional filter in the list will act be added as an AND condition (filter1 - and filter2) . - type: list - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on a health check - gcp_compute_health_check_info: - filters: - - name = test_object - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - checkIntervalSec: - description: - - How often (in seconds) to send a health check. The default value is 5 seconds. - returned: success - type: int - creationTimestamp: - description: - - Creation timestamp in RFC3339 text format. - returned: success - type: str - description: - description: - - An optional description of this resource. Provide this property when you create - the resource. - returned: success - type: str - healthyThreshold: - description: - - A so-far unhealthy instance will be marked healthy after this many consecutive - successes. The default value is 2. - returned: success - type: int - id: - description: - - The unique identifier for the resource. This identifier is defined by the - server. - returned: success - type: int - 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. - returned: success - type: str - timeoutSec: - description: - - How long (in seconds) to wait before claiming failure. - - The default value is 5 seconds. It is invalid for timeoutSec to have greater - value than checkIntervalSec. - returned: success - type: int - unhealthyThreshold: - description: - - A so-far healthy instance will be marked unhealthy after this many consecutive - failures. The default value is 2. - returned: success - type: int - type: - description: - - Specifies the type of the healthCheck, either TCP, SSL, HTTP or HTTPS. If - not specified, the default is TCP. Exactly one of the protocol-specific health - check field must be specified, which must match type field. - returned: success - type: str - httpHealthCheck: - description: - - A nested object resource. - returned: success - type: complex - contains: - host: - description: - - The value of the host header in the HTTP health check request. - - If left empty (default value), the public IP on behalf of which this health - check is performed will be used. - returned: success - type: str - requestPath: - description: - - The request path of the HTTP health check request. - - The default value is /. - returned: success - type: str - response: - description: - - The bytes to match against the beginning of the response data. If left - empty (the default value), any response will indicate health. The response - data can only be ASCII. - returned: success - type: str - port: - description: - - The TCP port number for the HTTP health check request. - - The default value is 80. - returned: success - type: int - portName: - description: - - Port name as defined in InstanceGroup#NamedPort#name. If both port and - port_name are defined, port takes precedence. - returned: success - type: str - proxyHeader: - description: - - Specifies the type of proxy header to append before sending data to the - backend, either NONE or PROXY_V1. The default is NONE. - returned: success - type: str - portSpecification: - description: - - 'Specifies how port is selected for health checking, can be one of the - following values: * `USE_FIXED_PORT`: The port number in `port` is used - for health checking.' - - "* `USE_NAMED_PORT`: The `portName` is used for health checking." - - "* `USE_SERVING_PORT`: For NetworkEndpointGroup, the port specified for - each network endpoint is used for health checking. For other backends, - the port or named port specified in the Backend Service is used for health - checking." - - If not specified, HTTP health check follows behavior specified in `port` - and `portName` fields. - returned: success - type: str - httpsHealthCheck: - description: - - A nested object resource. - returned: success - type: complex - contains: - host: - description: - - The value of the host header in the HTTPS health check request. - - If left empty (default value), the public IP on behalf of which this health - check is performed will be used. - returned: success - type: str - requestPath: - description: - - The request path of the HTTPS health check request. - - The default value is /. - returned: success - type: str - response: - description: - - The bytes to match against the beginning of the response data. If left - empty (the default value), any response will indicate health. The response - data can only be ASCII. - returned: success - type: str - port: - description: - - The TCP port number for the HTTPS health check request. - - The default value is 443. - returned: success - type: int - portName: - description: - - Port name as defined in InstanceGroup#NamedPort#name. If both port and - port_name are defined, port takes precedence. - returned: success - type: str - proxyHeader: - description: - - Specifies the type of proxy header to append before sending data to the - backend, either NONE or PROXY_V1. The default is NONE. - returned: success - type: str - portSpecification: - description: - - 'Specifies how port is selected for health checking, can be one of the - following values: * `USE_FIXED_PORT`: The port number in `port` is used - for health checking.' - - "* `USE_NAMED_PORT`: The `portName` is used for health checking." - - "* `USE_SERVING_PORT`: For NetworkEndpointGroup, the port specified for - each network endpoint is used for health checking. For other backends, - the port or named port specified in the Backend Service is used for health - checking." - - If not specified, HTTPS health check follows behavior specified in `port` - and `portName` fields. - returned: success - type: str - tcpHealthCheck: - description: - - A nested object resource. - returned: success - type: complex - contains: - request: - description: - - The application data to send once the TCP connection has been established - (default value is empty). If both request and response are empty, the - connection establishment alone will indicate health. The request data - can only be ASCII. - returned: success - type: str - response: - description: - - The bytes to match against the beginning of the response data. If left - empty (the default value), any response will indicate health. The response - data can only be ASCII. - returned: success - type: str - port: - description: - - The TCP port number for the TCP health check request. - - The default value is 443. - returned: success - type: int - portName: - description: - - Port name as defined in InstanceGroup#NamedPort#name. If both port and - port_name are defined, port takes precedence. - returned: success - type: str - proxyHeader: - description: - - Specifies the type of proxy header to append before sending data to the - backend, either NONE or PROXY_V1. The default is NONE. - returned: success - type: str - portSpecification: - description: - - 'Specifies how port is selected for health checking, can be one of the - following values: * `USE_FIXED_PORT`: The port number in `port` is used - for health checking.' - - "* `USE_NAMED_PORT`: The `portName` is used for health checking." - - "* `USE_SERVING_PORT`: For NetworkEndpointGroup, the port specified for - each network endpoint is used for health checking. For other backends, - the port or named port specified in the Backend Service is used for health - checking." - - If not specified, TCP health check follows behavior specified in `port` - and `portName` fields. - returned: success - type: str - sslHealthCheck: - description: - - A nested object resource. - returned: success - type: complex - contains: - request: - description: - - The application data to send once the SSL connection has been established - (default value is empty). If both request and response are empty, the - connection establishment alone will indicate health. The request data - can only be ASCII. - returned: success - type: str - response: - description: - - The bytes to match against the beginning of the response data. If left - empty (the default value), any response will indicate health. The response - data can only be ASCII. - returned: success - type: str - port: - description: - - The TCP port number for the SSL health check request. - - The default value is 443. - returned: success - type: int - portName: - description: - - Port name as defined in InstanceGroup#NamedPort#name. If both port and - port_name are defined, port takes precedence. - returned: success - type: str - proxyHeader: - description: - - Specifies the type of proxy header to append before sending data to the - backend, either NONE or PROXY_V1. The default is NONE. - returned: success - type: str - portSpecification: - description: - - 'Specifies how port is selected for health checking, can be one of the - following values: * `USE_FIXED_PORT`: The port number in `port` is used - for health checking.' - - "* `USE_NAMED_PORT`: The `portName` is used for health checking." - - "* `USE_SERVING_PORT`: For NetworkEndpointGroup, the port specified for - each network endpoint is used for health checking. For other backends, - the port or named port specified in the Backend Service is used for health - checking." - - If not specified, SSL health check follows behavior specified in `port` - and `portName` fields. - returned: success - type: str - http2HealthCheck: - description: - - A nested object resource. - returned: success - type: complex - contains: - host: - description: - - The value of the host header in the HTTP2 health check request. - - If left empty (default value), the public IP on behalf of which this health - check is performed will be used. - returned: success - type: str - requestPath: - description: - - The request path of the HTTP2 health check request. - - The default value is /. - returned: success - type: str - response: - description: - - The bytes to match against the beginning of the response data. If left - empty (the default value), any response will indicate health. The response - data can only be ASCII. - returned: success - type: str - port: - description: - - The TCP port number for the HTTP2 health check request. - - The default value is 443. - returned: success - type: int - portName: - description: - - Port name as defined in InstanceGroup#NamedPort#name. If both port and - port_name are defined, port takes precedence. - returned: success - type: str - proxyHeader: - description: - - Specifies the type of proxy header to append before sending data to the - backend, either NONE or PROXY_V1. The default is NONE. - returned: success - type: str - portSpecification: - description: - - 'Specifies how port is selected for health checking, can be one of the - following values: * `USE_FIXED_PORT`: The port number in `port` is used - for health checking.' - - "* `USE_NAMED_PORT`: The `portName` is used for health checking." - - "* `USE_SERVING_PORT`: For NetworkEndpointGroup, the port specified for - each network endpoint is used for health checking. For other backends, - the port or named port specified in the Backend Service is used for health - checking." - - If not specified, HTTP2 health check follows behavior specified in `port` - and `portName` fields. - returned: success - type: str -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict(filters=dict(type='list', elements='str'))) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - - return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} - module.exit_json(**return_value) - - -def collection(module): - return "https://www.googleapis.com/compute/v1/projects/{project}/global/healthChecks".format(**module.params) - - -def fetch_list(module, link, query): - auth = GcpSession(module, 'compute') - return auth.list(link, return_if_object, array_name='items', params={'filter': query}) - - -def query_options(filters): - if not filters: - return '' - - if len(filters) == 1: - return filters[0] - else: - queries = [] - for f in filters: - # For multiple queries, all queries should have () - if f[0] != '(' and f[-1] != ')': - queries.append("(%s)" % ''.join(f)) - else: - queries.append(f) - - return ' '.join(queries) - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_compute_http_health_check_facts.py b/plugins/modules/cloud/google/gcp_compute_http_health_check_facts.py deleted file mode 120000 index dbf679c115..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_http_health_check_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_compute_http_health_check_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_compute_http_health_check_info.py b/plugins/modules/cloud/google/gcp_compute_http_health_check_info.py deleted file mode 100644 index b7a7f6c11b..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_http_health_check_info.py +++ /dev/null @@ -1,254 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_compute_http_health_check_info -description: -- Gather info for GCP HttpHealthCheck -short_description: Gather info for GCP HttpHealthCheck -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - filters: - description: - - A list of filter value pairs. Available filters are listed here U(https://cloud.google.com/sdk/gcloud/reference/topic/filters). - - Each additional filter in the list will act be added as an AND condition (filter1 - and filter2) . - type: list - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on a HTTP health check - gcp_compute_http_health_check_info: - filters: - - name = test_object - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - checkIntervalSec: - description: - - How often (in seconds) to send a health check. The default value is 5 seconds. - returned: success - type: int - creationTimestamp: - description: - - Creation timestamp in RFC3339 text format. - returned: success - type: str - description: - description: - - An optional description of this resource. Provide this property when you create - the resource. - returned: success - type: str - healthyThreshold: - description: - - A so-far unhealthy instance will be marked healthy after this many consecutive - successes. The default value is 2. - returned: success - type: int - host: - description: - - The value of the host header in the HTTP health check request. If left empty - (default value), the public IP on behalf of which this health check is performed - will be used. - returned: success - type: str - id: - description: - - The unique identifier for the resource. This identifier is defined by the - server. - returned: success - type: int - 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. - returned: success - type: str - port: - description: - - The TCP port number for the HTTP health check request. - - The default value is 80. - returned: success - type: int - requestPath: - description: - - The request path of the HTTP health check request. - - The default value is /. - returned: success - type: str - timeoutSec: - description: - - How long (in seconds) to wait before claiming failure. - - The default value is 5 seconds. It is invalid for timeoutSec to have greater - value than checkIntervalSec. - returned: success - type: int - unhealthyThreshold: - description: - - A so-far healthy instance will be marked unhealthy after this many consecutive - failures. The default value is 2. - returned: success - type: int -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict(filters=dict(type='list', elements='str'))) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - - return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} - module.exit_json(**return_value) - - -def collection(module): - return "https://www.googleapis.com/compute/v1/projects/{project}/global/httpHealthChecks".format(**module.params) - - -def fetch_list(module, link, query): - auth = GcpSession(module, 'compute') - return auth.list(link, return_if_object, array_name='items', params={'filter': query}) - - -def query_options(filters): - if not filters: - return '' - - if len(filters) == 1: - return filters[0] - else: - queries = [] - for f in filters: - # For multiple queries, all queries should have () - if f[0] != '(' and f[-1] != ')': - queries.append("(%s)" % ''.join(f)) - else: - queries.append(f) - - return ' '.join(queries) - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_compute_https_health_check_facts.py b/plugins/modules/cloud/google/gcp_compute_https_health_check_facts.py deleted file mode 120000 index 887a5ffe68..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_https_health_check_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_compute_https_health_check_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_compute_https_health_check_info.py b/plugins/modules/cloud/google/gcp_compute_https_health_check_info.py deleted file mode 100644 index ff33d92106..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_https_health_check_info.py +++ /dev/null @@ -1,254 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_compute_https_health_check_info -description: -- Gather info for GCP HttpsHealthCheck -short_description: Gather info for GCP HttpsHealthCheck -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - filters: - description: - - A list of filter value pairs. Available filters are listed here U(https://cloud.google.com/sdk/gcloud/reference/topic/filters). - - Each additional filter in the list will act be added as an AND condition (filter1 - and filter2) . - type: list - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on a HTTPS health check - gcp_compute_https_health_check_info: - filters: - - name = test_object - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - checkIntervalSec: - description: - - How often (in seconds) to send a health check. The default value is 5 seconds. - returned: success - type: int - creationTimestamp: - description: - - Creation timestamp in RFC3339 text format. - returned: success - type: str - description: - description: - - An optional description of this resource. Provide this property when you create - the resource. - returned: success - type: str - healthyThreshold: - description: - - A so-far unhealthy instance will be marked healthy after this many consecutive - successes. The default value is 2. - returned: success - type: int - host: - description: - - The value of the host header in the HTTPS health check request. If left empty - (default value), the public IP on behalf of which this health check is performed - will be used. - returned: success - type: str - id: - description: - - The unique identifier for the resource. This identifier is defined by the - server. - returned: success - type: int - 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. - returned: success - type: str - port: - description: - - The TCP port number for the HTTPS health check request. - - The default value is 80. - returned: success - type: int - requestPath: - description: - - The request path of the HTTPS health check request. - - The default value is /. - returned: success - type: str - timeoutSec: - description: - - How long (in seconds) to wait before claiming failure. - - The default value is 5 seconds. It is invalid for timeoutSec to have greater - value than checkIntervalSec. - returned: success - type: int - unhealthyThreshold: - description: - - A so-far healthy instance will be marked unhealthy after this many consecutive - failures. The default value is 2. - returned: success - type: int -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict(filters=dict(type='list', elements='str'))) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - - return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} - module.exit_json(**return_value) - - -def collection(module): - return "https://www.googleapis.com/compute/v1/projects/{project}/global/httpsHealthChecks".format(**module.params) - - -def fetch_list(module, link, query): - auth = GcpSession(module, 'compute') - return auth.list(link, return_if_object, array_name='items', params={'filter': query}) - - -def query_options(filters): - if not filters: - return '' - - if len(filters) == 1: - return filters[0] - else: - queries = [] - for f in filters: - # For multiple queries, all queries should have () - if f[0] != '(' and f[-1] != ')': - queries.append("(%s)" % ''.join(f)) - else: - queries.append(f) - - return ' '.join(queries) - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_compute_image_facts.py b/plugins/modules/cloud/google/gcp_compute_image_facts.py deleted file mode 120000 index f4ca4647ec..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_image_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_compute_image_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_compute_image_info.py b/plugins/modules/cloud/google/gcp_compute_image_info.py deleted file mode 100644 index 444121129c..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_image_info.py +++ /dev/null @@ -1,385 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_compute_image_info -description: -- Gather info for GCP Image -short_description: Gather info for GCP Image -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - filters: - description: - - A list of filter value pairs. Available filters are listed here U(https://cloud.google.com/sdk/gcloud/reference/topic/filters). - - Each additional filter in the list will act be added as an AND condition (filter1 - and filter2) . - type: list - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on an image - gcp_compute_image_info: - filters: - - name = test_object - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - archiveSizeBytes: - description: - - Size of the image tar.gz archive stored in Google Cloud Storage (in bytes). - returned: success - type: int - creationTimestamp: - description: - - Creation timestamp in RFC3339 text format. - returned: success - type: str - deprecated: - description: - - The deprecation status associated with this image. - returned: success - type: complex - contains: - deleted: - description: - - An optional RFC3339 timestamp on or after which the state of this resource - is intended to change to DELETED. This is only informational and the status - will not change unless the client explicitly changes it. - returned: success - type: str - deprecated: - description: - - An optional RFC3339 timestamp on or after which the state of this resource - is intended to change to DEPRECATED. This is only informational and the - status will not change unless the client explicitly changes it. - returned: success - type: str - obsolete: - description: - - An optional RFC3339 timestamp on or after which the state of this resource - is intended to change to OBSOLETE. This is only informational and the - status will not change unless the client explicitly changes it. - returned: success - type: str - replacement: - description: - - The URL of the suggested replacement for a deprecated resource. - - The suggested replacement resource must be the same kind of resource as - the deprecated resource. - returned: success - type: str - state: - description: - - The deprecation state of this resource. This can be DEPRECATED, OBSOLETE, - or DELETED. Operations which create a new resource using a DEPRECATED - resource will return successfully, but with a warning indicating the deprecated - resource and recommending its replacement. Operations which use OBSOLETE - or DELETED resources will be rejected and result in an error. - returned: success - type: str - description: - description: - - An optional description of this resource. Provide this property when you create - the resource. - returned: success - type: str - diskSizeGb: - description: - - Size of the image when restored onto a persistent disk (in GB). - returned: success - type: int - family: - description: - - The name of the image family to which this image belongs. You can create disks - by specifying an image family instead of a specific image name. The image - family always returns its latest image that is not deprecated. The name of - the image family must comply with RFC1035. - returned: success - type: str - guestOsFeatures: - description: - - A list of features to enable on the guest operating system. - - Applicable only for bootable images. - returned: success - type: complex - contains: - type: - description: - - The type of supported feature. - returned: success - type: str - id: - description: - - The unique identifier for the resource. This identifier is defined by the - server. - returned: success - type: int - imageEncryptionKey: - description: - - Encrypts the image using a customer-supplied encryption key. - - After you encrypt an image with a customer-supplied key, you must provide - the same key if you use the image later (e.g. to create a disk from the image) - . - returned: success - type: complex - contains: - rawKey: - description: - - Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 - base64 to either encrypt or decrypt this resource. - returned: success - type: str - sha256: - description: - - The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption - key that protects this resource. - returned: success - type: str - labels: - description: - - Labels to apply to this Image. - returned: success - type: dict - labelFingerprint: - description: - - The fingerprint used for optimistic locking of this resource. Used internally - during updates. - returned: success - type: str - licenses: - description: - - Any applicable license URI. - returned: success - type: list - 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. - returned: success - type: str - rawDisk: - description: - - The parameters of the raw disk image. - returned: success - type: complex - contains: - containerType: - 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. - returned: success - type: str - sha1Checksum: - description: - - An optional SHA1 checksum of the disk image before unpackaging. - - This is provided by the client when the disk image is created. - returned: success - type: str - 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. - returned: success - type: str - sourceDisk: - 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. - returned: success - type: dict - sourceDiskEncryptionKey: - description: - - The customer-supplied encryption key of the source disk. Required if the source - disk is protected by a customer-supplied encryption key. - returned: success - type: complex - contains: - rawKey: - description: - - Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 - base64 to either encrypt or decrypt this resource. - returned: success - type: str - sha256: - description: - - The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption - key that protects this resource. - returned: success - type: str - sourceDiskId: - 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. - returned: success - type: str - sourceType: - description: - - The type of the image used to create this disk. The default and only value - is RAW . - returned: success - type: str -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict(filters=dict(type='list', elements='str'))) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - - return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} - module.exit_json(**return_value) - - -def collection(module): - return "https://www.googleapis.com/compute/v1/projects/{project}/global/images".format(**module.params) - - -def fetch_list(module, link, query): - auth = GcpSession(module, 'compute') - return auth.list(link, return_if_object, array_name='items', params={'filter': query}) - - -def query_options(filters): - if not filters: - return '' - - if len(filters) == 1: - return filters[0] - else: - queries = [] - for f in filters: - # For multiple queries, all queries should have () - if f[0] != '(' and f[-1] != ')': - queries.append("(%s)" % ''.join(f)) - else: - queries.append(f) - - return ' '.join(queries) - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_compute_instance_facts.py b/plugins/modules/cloud/google/gcp_compute_instance_facts.py deleted file mode 120000 index b886b91c69..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_instance_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_compute_instance_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_compute_instance_group_facts.py b/plugins/modules/cloud/google/gcp_compute_instance_group_facts.py deleted file mode 120000 index 8703aff9e8..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_instance_group_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_compute_instance_group_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_compute_instance_group_info.py b/plugins/modules/cloud/google/gcp_compute_instance_group_info.py deleted file mode 100644 index 2d5a0181c9..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_instance_group_info.py +++ /dev/null @@ -1,263 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_compute_instance_group_info -description: -- Gather info for GCP InstanceGroup -short_description: Gather info for GCP InstanceGroup -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - filters: - description: - - A list of filter value pairs. Available filters are listed here U(https://cloud.google.com/sdk/gcloud/reference/topic/filters). - - Each additional filter in the list will act be added as an AND condition (filter1 - and filter2) . - type: list - zone: - description: - - A reference to the zone where the instance group resides. - required: true - type: str - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on an instance group - gcp_compute_instance_group_info: - zone: us-central1-a - filters: - - name = test_object - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - creationTimestamp: - description: - - Creation timestamp in RFC3339 text format. - returned: success - type: str - description: - description: - - An optional description of this resource. Provide this property when you create - the resource. - returned: success - type: str - id: - description: - - A unique identifier for this instance group. - returned: success - type: int - name: - description: - - The name of the instance group. - - The name must be 1-63 characters long, and comply with RFC1035. - returned: success - type: str - namedPorts: - 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.' - returned: success - type: complex - contains: - name: - description: - - The name for this named port. - - The name must be 1-63 characters long, and comply with RFC1035. - returned: success - type: str - port: - description: - - The port number, which can be a value between 1 and 65535. - returned: success - type: int - network: - description: - - The network to which all instances in the instance group belong. - returned: success - type: dict - region: - description: - - The region where the instance group is located (for regional resources). - returned: success - type: str - subnetwork: - description: - - The subnetwork to which all instances in the instance group belong. - returned: success - type: dict - zone: - description: - - A reference to the zone where the instance group resides. - returned: success - type: str - instances: - description: - - The list of instances associated with this InstanceGroup. - - All instances must be created before being added to an InstanceGroup. - - All instances not in this list will be removed from the InstanceGroup and - will not be deleted. - - Only the full identifier of the instance will be returned. - returned: success - type: list -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict(filters=dict(type='list', elements='str'), zone=dict(required=True, type='str'))) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - - return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} - module.exit_json(**return_value) - - -def collection(module): - return "https://www.googleapis.com/compute/v1/projects/{project}/zones/{zone}/instanceGroups".format(**module.params) - - -def fetch_list(module, link, query): - auth = GcpSession(module, 'compute') - return auth.list(link, return_if_object, array_name='items', params={'filter': query}) - - -def query_options(filters): - if not filters: - return '' - - if len(filters) == 1: - return filters[0] - else: - queries = [] - for f in filters: - # For multiple queries, all queries should have () - if f[0] != '(' and f[-1] != ')': - queries.append("(%s)" % ''.join(f)) - else: - queries.append(f) - - return ' '.join(queries) - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_compute_instance_group_manager_facts.py b/plugins/modules/cloud/google/gcp_compute_instance_group_manager_facts.py deleted file mode 120000 index 2b9ec76192..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_instance_group_manager_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_compute_instance_group_manager_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_compute_instance_group_manager_info.py b/plugins/modules/cloud/google/gcp_compute_instance_group_manager_info.py deleted file mode 100644 index 41a929622a..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_instance_group_manager_info.py +++ /dev/null @@ -1,338 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_compute_instance_group_manager_info -description: -- Gather info for GCP InstanceGroupManager -short_description: Gather info for GCP InstanceGroupManager -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - filters: - description: - - A list of filter value pairs. Available filters are listed here U(https://cloud.google.com/sdk/gcloud/reference/topic/filters). - - Each additional filter in the list will act be added as an AND condition (filter1 - and filter2) . - type: list - zone: - description: - - The zone the managed instance group resides. - required: true - type: str - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on an instance group manager - gcp_compute_instance_group_manager_info: - zone: us-west1-a - filters: - - name = test_object - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - baseInstanceName: - description: - - The base instance name to use for instances in this group. The value must - be 1-58 characters long. Instances are named by appending a hyphen and a random - four-character string to the base instance name. - - The base instance name must comply with RFC1035. - returned: success - type: str - creationTimestamp: - description: - - The creation timestamp for this managed instance group in RFC3339 text format. - returned: success - type: str - currentActions: - description: - - The list of instance actions and the number of instances in this managed instance - group that are scheduled for each of those actions. - returned: success - type: complex - contains: - abandoning: - description: - - The total number of instances in the managed instance group that are scheduled - to be abandoned. Abandoning an instance removes it from the managed instance - group without deleting it. - returned: success - type: int - creating: - description: - - The number of instances in the managed instance group that are scheduled - to be created or are currently being created. If the group fails to create - any of these instances, it tries again until it creates the instance successfully. - - If you have disabled creation retries, this field will not be populated; - instead, the creatingWithoutRetries field will be populated. - returned: success - type: int - creatingWithoutRetries: - description: - - The number of instances that the managed instance group will attempt to - create. The group attempts to create each instance only once. If the group - fails to create any of these instances, it decreases the group's targetSize - value accordingly. - returned: success - type: int - deleting: - description: - - The number of instances in the managed instance group that are scheduled - to be deleted or are currently being deleted. - returned: success - type: int - none: - description: - - The number of instances in the managed instance group that are running - and have no scheduled actions. - returned: success - type: int - recreating: - description: - - The number of instances in the managed instance group that are scheduled - to be recreated or are currently being being recreated. - - Recreating an instance deletes the existing root persistent disk and creates - a new disk from the image that is defined in the instance template. - returned: success - type: int - refreshing: - description: - - The number of instances in the managed instance group that are being reconfigured - with properties that do not require a restart or a recreate action. For - example, setting or removing target pools for the instance. - returned: success - type: int - restarting: - description: - - The number of instances in the managed instance group that are scheduled - to be restarted or are currently being restarted. - returned: success - type: int - description: - description: - - An optional description of this resource. Provide this property when you create - the resource. - returned: success - type: str - id: - description: - - A unique identifier for this resource. - returned: success - type: int - instanceGroup: - description: - - The instance group being managed. - returned: success - type: dict - instanceTemplate: - 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. - returned: success - type: dict - name: - description: - - The name of the managed instance group. The name must be 1-63 characters long, - and comply with RFC1035. - returned: success - type: str - namedPorts: - description: - - Named ports configured for the Instance Groups complementary to this Instance - Group Manager. - returned: success - type: complex - contains: - name: - description: - - The name for this named port. The name must be 1-63 characters long, and - comply with RFC1035. - returned: success - type: str - port: - description: - - The port number, which can be a value between 1 and 65535. - returned: success - type: int - region: - description: - - The region this managed instance group resides (for regional resources). - returned: success - type: str - targetPools: - 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. - returned: success - type: list - targetSize: - description: - - The target number of running instances for this managed instance group. Deleting - or abandoning instances reduces this number. Resizing the group changes this - number. - returned: success - type: int - zone: - description: - - The zone the managed instance group resides. - returned: success - type: str -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict(filters=dict(type='list', elements='str'), zone=dict(required=True, type='str'))) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - - return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} - module.exit_json(**return_value) - - -def collection(module): - return "https://www.googleapis.com/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers".format(**module.params) - - -def fetch_list(module, link, query): - auth = GcpSession(module, 'compute') - return auth.list(link, return_if_object, array_name='items', params={'filter': query}) - - -def query_options(filters): - if not filters: - return '' - - if len(filters) == 1: - return filters[0] - else: - queries = [] - for f in filters: - # For multiple queries, all queries should have () - if f[0] != '(' and f[-1] != ')': - queries.append("(%s)" % ''.join(f)) - else: - queries.append(f) - - return ' '.join(queries) - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_compute_instance_info.py b/plugins/modules/cloud/google/gcp_compute_instance_info.py deleted file mode 100644 index a0ceb54024..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_instance_info.py +++ /dev/null @@ -1,647 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_compute_instance_info -description: -- Gather info for GCP Instance -short_description: Gather info for GCP Instance -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - filters: - description: - - A list of filter value pairs. Available filters are listed here U(https://cloud.google.com/sdk/gcloud/reference/topic/filters). - - Each additional filter in the list will act be added as an AND condition (filter1 - and filter2) . - type: list - zone: - description: - - A reference to the zone where the machine resides. - required: true - type: str - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on an instance - gcp_compute_instance_info: - zone: us-central1-a - filters: - - name = test_object - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - canIpForward: - description: - - Allows this instance to send and receive packets with non-matching destination - or source IPs. This is required if you plan to use this instance to forward - routes. - returned: success - type: bool - cpuPlatform: - description: - - The CPU platform used by this instance. - returned: success - type: str - creationTimestamp: - description: - - Creation timestamp in RFC3339 text format. - returned: success - type: str - deletionProtection: - description: - - Whether the resource should be protected against deletion. - returned: success - type: bool - disks: - description: - - An array of disks that are associated with the instances that are created - from this template. - returned: success - type: complex - contains: - autoDelete: - 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.' - returned: success - 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. - returned: success - type: bool - deviceName: - 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. - returned: success - type: str - diskEncryptionKey: - description: - - Encrypts or decrypts a disk using a customer-supplied encryption key. - returned: success - type: complex - contains: - rawKey: - description: - - Specifies a 256-bit customer-supplied encryption key, encoded in RFC - 4648 base64 to either encrypt or decrypt this resource. - returned: success - type: str - rsaEncryptedKey: - description: - - Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied - encryption key to either encrypt or decrypt this resource. - returned: success - type: str - sha256: - description: - - The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied - encryption key that protects this resource. - returned: success - type: str - 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. - returned: success - type: int - initializeParams: - 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. - returned: success - type: complex - contains: - diskName: - description: - - Specifies the disk name. If not specified, the default is to use the - name of the instance. - returned: success - type: str - diskSizeGb: - description: - - Specifies the size of the disk in base-2 GB. - returned: success - type: int - diskType: - description: - - Reference to a disk type. - - Specifies the disk type to use to create the instance. - - If not specified, the default is pd-standard. - returned: success - type: str - sourceImage: - 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. - returned: success - type: str - sourceImageEncryptionKey: - 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. - returned: success - type: complex - contains: - rawKey: - description: - - Specifies a 256-bit customer-supplied encryption key, encoded - in RFC 4648 base64 to either encrypt or decrypt this resource. - returned: success - type: str - sha256: - description: - - The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied - encryption key that protects this resource. - returned: success - type: str - 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. - returned: success - type: str - 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. - returned: success - type: str - 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. - returned: success - type: dict - type: - description: - - Specifies the type of the disk, either SCRATCH or PERSISTENT. If not specified, - the default is PERSISTENT. - returned: success - type: str - guestAccelerators: - description: - - List of the type and count of accelerator cards attached to the instance . - returned: success - type: complex - contains: - acceleratorCount: - description: - - The number of the guest accelerator cards exposed to this instance. - returned: success - type: int - acceleratorType: - description: - - Full or partial URL of the accelerator type resource to expose to this - instance. - returned: success - type: str - hostname: - description: - - The hostname of the instance to be created. The specified hostname must be - RFC1035 compliant. If hostname is not specified, the default hostname is [INSTANCE_NAME].c.[PROJECT_ID].internal - when using the global DNS, and [INSTANCE_NAME].[ZONE].c.[PROJECT_ID].internal - when using zonal DNS. - returned: success - type: str - id: - description: - - The unique identifier for the resource. This identifier is defined by the - server. - returned: success - type: int - labelFingerprint: - description: - - The fingerprint used for optimistic locking of this resource. Used internally - during updates. - returned: success - type: str - labels: - description: - - Labels to apply to this instance. A list of key->value pairs. - returned: success - type: dict - 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. - returned: success - type: dict - machineType: - description: - - A reference to a machine type which defines VM kind. - returned: success - type: str - minCpuPlatform: - description: - - Specifies a minimum CPU platform for the VM instance. Applicable values are - the friendly names of CPU platforms . - returned: success - type: str - name: - description: - - The name of the resource, provided by the client when initially creating the - resource. The resource name must be 1-63 characters long, and comply with - RFC1035. Specifically, the name must be 1-63 characters long and match the - regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character - must be a lowercase letter, and all following characters must be a dash, lowercase - letter, or digit, except the last character, which cannot be a dash. - returned: success - type: str - networkInterfaces: - 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. - returned: success - type: complex - contains: - accessConfigs: - 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. - returned: success - type: complex - contains: - 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. - returned: success - type: str - natIP: - description: - - Reference to an 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. - returned: success - type: dict - type: - description: - - The type of configuration. The default and only option is ONE_TO_ONE_NAT. - returned: success - type: str - setPublicPtr: - description: - - Specifies whether a public DNS PTR record should be created to map - the external IP address of the instance to a DNS domain name. - returned: success - type: bool - publicPtrDomainName: - description: - - The DNS domain name for the public PTR record. You can set this field - only if the setPublicPtr field is enabled. - returned: success - type: str - networkTier: - description: - - This signifies the networking tier used for configuring this access - configuration. If an AccessConfig is specified without a valid external - IP address, an ephemeral IP will be created with this networkTier. - If an AccessConfig with a valid external IP address is specified, - it must match that of the networkTier associated with the Address - resource owning that IP. - returned: success - type: str - aliasIpRanges: - description: - - An array of alias IP ranges for this network interface. Can only be specified - for network interfaces on subnet-mode networks. - returned: success - type: complex - contains: - ipCidrRange: - 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). - returned: success - type: str - subnetworkRangeName: - 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. - returned: success - type: str - name: - description: - - The name of the network interface, generated by the server. For network - devices, these are eth0, eth1, etc . - returned: success - type: str - network: - description: - - Specifies the title of an existing network. Not setting the network title - will select the default network interface, which could have SSH already - configured . - returned: success - type: dict - networkIP: - 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. - returned: success - type: str - subnetwork: - description: - - Reference to a VPC network. - - 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. - returned: success - type: dict - scheduling: - description: - - Sets the scheduling options for this instance. - returned: success - type: complex - contains: - automaticRestart: - description: - - Specifies whether the instance should be automatically restarted if it - is terminated by Compute Engine (not terminated by a user). - - You can only set the automatic restart option for standard instances. - Preemptible instances cannot be automatically restarted. - returned: success - type: bool - onHostMaintenance: - description: - - Defines the maintenance behavior for this instance. For standard instances, - the default behavior is MIGRATE. For preemptible instances, the default - and only possible behavior is TERMINATE. - - For more information, see Setting Instance Scheduling Options. - returned: success - type: str - preemptible: - description: - - Defines whether the instance is preemptible. This can only be set during - instance creation, it cannot be set or changed after the instance has - been created. - returned: success - type: bool - serviceAccounts: - description: - - A list of service accounts, with their specified scopes, authorized for this - instance. Only one service account per VM instance is supported. - returned: success - type: complex - contains: - email: - description: - - Email address of the service account. - returned: success - type: str - scopes: - description: - - The list of scopes to be made available for this service account. - returned: success - type: list - shieldedInstanceConfig: - description: - - Configuration for various parameters related to shielded instances. - returned: success - type: complex - contains: - enableSecureBoot: - description: - - Defines whether the instance has Secure Boot enabled. - returned: success - type: bool - enableVtpm: - description: - - Defines whether the instance has the vTPM enabled. - returned: success - type: bool - enableIntegrityMonitoring: - description: - - Defines whether the instance has integrity monitoring enabled. - returned: success - type: bool - status: - description: - - 'The status of the instance. One of the following values: PROVISIONING, STAGING, - RUNNING, STOPPING, SUSPENDING, SUSPENDED, and TERMINATED.' - - As a user, use RUNNING to keep a machine "on" and TERMINATED to turn a machine - off . - returned: success - type: str - statusMessage: - description: - - An optional, human-readable explanation of the status. - returned: success - type: str - tags: - description: - - A list of tags to apply to this instance. Tags are used to identify valid - sources or targets for network firewalls and are specified by the client during - instance creation. The tags can be later modified by the setTags method. Each - tag within the list must comply with RFC1035. - returned: success - type: complex - contains: - fingerprint: - description: - - Specifies 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. - returned: success - type: str - items: - description: - - An array of tags. Each tag must be 1-63 characters long, and comply with - RFC1035. - returned: success - type: list - zone: - description: - - A reference to the zone where the machine resides. - returned: success - type: str -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict(filters=dict(type='list', elements='str'), zone=dict(required=True, type='str'))) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - - return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} - module.exit_json(**return_value) - - -def collection(module): - return "https://www.googleapis.com/compute/v1/projects/{project}/zones/{zone}/instances".format(**module.params) - - -def fetch_list(module, link, query): - auth = GcpSession(module, 'compute') - return auth.list(link, return_if_object, array_name='items', params={'filter': query}) - - -def query_options(filters): - if not filters: - return '' - - if len(filters) == 1: - return filters[0] - else: - queries = [] - for f in filters: - # For multiple queries, all queries should have () - if f[0] != '(' and f[-1] != ')': - queries.append("(%s)" % ''.join(f)) - else: - queries.append(f) - - return ' '.join(queries) - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_compute_instance_template_facts.py b/plugins/modules/cloud/google/gcp_compute_instance_template_facts.py deleted file mode 120000 index a9826ba8f1..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_instance_template_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_compute_instance_template_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_compute_instance_template_info.py b/plugins/modules/cloud/google/gcp_compute_instance_template_info.py deleted file mode 100644 index d78d5fd8ff..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_instance_template_info.py +++ /dev/null @@ -1,605 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_compute_instance_template_info -description: -- Gather info for GCP InstanceTemplate -short_description: Gather info for GCP InstanceTemplate -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - filters: - description: - - A list of filter value pairs. Available filters are listed here U(https://cloud.google.com/sdk/gcloud/reference/topic/filters). - - Each additional filter in the list will act be added as an AND condition (filter1 - and filter2) . - type: list - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on an instance template - gcp_compute_instance_template_info: - filters: - - name = test_object - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - creationTimestamp: - description: - - Creation timestamp in RFC3339 text format. - returned: success - type: str - description: - description: - - An optional description of this resource. Provide this property when you create - the resource. - returned: success - type: str - id: - description: - - The unique identifier for the resource. This identifier is defined by the - server. - returned: success - type: int - name: - description: - - Name of the resource. The name is 1-63 characters long and complies with RFC1035. - returned: success - type: str - properties: - description: - - The instance properties for this instance template. - returned: success - type: complex - contains: - canIpForward: - description: - - Enables instances created based on this template to send packets with - source IP addresses other than their own and receive packets with destination - IP addresses other than their own. If these instances will be used as - an IP gateway or it will be set as the next-hop in a Route resource, specify - true. If unsure, leave this set to false. - returned: success - type: bool - description: - description: - - An optional text description for the instances that are created from this - instance template. - returned: success - type: str - disks: - description: - - An array of disks that are associated with the instances that are created - from this template. - returned: success - type: complex - contains: - autoDelete: - 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.' - returned: success - 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. - returned: success - type: bool - deviceName: - 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. - returned: success - type: str - diskEncryptionKey: - description: - - Encrypts or decrypts a disk using a customer-supplied encryption key. - returned: success - type: complex - contains: - rawKey: - description: - - Specifies a 256-bit customer-supplied encryption key, encoded - in RFC 4648 base64 to either encrypt or decrypt this resource. - returned: success - type: str - rsaEncryptedKey: - description: - - Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied - encryption key to either encrypt or decrypt this resource. - returned: success - type: str - sha256: - description: - - The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied - encryption key that protects this resource. - returned: success - type: str - 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. - returned: success - type: int - initializeParams: - 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. - returned: success - type: complex - contains: - diskName: - description: - - Specifies the disk name. If not specified, the default is to use - the name of the instance. - returned: success - type: str - diskSizeGb: - description: - - Specifies the size of the disk in base-2 GB. - returned: success - type: int - diskType: - description: - - Reference to a disk type. - - Specifies the disk type to use to create the instance. - - If not specified, the default is pd-standard. - returned: success - type: str - sourceImage: - 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. - returned: success - type: str - sourceImageEncryptionKey: - 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. - returned: success - type: complex - contains: - rawKey: - description: - - Specifies a 256-bit customer-supplied encryption key, encoded - in RFC 4648 base64 to either encrypt or decrypt this resource. - returned: success - type: str - sha256: - description: - - The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied - encryption key that protects this resource. - returned: success - type: str - 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. - returned: success - type: str - 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. - returned: success - type: str - 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. - returned: success - type: dict - type: - description: - - Specifies the type of the disk, either SCRATCH or PERSISTENT. If not - specified, the default is PERSISTENT. - returned: success - type: str - labels: - description: - - Labels to apply to this address. A list of key->value pairs. - returned: success - type: dict - machineType: - description: - - The machine type to use in the VM instance template. - returned: success - type: str - minCpuPlatform: - description: - - Specifies a minimum CPU platform for the VM instance. Applicable values - are the friendly names of CPU platforms . - returned: success - type: str - 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. - returned: success - type: dict - guestAccelerators: - description: - - List of the type and count of accelerator cards attached to the instance - . - returned: success - type: complex - contains: - acceleratorCount: - description: - - The number of the guest accelerator cards exposed to this instance. - returned: success - type: int - acceleratorType: - description: - - Full or partial URL of the accelerator type resource to expose to - this instance. - returned: success - type: str - networkInterfaces: - 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. - returned: success - type: complex - contains: - accessConfigs: - 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. - returned: success - type: complex - contains: - 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. - returned: success - type: str - natIP: - description: - - Reference to an 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. - returned: success - type: dict - type: - description: - - The type of configuration. The default and only option is ONE_TO_ONE_NAT. - returned: success - type: str - setPublicPtr: - description: - - Specifies whether a public DNS PTR record should be created to - map the external IP address of the instance to a DNS domain name. - returned: success - type: bool - publicPtrDomainName: - description: - - The DNS domain name for the public PTR record. You can set this - field only if the setPublicPtr field is enabled. - returned: success - type: str - networkTier: - description: - - This signifies the networking tier used for configuring this access - configuration. If an AccessConfig is specified without a valid - external IP address, an ephemeral IP will be created with this - networkTier. If an AccessConfig with a valid external IP address - is specified, it must match that of the networkTier associated - with the Address resource owning that IP. - returned: success - type: str - aliasIpRanges: - description: - - An array of alias IP ranges for this network interface. Can only be - specified for network interfaces on subnet-mode networks. - returned: success - type: complex - contains: - ipCidrRange: - 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). - returned: success - type: str - subnetworkRangeName: - 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. - returned: success - type: str - name: - description: - - The name of the network interface, generated by the server. For network - devices, these are eth0, eth1, etc . - returned: success - type: str - network: - description: - - Specifies the title of an existing 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. - returned: success - type: dict - networkIP: - 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. - returned: success - type: str - subnetwork: - description: - - Reference to a VPC network. - - 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. - returned: success - type: dict - scheduling: - description: - - Sets the scheduling options for this instance. - returned: success - type: complex - contains: - automaticRestart: - description: - - Specifies whether the instance should be automatically restarted if - it is terminated by Compute Engine (not terminated by a user). - - You can only set the automatic restart option for standard instances. - Preemptible instances cannot be automatically restarted. - returned: success - type: bool - onHostMaintenance: - description: - - Defines the maintenance behavior for this instance. For standard instances, - the default behavior is MIGRATE. For preemptible instances, the default - and only possible behavior is TERMINATE. - - For more information, see Setting Instance Scheduling Options. - returned: success - type: str - preemptible: - description: - - Defines whether the instance is preemptible. This can only be set - during instance creation, it cannot be set or changed after the instance - has been created. - returned: success - type: bool - serviceAccounts: - description: - - A list of service accounts, with their specified scopes, authorized for - this instance. Only one service account per VM instance is supported. - returned: success - type: complex - contains: - email: - description: - - Email address of the service account. - returned: success - type: str - scopes: - description: - - The list of scopes to be made available for this service account. - returned: success - type: list - tags: - description: - - A list of tags to apply to this instance. Tags are used to identify valid - sources or targets for network firewalls and are specified by the client - during instance creation. The tags can be later modified by the setTags - method. Each tag within the list must comply with RFC1035. - returned: success - type: complex - contains: - fingerprint: - description: - - Specifies 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. - returned: success - type: str - items: - description: - - An array of tags. Each tag must be 1-63 characters long, and comply - with RFC1035. - returned: success - type: list -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict(filters=dict(type='list', elements='str'))) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - - return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} - module.exit_json(**return_value) - - -def collection(module): - return "https://www.googleapis.com/compute/v1/projects/{project}/global/instanceTemplates".format(**module.params) - - -def fetch_list(module, link, query): - auth = GcpSession(module, 'compute') - return auth.list(link, return_if_object, array_name='items', params={'filter': query}) - - -def query_options(filters): - if not filters: - return '' - - if len(filters) == 1: - return filters[0] - else: - queries = [] - for f in filters: - # For multiple queries, all queries should have () - if f[0] != '(' and f[-1] != ')': - queries.append("(%s)" % ''.join(f)) - else: - queries.append(f) - - return ' '.join(queries) - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_compute_interconnect_attachment_facts.py b/plugins/modules/cloud/google/gcp_compute_interconnect_attachment_facts.py deleted file mode 120000 index 479308d6e7..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_interconnect_attachment_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_compute_interconnect_attachment_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_compute_interconnect_attachment_info.py b/plugins/modules/cloud/google/gcp_compute_interconnect_attachment_info.py deleted file mode 100644 index e790ce9e72..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_interconnect_attachment_info.py +++ /dev/null @@ -1,334 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_compute_interconnect_attachment_info -description: -- Gather info for GCP InterconnectAttachment -short_description: Gather info for GCP InterconnectAttachment -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - filters: - description: - - A list of filter value pairs. Available filters are listed here U(https://cloud.google.com/sdk/gcloud/reference/topic/filters). - - Each additional filter in the list will act be added as an AND condition (filter1 - and filter2) . - type: list - region: - description: - - Region where the regional interconnect attachment resides. - required: true - type: str - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on an interconnect attachment - gcp_compute_interconnect_attachment_info: - region: us-central1 - filters: - - name = test_object - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - adminEnabled: - description: - - Whether the VLAN attachment is enabled or disabled. When using PARTNER type - this will Pre-Activate the interconnect attachment . - returned: success - type: bool - cloudRouterIpAddress: - description: - - IPv4 address + prefix length to be configured on Cloud Router Interface for - this interconnect attachment. - returned: success - type: str - customerRouterIpAddress: - description: - - IPv4 address + prefix length to be configured on the customer router subinterface - for this interconnect attachment. - returned: success - type: str - interconnect: - description: - - URL of the underlying Interconnect object that this attachment's traffic will - traverse through. Required if type is DEDICATED, must not be set if type is - PARTNER. - returned: success - type: str - description: - description: - - An optional description of this resource. - returned: success - type: str - bandwidth: - description: - - Provisioned bandwidth capacity for the interconnect attachment. - - For attachments of type DEDICATED, the user can set the bandwidth. - - For attachments of type PARTNER, the Google Partner that is operating the - interconnect must set the bandwidth. - - Output only for PARTNER type, mutable for PARTNER_PROVIDER and DEDICATED, - Defaults to BPS_10G . - returned: success - type: str - edgeAvailabilityDomain: - description: - - Desired availability domain for the attachment. Only available for type PARTNER, - at creation time. For improved reliability, customers should configure a pair - of attachments with one per availability domain. The selected availability - domain will be provided to the Partner via the pairing key so that the provisioned - circuit will lie in the specified domain. If not specified, the value will - default to AVAILABILITY_DOMAIN_ANY. - returned: success - type: str - pairingKey: - description: - - '[Output only for type PARTNER. Not present for DEDICATED]. The opaque identifier - of an PARTNER attachment used to initiate provisioning with a selected partner. - Of the form "XXXXX/region/domain" .' - returned: success - type: str - partnerAsn: - description: - - "[Output only for type PARTNER. Not present for DEDICATED]. Optional BGP ASN - for the router that should be supplied by a layer 3 Partner if they configured - BGP on behalf of the customer." - returned: success - type: str - privateInterconnectInfo: - description: - - Information specific to an InterconnectAttachment. This property is populated - if the interconnect that this is attached to is of type DEDICATED. - returned: success - type: complex - contains: - tag8021q: - description: - - 802.1q encapsulation tag to be used for traffic between Google and the - customer, going to and from this network and region. - returned: success - type: int - type: - description: - - The type of InterconnectAttachment you wish to create. Defaults to DEDICATED. - returned: success - type: str - state: - description: - - "[Output Only] The current state of this attachment's functionality." - returned: success - type: str - googleReferenceId: - description: - - Google reference ID, to be used when raising support tickets with Google or - otherwise to debug backend connectivity issues. - returned: success - type: str - router: - description: - - URL of the cloud router to be used for dynamic routing. This router must be - in the same region as this InterconnectAttachment. The InterconnectAttachment - will automatically connect the Interconnect to the network & region within - which the Cloud Router is configured. - returned: success - type: dict - creationTimestamp: - description: - - Creation timestamp in RFC3339 text format. - returned: success - type: str - id: - description: - - The unique identifier for the resource. This identifier is defined by the - server. - returned: success - type: str - 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. - returned: success - type: str - candidateSubnets: - description: - - Up to 16 candidate prefixes that can be used to restrict the allocation of - cloudRouterIpAddress and customerRouterIpAddress for this attachment. - - All prefixes must be within link-local address space (169.254.0.0/16) and - must be /29 or shorter (/28, /27, etc). Google will attempt to select an unused - /29 from the supplied candidate prefix(es). The request will fail if all possible - /29s are in use on Google's edge. If not supplied, Google will randomly select - an unused /29 from all of link-local space. - returned: success - type: list - vlanTag8021q: - description: - - The IEEE 802.1Q VLAN tag for this attachment, in the range 2-4094. When using - PARTNER type this will be managed upstream. - returned: success - type: int - region: - description: - - Region where the regional interconnect attachment resides. - returned: success - type: str -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict(filters=dict(type='list', elements='str'), region=dict(required=True, type='str'))) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - - return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} - module.exit_json(**return_value) - - -def collection(module): - return "https://www.googleapis.com/compute/v1/projects/{project}/regions/{region}/interconnectAttachments".format(**module.params) - - -def fetch_list(module, link, query): - auth = GcpSession(module, 'compute') - return auth.list(link, return_if_object, array_name='items', params={'filter': query}) - - -def query_options(filters): - if not filters: - return '' - - if len(filters) == 1: - return filters[0] - else: - queries = [] - for f in filters: - # For multiple queries, all queries should have () - if f[0] != '(' and f[-1] != ')': - queries.append("(%s)" % ''.join(f)) - else: - queries.append(f) - - return ' '.join(queries) - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_compute_network_facts.py b/plugins/modules/cloud/google/gcp_compute_network_facts.py deleted file mode 120000 index c2e964a21d..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_network_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_compute_network_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_compute_network_info.py b/plugins/modules/cloud/google/gcp_compute_network_info.py deleted file mode 100644 index 120ee6d931..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_network_info.py +++ /dev/null @@ -1,246 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_compute_network_info -description: -- Gather info for GCP Network -short_description: Gather info for GCP Network -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - filters: - description: - - A list of filter value pairs. Available filters are listed here U(https://cloud.google.com/sdk/gcloud/reference/topic/filters). - - Each additional filter in the list will act be added as an AND condition (filter1 - and filter2) . - type: list - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on a network - gcp_compute_network_info: - filters: - - name = test_object - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - description: - description: - - An optional description of this resource. The resource must be recreated to - modify this field. - returned: success - type: str - gateway_ipv4: - description: - - The gateway address for default routing out of the network. This value is - selected by GCP. - returned: success - type: str - id: - description: - - The unique identifier for the resource. - returned: success - type: int - 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. - returned: success - type: str - subnetworks: - description: - - Server-defined fully-qualified URLs for all subnetworks in this network. - returned: success - type: list - autoCreateSubnetworks: - description: - - When set to `true`, the network is created in "auto subnet mode" and it will - create a subnet for each region automatically across the `10.128.0.0/9` address - range. - - When set to `false`, the network is created in "custom subnet mode" so the - user can explicitly connect subnetwork resources. - returned: success - type: bool - creationTimestamp: - description: - - Creation timestamp in RFC3339 text format. - returned: success - type: str - routingConfig: - description: - - The network-level routing configuration for this network. Used by Cloud Router - to determine what type of network-wide routing behavior to enforce. - returned: success - type: complex - contains: - routingMode: - description: - - The network-wide routing mode to use. If set to `REGIONAL`, this network's - cloud routers will only advertise routes with subnetworks of this network - in the same region as the router. If set to `GLOBAL`, this network's cloud - routers will advertise routes with all subnetworks of this network, across - regions. - returned: success - type: str -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict(filters=dict(type='list', elements='str'))) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - - return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} - module.exit_json(**return_value) - - -def collection(module): - return "https://www.googleapis.com/compute/v1/projects/{project}/global/networks".format(**module.params) - - -def fetch_list(module, link, query): - auth = GcpSession(module, 'compute') - return auth.list(link, return_if_object, array_name='items', params={'filter': query}) - - -def query_options(filters): - if not filters: - return '' - - if len(filters) == 1: - return filters[0] - else: - queries = [] - for f in filters: - # For multiple queries, all queries should have () - if f[0] != '(' and f[-1] != ')': - queries.append("(%s)" % ''.join(f)) - else: - queries.append(f) - - return ' '.join(queries) - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_compute_region_disk_facts.py b/plugins/modules/cloud/google/gcp_compute_region_disk_facts.py deleted file mode 120000 index 1dbc112907..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_region_disk_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_compute_region_disk_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_compute_region_disk_info.py b/plugins/modules/cloud/google/gcp_compute_region_disk_info.py deleted file mode 100644 index f44f642794..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_region_disk_info.py +++ /dev/null @@ -1,343 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_compute_region_disk_info -description: -- Gather info for GCP RegionDisk -short_description: Gather info for GCP RegionDisk -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - filters: - description: - - A list of filter value pairs. Available filters are listed here U(https://cloud.google.com/sdk/gcloud/reference/topic/filters). - - Each additional filter in the list will act be added as an AND condition (filter1 - and filter2) . - type: list - region: - description: - - A reference to the region where the disk resides. - required: true - type: str - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on a region disk - gcp_compute_region_disk_info: - region: us-central1 - filters: - - name = test_object - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - labelFingerprint: - description: - - The fingerprint used for optimistic locking of this resource. Used internally - during updates. - returned: success - type: str - creationTimestamp: - description: - - Creation timestamp in RFC3339 text format. - returned: success - type: str - description: - description: - - An optional description of this resource. Provide this property when you create - the resource. - returned: success - type: str - id: - description: - - The unique identifier for the resource. - returned: success - type: int - lastAttachTimestamp: - description: - - Last attach timestamp in RFC3339 text format. - returned: success - type: str - lastDetachTimestamp: - description: - - Last detach timestamp in RFC3339 text format. - returned: success - type: str - labels: - description: - - Labels to apply to this disk. A list of key->value pairs. - returned: success - type: dict - licenses: - description: - - Any applicable publicly visible licenses. - returned: success - type: list - 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. - returned: success - type: str - sizeGb: - description: - - Size of the persistent disk, specified in GB. You can specify this field when - creating a persistent disk using the sourceImage or sourceSnapshot parameter, - or specify it alone to create an empty persistent disk. - - If you specify this field along with sourceImage or sourceSnapshot, the value - of sizeGb must not be less than the size of the sourceImage or the size of - the snapshot. - returned: success - type: int - users: - description: - - 'Links to the users of the disk (attached instances) in form: project/zones/zone/instances/instance - .' - returned: success - type: list - physicalBlockSizeBytes: - description: - - Physical block size of the persistent disk, in bytes. If not present in a - request, a default value is used. Currently supported sizes are 4096 and 16384, - other sizes may be added in the future. - - If an unsupported value is requested, the error message will list the supported - values for the caller's project. - returned: success - type: int - replicaZones: - description: - - URLs of the zones where the disk should be replicated to. - returned: success - type: list - type: - description: - - URL of the disk type resource describing which disk type to use to create - the disk. Provide this when creating the disk. - returned: success - type: str - region: - description: - - A reference to the region where the disk resides. - returned: success - type: str - diskEncryptionKey: - description: - - Encrypts the disk using a customer-supplied encryption key. - - After you encrypt a disk with a customer-supplied key, you must provide the - same key if you use the disk later (e.g. to create a disk snapshot or an image, - or to attach the disk to a virtual machine). - - Customer-supplied encryption keys do not protect access to metadata of the - disk. - - If you do not provide an encryption key when creating the disk, then the disk - will be encrypted using an automatically generated key and you do not need - to provide a key to use the disk later. - returned: success - type: complex - contains: - rawKey: - description: - - Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 - base64 to either encrypt or decrypt this resource. - returned: success - type: str - sha256: - description: - - The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption - key that protects this resource. - returned: success - type: str - sourceSnapshot: - description: - - The source snapshot used to create this disk. You can provide this as a partial - or full URL to the resource. - returned: success - type: dict - sourceSnapshotEncryptionKey: - description: - - The customer-supplied encryption key of the source snapshot. Required if the - source snapshot is protected by a customer-supplied encryption key. - returned: success - type: complex - contains: - rawKey: - description: - - Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 - base64 to either encrypt or decrypt this resource. - returned: success - type: str - sha256: - description: - - The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption - key that protects this resource. - returned: success - type: str - sourceSnapshotId: - description: - - The unique ID of the snapshot used to create this disk. This value identifies - the exact snapshot that was used to create this persistent disk. For example, - if you created the persistent disk from a snapshot that was later deleted - and recreated under the same name, the source snapshot ID would identify the - exact version of the snapshot that was used. - returned: success - type: str -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict(filters=dict(type='list', elements='str'), region=dict(required=True, type='str'))) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - - return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} - module.exit_json(**return_value) - - -def collection(module): - return "https://www.googleapis.com/compute/v1/projects/{project}/regions/{region}/disks".format(**module.params) - - -def fetch_list(module, link, query): - auth = GcpSession(module, 'compute') - return auth.list(link, return_if_object, array_name='items', params={'filter': query}) - - -def query_options(filters): - if not filters: - return '' - - if len(filters) == 1: - return filters[0] - else: - queries = [] - for f in filters: - # For multiple queries, all queries should have () - if f[0] != '(' and f[-1] != ')': - queries.append("(%s)" % ''.join(f)) - else: - queries.append(f) - - return ' '.join(queries) - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_compute_route_facts.py b/plugins/modules/cloud/google/gcp_compute_route_facts.py deleted file mode 120000 index 33dccb6671..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_route_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_compute_route_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_compute_route_info.py b/plugins/modules/cloud/google/gcp_compute_route_info.py deleted file mode 100644 index 03fefbe0be..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_route_info.py +++ /dev/null @@ -1,268 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_compute_route_info -description: -- Gather info for GCP Route -short_description: Gather info for GCP Route -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - filters: - description: - - A list of filter value pairs. Available filters are listed here U(https://cloud.google.com/sdk/gcloud/reference/topic/filters). - - Each additional filter in the list will act be added as an AND condition (filter1 - and filter2) . - type: list - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on a route - gcp_compute_route_info: - filters: - - name = test_object - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - destRange: - description: - - The destination range of outgoing packets that this route applies to. - - Only IPv4 is supported. - returned: success - type: str - description: - description: - - An optional description of this resource. Provide this property when you create - the resource. - returned: success - type: str - 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. - returned: success - type: str - network: - description: - - The network that this route applies to. - returned: success - type: dict - 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. - returned: success - type: int - tags: - description: - - A list of instance tags to which this route applies. - returned: success - type: list - nextHopGateway: - 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:' - - ' * 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' - returned: success - type: str - nextHopInstance: - description: - - URL to an instance that should handle matching packets. - - 'You can specify this as a full or partial URL. For example:' - - ' * https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance' - - ' * projects/project/zones/zone/instances/instance' - - ' * zones/zone/instances/instance' - returned: success - type: dict - nextHopIp: - description: - - Network IP address of an instance that should handle matching packets. - returned: success - type: str - nextHopVpnTunnel: - description: - - URL to a VpnTunnel that should handle matching packets. - returned: success - type: dict - nextHopNetwork: - description: - - URL to a Network that should handle matching packets. - returned: success - type: str - nextHopIlb: - description: - - The URL to a forwarding rule of type loadBalancingScheme=INTERNAL that should - handle matching packets. - - 'You can only specify the forwarding rule as a partial or full URL. For example, - the following are all valid URLs: U(https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule) - regions/region/forwardingRules/forwardingRule Note that this can only be used - when the destinationRange is a public (non-RFC 1918) IP CIDR range.' - returned: success - type: dict -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict(filters=dict(type='list', elements='str'))) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - - return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} - module.exit_json(**return_value) - - -def collection(module): - return "https://www.googleapis.com/compute/v1/projects/{project}/global/routes".format(**module.params) - - -def fetch_list(module, link, query): - auth = GcpSession(module, 'compute') - return auth.list(link, return_if_object, array_name='items', params={'filter': query}) - - -def query_options(filters): - if not filters: - return '' - - if len(filters) == 1: - return filters[0] - else: - queries = [] - for f in filters: - # For multiple queries, all queries should have () - if f[0] != '(' and f[-1] != ')': - queries.append("(%s)" % ''.join(f)) - else: - queries.append(f) - - return ' '.join(queries) - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_compute_router_facts.py b/plugins/modules/cloud/google/gcp_compute_router_facts.py deleted file mode 120000 index 00498a1b87..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_router_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_compute_router_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_compute_router_info.py b/plugins/modules/cloud/google/gcp_compute_router_info.py deleted file mode 100644 index 1ef8ad5f22..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_router_info.py +++ /dev/null @@ -1,273 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_compute_router_info -description: -- Gather info for GCP Router -short_description: Gather info for GCP Router -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - filters: - description: - - A list of filter value pairs. Available filters are listed here U(https://cloud.google.com/sdk/gcloud/reference/topic/filters). - - Each additional filter in the list will act be added as an AND condition (filter1 - and filter2) . - type: list - region: - description: - - Region where the router resides. - required: true - type: str - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on a router - gcp_compute_router_info: - region: us-central1 - filters: - - name = test_object - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - id: - description: - - The unique identifier for the resource. - returned: success - type: int - creationTimestamp: - description: - - Creation timestamp in RFC3339 text format. - returned: success - type: str - 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. - returned: success - type: str - description: - description: - - An optional description of this resource. - returned: success - type: str - network: - description: - - A reference to the network to which this router belongs. - returned: success - type: dict - bgp: - description: - - BGP information specific to this router. - returned: success - type: complex - contains: - asn: - description: - - Local BGP Autonomous System Number (ASN). Must be an RFC6996 private ASN, - either 16-bit or 32-bit. The value will be fixed for this router resource. - All VPN tunnels that link to this router will have the same local ASN. - returned: success - type: int - advertiseMode: - description: - - User-specified flag to indicate which mode to use for advertisement. - - 'Valid values of this enum field are: DEFAULT, CUSTOM .' - returned: success - type: str - advertisedGroups: - 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 .' - returned: success - type: list - advertisedIpRanges: - 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 - to all peers of the router. These IP ranges will be advertised in addition - to any specified groups. - - Leave this field blank to advertise no custom IP ranges. - returned: success - type: complex - contains: - range: - description: - - The IP range to advertise. The value must be a CIDR-formatted string. - returned: success - type: str - description: - description: - - User-specified description for the IP range. - returned: success - type: str - region: - description: - - Region where the router resides. - returned: success - type: str -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict(filters=dict(type='list', elements='str'), region=dict(required=True, type='str'))) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - - return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} - module.exit_json(**return_value) - - -def collection(module): - return "https://www.googleapis.com/compute/v1/projects/{project}/regions/{region}/routers".format(**module.params) - - -def fetch_list(module, link, query): - auth = GcpSession(module, 'compute') - return auth.list(link, return_if_object, array_name='items', params={'filter': query}) - - -def query_options(filters): - if not filters: - return '' - - if len(filters) == 1: - return filters[0] - else: - queries = [] - for f in filters: - # For multiple queries, all queries should have () - if f[0] != '(' and f[-1] != ')': - queries.append("(%s)" % ''.join(f)) - else: - queries.append(f) - - return ' '.join(queries) - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_compute_ssl_certificate_facts.py b/plugins/modules/cloud/google/gcp_compute_ssl_certificate_facts.py deleted file mode 120000 index 188f2878a9..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_ssl_certificate_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_compute_ssl_certificate_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_compute_ssl_certificate_info.py b/plugins/modules/cloud/google/gcp_compute_ssl_certificate_info.py deleted file mode 100644 index 13891b050f..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_ssl_certificate_info.py +++ /dev/null @@ -1,221 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_compute_ssl_certificate_info -description: -- Gather info for GCP SslCertificate -short_description: Gather info for GCP SslCertificate -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - filters: - description: - - A list of filter value pairs. Available filters are listed here U(https://cloud.google.com/sdk/gcloud/reference/topic/filters). - - Each additional filter in the list will act be added as an AND condition (filter1 - and filter2) . - type: list - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on a SSL certificate - gcp_compute_ssl_certificate_info: - filters: - - name = test_object - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - certificate: - description: - - The certificate in PEM format. - - The certificate chain must be no greater than 5 certs long. - - The chain must include at least one intermediate cert. - returned: success - type: str - creationTimestamp: - description: - - Creation timestamp in RFC3339 text format. - returned: success - type: str - description: - description: - - An optional description of this resource. - returned: success - type: str - id: - description: - - The unique identifier for the resource. - returned: success - type: int - 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. - returned: success - type: str - privateKey: - description: - - The write-only private key in PEM format. - returned: success - type: str -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict(filters=dict(type='list', elements='str'))) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - - return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} - module.exit_json(**return_value) - - -def collection(module): - return "https://www.googleapis.com/compute/v1/projects/{project}/global/sslCertificates".format(**module.params) - - -def fetch_list(module, link, query): - auth = GcpSession(module, 'compute') - return auth.list(link, return_if_object, array_name='items', params={'filter': query}) - - -def query_options(filters): - if not filters: - return '' - - if len(filters) == 1: - return filters[0] - else: - queries = [] - for f in filters: - # For multiple queries, all queries should have () - if f[0] != '(' and f[-1] != ')': - queries.append("(%s)" % ''.join(f)) - else: - queries.append(f) - - return ' '.join(queries) - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_compute_ssl_policy_facts.py b/plugins/modules/cloud/google/gcp_compute_ssl_policy_facts.py deleted file mode 120000 index 2e64eb7d47..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_ssl_policy_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_compute_ssl_policy_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_compute_ssl_policy_info.py b/plugins/modules/cloud/google/gcp_compute_ssl_policy_info.py deleted file mode 100644 index ceb2bd5ae6..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_ssl_policy_info.py +++ /dev/null @@ -1,259 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_compute_ssl_policy_info -description: -- Gather info for GCP SslPolicy -short_description: Gather info for GCP SslPolicy -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - filters: - description: - - A list of filter value pairs. Available filters are listed here U(https://cloud.google.com/sdk/gcloud/reference/topic/filters). - - Each additional filter in the list will act be added as an AND condition (filter1 - and filter2) . - type: list - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on a SSL policy - gcp_compute_ssl_policy_info: - filters: - - name = test_object - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - creationTimestamp: - description: - - Creation timestamp in RFC3339 text format. - returned: success - type: str - description: - description: - - An optional description of this resource. - returned: success - type: str - id: - description: - - The unique identifier for the resource. - returned: success - type: int - 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. - returned: success - type: str - profile: - description: - - Profile specifies the set of SSL features that can be used by the load balancer - when negotiating SSL with clients. This can be one of `COMPATIBLE`, `MODERN`, - `RESTRICTED`, or `CUSTOM`. If using `CUSTOM`, the set of SSL features to enable - must be specified in the `customFeatures` field. - returned: success - type: str - minTlsVersion: - description: - - The minimum version of SSL protocol that can be used by the clients to establish - a connection with the load balancer. This can be one of `TLS_1_0`, `TLS_1_1`, - `TLS_1_2`. - returned: success - type: str - enabledFeatures: - description: - - The list of features enabled in the SSL policy. - returned: success - type: list - customFeatures: - description: - - A list of features enabled when the selected profile is CUSTOM. The method - returns the set of features that can be specified in this list. This field - must be empty if the profile is not CUSTOM. - returned: success - type: list - fingerprint: - description: - - Fingerprint of this resource. A hash of the contents stored in this object. - This field is used in optimistic locking. - returned: success - type: str - warnings: - description: - - If potential misconfigurations are detected for this SSL policy, this field - will be populated with warning messages. - returned: success - type: complex - contains: - code: - description: - - A warning code, if applicable. - returned: success - type: str - message: - description: - - A human-readable description of the warning code. - returned: success - type: str -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict(filters=dict(type='list', elements='str'))) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - - return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} - module.exit_json(**return_value) - - -def collection(module): - return "https://www.googleapis.com/compute/v1/projects/{project}/global/sslPolicies".format(**module.params) - - -def fetch_list(module, link, query): - auth = GcpSession(module, 'compute') - return auth.list(link, return_if_object, array_name='items', params={'filter': query}) - - -def query_options(filters): - if not filters: - return '' - - if len(filters) == 1: - return filters[0] - else: - queries = [] - for f in filters: - # For multiple queries, all queries should have () - if f[0] != '(' and f[-1] != ')': - queries.append("(%s)" % ''.join(f)) - else: - queries.append(f) - - return ' '.join(queries) - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_compute_subnetwork_facts.py b/plugins/modules/cloud/google/gcp_compute_subnetwork_facts.py deleted file mode 120000 index dc4a73ad54..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_subnetwork_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_compute_subnetwork_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_compute_subnetwork_info.py b/plugins/modules/cloud/google/gcp_compute_subnetwork_info.py deleted file mode 100644 index 6ba458e2bb..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_subnetwork_info.py +++ /dev/null @@ -1,271 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_compute_subnetwork_info -description: -- Gather info for GCP Subnetwork -short_description: Gather info for GCP Subnetwork -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - filters: - description: - - A list of filter value pairs. Available filters are listed here U(https://cloud.google.com/sdk/gcloud/reference/topic/filters). - - Each additional filter in the list will act be added as an AND condition (filter1 - and filter2) . - type: list - region: - description: - - URL of the GCP region for this subnetwork. - required: true - type: str - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on a subnetwork - gcp_compute_subnetwork_info: - region: us-west1 - filters: - - name = test_object - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - creationTimestamp: - description: - - Creation timestamp in RFC3339 text format. - returned: success - type: str - description: - description: - - An optional description of this resource. Provide this property when you create - the resource. This field can be set only at resource creation time. - returned: success - type: str - gatewayAddress: - description: - - The gateway address for default routes to reach destination addresses outside - this subnetwork. - returned: success - type: str - id: - description: - - The unique identifier for the resource. - returned: success - type: int - ipCidrRange: - 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. - returned: success - type: str - 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. - returned: success - type: str - network: - description: - - The network this subnet belongs to. - - Only networks that are in the distributed mode can have subnetworks. - returned: success - type: dict - secondaryIpRanges: - description: - - An array of configurations for secondary IP ranges for VM instances contained - in this subnetwork. The primary IP of such VM must belong to the primary ipCidrRange - of the subnetwork. The alias IPs may belong to either primary or secondary - ranges. - returned: success - type: complex - contains: - rangeName: - 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. - returned: success - type: str - ipCidrRange: - description: - - The range of IP addresses belonging to this subnetwork secondary range. - Provide this property when you create the subnetwork. - - Ranges must be unique and non-overlapping with all primary and secondary - IP ranges within a network. Only IPv4 is supported. - returned: success - type: str - privateIpGoogleAccess: - description: - - When enabled, VMs in this subnetwork without external IP addresses can access - Google APIs and services by using Private Google Access. - returned: success - type: bool - region: - description: - - URL of the GCP region for this subnetwork. - returned: success - type: str -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict(filters=dict(type='list', elements='str'), region=dict(required=True, type='str'))) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - - return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} - module.exit_json(**return_value) - - -def collection(module): - return "https://www.googleapis.com/compute/v1/projects/{project}/regions/{region}/subnetworks".format(**module.params) - - -def fetch_list(module, link, query): - auth = GcpSession(module, 'compute') - return auth.list(link, return_if_object, array_name='items', params={'filter': query}) - - -def query_options(filters): - if not filters: - return '' - - if len(filters) == 1: - return filters[0] - else: - queries = [] - for f in filters: - # For multiple queries, all queries should have () - if f[0] != '(' and f[-1] != ')': - queries.append("(%s)" % ''.join(f)) - else: - queries.append(f) - - return ' '.join(queries) - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_compute_target_http_proxy_facts.py b/plugins/modules/cloud/google/gcp_compute_target_http_proxy_facts.py deleted file mode 120000 index 628457e100..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_target_http_proxy_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_compute_target_http_proxy_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_compute_target_http_proxy_info.py b/plugins/modules/cloud/google/gcp_compute_target_http_proxy_info.py deleted file mode 100644 index 33ed246007..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_target_http_proxy_info.py +++ /dev/null @@ -1,215 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_compute_target_http_proxy_info -description: -- Gather info for GCP TargetHttpProxy -short_description: Gather info for GCP TargetHttpProxy -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - filters: - description: - - A list of filter value pairs. Available filters are listed here U(https://cloud.google.com/sdk/gcloud/reference/topic/filters). - - Each additional filter in the list will act be added as an AND condition (filter1 - and filter2) . - type: list - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on a target HTTP proxy - gcp_compute_target_http_proxy_info: - filters: - - name = test_object - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - creationTimestamp: - description: - - Creation timestamp in RFC3339 text format. - returned: success - type: str - description: - description: - - An optional description of this resource. - returned: success - type: str - id: - description: - - The unique identifier for the resource. - returned: success - type: int - 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. - returned: success - type: str - urlMap: - description: - - A reference to the UrlMap resource that defines the mapping from URL to the - BackendService. - returned: success - type: dict -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict(filters=dict(type='list', elements='str'))) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - - return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} - module.exit_json(**return_value) - - -def collection(module): - return "https://www.googleapis.com/compute/v1/projects/{project}/global/targetHttpProxies".format(**module.params) - - -def fetch_list(module, link, query): - auth = GcpSession(module, 'compute') - return auth.list(link, return_if_object, array_name='items', params={'filter': query}) - - -def query_options(filters): - if not filters: - return '' - - if len(filters) == 1: - return filters[0] - else: - queries = [] - for f in filters: - # For multiple queries, all queries should have () - if f[0] != '(' and f[-1] != ')': - queries.append("(%s)" % ''.join(f)) - else: - queries.append(f) - - return ' '.join(queries) - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_compute_target_https_proxy_facts.py b/plugins/modules/cloud/google/gcp_compute_target_https_proxy_facts.py deleted file mode 120000 index 9b6beebab5..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_target_https_proxy_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_compute_target_https_proxy_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_compute_target_https_proxy_info.py b/plugins/modules/cloud/google/gcp_compute_target_https_proxy_info.py deleted file mode 100644 index db1762a78f..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_target_https_proxy_info.py +++ /dev/null @@ -1,238 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_compute_target_https_proxy_info -description: -- Gather info for GCP TargetHttpsProxy -short_description: Gather info for GCP TargetHttpsProxy -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - filters: - description: - - A list of filter value pairs. Available filters are listed here U(https://cloud.google.com/sdk/gcloud/reference/topic/filters). - - Each additional filter in the list will act be added as an AND condition (filter1 - and filter2) . - type: list - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on a target HTTPS proxy - gcp_compute_target_https_proxy_info: - filters: - - name = test_object - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - creationTimestamp: - description: - - Creation timestamp in RFC3339 text format. - returned: success - type: str - description: - description: - - An optional description of this resource. - returned: success - type: str - id: - description: - - The unique identifier for the resource. - returned: success - type: int - 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. - returned: success - type: str - quicOverride: - 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. - returned: success - type: str - sslCertificates: - description: - - A list of SslCertificate resources that are used to authenticate connections - between users and the load balancer. At least one SSL certificate must be - specified. - returned: success - type: list - sslPolicy: - 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. - returned: success - type: dict - urlMap: - description: - - A reference to the UrlMap resource that defines the mapping from URL to the - BackendService. - returned: success - type: dict -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict(filters=dict(type='list', elements='str'))) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - - return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} - module.exit_json(**return_value) - - -def collection(module): - return "https://www.googleapis.com/compute/v1/projects/{project}/global/targetHttpsProxies".format(**module.params) - - -def fetch_list(module, link, query): - auth = GcpSession(module, 'compute') - return auth.list(link, return_if_object, array_name='items', params={'filter': query}) - - -def query_options(filters): - if not filters: - return '' - - if len(filters) == 1: - return filters[0] - else: - queries = [] - for f in filters: - # For multiple queries, all queries should have () - if f[0] != '(' and f[-1] != ')': - queries.append("(%s)" % ''.join(f)) - else: - queries.append(f) - - return ' '.join(queries) - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_compute_target_pool_facts.py b/plugins/modules/cloud/google/gcp_compute_target_pool_facts.py deleted file mode 120000 index e3583a7239..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_target_pool_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_compute_target_pool_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_compute_target_pool_info.py b/plugins/modules/cloud/google/gcp_compute_target_pool_info.py deleted file mode 100644 index 143c1c3439..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_target_pool_info.py +++ /dev/null @@ -1,274 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_compute_target_pool_info -description: -- Gather info for GCP TargetPool -short_description: Gather info for GCP TargetPool -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - filters: - description: - - A list of filter value pairs. Available filters are listed here U(https://cloud.google.com/sdk/gcloud/reference/topic/filters). - - Each additional filter in the list will act be added as an AND condition (filter1 - and filter2) . - type: list - region: - description: - - The region where the target pool resides. - required: true - type: str - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on a target pool - gcp_compute_target_pool_info: - region: us-west1 - filters: - - name = test_object - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - backupPool: - 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. - returned: success - type: dict - creationTimestamp: - description: - - Creation timestamp in RFC3339 text format. - returned: success - type: str - description: - description: - - An optional description of this resource. - returned: success - type: str - failoverRatio: - 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. - returned: success - type: str - healthCheck: - 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. - returned: success - type: dict - id: - description: - - The unique identifier for the resource. - returned: success - type: int - instances: - description: - - A list of virtual machine instances serving this pool. - - They must live in zones contained in the same region as this pool. - returned: success - type: list - 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. - returned: success - type: str - sessionAffinity: - 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." - returned: success - type: str - region: - description: - - The region where the target pool resides. - returned: success - type: str -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict(filters=dict(type='list', elements='str'), region=dict(required=True, type='str'))) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - - return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} - module.exit_json(**return_value) - - -def collection(module): - return "https://www.googleapis.com/compute/v1/projects/{project}/regions/{region}/targetPools".format(**module.params) - - -def fetch_list(module, link, query): - auth = GcpSession(module, 'compute') - return auth.list(link, return_if_object, array_name='items', params={'filter': query}) - - -def query_options(filters): - if not filters: - return '' - - if len(filters) == 1: - return filters[0] - else: - queries = [] - for f in filters: - # For multiple queries, all queries should have () - if f[0] != '(' and f[-1] != ')': - queries.append("(%s)" % ''.join(f)) - else: - queries.append(f) - - return ' '.join(queries) - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_compute_target_ssl_proxy_facts.py b/plugins/modules/cloud/google/gcp_compute_target_ssl_proxy_facts.py deleted file mode 120000 index 6f82c12ab5..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_target_ssl_proxy_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_compute_target_ssl_proxy_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_compute_target_ssl_proxy_info.py b/plugins/modules/cloud/google/gcp_compute_target_ssl_proxy_info.py deleted file mode 100644 index aa4cb36c3f..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_target_ssl_proxy_info.py +++ /dev/null @@ -1,234 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_compute_target_ssl_proxy_info -description: -- Gather info for GCP TargetSslProxy -short_description: Gather info for GCP TargetSslProxy -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - filters: - description: - - A list of filter value pairs. Available filters are listed here U(https://cloud.google.com/sdk/gcloud/reference/topic/filters). - - Each additional filter in the list will act be added as an AND condition (filter1 - and filter2) . - type: list - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on a target SSL proxy - gcp_compute_target_ssl_proxy_info: - filters: - - name = test_object - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - creationTimestamp: - description: - - Creation timestamp in RFC3339 text format. - returned: success - type: str - description: - description: - - An optional description of this resource. - returned: success - type: str - id: - description: - - The unique identifier for the resource. - returned: success - type: int - 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. - returned: success - type: str - proxyHeader: - description: - - Specifies the type of proxy header to append before sending data to the backend, - either NONE or PROXY_V1. The default is NONE. - returned: success - type: str - service: - description: - - A reference to the BackendService resource. - returned: success - type: dict - sslCertificates: - 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. - returned: success - type: list - sslPolicy: - 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. - returned: success - type: dict -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict(filters=dict(type='list', elements='str'))) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - - return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} - module.exit_json(**return_value) - - -def collection(module): - return "https://www.googleapis.com/compute/v1/projects/{project}/global/targetSslProxies".format(**module.params) - - -def fetch_list(module, link, query): - auth = GcpSession(module, 'compute') - return auth.list(link, return_if_object, array_name='items', params={'filter': query}) - - -def query_options(filters): - if not filters: - return '' - - if len(filters) == 1: - return filters[0] - else: - queries = [] - for f in filters: - # For multiple queries, all queries should have () - if f[0] != '(' and f[-1] != ')': - queries.append("(%s)" % ''.join(f)) - else: - queries.append(f) - - return ' '.join(queries) - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_compute_target_tcp_proxy_facts.py b/plugins/modules/cloud/google/gcp_compute_target_tcp_proxy_facts.py deleted file mode 120000 index 551871b74e..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_target_tcp_proxy_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_compute_target_tcp_proxy_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_compute_target_tcp_proxy_info.py b/plugins/modules/cloud/google/gcp_compute_target_tcp_proxy_info.py deleted file mode 100644 index be709593d0..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_target_tcp_proxy_info.py +++ /dev/null @@ -1,220 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_compute_target_tcp_proxy_info -description: -- Gather info for GCP TargetTcpProxy -short_description: Gather info for GCP TargetTcpProxy -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - filters: - description: - - A list of filter value pairs. Available filters are listed here U(https://cloud.google.com/sdk/gcloud/reference/topic/filters). - - Each additional filter in the list will act be added as an AND condition (filter1 - and filter2) . - type: list - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on a target TCP proxy - gcp_compute_target_tcp_proxy_info: - filters: - - name = test_object - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - creationTimestamp: - description: - - Creation timestamp in RFC3339 text format. - returned: success - type: str - description: - description: - - An optional description of this resource. - returned: success - type: str - id: - description: - - The unique identifier for the resource. - returned: success - type: int - 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. - returned: success - type: str - proxyHeader: - description: - - Specifies the type of proxy header to append before sending data to the backend, - either NONE or PROXY_V1. The default is NONE. - returned: success - type: str - service: - description: - - A reference to the BackendService resource. - returned: success - type: dict -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict(filters=dict(type='list', elements='str'))) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - - return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} - module.exit_json(**return_value) - - -def collection(module): - return "https://www.googleapis.com/compute/v1/projects/{project}/global/targetTcpProxies".format(**module.params) - - -def fetch_list(module, link, query): - auth = GcpSession(module, 'compute') - return auth.list(link, return_if_object, array_name='items', params={'filter': query}) - - -def query_options(filters): - if not filters: - return '' - - if len(filters) == 1: - return filters[0] - else: - queries = [] - for f in filters: - # For multiple queries, all queries should have () - if f[0] != '(' and f[-1] != ')': - queries.append("(%s)" % ''.join(f)) - else: - queries.append(f) - - return ' '.join(queries) - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_compute_target_vpn_gateway_facts.py b/plugins/modules/cloud/google/gcp_compute_target_vpn_gateway_facts.py deleted file mode 120000 index 72c072765a..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_target_vpn_gateway_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_compute_target_vpn_gateway_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_compute_target_vpn_gateway_info.py b/plugins/modules/cloud/google/gcp_compute_target_vpn_gateway_info.py deleted file mode 100644 index e7289be045..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_target_vpn_gateway_info.py +++ /dev/null @@ -1,236 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_compute_target_vpn_gateway_info -description: -- Gather info for GCP TargetVpnGateway -short_description: Gather info for GCP TargetVpnGateway -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - filters: - description: - - A list of filter value pairs. Available filters are listed here U(https://cloud.google.com/sdk/gcloud/reference/topic/filters). - - Each additional filter in the list will act be added as an AND condition (filter1 - and filter2) . - type: list - region: - description: - - The region this gateway should sit in. - required: true - type: str - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on a target vpn gateway - gcp_compute_target_vpn_gateway_info: - region: us-west1 - filters: - - name = test_object - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - creationTimestamp: - description: - - Creation timestamp in RFC3339 text format. - returned: success - type: str - description: - description: - - An optional description of this resource. - returned: success - type: str - 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. - returned: success - type: str - id: - description: - - The unique identifier for the resource. - returned: success - type: int - network: - description: - - The network this VPN gateway is accepting traffic for. - returned: success - type: dict - tunnels: - description: - - A list of references to VpnTunnel resources associated with this VPN gateway. - returned: success - type: list - forwardingRules: - description: - - A list of references to the ForwardingRule resources associated with this - VPN gateway. - returned: success - type: list - region: - description: - - The region this gateway should sit in. - returned: success - type: str -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict(filters=dict(type='list', elements='str'), region=dict(required=True, type='str'))) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - - return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} - module.exit_json(**return_value) - - -def collection(module): - return "https://www.googleapis.com/compute/v1/projects/{project}/regions/{region}/targetVpnGateways".format(**module.params) - - -def fetch_list(module, link, query): - auth = GcpSession(module, 'compute') - return auth.list(link, return_if_object, array_name='items', params={'filter': query}) - - -def query_options(filters): - if not filters: - return '' - - if len(filters) == 1: - return filters[0] - else: - queries = [] - for f in filters: - # For multiple queries, all queries should have () - if f[0] != '(' and f[-1] != ')': - queries.append("(%s)" % ''.join(f)) - else: - queries.append(f) - - return ' '.join(queries) - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_compute_url_map_facts.py b/plugins/modules/cloud/google/gcp_compute_url_map_facts.py deleted file mode 120000 index e8046ebc54..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_url_map_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_compute_url_map_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_compute_url_map_info.py b/plugins/modules/cloud/google/gcp_compute_url_map_info.py deleted file mode 100644 index 67772bd701..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_url_map_info.py +++ /dev/null @@ -1,1656 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_compute_url_map_info -description: -- Gather info for GCP UrlMap -short_description: Gather info for GCP UrlMap -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - filters: - description: - - A list of filter value pairs. Available filters are listed here U(https://cloud.google.com/sdk/gcloud/reference/topic/filters). - - Each additional filter in the list will act be added as an AND condition (filter1 - and filter2) . - type: list - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on an URL map - gcp_compute_url_map_info: - filters: - - name = test_object - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - creationTimestamp: - description: - - Creation timestamp in RFC3339 text format. - returned: success - type: str - defaultService: - description: - - The BackendService resource to which traffic is directed if none of the hostRules - match. If defaultRouteAction is additionally specified, advanced routing actions - like URL Rewrites, etc. take effect prior to sending the request to the backend. - However, if defaultService is specified, defaultRouteAction cannot contain - any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, - service must not be specified. Only one of defaultService, defaultUrlRedirect - or defaultRouteAction.weightedBackendService must be set. - returned: success - type: dict - description: - description: - - An optional description of this resource. Provide this property when you create - the resource. - returned: success - type: str - id: - description: - - The unique identifier for the resource. - returned: success - type: int - fingerprint: - description: - - Fingerprint of this resource. A hash of the contents stored in this object. - This field is used in optimistic locking. - returned: success - type: str - headerAction: - description: - - Specifies changes to request and response headers that need to take effect - for the selected backendService. The headerAction specified here take effect - after headerAction specified under pathMatcher. - returned: success - type: complex - contains: - requestHeadersToAdd: - description: - - Headers to add to a matching request prior to forwarding the request to - the backendService. - returned: success - type: complex - contains: - headerName: - description: - - The name of the header. - returned: success - type: str - headerValue: - description: - - The value of the header to add. - returned: success - type: str - replace: - description: - - If false, headerValue is appended to any values that already exist - for the header. If true, headerValue is set for the header, discarding - any values that were set for that header. - returned: success - type: bool - requestHeadersToRemove: - description: - - A list of header names for headers that need to be removed from the request - prior to forwarding the request to the backendService. - returned: success - type: list - responseHeadersToAdd: - description: - - Headers to add the response prior to sending the response back to the - client. - returned: success - type: complex - contains: - headerName: - description: - - The name of the header. - returned: success - type: str - headerValue: - description: - - The value of the header to add. - returned: success - type: str - replace: - description: - - If false, headerValue is appended to any values that already exist - for the header. If true, headerValue is set for the header, discarding - any values that were set for that header. - returned: success - type: bool - responseHeadersToRemove: - description: - - A list of header names for headers that need to be removed from the response - prior to sending the response back to the client. - returned: success - type: list - hostRules: - description: - - The list of HostRules to use against the URL. - returned: success - type: complex - contains: - description: - description: - - An optional description of this resource. Provide this property when you - create the resource. - returned: success - type: str - 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 . - returned: success - type: list - pathMatcher: - 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. - returned: success - type: str - 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. - returned: success - type: str - pathMatchers: - description: - - The list of named PathMatchers to use against the URL. - returned: success - type: complex - contains: - defaultService: - description: - - 'The BackendService resource. This will be used if none of the pathRules - or routeRules defined by this PathMatcher are matched. For example, the - following are all valid URLs to a BackendService resource: - U(https://www.googleapis.com/compute/v1/projects/project/global/backendServices/backen) - dService - compute/v1/projects/project/global/backendServices/backendService - - global/backendServices/backendService If defaultRouteAction is additionally - specified, advanced routing actions like URL Rewrites, etc. take effect - prior to sending the request to the backend. However, if defaultService - is specified, defaultRouteAction cannot contain any weightedBackendServices. - Conversely, if defaultRouteAction specifies any weightedBackendServices, - defaultService must not be specified. Only one of defaultService, defaultUrlRedirect - or defaultRouteAction.weightedBackendService must be set. Authorization - requires one or more of the following Google IAM permissions on the specified - resource default_service: - compute.backendBuckets.use - compute.backendServices.use - .' - returned: success - type: dict - description: - description: - - An optional description of this resource. Provide this property when you - create the resource. - returned: success - type: str - headerAction: - description: - - Specifies changes to request and response headers that need to take effect - for the selected backendService. HeaderAction specified here are applied - after the matching HttpRouteRule HeaderAction and before the HeaderAction - in the UrlMap . - returned: success - type: complex - contains: - requestHeadersToAdd: - description: - - Headers to add to a matching request prior to forwarding the request - to the backendService. - returned: success - type: complex - contains: - headerName: - description: - - The name of the header. - returned: success - type: str - headerValue: - description: - - The value of the header to add. - returned: success - type: str - replace: - description: - - If false, headerValue is appended to any values that already exist - for the header. If true, headerValue is set for the header, discarding - any values that were set for that header. - returned: success - type: bool - requestHeadersToRemove: - description: - - A list of header names for headers that need to be removed from the - request prior to forwarding the request to the backendService. - returned: success - type: list - responseHeadersToAdd: - description: - - Headers to add the response prior to sending the response back to - the client. - returned: success - type: complex - contains: - headerName: - description: - - The name of the header. - returned: success - type: str - headerValue: - description: - - The value of the header to add. - returned: success - type: str - replace: - description: - - If false, headerValue is appended to any values that already exist - for the header. If true, headerValue is set for the header, discarding - any values that were set for that header. - returned: success - type: bool - responseHeadersToRemove: - description: - - A list of header names for headers that need to be removed from the - response prior to sending the response back to the client. - returned: success - type: list - name: - description: - - The name to which this PathMatcher is referred by the HostRule. - returned: success - type: str - pathRules: - description: - - 'The list of path rules. Use this list instead of routeRules when routing - based on simple path matching is all that''s required. The order by which - path rules are specified does not matter. Matches are always done on the - longest-path-first basis. For example: a pathRule with a path /a/b/c/* - will match before /a/b/* irrespective of the order in which those paths - appear in this list. Within a given pathMatcher, only one of pathRules - or routeRules must be set.' - returned: success - type: complex - contains: - service: - description: - - The backend service resource to which traffic is directed if this - rule is matched. If routeAction is additionally specified, advanced - routing actions like URL Rewrites, etc. take effect prior to sending - the request to the backend. However, if service is specified, routeAction - cannot contain any weightedBackendService s. Conversely, if routeAction - specifies any weightedBackendServices, service must not be specified. - Only one of urlRedirect, service or routeAction.weightedBackendService - must be set. - returned: success - type: dict - 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.' - returned: success - type: list - routeAction: - description: - - In response to a matching path, the load balancer performs advanced - routing actions like URL rewrites, header transformations, etc. prior - to forwarding the request to the selected backend. If routeAction - specifies any weightedBackendServices, service must not be set. Conversely - if service is set, routeAction cannot contain any weightedBackendServices. - Only one of routeAction or urlRedirect must be set. - returned: success - type: complex - contains: - corsPolicy: - description: - - The specification for allowing client side cross-origin requests. - Please see W3C Recommendation for Cross Origin Resource Sharing - . - returned: success - type: complex - contains: - allowCredentials: - description: - - In response to a preflight request, setting this to true indicates - that the actual request can include user credentials. This - translates to the Access- Control-Allow-Credentials header. - Defaults to false. - returned: success - type: bool - allowHeaders: - description: - - Specifies the content for the Access-Control-Allow-Headers - header. - returned: success - type: list - allowMethods: - description: - - Specifies the content for the Access-Control-Allow-Methods - header. - returned: success - type: list - allowOriginRegexes: - description: - - Specifies the regualar expression patterns that match allowed - origins. For regular expression grammar please see en.cppreference.com/w/cpp/regex/ecmascript - An origin is allowed if it matches either allow_origins or - allow_origin_regex. - returned: success - type: list - allowOrigins: - description: - - Specifies the list of origins that will be allowed to do CORS - requests. An origin is allowed if it matches either allow_origins - or allow_origin_regex. - returned: success - type: list - disabled: - description: - - If true, specifies the CORS policy is disabled. - returned: success - type: bool - exposeHeaders: - description: - - Specifies the content for the Access-Control-Expose-Headers - header. - returned: success - type: list - maxAge: - description: - - Specifies how long the results of a preflight request can - be cached. This translates to the content for the Access-Control-Max-Age - header. - returned: success - type: int - faultInjectionPolicy: - description: - - The specification for fault injection introduced into traffic - to test the resiliency of clients to backend service failure. - As part of fault injection, when clients send requests to a backend - service, delays can be introduced by Loadbalancer on a percentage - of requests before sending those request to the backend service. - Similarly requests from clients can be aborted by the Loadbalancer - for a percentage of requests. timeout and retry_policy will be - ignored by clients that are configured with a fault_injection_policy. - returned: success - type: complex - contains: - abort: - description: - - The specification for how client requests are aborted as part - of fault injection. - returned: success - type: complex - contains: - httpStatus: - description: - - The HTTP status code used to abort the request. The value - must be between 200 and 599 inclusive. - returned: success - type: int - percentage: - description: - - The percentage of traffic (connections/operations/requests) - which will be aborted as part of fault injection. The - value must be between 0.0 and 100.0 inclusive. - returned: success - type: str - delay: - description: - - The specification for how client requests are delayed as part - of fault injection, before being sent to a backend service. - returned: success - type: complex - contains: - fixedDelay: - description: - - Specifies the value of the fixed delay interval. - returned: success - type: complex - contains: - nanos: - description: - - Span of time that's a fraction of a second at nanosecond - resolution. Durations less than one second are represented - with a 0 `seconds` field and a positive `nanos` field. - Must be from 0 to 999,999,999 inclusive. - returned: success - type: int - seconds: - description: - - Span of time at a resolution of a second. Must be - from 0 to 315,576,000,000 inclusive. - returned: success - type: str - percentage: - description: - - The percentage of traffic (connections/operations/requests) - on which delay will be introduced as part of fault injection. - The value must be between 0.0 and 100.0 inclusive. - returned: success - type: str - requestMirrorPolicy: - description: - - Specifies the policy on how requests intended for the route's - backends are shadowed to a separate mirrored backend service. - Loadbalancer does not wait for responses from the shadow service. - Prior to sending traffic to the shadow service, the host / authority - header is suffixed with -shadow. - returned: success - type: complex - contains: - backendService: - description: - - The BackendService resource being mirrored to. - returned: success - type: dict - retryPolicy: - description: - - Specifies the retry policy associated with this route. - returned: success - type: complex - contains: - numRetries: - description: - - Specifies the allowed number retries. This number must be - > 0. - returned: success - type: int - perTryTimeout: - description: - - Specifies a non-zero timeout per retry attempt. - returned: success - type: complex - contains: - nanos: - description: - - Span of time that's a fraction of a second at nanosecond - resolution. Durations less than one second are represented - with a 0 `seconds` field and a positive `nanos` field. - Must be from 0 to 999,999,999 inclusive. - returned: success - type: int - seconds: - description: - - Span of time at a resolution of a second. Must be from - 0 to 315,576,000,000 inclusive. - returned: success - type: str - retryConditions: - description: - - 'Specifies one or more conditions when this retry rule applies. - Valid values are: - 5xx: Loadbalancer will attempt a retry - if the backend service responds with any 5xx response code, - or if the backend service does not respond at all, example: - disconnects, reset, read timeout, connection failure, and - refused streams.' - - "- gateway-error: Similar to 5xx, but only applies to response - codes 502, 503 or 504." - - "- connect-failure: Loadbalancer will retry on failures connecting - to backend services, for example due to connection timeouts." - - "- retriable-4xx: Loadbalancer will retry for retriable 4xx - response codes." - - Currently the only retriable error supported is 409. - - "- refused-stream: Loadbalancer will retry if the backend - service resets the stream with a REFUSED_STREAM error code. - This reset type indicates that it is safe to retry." - - "- cancelled: Loadbalancer will retry if the gRPC status code - in the response header is set to cancelled - deadline-exceeded: - Loadbalancer will retry if the gRPC status code in the response - header is set to deadline-exceeded - resource-exhausted: Loadbalancer - will retry if the gRPC status code in the response header - is set to resource-exhausted - unavailable: Loadbalancer will - retry if the gRPC status code in the response header is set - to unavailable ." - returned: success - type: list - timeout: - description: - - Specifies the timeout for the selected route. Timeout is computed - from the time the request is has been fully processed (i.e. end-of-stream) - up until the response has been completely processed. Timeout includes - all retries. If not specified, the default value is 15 seconds. - returned: success - type: complex - contains: - nanos: - description: - - Span of time that's a fraction of a second at nanosecond resolution. - Durations less than one second are represented with a 0 `seconds` - field and a positive `nanos` field. Must be from 0 to 999,999,999 - inclusive. - returned: success - type: int - seconds: - description: - - Span of time at a resolution of a second. Must be from 0 to - 315,576,000,000 inclusive. - returned: success - type: str - urlRewrite: - description: - - The spec to modify the URL of the request, prior to forwarding - the request to the matched service . - returned: success - type: complex - contains: - hostRewrite: - description: - - Prior to forwarding the request to the selected service, the - request's host header is replaced with contents of hostRewrite. - The value must be between 1 and 255 characters. - returned: success - type: str - pathPrefixRewrite: - description: - - Prior to forwarding the request to the selected backend service, - the matching portion of the request's path is replaced by - pathPrefixRewrite. The value must be between 1 and 1024 characters. - returned: success - type: str - weightedBackendServices: - description: - - A list of weighted backend services to send traffic to when a - route match occurs. The weights determine the fraction of traffic - that flows to their corresponding backend service. If all traffic - needs to go to a single backend service, there must be one weightedBackendService - with weight set to a non 0 number. Once a backendService is identified - and before forwarding the request to the backend service, advanced - routing actions like Url rewrites and header transformations are - applied depending on additional settings specified in this HttpRouteAction. - returned: success - type: complex - contains: - backendService: - description: - - The default BackendService resource. Before forwarding the - request to backendService, the loadbalancer applies any relevant - headerActions specified as part of this backendServiceWeight. - returned: success - type: dict - headerAction: - description: - - Specifies changes to request and response headers that need - to take effect for the selected backendService. headerAction - specified here take effect before headerAction in the enclosing - HttpRouteRule, PathMatcher and UrlMap. - returned: success - type: complex - contains: - requestHeadersToAdd: - description: - - Headers to add to a matching request prior to forwarding - the request to the backendService. - returned: success - type: complex - contains: - headerName: - description: - - The name of the header. - returned: success - type: str - headerValue: - description: - - The value of the header to add. - returned: success - type: str - replace: - description: - - If false, headerValue is appended to any values that - already exist for the header. If true, headerValue - is set for the header, discarding any values that - were set for that header. - returned: success - type: bool - requestHeadersToRemove: - description: - - A list of header names for headers that need to be removed - from the request prior to forwarding the request to the - backendService. - returned: success - type: list - responseHeadersToAdd: - description: - - Headers to add the response prior to sending the response - back to the client. - returned: success - type: complex - contains: - headerName: - description: - - The name of the header. - returned: success - type: str - headerValue: - description: - - The value of the header to add. - returned: success - type: str - replace: - description: - - If false, headerValue is appended to any values that - already exist for the header. If true, headerValue - is set for the header, discarding any values that - were set for that header. - returned: success - type: bool - responseHeadersToRemove: - description: - - A list of header names for headers that need to be removed - from the response prior to sending the response back to - the client. - returned: success - type: list - weight: - description: - - Specifies the fraction of traffic sent to backendService, - computed as weight / (sum of all weightedBackendService weights - in routeAction) . The selection of a backend service is determined - only for new traffic. Once a user's request has been directed - to a backendService, subsequent requests will be sent to the - same backendService as determined by the BackendService's - session affinity policy. - - The value must be between 0 and 1000 . - returned: success - type: int - urlRedirect: - description: - - When a path pattern is matched, the request is redirected to a URL - specified by urlRedirect. If urlRedirect is specified, service or - routeAction must not be set. - returned: success - type: complex - contains: - hostRedirect: - description: - - The host that will be used in the redirect response instead of - the one that was supplied in the request. The value must be between - 1 and 255 characters. - returned: success - type: str - httpsRedirect: - description: - - If set to true, the URL scheme in the redirected request is set - to https. If set to false, the URL scheme of the redirected request - will remain the same as that of the request. This must only be - set for UrlMaps used in TargetHttpProxys. - - Setting this true for TargetHttpsProxy is not permitted. Defaults - to false. - returned: success - type: bool - pathRedirect: - description: - - The path that will be used in the redirect response instead of - the one that was supplied in the request. Only one of pathRedirect - or prefixRedirect must be specified. The value must be between - 1 and 1024 characters. - returned: success - type: str - prefixRedirect: - description: - - The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch, - retaining the remaining portion of the URL before redirecting - the request. - returned: success - type: str - redirectResponseCode: - description: - - 'The HTTP Status code to use for this RedirectAction. Supported - values are: - MOVED_PERMANENTLY_DEFAULT, which is the default - value and corresponds to 301.' - - "- FOUND, which corresponds to 302." - - "- SEE_OTHER which corresponds to 303." - - "- TEMPORARY_REDIRECT, which corresponds to 307. In this case, - the request method will be retained." - - "- PERMANENT_REDIRECT, which corresponds to 308. In this case, - the request method will be retained." - returned: success - type: str - stripQuery: - description: - - If set to true, any accompanying query portion of the original - URL is removed prior to redirecting the request. If set to false, - the query portion of the original URL is retained. - returned: success - type: bool - routeRules: - description: - - 'The list of ordered HTTP route rules. Use this list instead of pathRules - when advanced route matching and routing actions are desired. The order - of specifying routeRules matters: the first rule that matches will cause - its specified routing action to take effect. Within a given pathMatcher, - only one of pathRules or routeRules must be set. routeRules are not supported - in UrlMaps intended for External load balancers.' - returned: success - type: complex - contains: - priority: - description: - - For routeRules within a given pathMatcher, priority determines the - order in which load balancer will interpret routeRules. RouteRules - are evaluated in order of priority, from the lowest to highest number. - The priority of a rule decreases as its number increases (1, 2, 3, - N+1). The first rule that matches the request is applied. - - You cannot configure two or more routeRules with the same priority. - - Priority for each rule must be set to a number between 0 and 2147483647 - inclusive. - - Priority numbers can have gaps, which enable you to add or remove - rules in the future without affecting the rest of the rules. For example, - 1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority numbers to - which you could add rules numbered from 6 to 8, 10 to 11, and 13 to - 15 in the future without any impact on existing rules. - returned: success - type: int - service: - description: - - The backend service resource to which traffic is directed if this - rule is matched. If routeAction is additionally specified, advanced - routing actions like URL Rewrites, etc. take effect prior to sending - the request to the backend. However, if service is specified, routeAction - cannot contain any weightedBackendService s. Conversely, if routeAction - specifies any weightedBackendServices, service must not be specified. - Only one of urlRedirect, service or routeAction.weightedBackendService - must be set. - returned: success - type: dict - headerAction: - description: - - Specifies changes to request and response headers that need to take - effect for the selected backendService. The headerAction specified - here are applied before the matching pathMatchers[].headerAction and - after pathMatchers[].routeRules[].r outeAction.weightedBackendService.backendServiceWeightAction[].headerAction - . - returned: success - type: complex - contains: - requestHeadersToAdd: - description: - - Headers to add to a matching request prior to forwarding the request - to the backendService. - returned: success - type: complex - contains: - headerName: - description: - - The name of the header. - returned: success - type: str - headerValue: - description: - - The value of the header to add. - returned: success - type: str - replace: - description: - - If false, headerValue is appended to any values that already - exist for the header. If true, headerValue is set for the - header, discarding any values that were set for that header. - returned: success - type: bool - requestHeadersToRemove: - description: - - A list of header names for headers that need to be removed from - the request prior to forwarding the request to the backendService. - returned: success - type: list - responseHeadersToAdd: - description: - - Headers to add the response prior to sending the response back - to the client. - returned: success - type: complex - contains: - headerName: - description: - - The name of the header. - returned: success - type: str - headerValue: - description: - - The value of the header to add. - returned: success - type: str - replace: - description: - - If false, headerValue is appended to any values that already - exist for the header. If true, headerValue is set for the - header, discarding any values that were set for that header. - returned: success - type: bool - responseHeadersToRemove: - description: - - A list of header names for headers that need to be removed from - the response prior to sending the response back to the client. - returned: success - type: list - matchRules: - description: - - The rules for determining a match. - returned: success - type: complex - contains: - fullPathMatch: - description: - - For satifying the matchRule condition, the path of the request - must exactly match the value specified in fullPathMatch after - removing any query parameters and anchor that may be part of the - original URL. FullPathMatch must be between 1 and 1024 characters. - Only one of prefixMatch, fullPathMatch or regexMatch must be specified. - returned: success - type: str - headerMatches: - description: - - Specifies a list of header match criteria, all of which must match - corresponding headers in the request. - returned: success - type: complex - contains: - exactMatch: - description: - - The value should exactly match contents of exactMatch. Only - one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch - or rangeMatch must be set. - returned: success - type: str - headerName: - description: - - The name of the HTTP header to match. For matching against - the HTTP request's authority, use a headerMatch with the header - name ":authority". For matching a request's method, use the - headerName ":method". - returned: success - type: str - invertMatch: - description: - - If set to false, the headerMatch is considered a match if - the match criteria above are met. If set to true, the headerMatch - is considered a match if the match criteria above are NOT - met. Defaults to false. - returned: success - type: bool - prefixMatch: - description: - - The value of the header must start with the contents of prefixMatch. - Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, - presentMatch or rangeMatch must be set. - returned: success - type: str - presentMatch: - description: - - A header with the contents of headerName must exist. The match - takes place whether or not the request's header has a value - or not. Only one of exactMatch, prefixMatch, suffixMatch, - regexMatch, presentMatch or rangeMatch must be set. - returned: success - type: bool - rangeMatch: - description: - - The header value must be an integer and its value must be - in the range specified in rangeMatch. If the header does not - contain an integer, number or is empty, the match fails. For - example for a range [-5, 0] - -3 will match. - 0 will not - match. - 0.25 will not match. - -3someString will not match. - Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, - presentMatch or rangeMatch must be set. - returned: success - type: complex - contains: - rangeEnd: - description: - - The end of the range (exclusive). - returned: success - type: int - rangeStart: - description: - - The start of the range (inclusive). - returned: success - type: int - regexMatch: - description: - - 'The value of the header must match the regualar expression - specified in regexMatch. For regular expression grammar, please - see: en.cppreference.com/w/cpp/regex/ecmascript For matching - against a port specified in the HTTP request, use a headerMatch - with headerName set to PORT and a regular expression that - satisfies the RFC2616 Host header''s port specifier.' - - Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, - presentMatch or rangeMatch must be set. - returned: success - type: str - suffixMatch: - description: - - The value of the header must end with the contents of suffixMatch. - Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, - presentMatch or rangeMatch must be set. - returned: success - type: str - ignoreCase: - description: - - Specifies that prefixMatch and fullPathMatch matches are case - sensitive. - - Defaults to false. - returned: success - type: bool - metadataFilters: - description: - - Opaque filter criteria used by Loadbalancer to restrict routing - configuration to a limited set xDS compliant clients. In their - xDS requests to Loadbalancer, xDS clients present node metadata. - If a match takes place, the relevant routing configuration is - made available to those proxies. For each metadataFilter in this - list, if its filterMatchCriteria is set to MATCH_ANY, at least - one of the filterLabels must match the corresponding label provided - in the metadata. If its filterMatchCriteria is set to MATCH_ALL, - then all of its filterLabels must match with corresponding labels - in the provided metadata. metadataFilters specified here can be - overrides those specified in ForwardingRule that refers to this - UrlMap. metadataFilters only applies to Loadbalancers that have - their loadBalancingScheme set to INTERNAL_SELF_MANAGED. - returned: success - type: complex - contains: - filterLabels: - description: - - The list of label value pairs that must match labels in the - provided metadata based on filterMatchCriteria This list must - not be empty and can have at the most 64 entries. - returned: success - type: complex - contains: - name: - description: - - Name of metadata label. The name can have a maximum length - of 1024 characters and must be at least 1 character long. - returned: success - type: str - value: - description: - - The value of the label must match the specified value. - value can have a maximum length of 1024 characters. - returned: success - type: str - filterMatchCriteria: - description: - - 'Specifies how individual filterLabel matches within the list - of filterLabels contribute towards the overall metadataFilter - match. Supported values are: - MATCH_ANY: At least one of - the filterLabels must have a matching label in the provided - metadata.' - - "- MATCH_ALL: All filterLabels must have matching labels in - the provided metadata." - returned: success - type: str - prefixMatch: - description: - - For satifying the matchRule condition, the request's path must - begin with the specified prefixMatch. prefixMatch must begin with - a /. The value must be between 1 and 1024 characters. Only one - of prefixMatch, fullPathMatch or regexMatch must be specified. - returned: success - type: str - queryParameterMatches: - description: - - Specifies a list of query parameter match criteria, all of which - must match corresponding query parameters in the request. - returned: success - type: complex - contains: - exactMatch: - description: - - The queryParameterMatch matches if the value of the parameter - exactly matches the contents of exactMatch. Only one of presentMatch, - exactMatch and regexMatch must be set. - returned: success - type: str - name: - description: - - The name of the query parameter to match. The query parameter - must exist in the request, in the absence of which the request - match fails. - returned: success - type: str - presentMatch: - description: - - Specifies that the queryParameterMatch matches if the request - contains the query parameter, irrespective of whether the - parameter has a value or not. Only one of presentMatch, exactMatch - and regexMatch must be set. - returned: success - type: bool - regexMatch: - description: - - The queryParameterMatch matches if the value of the parameter - matches the regular expression specified by regexMatch. For - the regular expression grammar, please see en.cppreference.com/w/cpp/regex/ecmascript - Only one of presentMatch, exactMatch and regexMatch must be - set. - returned: success - type: str - regexMatch: - description: - - For satifying the matchRule condition, the path of the request - must satisfy the regular expression specified in regexMatch after - removing any query parameters and anchor supplied with the original - URL. For regular expression grammar please see en.cppreference.com/w/cpp/regex/ecmascript - Only one of prefixMatch, fullPathMatch or regexMatch must be specified. - returned: success - type: str - routeAction: - description: - - In response to a matching matchRule, the load balancer performs advanced - routing actions like URL rewrites, header transformations, etc. prior - to forwarding the request to the selected backend. If routeAction - specifies any weightedBackendServices, service must not be set. Conversely - if service is set, routeAction cannot contain any weightedBackendServices. - Only one of routeAction or urlRedirect must be set. - returned: success - type: complex - contains: - corsPolicy: - description: - - The specification for allowing client side cross-origin requests. - Please see W3C Recommendation for Cross Origin Resource Sharing - . - returned: success - type: complex - contains: - allowCredentials: - description: - - In response to a preflight request, setting this to true indicates - that the actual request can include user credentials. This - translates to the Access- Control-Allow-Credentials header. - Defaults to false. - returned: success - type: bool - allowHeaders: - description: - - Specifies the content for the Access-Control-Allow-Headers - header. - returned: success - type: list - allowMethods: - description: - - Specifies the content for the Access-Control-Allow-Methods - header. - returned: success - type: list - allowOriginRegexes: - description: - - Specifies the regualar expression patterns that match allowed - origins. For regular expression grammar please see en.cppreference.com/w/cpp/regex/ecmascript - An origin is allowed if it matches either allow_origins or - allow_origin_regex. - returned: success - type: list - allowOrigins: - description: - - Specifies the list of origins that will be allowed to do CORS - requests. An origin is allowed if it matches either allow_origins - or allow_origin_regex. - returned: success - type: list - disabled: - description: - - If true, specifies the CORS policy is disabled. - - which indicates that the CORS policy is in effect. Defaults - to false. - returned: success - type: bool - exposeHeaders: - description: - - Specifies the content for the Access-Control-Expose-Headers - header. - returned: success - type: list - maxAge: - description: - - Specifies how long the results of a preflight request can - be cached. This translates to the content for the Access-Control-Max-Age - header. - returned: success - type: int - faultInjectionPolicy: - description: - - The specification for fault injection introduced into traffic - to test the resiliency of clients to backend service failure. - As part of fault injection, when clients send requests to a backend - service, delays can be introduced by Loadbalancer on a percentage - of requests before sending those request to the backend service. - Similarly requests from clients can be aborted by the Loadbalancer - for a percentage of requests. timeout and retry_policy will be - ignored by clients that are configured with a fault_injection_policy. - returned: success - type: complex - contains: - abort: - description: - - The specification for how client requests are aborted as part - of fault injection. - returned: success - type: complex - contains: - httpStatus: - description: - - The HTTP status code used to abort the request. The value - must be between 200 and 599 inclusive. - returned: success - type: int - percentage: - description: - - The percentage of traffic (connections/operations/requests) - which will be aborted as part of fault injection. The - value must be between 0.0 and 100.0 inclusive. - returned: success - type: str - delay: - description: - - The specification for how client requests are delayed as part - of fault injection, before being sent to a backend service. - returned: success - type: complex - contains: - fixedDelay: - description: - - Specifies the value of the fixed delay interval. - returned: success - type: complex - contains: - nanos: - description: - - Span of time that's a fraction of a second at nanosecond - resolution. Durations less than one second are represented - with a 0 `seconds` field and a positive `nanos` field. - Must be from 0 to 999,999,999 inclusive. - returned: success - type: int - seconds: - description: - - Span of time at a resolution of a second. Must be - from 0 to 315,576,000,000 inclusive. - returned: success - type: str - percentage: - description: - - The percentage of traffic (connections/operations/requests) - on which delay will be introduced as part of fault injection. - The value must be between 0.0 and 100.0 inclusive. - returned: success - type: str - requestMirrorPolicy: - description: - - Specifies the policy on how requests intended for the route's - backends are shadowed to a separate mirrored backend service. - Loadbalancer does not wait for responses from the shadow service. - Prior to sending traffic to the shadow service, the host / authority - header is suffixed with -shadow. - returned: success - type: complex - contains: - backendService: - description: - - The BackendService resource being mirrored to. - returned: success - type: dict - retryPolicy: - description: - - Specifies the retry policy associated with this route. - returned: success - type: complex - contains: - numRetries: - description: - - Specifies the allowed number retries. This number must be - > 0. - returned: success - type: int - perTryTimeout: - description: - - Specifies a non-zero timeout per retry attempt. - - If not specified, will use the timeout set in HttpRouteAction. - If timeout in HttpRouteAction is not set, will use the largest - timeout among all backend services associated with the route. - returned: success - type: complex - contains: - nanos: - description: - - Span of time that's a fraction of a second at nanosecond - resolution. Durations less than one second are represented - with a 0 `seconds` field and a positive `nanos` field. - Must be from 0 to 999,999,999 inclusive. - returned: success - type: int - seconds: - description: - - Span of time at a resolution of a second. Must be from - 0 to 315,576,000,000 inclusive. - returned: success - type: str - retryConditions: - description: - - 'Specfies one or more conditions when this retry rule applies. - Valid values are: - 5xx: Loadbalancer will attempt a retry - if the backend service responds with any 5xx response code, - or if the backend service does not respond at all, example: - disconnects, reset, read timeout, connection failure, and - refused streams.' - - "- gateway-error: Similar to 5xx, but only applies to response - codes 502, 503 or 504." - - "- connect-failure: Loadbalancer will retry on failures connecting - to backend services, for example due to connection timeouts." - - "- retriable-4xx: Loadbalancer will retry for retriable 4xx - response codes." - - Currently the only retriable error supported is 409. - - "- refused-stream: Loadbalancer will retry if the backend - service resets the stream with a REFUSED_STREAM error code. - This reset type indicates that it is safe to retry." - - "- cancelled: Loadbalancer will retry if the gRPC status code - in the response header is set to cancelled - deadline-exceeded: - Loadbalancer will retry if the gRPC status code in the response - header is set to deadline-exceeded - resource-exhausted: Loadbalancer - will retry if the gRPC status code in the response header - is set to resource-exhausted - unavailable: Loadbalancer will - retry if the gRPC status code in the response header is set - to unavailable ." - returned: success - type: list - timeout: - description: - - Specifies the timeout for the selected route. Timeout is computed - from the time the request is has been fully processed (i.e. end-of-stream) - up until the response has been completely processed. Timeout includes - all retries. If not specified, the default value is 15 seconds. - returned: success - type: complex - contains: - nanos: - description: - - Span of time that's a fraction of a second at nanosecond resolution. - Durations less than one second are represented with a 0 `seconds` - field and a positive `nanos` field. Must be from 0 to 999,999,999 - inclusive. - returned: success - type: int - seconds: - description: - - Span of time at a resolution of a second. Must be from 0 to - 315,576,000,000 inclusive. - returned: success - type: str - urlRewrite: - description: - - The spec to modify the URL of the request, prior to forwarding - the request to the matched service . - returned: success - type: complex - contains: - hostRewrite: - description: - - Prior to forwarding the request to the selected service, the - request's host header is replaced with contents of hostRewrite. - The value must be between 1 and 255 characters. - returned: success - type: str - pathPrefixRewrite: - description: - - Prior to forwarding the request to the selected backend service, - the matching portion of the request's path is replaced by - pathPrefixRewrite. The value must be between 1 and 1024 characters. - returned: success - type: str - weightedBackendServices: - description: - - A list of weighted backend services to send traffic to when a - route match occurs. The weights determine the fraction of traffic - that flows to their corresponding backend service. If all traffic - needs to go to a single backend service, there must be one weightedBackendService - with weight set to a non 0 number. Once a backendService is identified - and before forwarding the request to the backend service, advanced - routing actions like Url rewrites and header transformations are - applied depending on additional settings specified in this HttpRouteAction. - returned: success - type: complex - contains: - backendService: - description: - - The default BackendService resource. Before forwarding the - request to backendService, the loadbalancer applies any relevant - headerActions specified as part of this backendServiceWeight. - returned: success - type: dict - headerAction: - description: - - Specifies changes to request and response headers that need - to take effect for the selected backendService. headerAction - specified here take effect before headerAction in the enclosing - HttpRouteRule, PathMatcher and UrlMap. - returned: success - type: complex - contains: - requestHeadersToAdd: - description: - - Headers to add to a matching request prior to forwarding - the request to the backendService. - returned: success - type: complex - contains: - headerName: - description: - - The name of the header. - returned: success - type: str - headerValue: - description: - - The value of the header to add. - returned: success - type: str - replace: - description: - - If false, headerValue is appended to any values that - already exist for the header. If true, headerValue - is set for the header, discarding any values that - were set for that header. - returned: success - type: bool - requestHeadersToRemove: - description: - - A list of header names for headers that need to be removed - from the request prior to forwarding the request to the - backendService. - returned: success - type: list - responseHeadersToAdd: - description: - - Headers to add the response prior to sending the response - back to the client. - returned: success - type: complex - contains: - headerName: - description: - - The name of the header. - returned: success - type: str - headerValue: - description: - - The value of the header to add. - returned: success - type: str - replace: - description: - - If false, headerValue is appended to any values that - already exist for the header. If true, headerValue - is set for the header, discarding any values that - were set for that header. - returned: success - type: bool - responseHeadersToRemove: - description: - - A list of header names for headers that need to be removed - from the response prior to sending the response back to - the client. - returned: success - type: list - weight: - description: - - Specifies the fraction of traffic sent to backendService, - computed as weight / (sum of all weightedBackendService weights - in routeAction) . The selection of a backend service is determined - only for new traffic. Once a user's request has been directed - to a backendService, subsequent requests will be sent to the - same backendService as determined by the BackendService's - session affinity policy. - - The value must be between 0 and 1000 . - returned: success - type: int - urlRedirect: - description: - - When this rule is matched, the request is redirected to a URL specified - by urlRedirect. If urlRedirect is specified, service or routeAction - must not be set. - returned: success - type: complex - contains: - hostRedirect: - description: - - The host that will be used in the redirect response instead of - the one that was supplied in the request. The value must be between - 1 and 255 characters. - returned: success - type: str - httpsRedirect: - description: - - If set to true, the URL scheme in the redirected request is set - to https. If set to false, the URL scheme of the redirected request - will remain the same as that of the request. This must only be - set for UrlMaps used in TargetHttpProxys. - - Setting this true for TargetHttpsProxy is not permitted. Defaults - to false. - returned: success - type: bool - pathRedirect: - description: - - The path that will be used in the redirect response instead of - the one that was supplied in the request. Only one of pathRedirect - or prefixRedirect must be specified. The value must be between - 1 and 1024 characters. - returned: success - type: str - prefixRedirect: - description: - - The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch, - retaining the remaining portion of the URL before redirecting - the request. - returned: success - type: str - redirectResponseCode: - description: - - 'The HTTP Status code to use for this RedirectAction. Supported - values are: - MOVED_PERMANENTLY_DEFAULT, which is the default - value and corresponds to 301. - FOUND, which corresponds to 302. - - SEE_OTHER which corresponds to 303. - TEMPORARY_REDIRECT, which - corresponds to 307. In this case, the request method will be retained. - - PERMANENT_REDIRECT, which corresponds to 308. In this case, - the request method will be retained.' - returned: success - type: str - stripQuery: - description: - - If set to true, any accompanying query portion of the original - URL is removed prior to redirecting the request. If set to false, - the query portion of the original URL is retained. Defaults to - false. - returned: success - type: bool - tests: - description: - - The list of expected URL mapping tests. Request to update this UrlMap will - succeed only if all of the test cases pass. You can specify a maximum of 100 - tests per UrlMap. - returned: success - type: complex - contains: - description: - description: - - Description of this test case. - returned: success - type: str - host: - description: - - Host portion of the URL. - returned: success - type: str - path: - description: - - Path portion of the URL. - returned: success - type: str - service: - description: - - Expected BackendService resource the given URL should be mapped to. - returned: success - type: dict -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict(filters=dict(type='list', elements='str'))) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - - return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} - module.exit_json(**return_value) - - -def collection(module): - return "https://www.googleapis.com/compute/v1/projects/{project}/global/urlMaps".format(**module.params) - - -def fetch_list(module, link, query): - auth = GcpSession(module, 'compute') - return auth.list(link, return_if_object, array_name='items', params={'filter': query}) - - -def query_options(filters): - if not filters: - return '' - - if len(filters) == 1: - return filters[0] - else: - queries = [] - for f in filters: - # For multiple queries, all queries should have () - if f[0] != '(' and f[-1] != ')': - queries.append("(%s)" % ''.join(f)) - else: - queries.append(f) - - return ' '.join(queries) - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_compute_vpn_tunnel_facts.py b/plugins/modules/cloud/google/gcp_compute_vpn_tunnel_facts.py deleted file mode 120000 index 26de5596b8..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_vpn_tunnel_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_compute_vpn_tunnel_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_compute_vpn_tunnel_info.py b/plugins/modules/cloud/google/gcp_compute_vpn_tunnel_info.py deleted file mode 100644 index 69cf226678..0000000000 --- a/plugins/modules/cloud/google/gcp_compute_vpn_tunnel_info.py +++ /dev/null @@ -1,269 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_compute_vpn_tunnel_info -description: -- Gather info for GCP VpnTunnel -short_description: Gather info for GCP VpnTunnel -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - filters: - description: - - A list of filter value pairs. Available filters are listed here U(https://cloud.google.com/sdk/gcloud/reference/topic/filters). - - Each additional filter in the list will act be added as an AND condition (filter1 - and filter2) . - type: list - region: - description: - - The region where the tunnel is located. - required: true - type: str - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on a vpn tunnel - gcp_compute_vpn_tunnel_info: - region: us-west1 - filters: - - name = test_object - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - id: - description: - - The unique identifier for the resource. This identifier is defined by the - server. - returned: success - type: str - creationTimestamp: - description: - - Creation timestamp in RFC3339 text format. - returned: success - type: str - 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. - returned: success - type: str - description: - description: - - An optional description of this resource. - returned: success - type: str - targetVpnGateway: - description: - - URL of the Target VPN gateway with which this VPN tunnel is associated. - returned: success - type: dict - router: - description: - - URL of router resource to be used for dynamic routing. - returned: success - type: dict - peerIp: - description: - - IP address of the peer VPN gateway. Only IPv4 is supported. - returned: success - type: str - sharedSecret: - description: - - Shared secret used to set the secure session between the Cloud VPN gateway - and the peer VPN gateway. - returned: success - type: str - sharedSecretHash: - description: - - Hash of the shared secret. - returned: success - type: str - ikeVersion: - 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. - returned: success - type: int - localTrafficSelector: - 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. - returned: success - type: list - remoteTrafficSelector: - 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. - returned: success - type: list - region: - description: - - The region where the tunnel is located. - returned: success - type: str -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict(filters=dict(type='list', elements='str'), region=dict(required=True, type='str'))) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - - return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} - module.exit_json(**return_value) - - -def collection(module): - return "https://www.googleapis.com/compute/v1/projects/{project}/regions/{region}/vpnTunnels".format(**module.params) - - -def fetch_list(module, link, query): - auth = GcpSession(module, 'compute') - return auth.list(link, return_if_object, array_name='items', params={'filter': query}) - - -def query_options(filters): - if not filters: - return '' - - if len(filters) == 1: - return filters[0] - else: - queries = [] - for f in filters: - # For multiple queries, all queries should have () - if f[0] != '(' and f[-1] != ')': - queries.append("(%s)" % ''.join(f)) - else: - queries.append(f) - - return ' '.join(queries) - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_container_cluster_facts.py b/plugins/modules/cloud/google/gcp_container_cluster_facts.py deleted file mode 120000 index 50b4ee8253..0000000000 --- a/plugins/modules/cloud/google/gcp_container_cluster_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_container_cluster_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_container_cluster_info.py b/plugins/modules/cloud/google/gcp_container_cluster_info.py deleted file mode 100644 index 54fa23b4b1..0000000000 --- a/plugins/modules/cloud/google/gcp_container_cluster_info.py +++ /dev/null @@ -1,763 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_container_cluster_info -description: -- Gather info for GCP Cluster -short_description: Gather info for GCP Cluster -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - location: - description: - - The location where the cluster is deployed. - required: true - type: str - aliases: - - region - - zone - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on a cluster - gcp_container_cluster_info: - location: us-central1-a - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - name: - description: - - The name of this cluster. The name must be unique within this project and - location, and can be up to 40 characters. Must be Lowercase letters, numbers, - and hyphens only. Must start with a letter. Must end with a number or a letter. - returned: success - type: str - description: - description: - - An optional description of this cluster. - returned: success - type: str - initialNodeCount: - description: - - The number of nodes to create in this cluster. You must ensure that your Compute - Engine resource quota is sufficient for this number of instances. You must - also have available firewall and routes quota. For requests, this field should - only be used in lieu of a "nodePool" object, since this configuration (along - with the "nodeConfig") will be used to create a "NodePool" object with an - auto-generated name. Do not use this and a nodePool at the same time. - - This field has been deprecated. Please use nodePool.initial_node_count instead. - returned: success - type: int - nodeConfig: - description: - - Parameters used in creating the cluster's nodes. - - For requests, this field should only be used in lieu of a "nodePool" object, - since this configuration (along with the "initialNodeCount") will be used - to create a "NodePool" object with an auto-generated name. Do not use this - and a nodePool at the same time. For responses, this field will be populated - with the node configuration of the first node pool. If unspecified, the defaults - are used. - returned: success - type: complex - contains: - machineType: - description: - - The name of a Google Compute Engine machine type (e.g. - - n1-standard-1). If unspecified, the default machine type is n1-standard-1. - returned: success - type: str - diskSizeGb: - description: - - Size of the disk attached to each node, specified in GB. The smallest - allowed disk size is 10GB. If unspecified, the default disk size is 100GB. - returned: success - type: int - oauthScopes: - description: - - The set of Google API scopes to be made available on all of the node VMs - under the "default" service account. - - 'The following scopes are recommended, but not required, and by default - are not included: U(https://www.googleapis.com/auth/compute) is required - for mounting persistent storage on your nodes.' - - U(https://www.googleapis.com/auth/devstorage.read_only) is required for - communicating with gcr.io (the Google Container Registry). - - If unspecified, no scopes are added, unless Cloud Logging or Cloud Monitoring - are enabled, in which case their required scopes will be added. - returned: success - type: list - serviceAccount: - description: - - The Google Cloud Platform Service Account to be used by the node VMs. - If no Service Account is specified, the "default" service account is used. - returned: success - type: str - metadata: - description: - - The metadata key/value pairs assigned to instances in the cluster. - - 'Keys must conform to the regexp [a-zA-Z0-9-_]+ and be less than 128 bytes - in length. These are reflected as part of a URL in the metadata server. - Additionally, to avoid ambiguity, keys must not conflict with any other - metadata keys for the project or be one of the four reserved keys: "instance-template", - "kube-env", "startup-script", and "user-data" Values are free-form strings, - and only have meaning as interpreted by the image running in the instance. - The only restriction placed on them is that each value''s size must be - less than or equal to 32 KB.' - - The total size of all keys and values must be less than 512 KB. - - 'An object containing a list of "key": value pairs.' - - 'Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.' - returned: success - type: dict - imageType: - description: - - The image type to use for this node. Note that for a given image type, - the latest version of it will be used. - returned: success - type: str - 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" }.' - returned: success - type: dict - localSsdCount: - 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 - available on a machine per zone. See: U(https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits) - for more information.' - returned: success - type: int - tags: - description: - - The list of instance tags applied to all nodes. Tags are used to identify - valid sources or targets for network firewalls and are specified by the - client during cluster or node pool creation. Each tag within the list - must comply with RFC1035. - returned: success - type: list - preemptible: - description: - - 'Whether the nodes are created as preemptible VM instances. See: U(https://cloud.google.com/compute/docs/instances/preemptible) - for more information about preemptible VM instances.' - returned: success - type: bool - accelerators: - description: - - A list of hardware accelerators to be attached to each node. See U(https://cloud.google.com/compute/docs/gpus) - for more information about support for GPUs. - returned: success - type: complex - contains: - acceleratorCount: - description: - - The number of accelerator cards exposed to an instance. - returned: success - type: str - acceleratorType: - description: - - The accelerator type resource name. - returned: success - type: str - diskType: - description: - - Type of the disk attached to each node (e.g. 'pd-standard' or 'pd-ssd') - If unspecified, the default disk type is 'pd-standard' . - returned: success - type: str - minCpuPlatform: - description: - - Minimum CPU platform to be used by this instance. The instance may be - scheduled on the specified or newer CPU platform. - returned: success - type: str - taints: - description: - - List of kubernetes taints to be applied to each node. - - 'For more information, including usage and the valid values, see: U(https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/) - .' - returned: success - type: complex - contains: - key: - description: - - Key for taint. - returned: success - type: str - value: - description: - - Value for taint. - returned: success - type: str - effect: - description: - - Effect for taint. - returned: success - type: str - masterAuth: - description: - - The authentication information for accessing the master endpoint. - returned: success - type: complex - contains: - username: - description: - - The username to use for HTTP basic authentication to the master endpoint. - returned: success - type: str - password: - description: - - The password to use for HTTP basic authentication to the master endpoint. - Because the master endpoint is open to the Internet, you should create - a strong password with a minimum of 16 characters. - returned: success - type: str - clientCertificateConfig: - description: - - Configuration for client certificate authentication on the cluster. For - clusters before v1.12, if no configuration is specified, a client certificate - is issued. - returned: success - type: complex - contains: - issueClientCertificate: - description: - - Issue a client certificate. - returned: success - type: bool - clusterCaCertificate: - description: - - Base64-encoded public certificate that is the root of trust for the cluster. - returned: success - type: str - clientCertificate: - description: - - Base64-encoded public certificate used by clients to authenticate to the - cluster endpoint. - returned: success - type: str - clientKey: - description: - - Base64-encoded private key used by clients to authenticate to the cluster - endpoint. - returned: success - type: str - loggingService: - description: - - 'The logging service the cluster should use to write logs. Currently available - options: logging.googleapis.com - the Google Cloud Logging service.' - - none - no logs will be exported from the cluster. - - if left as an empty string,logging.googleapis.com will be used. - returned: success - type: str - monitoringService: - description: - - The monitoring service the cluster should use to write metrics. - - 'Currently available options: monitoring.googleapis.com - the Google Cloud - Monitoring service.' - - none - no metrics will be exported from the cluster. - - if left as an empty string, monitoring.googleapis.com will be used. - returned: success - type: str - network: - description: - - The name of the Google Compute Engine network to which the cluster is connected. - If left unspecified, the default network will be used. - returned: success - type: str - privateClusterConfig: - description: - - Configuration for a private cluster. - returned: success - type: complex - contains: - enablePrivateNodes: - description: - - Whether nodes have internal IP addresses only. If enabled, all nodes are - given only RFC 1918 private addresses and communicate with the master - via private networking. - returned: success - type: bool - enablePrivateEndpoint: - description: - - Whether the master's internal IP address is used as the cluster endpoint. - returned: success - type: bool - masterIpv4CidrBlock: - description: - - The IP range in CIDR notation to use for the hosted master network. This - range will be used for assigning internal IP addresses to the master or - set of masters, as well as the ILB VIP. This range must not overlap with - any other ranges in use within the cluster's network. - returned: success - type: str - privateEndpoint: - description: - - The internal IP address of this cluster's master endpoint. - returned: success - type: str - publicEndpoint: - description: - - The external IP address of this cluster's master endpoint. - returned: success - type: str - clusterIpv4Cidr: - description: - - The IP address range of the container pods in this cluster, in CIDR notation - (e.g. 10.96.0.0/14). Leave blank to have one automatically chosen or specify - a /14 block in 10.0.0.0/8. - returned: success - type: str - addonsConfig: - description: - - Configurations for the various addons available to run in the cluster. - returned: success - type: complex - contains: - httpLoadBalancing: - description: - - Configuration for the HTTP (L7) load balancing controller addon, which - makes it easy to set up HTTP load balancers for services in a cluster. - returned: success - type: complex - contains: - disabled: - description: - - Whether the HTTP Load Balancing controller is enabled in the cluster. - When enabled, it runs a small pod in the cluster that manages the - load balancers. - returned: success - type: bool - horizontalPodAutoscaling: - description: - - Configuration for the horizontal pod autoscaling feature, which increases - or decreases the number of replica pods a replication controller has based - on the resource usage of the existing pods. - returned: success - type: complex - contains: - disabled: - description: - - Whether the Horizontal Pod Autoscaling feature is enabled in the cluster. - When enabled, it ensures that a Heapster pod is running in the cluster, - which is also used by the Cloud Monitoring service. - returned: success - type: bool - networkPolicyConfig: - description: - - Configuration for NetworkPolicy. This only tracks whether the addon is - enabled or not on the Master, it does not track whether network policy - is enabled for the nodes. - returned: success - type: complex - contains: - disabled: - description: - - Whether NetworkPolicy is enabled for this cluster. - returned: success - type: bool - subnetwork: - description: - - The name of the Google Compute Engine subnetwork to which the cluster is connected. - returned: success - type: str - locations: - description: - - The list of Google Compute Engine zones in which the cluster's nodes should - be located. - returned: success - type: list - resourceLabels: - description: - - The resource labels for the cluster to use to annotate any related Google - Compute Engine resources. - returned: success - type: dict - labelFingerprint: - description: - - The fingerprint of the set of labels for this cluster. - returned: success - type: str - legacyAbac: - description: - - Configuration for the legacy ABAC authorization mode. - returned: success - type: complex - contains: - enabled: - description: - - Whether the ABAC authorizer is enabled for this cluster. When enabled, - identities in the system, including service accounts, nodes, and controllers, - will have statically granted permissions beyond those provided by the - RBAC configuration or IAM. - returned: success - type: bool - networkPolicy: - description: - - Configuration options for the NetworkPolicy feature. - returned: success - type: complex - contains: - provider: - description: - - The selected network policy provider. - returned: success - type: str - enabled: - description: - - Whether network policy is enabled on the cluster. - returned: success - type: bool - defaultMaxPodsConstraint: - description: - - The default constraint on the maximum number of pods that can be run simultaneously - on a node in the node pool of this cluster. - - Only honored if cluster created with IP Alias support. - returned: success - type: complex - contains: - maxPodsPerNode: - description: - - Constraint enforced on the max num of pods per node. - returned: success - type: str - ipAllocationPolicy: - description: - - Configuration for controlling how IPs are allocated in the cluster. - returned: success - type: complex - contains: - useIpAliases: - description: - - Whether alias IPs will be used for pod IPs in the cluster. - returned: success - type: bool - createSubnetwork: - description: - - Whether a new subnetwork will be created automatically for the cluster. - returned: success - type: bool - subnetworkName: - description: - - A custom subnetwork name to be used if createSubnetwork is true. - - If this field is empty, then an automatic name will be chosen for the - new subnetwork. - returned: success - type: str - clusterSecondaryRangeName: - description: - - The name of the secondary range to be used for the cluster CIDR block. - The secondary range will be used for pod IP addresses. - - This must be an existing secondary range associated with the cluster subnetwork - . - returned: success - type: str - servicesSecondaryRangeName: - description: - - The name of the secondary range to be used as for the services CIDR block. - The secondary range will be used for service ClusterIPs. This must be - an existing secondary range associated with the cluster subnetwork. - returned: success - type: str - clusterIpv4CidrBlock: - description: - - The IP address range for the cluster pod IPs. If this field is set, then - cluster.cluster_ipv4_cidr must be left blank. - - This field is only applicable when useIpAliases is true. - - Set to blank to have a range chosen with the default size. - - Set to /netmask (e.g. /14) to have a range chosen with a specific netmask. - returned: success - type: str - nodeIpv4CidrBlock: - description: - - The IP address range of the instance IPs in this cluster. - - This is applicable only if createSubnetwork is true. - - Set to blank to have a range chosen with the default size. - - Set to /netmask (e.g. /14) to have a range chosen with a specific netmask. - returned: success - type: str - servicesIpv4CidrBlock: - description: - - The IP address range of the services IPs in this cluster. If blank, a - range will be automatically chosen with the default size. - - This field is only applicable when useIpAliases is true. - - Set to blank to have a range chosen with the default size. - - Set to /netmask (e.g. /14) to have a range chosen with a specific netmask. - returned: success - type: str - tpuIpv4CidrBlock: - description: - - The IP address range of the Cloud TPUs in this cluster. If unspecified, - a range will be automatically chosen with the default size. - - This field is only applicable when useIpAliases is true. - - If unspecified, the range will use the default size. - - Set to /netmask (e.g. /14) to have a range chosen with a specific netmask. - returned: success - type: str - endpoint: - description: - - The IP address of this cluster's master endpoint. - - The endpoint can be accessed from the internet at https://username:password@endpoint/ - See the masterAuth property of this resource for username and password information. - returned: success - type: str - initialClusterVersion: - description: - - The software version of the master endpoint and kubelets used in the cluster - when it was first created. The version can be upgraded over time. - returned: success - type: str - currentMasterVersion: - description: - - The current software version of the master endpoint. - returned: success - type: str - currentNodeVersion: - description: - - The current version of the node software components. If they are currently - at multiple versions because they're in the process of being upgraded, this - reflects the minimum version of all nodes. - returned: success - type: str - createTime: - description: - - The time the cluster was created, in RFC3339 text format. - returned: success - type: str - status: - description: - - The current status of this cluster. - returned: success - type: str - statusMessage: - description: - - Additional information about the current status of this cluster, if available. - returned: success - type: str - nodeIpv4CidrSize: - description: - - The size of the address space on each node for hosting containers. - - This is provisioned from within the container_ipv4_cidr range. - returned: success - type: int - servicesIpv4Cidr: - description: - - The IP address range of the Kubernetes services in this cluster, in CIDR notation - (e.g. 1.2.3.4/29). Service addresses are typically put in the last /16 from - the container CIDR. - returned: success - type: str - currentNodeCount: - description: - - The number of nodes currently in the cluster. - returned: success - type: int - expireTime: - description: - - The time the cluster will be automatically deleted in RFC3339 text format. - returned: success - type: str - enableTpu: - description: - - Enable the ability to use Cloud TPUs in this cluster. - returned: success - type: bool - tpuIpv4CidrBlock: - description: - - The IP address range of the Cloud TPUs in this cluster, in CIDR notation. - returned: success - type: str - conditions: - description: - - Which conditions caused the current cluster state. - returned: success - type: complex - contains: - code: - description: - - Machine-friendly representation of the condition. - returned: success - type: str - message: - description: - - Human-friendly representation of the condition. - returned: success - type: str - masterAuthorizedNetworksConfig: - description: - - Configuration for controlling how IPs are allocated in the cluster. - returned: success - type: complex - contains: - enabled: - description: - - Whether or not master authorized networks is enabled. - returned: success - type: bool - cidrBlocks: - description: - - Define up to 50 external networks that could access Kubernetes master - through HTTPS. - returned: success - type: complex - contains: - displayName: - description: - - Optional field used to identify cidr blocks. - returned: success - type: str - cidrBlock: - description: - - Block specified in CIDR notation. - returned: success - type: str - location: - description: - - The location where the cluster is deployed. - returned: success - type: str -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict(location=dict(required=True, type='str', aliases=['region', 'zone']))) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/cloud-platform'] - - return_value = {'resources': fetch_list(module, collection(module))} - module.exit_json(**return_value) - - -def collection(module): - return "https://container.googleapis.com/v1/projects/{project}/locations/{location}/clusters".format(**module.params) - - -def fetch_list(module, link): - auth = GcpSession(module, 'container') - return auth.list(link, return_if_object, array_name='clusters') - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_container_node_pool_facts.py b/plugins/modules/cloud/google/gcp_container_node_pool_facts.py deleted file mode 120000 index 2b73f3c477..0000000000 --- a/plugins/modules/cloud/google/gcp_container_node_pool_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_container_node_pool_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_container_node_pool_info.py b/plugins/modules/cloud/google/gcp_container_node_pool_info.py deleted file mode 100644 index 9f8c9e0aca..0000000000 --- a/plugins/modules/cloud/google/gcp_container_node_pool_info.py +++ /dev/null @@ -1,448 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_container_node_pool_info -description: -- Gather info for GCP NodePool -short_description: Gather info for GCP NodePool -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - location: - description: - - The location where the node pool is deployed. - required: true - type: str - aliases: - - region - - zone - cluster: - description: - - 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. 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_container_cluster task and then set this cluster field to "{{ name-of-resource - }}"' - required: true - type: dict - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on a node pool - gcp_container_node_pool_info: - cluster: "{{ cluster }}" - location: us-central1-a - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - name: - description: - - The name of the node pool. - returned: success - type: str - config: - description: - - The node configuration of the pool. - returned: success - type: complex - contains: - machineType: - description: - - The name of a Google Compute Engine machine type (e.g. - - n1-standard-1). If unspecified, the default machine type is n1-standard-1. - returned: success - type: str - diskSizeGb: - description: - - Size of the disk attached to each node, specified in GB. The smallest - allowed disk size is 10GB. If unspecified, the default disk size is 100GB. - returned: success - type: int - oauthScopes: - description: - - The set of Google API scopes to be made available on all of the node VMs - under the "default" service account. - - 'The following scopes are recommended, but not required, and by default - are not included: U(https://www.googleapis.com/auth/compute) is required - for mounting persistent storage on your nodes.' - - U(https://www.googleapis.com/auth/devstorage.read_only) is required for - communicating with gcr.io (the Google Container Registry). - - If unspecified, no scopes are added, unless Cloud Logging or Cloud Monitoring - are enabled, in which case their required scopes will be added. - returned: success - type: list - serviceAccount: - description: - - The Google Cloud Platform Service Account to be used by the node VMs. - If no Service Account is specified, the "default" service account is used. - returned: success - type: str - metadata: - description: - - The metadata key/value pairs assigned to instances in the cluster. - - 'Keys must conform to the regexp [a-zA-Z0-9-_]+ and be less than 128 bytes - in length. These are reflected as part of a URL in the metadata server. - Additionally, to avoid ambiguity, keys must not conflict with any other - metadata keys for the project or be one of the four reserved keys: "instance-template", - "kube-env", "startup-script", and "user-data" Values are free-form strings, - and only have meaning as interpreted by the image running in the instance. - The only restriction placed on them is that each value''s size must be - less than or equal to 32 KB.' - - The total size of all keys and values must be less than 512 KB. - - 'An object containing a list of "key": value pairs.' - - 'Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.' - returned: success - type: dict - imageType: - description: - - The image type to use for this node. Note that for a given image type, - the latest version of it will be used. - returned: success - type: str - 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" }.' - returned: success - type: dict - localSsdCount: - 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 - available on a machine per zone. See: U(https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits) - for more information.' - returned: success - type: int - tags: - description: - - The list of instance tags applied to all nodes. Tags are used to identify - valid sources or targets for network firewalls and are specified by the - client during cluster or node pool creation. Each tag within the list - must comply with RFC1035. - returned: success - type: list - preemptible: - description: - - 'Whether the nodes are created as preemptible VM instances. See: U(https://cloud.google.com/compute/docs/instances/preemptible) - for more information about preemptible VM instances.' - returned: success - type: bool - accelerators: - description: - - A list of hardware accelerators to be attached to each node. - returned: success - type: complex - contains: - acceleratorCount: - description: - - The number of the accelerator cards exposed to an instance. - returned: success - type: int - acceleratorType: - description: - - The accelerator type resource name. - returned: success - type: str - diskType: - description: - - Type of the disk attached to each node (e.g. 'pd-standard' or 'pd-ssd') - If unspecified, the default disk type is 'pd-standard' . - returned: success - type: str - minCpuPlatform: - description: - - Minimum CPU platform to be used by this instance. The instance may be - scheduled on the specified or newer CPU platform . - returned: success - type: str - taints: - description: - - List of kubernetes taints to be applied to each node. - returned: success - type: complex - contains: - key: - description: - - Key for taint. - returned: success - type: str - value: - description: - - Value for taint. - returned: success - type: str - effect: - description: - - Effect for taint. - returned: success - type: str - initialNodeCount: - description: - - The initial node count for the pool. You must ensure that your Compute Engine - resource quota is sufficient for this number of instances. You must also have - available firewall and routes quota. - returned: success - type: int - status: - description: - - Status of nodes in this pool instance. - returned: success - type: str - statusMessage: - description: - - Additional information about the current status of this node pool instance. - returned: success - type: str - version: - description: - - The version of the Kubernetes of this node. - returned: success - type: str - autoscaling: - description: - - Autoscaler configuration for this NodePool. Autoscaler is enabled only if - a valid configuration is present. - returned: success - type: complex - contains: - enabled: - description: - - Is autoscaling enabled for this node pool. - returned: success - type: bool - minNodeCount: - description: - - Minimum number of nodes in the NodePool. Must be >= 1 and <= maxNodeCount. - returned: success - type: int - maxNodeCount: - description: - - Maximum number of nodes in the NodePool. Must be >= minNodeCount. - - There has to enough quota to scale up the cluster. - returned: success - type: int - management: - description: - - Management configuration for this NodePool. - returned: success - type: complex - contains: - autoUpgrade: - description: - - A flag that specifies whether node auto-upgrade is enabled for the node - pool. If enabled, node auto-upgrade helps keep the nodes in your node - pool up to date with the latest release version of Kubernetes. - returned: success - type: bool - autoRepair: - description: - - A flag that specifies whether the node auto-repair is enabled for the - node pool. If enabled, the nodes in this node pool will be monitored and, - if they fail health checks too many times, an automatic repair action - will be triggered. - returned: success - type: bool - upgradeOptions: - description: - - Specifies the Auto Upgrade knobs for the node pool. - returned: success - type: complex - contains: - autoUpgradeStartTime: - description: - - This field is set when upgrades are about to commence with the approximate - start time for the upgrades, in RFC3339 text format. - returned: success - type: str - description: - description: - - This field is set when upgrades are about to commence with the description - of the upgrade. - returned: success - type: str - maxPodsConstraint: - description: - - The constraint on the maximum number of pods that can be run simultaneously - on a node in the node pool. - returned: success - type: complex - contains: - maxPodsPerNode: - description: - - Constraint enforced on the max num of pods per node. - returned: success - type: int - conditions: - description: - - Which conditions caused the current node pool state. - returned: success - type: complex - contains: - code: - description: - - Machine-friendly representation of the condition. - returned: success - type: str - podIpv4CidrSize: - description: - - The pod CIDR block size per node in this node pool. - returned: success - type: int - cluster: - description: - - The cluster this node pool belongs to. - returned: success - type: dict - location: - description: - - The location where the node pool is deployed. - returned: success - type: str -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest, replace_resource_dict -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict(location=dict(required=True, type='str', aliases=['region', 'zone']), cluster=dict(required=True, type='dict'))) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/cloud-platform'] - - return_value = {'resources': fetch_list(module, collection(module))} - module.exit_json(**return_value) - - -def collection(module): - res = {'project': module.params['project'], 'location': module.params['location'], 'cluster': replace_resource_dict(module.params['cluster'], 'name')} - return "https://container.googleapis.com/v1/projects/{project}/locations/{location}/clusters/{cluster}/nodePools".format(**res) - - -def fetch_list(module, link): - auth = GcpSession(module, 'container') - return auth.list(link, return_if_object, array_name='nodePools') - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_dns_managed_zone_facts.py b/plugins/modules/cloud/google/gcp_dns_managed_zone_facts.py deleted file mode 120000 index 08fc673ed2..0000000000 --- a/plugins/modules/cloud/google/gcp_dns_managed_zone_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_dns_managed_zone_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_dns_managed_zone_info.py b/plugins/modules/cloud/google/gcp_dns_managed_zone_info.py deleted file mode 100644 index 97a5e5369b..0000000000 --- a/plugins/modules/cloud/google/gcp_dns_managed_zone_info.py +++ /dev/null @@ -1,291 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_dns_managed_zone_info -description: -- Gather info for GCP ManagedZone -short_description: Gather info for GCP ManagedZone -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - dns_name: - description: - - Restricts the list to return only zones with this domain name. - type: list - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on a managed zone - gcp_dns_managed_zone_info: - dns_name: test.somewild2.example.com. - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - description: - description: - - A mutable string of at most 1024 characters associated with this resource - for the user's convenience. Has no effect on the managed zone's function. - returned: success - type: str - dnsName: - description: - - The DNS name of this managed zone, for instance "example.com.". - returned: success - type: str - dnssecConfig: - description: - - DNSSEC configuration. - returned: success - type: complex - contains: - kind: - description: - - Identifies what kind of resource this is. - returned: success - type: str - nonExistence: - description: - - Specifies the mechanism used to provide authenticated denial-of-existence - responses. - returned: success - type: str - state: - description: - - Specifies whether DNSSEC is enabled, and what mode it is in. - returned: success - type: str - defaultKeySpecs: - description: - - Specifies parameters that will be used for generating initial DnsKeys - for this ManagedZone. If you provide a spec for keySigning or zoneSigning, - you must also provide one for the other. - returned: success - type: complex - contains: - algorithm: - description: - - String mnemonic specifying the DNSSEC algorithm of this key. - returned: success - type: str - keyLength: - description: - - Length of the keys in bits. - returned: success - type: int - keyType: - description: - - Specifies whether this is a key signing key (KSK) or a zone signing - key (ZSK). Key signing keys have the Secure Entry Point flag set and, - when active, will only be used to sign resource record sets of type - DNSKEY. Zone signing keys do not have the Secure Entry Point flag - set and will be used to sign all other types of resource record sets. - . - returned: success - type: str - kind: - description: - - Identifies what kind of resource this is. - returned: success - type: str - id: - description: - - Unique identifier for the resource; defined by the server. - returned: success - type: int - name: - description: - - User assigned name for this resource. - - Must be unique within the project. - returned: success - type: str - nameServers: - description: - - Delegate your managed_zone to these virtual name servers; defined by the server - . - returned: success - type: list - nameServerSet: - description: - - Optionally specifies the NameServerSet for this ManagedZone. A NameServerSet - is a set of DNS name servers that all host the same ManagedZones. Most users - will leave this field unset. - returned: success - type: str - creationTime: - description: - - The time that this resource was created on the server. - - This is in RFC3339 text format. - returned: success - type: str - labels: - description: - - A set of key/value label pairs to assign to this ManagedZone. - returned: success - type: dict - visibility: - description: - - 'The zone''s visibility: public zones are exposed to the Internet, while private - zones are visible only to Virtual Private Cloud resources.' - - 'Must be one of: `public`, `private`.' - returned: success - type: str - privateVisibilityConfig: - description: - - For privately visible zones, the set of Virtual Private Cloud resources that - the zone is visible from. - returned: success - type: complex - contains: - networks: - description: - - The list of VPC networks that can see this zone. - returned: success - type: complex - contains: - networkUrl: - description: - - The fully qualified URL of the VPC network to bind to. - - This should be formatted like `U(https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network}`) - . - returned: success - type: str -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict(dns_name=dict(type='list', elements='str'))) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/ndev.clouddns.readwrite'] - - return_value = {'resources': fetch_list(module, collection(module), module.params['dns_name'])} - module.exit_json(**return_value) - - -def collection(module): - return "https://www.googleapis.com/dns/v1/projects/{project}/managedZones".format(**module.params) - - -def fetch_list(module, link, query): - auth = GcpSession(module, 'dns') - return auth.list(link, return_if_object, array_name='managedZones', params={'dnsName': query}) - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_dns_resource_record_set_facts.py b/plugins/modules/cloud/google/gcp_dns_resource_record_set_facts.py deleted file mode 120000 index 879f4b6344..0000000000 --- a/plugins/modules/cloud/google/gcp_dns_resource_record_set_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_dns_resource_record_set_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_dns_resource_record_set_info.py b/plugins/modules/cloud/google/gcp_dns_resource_record_set_info.py deleted file mode 100644 index ba7b49f6fe..0000000000 --- a/plugins/modules/cloud/google/gcp_dns_resource_record_set_info.py +++ /dev/null @@ -1,194 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_dns_resource_record_set_info -description: -- Gather info for GCP ResourceRecordSet -short_description: Gather info for GCP ResourceRecordSet -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - managed_zone: - description: - - Identifies the managed zone addressed by this request. This must be a dictionary - that contains both a 'name' key and a 'dnsName' key. You can pass in the results - of the gcp_dns_managed_zone module, which will contain both. - required: true - type: dict - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on a resource record set - gcp_dns_resource_record_set_info: - managed_zone: "{{ managed_zone }}" - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - name: - description: - - For example, U(www.example.com). - returned: success - type: str - type: - description: - - One of valid DNS resource types. - returned: success - type: str - ttl: - description: - - Number of seconds that this ResourceRecordSet can be cached by resolvers. - returned: success - type: int - target: - description: - - As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1) . - returned: success - type: list - managed_zone: - description: - - Identifies the managed zone addressed by this request. This must be a dictionary - that contains both a 'name' key and a 'dnsName' key. You can pass in the results - of the gcp_dns_managed_zone module, which will contain both. - returned: success - type: dict -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest, replace_resource_dict -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict(managed_zone=dict(required=True, type='dict'))) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/ndev.clouddns.readwrite'] - - return_value = {'resources': fetch_list(module, collection(module))} - module.exit_json(**return_value) - - -def collection(module): - res = {'project': module.params['project'], 'managed_zone': replace_resource_dict(module.params['managed_zone'], 'name')} - return "https://www.googleapis.com/dns/v1/projects/{project}/managedZones/{managed_zone}/rrsets".format(**res) - - -def fetch_list(module, link): - auth = GcpSession(module, 'dns') - return auth.list(link, return_if_object, array_name='rrsets') - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_iam_role_facts.py b/plugins/modules/cloud/google/gcp_iam_role_facts.py deleted file mode 120000 index f46a8e3ec7..0000000000 --- a/plugins/modules/cloud/google/gcp_iam_role_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_iam_role_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_iam_role_info.py b/plugins/modules/cloud/google/gcp_iam_role_info.py deleted file mode 100644 index a938746bff..0000000000 --- a/plugins/modules/cloud/google/gcp_iam_role_info.py +++ /dev/null @@ -1,189 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_iam_role_info -description: -- Gather info for GCP Role -short_description: Gather info for GCP Role -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on a role - gcp_iam_role_info: - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - name: - description: - - The name of the role. - returned: success - type: str - title: - description: - - A human-readable title for the role. Typically this is limited to 100 UTF-8 - bytes. - returned: success - type: str - description: - description: - - Human-readable description for the role. - returned: success - type: str - includedPermissions: - description: - - Names of permissions this role grants when bound in an IAM policy. - returned: success - type: list - stage: - description: - - The current launch stage of the role. - returned: success - type: str - deleted: - description: - - The current deleted state of the role. - returned: success - type: bool -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict()) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/iam'] - - return_value = {'resources': fetch_list(module, collection(module))} - module.exit_json(**return_value) - - -def collection(module): - return "https://iam.googleapis.com/v1/projects/{project}/roles".format(**module.params) - - -def fetch_list(module, link): - auth = GcpSession(module, 'iam') - return auth.list(link, return_if_object, array_name='roles') - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_iam_service_account_facts.py b/plugins/modules/cloud/google/gcp_iam_service_account_facts.py deleted file mode 120000 index 3f03024049..0000000000 --- a/plugins/modules/cloud/google/gcp_iam_service_account_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_iam_service_account_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_iam_service_account_info.py b/plugins/modules/cloud/google/gcp_iam_service_account_info.py deleted file mode 100644 index 66a6df1cb8..0000000000 --- a/plugins/modules/cloud/google/gcp_iam_service_account_info.py +++ /dev/null @@ -1,188 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_iam_service_account_info -description: -- Gather info for GCP ServiceAccount -short_description: Gather info for GCP ServiceAccount -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on a service account - gcp_iam_service_account_info: - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - name: - description: - - The name of the service account. - returned: success - type: str - projectId: - description: - - Id of the project that owns the service account. - returned: success - type: str - uniqueId: - description: - - Unique and stable id of the service account. - returned: success - type: str - email: - description: - - Email address of the service account. - returned: success - type: str - displayName: - description: - - User specified description of service account. - returned: success - type: str - oauth2ClientId: - description: - - OAuth2 client id for the service account. - returned: success - type: str -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict()) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/iam'] - - return_value = {'resources': fetch_list(module, collection(module))} - module.exit_json(**return_value) - - -def collection(module): - return "https://iam.googleapis.com/v1/projects/{project}/serviceAccounts".format(**module.params) - - -def fetch_list(module, link): - auth = GcpSession(module, 'iam') - return auth.list(link, return_if_object, array_name='accounts') - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_pubsub_subscription_facts.py b/plugins/modules/cloud/google/gcp_pubsub_subscription_facts.py deleted file mode 120000 index 3196ae083b..0000000000 --- a/plugins/modules/cloud/google/gcp_pubsub_subscription_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_pubsub_subscription_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_pubsub_subscription_info.py b/plugins/modules/cloud/google/gcp_pubsub_subscription_info.py deleted file mode 100644 index 62b7fb95f5..0000000000 --- a/plugins/modules/cloud/google/gcp_pubsub_subscription_info.py +++ /dev/null @@ -1,290 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_pubsub_subscription_info -description: -- Gather info for GCP Subscription -short_description: Gather info for GCP Subscription -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on a subscription - gcp_pubsub_subscription_info: - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - name: - description: - - Name of the subscription. - returned: success - type: str - topic: - description: - - A reference to a Topic resource. - returned: success - type: dict - labels: - description: - - A set of key/value label pairs to assign to this Subscription. - returned: success - type: dict - pushConfig: - description: - - If push delivery is used with this subscription, this field is used to configure - it. An empty pushConfig signifies that the subscriber will pull and ack messages - using API methods. - returned: success - type: complex - contains: - oidcToken: - description: - - If specified, Pub/Sub will generate and attach an OIDC JWT token as an - Authorization header in the HTTP request for every pushed message. - returned: success - type: complex - contains: - serviceAccountEmail: - description: - - Service account email to be used for generating the OIDC token. - - The caller (for subscriptions.create, subscriptions.patch, and subscriptions.modifyPushConfig - RPCs) must have the iam.serviceAccounts.actAs permission for the service - account. - returned: success - type: str - audience: - description: - - 'Audience to be used when generating OIDC token. The audience claim - identifies the recipients that the JWT is intended for. The audience - value is a single case-sensitive string. Having multiple values (array) - for the audience field is not supported. More info about the OIDC - JWT token audience here: U(https://tools.ietf.org/html/rfc7519#section-4.1.3) - Note: if not specified, the Push endpoint URL will be used.' - returned: success - type: str - pushEndpoint: - description: - - A URL locating the endpoint to which messages should be pushed. - - For example, a Webhook endpoint might use "U(https://example.com/push"). - returned: success - type: str - attributes: - description: - - Endpoint configuration attributes. - - Every endpoint has a set of API supported attributes that can be used - to control different aspects of the message delivery. - - The currently supported attribute is x-goog-version, which you can use - to change the format of the pushed message. This attribute indicates the - version of the data expected by the endpoint. This controls the shape - of the pushed message (i.e., its fields and metadata). The endpoint version - is based on the version of the Pub/Sub API. - - If not present during the subscriptions.create call, it will default to - the version of the API used to make such call. If not present during a - subscriptions.modifyPushConfig call, its value will not be changed. subscriptions.get - calls will always return a valid version, even if the subscription was - created without this attribute. - - 'The possible values for this attribute are: - v1beta1: uses the push - format defined in the v1beta1 Pub/Sub API.' - - "- v1 or v1beta2: uses the push format defined in the v1 Pub/Sub API." - returned: success - type: dict - ackDeadlineSeconds: - description: - - This value is the maximum time after a subscriber receives a message before - the subscriber should acknowledge the message. After message delivery but - before the ack deadline expires and before the message is acknowledged, it - is an outstanding message and will not be delivered again during that time - (on a best-effort basis). - - For pull subscriptions, this value is used as the initial value for the ack - deadline. To override this value for a given message, call subscriptions.modifyAckDeadline - with the corresponding ackId if using pull. The minimum custom deadline you - can specify is 10 seconds. The maximum custom deadline you can specify is - 600 seconds (10 minutes). - - If this parameter is 0, a default value of 10 seconds is used. - - For push delivery, this value is also used to set the request timeout for - the call to the push endpoint. - - If the subscriber never acknowledges the message, the Pub/Sub system will - eventually redeliver the message. - returned: success - type: int - messageRetentionDuration: - description: - - How long to retain unacknowledged messages in the subscription's backlog, - from the moment a message is published. If retainAckedMessages is true, then - this also configures the retention of acknowledged messages, and thus configures - how far back in time a subscriptions.seek can be done. Defaults to 7 days. - Cannot be more than 7 days (`"604800s"`) or less than 10 minutes (`"600s"`). - - 'A duration in seconds with up to nine fractional digits, terminated by ''s''. - Example: `"600.5s"`.' - returned: success - type: str - retainAckedMessages: - description: - - Indicates whether to retain acknowledged messages. If `true`, then messages - are not expunged from the subscription's backlog, even if they are acknowledged, - until they fall out of the messageRetentionDuration window. - returned: success - type: bool - expirationPolicy: - description: - - A policy that specifies the conditions for this subscription's expiration. - - A subscription is considered active as long as any connected subscriber is - successfully consuming messages from the subscription or is issuing operations - on the subscription. If expirationPolicy is not set, a default policy with - ttl of 31 days will be used. If it is set but ttl is "", the resource never - expires. The minimum allowed value for expirationPolicy.ttl is 1 day. - returned: success - type: complex - contains: - ttl: - description: - - Specifies the "time-to-live" duration for an associated resource. The - resource expires if it is not active for a period of ttl. - - If ttl is not set, the associated resource never expires. - - A duration in seconds with up to nine fractional digits, terminated by - 's'. - - Example - "3.5s". - returned: success - type: str -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict()) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/pubsub'] - - return_value = {'resources': fetch_list(module, collection(module))} - module.exit_json(**return_value) - - -def collection(module): - return "https://pubsub.googleapis.com/v1/projects/{project}/subscriptions".format(**module.params) - - -def fetch_list(module, link): - auth = GcpSession(module, 'pubsub') - return auth.list(link, return_if_object, array_name='subscriptions') - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_pubsub_topic_facts.py b/plugins/modules/cloud/google/gcp_pubsub_topic_facts.py deleted file mode 120000 index 388ebfc1d1..0000000000 --- a/plugins/modules/cloud/google/gcp_pubsub_topic_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_pubsub_topic_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_pubsub_topic_info.py b/plugins/modules/cloud/google/gcp_pubsub_topic_info.py deleted file mode 100644 index 890792ceca..0000000000 --- a/plugins/modules/cloud/google/gcp_pubsub_topic_info.py +++ /dev/null @@ -1,194 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_pubsub_topic_info -description: -- Gather info for GCP Topic -short_description: Gather info for GCP Topic -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on a topic - gcp_pubsub_topic_info: - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - name: - description: - - Name of the topic. - returned: success - type: str - kmsKeyName: - description: - - The resource name of the Cloud KMS CryptoKey to be used to protect access - to messages published on this topic. Your project's PubSub service account - (`service-{{PROJECT_NUMBER}}@gcp-sa-pubsub.iam.gserviceaccount.com`) must - have `roles/cloudkms.cryptoKeyEncrypterDecrypter` to use this feature. - - The expected format is `projects/*/locations/*/keyRings/*/cryptoKeys/*` . - returned: success - type: str - labels: - description: - - A set of key/value label pairs to assign to this Topic. - returned: success - type: dict - messageStoragePolicy: - description: - - Policy constraining the set of Google Cloud Platform regions where messages - published to the topic may be stored. If not present, then no constraints - are in effect. - returned: success - type: complex - contains: - allowedPersistenceRegions: - description: - - A list of IDs of GCP regions where messages that are published to the - topic may be persisted in storage. Messages published by publishers running - in non-allowed GCP regions (or running outside of GCP altogether) will - be routed for storage in one of the allowed regions. An empty list means - that no regions are allowed, and is not a valid configuration. - returned: success - type: list -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict()) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/pubsub'] - - return_value = {'resources': fetch_list(module, collection(module))} - module.exit_json(**return_value) - - -def collection(module): - return "https://pubsub.googleapis.com/v1/projects/{project}/topics".format(**module.params) - - -def fetch_list(module, link): - auth = GcpSession(module, 'pubsub') - return auth.list(link, return_if_object, array_name='topics') - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_redis_instance_facts.py b/plugins/modules/cloud/google/gcp_redis_instance_facts.py deleted file mode 120000 index e6d6fa6db2..0000000000 --- a/plugins/modules/cloud/google/gcp_redis_instance_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_redis_instance_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_redis_instance_info.py b/plugins/modules/cloud/google/gcp_redis_instance_info.py deleted file mode 100644 index 15f98ffbc1..0000000000 --- a/plugins/modules/cloud/google/gcp_redis_instance_info.py +++ /dev/null @@ -1,265 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_redis_instance_info -description: -- Gather info for GCP Instance -short_description: Gather info for GCP Instance -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - region: - description: - - The name of the Redis region of the instance. - required: true - type: str - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on an instance - gcp_redis_instance_info: - region: us-central1 - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - alternativeLocationId: - description: - - Only applicable to STANDARD_HA tier which protects the instance against zonal - failures by provisioning it across two zones. - - If provided, it must be a different zone from the one provided in [locationId]. - returned: success - type: str - authorizedNetwork: - description: - - The full name of the Google Compute Engine network to which the instance is - connected. If left unspecified, the default network will be used. - returned: success - type: str - createTime: - description: - - The time the instance was created in RFC3339 UTC "Zulu" format, accurate to - nanoseconds. - returned: success - type: str - currentLocationId: - description: - - The current zone where the Redis endpoint is placed. - - For Basic Tier instances, this will always be the same as the [locationId] - provided by the user at creation time. For Standard Tier instances, this can - be either [locationId] or [alternativeLocationId] and can change after a failover - event. - returned: success - type: str - displayName: - description: - - An arbitrary and optional user-provided name for the instance. - returned: success - type: str - host: - description: - - Hostname or IP address of the exposed Redis endpoint used by clients to connect - to the service. - returned: success - type: str - labels: - description: - - Resource labels to represent user provided metadata. - returned: success - type: dict - redisConfigs: - description: - - Redis configuration parameters, according to U(http://redis.io/topics/config). - - 'Please check Memorystore documentation for the list of supported parameters: - U(https://cloud.google.com/memorystore/docs/redis/reference/rest/v1/projects.locations.instances#Instance.FIELDS.redis_configs) - .' - returned: success - type: dict - locationId: - description: - - The zone where the instance will be provisioned. If not provided, the service - will choose a zone for the instance. For STANDARD_HA tier, instances will - be created across two zones for protection against zonal failures. If [alternativeLocationId] - is also provided, it must be different from [locationId]. - returned: success - type: str - name: - description: - - The ID of the instance or a fully qualified identifier for the instance. - returned: success - type: str - memorySizeGb: - description: - - Redis memory size in GiB. - returned: success - type: int - port: - description: - - The port number of the exposed Redis endpoint. - returned: success - type: int - redisVersion: - description: - - 'The version of Redis software. If not provided, latest supported version - will be used. Currently, the supported values are: - REDIS_4_0 for Redis 4.0 - compatibility - REDIS_3_2 for Redis 3.2 compatibility .' - returned: success - type: str - reservedIpRange: - description: - - The CIDR range of internal addresses that are reserved for this instance. - If not provided, the service will choose an unused /29 block, for example, - 10.0.0.0/29 or 192.168.0.0/29. Ranges must be unique and non-overlapping with - existing subnets in an authorized network. - returned: success - type: str - tier: - description: - - 'The service tier of the instance. Must be one of these values: - BASIC: standalone - instance - STANDARD_HA: highly available primary/replica instances .' - returned: success - type: str - region: - description: - - The name of the Redis region of the instance. - returned: success - type: str -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict(region=dict(required=True, type='str'))) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/cloud-platform'] - - return_value = {'resources': fetch_list(module, collection(module))} - module.exit_json(**return_value) - - -def collection(module): - return "https://redis.googleapis.com/v1/projects/{project}/locations/{region}/instances".format(**module.params) - - -def fetch_list(module, link): - auth = GcpSession(module, 'redis') - return auth.list(link, return_if_object, array_name='instances') - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_resourcemanager_project_facts.py b/plugins/modules/cloud/google/gcp_resourcemanager_project_facts.py deleted file mode 120000 index 5766332a37..0000000000 --- a/plugins/modules/cloud/google/gcp_resourcemanager_project_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_resourcemanager_project_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_resourcemanager_project_info.py b/plugins/modules/cloud/google/gcp_resourcemanager_project_info.py deleted file mode 100644 index 70e6e5f226..0000000000 --- a/plugins/modules/cloud/google/gcp_resourcemanager_project_info.py +++ /dev/null @@ -1,215 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_resourcemanager_project_info -description: -- Gather info for GCP Project -short_description: Gather info for GCP Project -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on a project - gcp_resourcemanager_project_info: - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - number: - description: - - Number uniquely identifying the project. - returned: success - type: int - lifecycleState: - description: - - The Project lifecycle state. - returned: success - type: str - name: - description: - - 'The user-assigned display name of the Project. It must be 4 to 30 characters. - Allowed characters are: lowercase and uppercase letters, numbers, hyphen, - single-quote, double-quote, space, and exclamation point.' - returned: success - type: str - createTime: - description: - - Time of creation. - returned: success - type: str - labels: - description: - - The labels associated with this Project. - - 'Label keys must be between 1 and 63 characters long and must conform to the - following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?`.' - - Label values must be between 0 and 63 characters long and must conform to - the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`. - - No more than 256 labels can be associated with a given resource. - - Clients should store labels in a representation such as JSON that does not - depend on specific characters being disallowed . - returned: success - type: dict - parent: - description: - - A parent organization. - returned: success - type: complex - contains: - type: - description: - - Must be organization. - returned: success - type: str - id: - description: - - Id of the organization. - returned: success - type: str - id: - description: - - The unique, user-assigned ID of the Project. It must be 6 to 30 lowercase - letters, digits, or hyphens. It must start with a letter. - - Trailing hyphens are prohibited. - returned: success - type: str -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict()) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/cloud-platform'] - - return_value = {'resources': fetch_list(module, collection(module))} - module.exit_json(**return_value) - - -def collection(module): - return "https://cloudresourcemanager.googleapis.com/v1/projects".format(**module.params) - - -def fetch_list(module, link): - auth = GcpSession(module, 'resourcemanager') - return auth.list(link, return_if_object, array_name='projects') - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_sourcerepo_repository_facts.py b/plugins/modules/cloud/google/gcp_sourcerepo_repository_facts.py deleted file mode 120000 index b6dc6a8d75..0000000000 --- a/plugins/modules/cloud/google/gcp_sourcerepo_repository_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_sourcerepo_repository_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_sourcerepo_repository_info.py b/plugins/modules/cloud/google/gcp_sourcerepo_repository_info.py deleted file mode 100644 index 51f39de4b2..0000000000 --- a/plugins/modules/cloud/google/gcp_sourcerepo_repository_info.py +++ /dev/null @@ -1,175 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_sourcerepo_repository_info -description: -- Gather info for GCP Repository -short_description: Gather info for GCP Repository -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on a repository - gcp_sourcerepo_repository_info: - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - name: - description: - - Resource name of the repository, of the form projects/{{project}}/repos/{{repo}}. - - The repo name may contain slashes. eg, projects/myproject/repos/name/with/slash - . - returned: success - type: str - url: - description: - - URL to clone the repository from Google Cloud Source Repositories. - returned: success - type: str - size: - description: - - The disk usage of the repo, in bytes. - returned: success - type: int -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict()) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/cloud-platform'] - - return_value = {'resources': fetch_list(module, collection(module))} - module.exit_json(**return_value) - - -def collection(module): - return "https://sourcerepo.googleapis.com/v1/projects/{project}/repos".format(**module.params) - - -def fetch_list(module, link): - auth = GcpSession(module, 'sourcerepo') - return auth.list(link, return_if_object, array_name='repos') - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_spanner_database_facts.py b/plugins/modules/cloud/google/gcp_spanner_database_facts.py deleted file mode 120000 index abadc34b30..0000000000 --- a/plugins/modules/cloud/google/gcp_spanner_database_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_spanner_database_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_spanner_database_info.py b/plugins/modules/cloud/google/gcp_spanner_database_info.py deleted file mode 100644 index a0eda5786e..0000000000 --- a/plugins/modules/cloud/google/gcp_spanner_database_info.py +++ /dev/null @@ -1,189 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_spanner_database_info -description: -- Gather info for GCP Database -short_description: Gather info for GCP Database -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - 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 - type: dict - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on a database - gcp_spanner_database_info: - instance: "{{ instance }}" - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - 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]. - returned: success - type: str - extraStatements: - 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.' - returned: success - type: list - instance: - description: - - The instance to create the database on. - returned: success - type: dict -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest, replace_resource_dict -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict(instance=dict(required=True, type='dict'))) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/spanner.admin'] - - return_value = {'resources': fetch_list(module, collection(module))} - module.exit_json(**return_value) - - -def collection(module): - res = {'project': module.params['project'], 'instance': replace_resource_dict(module.params['instance'], 'name')} - return "https://spanner.googleapis.com/v1/projects/{project}/instances/{instance}/databases".format(**res) - - -def fetch_list(module, link): - auth = GcpSession(module, 'spanner') - return auth.list(link, return_if_object, array_name='databases') - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_spanner_instance_facts.py b/plugins/modules/cloud/google/gcp_spanner_instance_facts.py deleted file mode 120000 index 1c1e47220a..0000000000 --- a/plugins/modules/cloud/google/gcp_spanner_instance_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_spanner_instance_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_spanner_instance_info.py b/plugins/modules/cloud/google/gcp_spanner_instance_info.py deleted file mode 100644 index c24b339b4d..0000000000 --- a/plugins/modules/cloud/google/gcp_spanner_instance_info.py +++ /dev/null @@ -1,191 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_spanner_instance_info -description: -- Gather info for GCP Instance -short_description: Gather info for GCP Instance -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on an instance - gcp_spanner_instance_info: - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - name: - description: - - A unique identifier for the instance, which cannot be changed after the instance - is created. The name must be between 6 and 30 characters in length. - returned: success - type: str - config: - description: - - The name of the instance's configuration (similar but not quite the same as - a region) which defines defines the geographic placement and replication of - your databases in this instance. It determines where your data is stored. - Values are typically of the form `regional-europe-west1` , `us-central` etc. - - In order to obtain a valid list please consult the [Configuration section - of the docs](U(https://cloud.google.com/spanner/docs/instances)). - returned: success - type: str - displayName: - description: - - The descriptive name for this instance as it appears in UIs. Must be unique - per project and between 4 and 30 characters in length. - returned: success - type: str - nodeCount: - description: - - The number of nodes allocated to this instance. - returned: success - type: int - labels: - description: - - 'An object containing a list of "key": value pairs.' - - 'Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.' - returned: success - type: dict -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict()) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/spanner.admin'] - - return_value = {'resources': fetch_list(module, collection(module))} - module.exit_json(**return_value) - - -def collection(module): - return "https://spanner.googleapis.com/v1/projects/{project}/instances".format(**module.params) - - -def fetch_list(module, link): - auth = GcpSession(module, 'spanner') - return auth.list(link, return_if_object, array_name='instances') - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_sql_database_facts.py b/plugins/modules/cloud/google/gcp_sql_database_facts.py deleted file mode 120000 index de080a71eb..0000000000 --- a/plugins/modules/cloud/google/gcp_sql_database_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_sql_database_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_sql_database_info.py b/plugins/modules/cloud/google/gcp_sql_database_info.py deleted file mode 100644 index 5dc97c9244..0000000000 --- a/plugins/modules/cloud/google/gcp_sql_database_info.py +++ /dev/null @@ -1,191 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_sql_database_info -description: -- Gather info for GCP Database -short_description: Gather info for GCP Database -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - instance: - description: - - The name of the Cloud SQL instance. This does not include the project ID. - required: true - type: str - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on a database - gcp_sql_database_info: - instance: "{{ instance.name }}" - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - charset: - description: - - The charset value. See MySQL's [Supported Character Sets and Collations](U(https://dev.mysql.com/doc/refman/5.7/en/charset-charsets.html)) - and Postgres' [Character Set Support](U(https://www.postgresql.org/docs/9.6/static/multibyte.html)) - for more details and supported values. Postgres databases only support a value - of `UTF8` at creation time. - returned: success - type: str - collation: - description: - - The collation value. See MySQL's [Supported Character Sets and Collations](U(https://dev.mysql.com/doc/refman/5.7/en/charset-charsets.html)) - and Postgres' [Collation Support](U(https://www.postgresql.org/docs/9.6/static/collation.html)) - for more details and supported values. Postgres databases only support a value - of `en_US.UTF8` at creation time. - returned: success - type: str - name: - description: - - The name of the database in the Cloud SQL instance. - - This does not include the project ID or instance name. - returned: success - type: str - instance: - description: - - The name of the Cloud SQL instance. This does not include the project ID. - returned: success - type: str -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict(instance=dict(required=True, type='str'))) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/sqlservice.admin'] - - return_value = {'resources': fetch_list(module, collection(module))} - module.exit_json(**return_value) - - -def collection(module): - return "https://www.googleapis.com/sql/v1beta4/projects/{project}/instances/{instance}/databases".format(**module.params) - - -def fetch_list(module, link): - auth = GcpSession(module, 'sql') - return auth.list(link, return_if_object, array_name='items') - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_sql_instance_facts.py b/plugins/modules/cloud/google/gcp_sql_instance_facts.py deleted file mode 120000 index c6c2c5f386..0000000000 --- a/plugins/modules/cloud/google/gcp_sql_instance_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_sql_instance_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_sql_instance_info.py b/plugins/modules/cloud/google/gcp_sql_instance_info.py deleted file mode 100644 index 3e8095117d..0000000000 --- a/plugins/modules/cloud/google/gcp_sql_instance_info.py +++ /dev/null @@ -1,468 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_sql_instance_info -description: -- Gather info for GCP Instance -short_description: Gather info for GCP Instance -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on an instance - gcp_sql_instance_info: - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - backendType: - description: - - "* FIRST_GEN: First Generation instance. MySQL only." - - "* SECOND_GEN: Second Generation instance or PostgreSQL instance." - - "* EXTERNAL: A database server that is not managed by Google." - returned: success - type: str - connectionName: - description: - - Connection name of the Cloud SQL instance used in connection strings. - returned: success - type: str - databaseVersion: - description: - - The database engine type and version. For First Generation instances, can - be MYSQL_5_5, or MYSQL_5_6. For Second Generation instances, can be MYSQL_5_6 - or MYSQL_5_7. Defaults to MYSQL_5_6. - - 'PostgreSQL instances: POSTGRES_9_6 The databaseVersion property can not be - changed after instance creation.' - returned: success - type: str - failoverReplica: - description: - - The name and status of the failover replica. This property is applicable only - to Second Generation instances. - returned: success - type: complex - contains: - available: - description: - - The availability status of the failover replica. A false status indicates - that the failover replica is out of sync. The master can only failover - to the failover replica when the status is true. - returned: success - type: bool - name: - description: - - The name of the failover replica. If specified at instance creation, a - failover replica is created for the instance. The name doesn't include - the project ID. This property is applicable only to Second Generation - instances. - returned: success - type: str - instanceType: - description: - - The instance type. This can be one of the following. - - "* CLOUD_SQL_INSTANCE: A Cloud SQL instance that is not replicating from a - master." - - "* ON_PREMISES_INSTANCE: An instance running on the customer's premises." - - "* READ_REPLICA_INSTANCE: A Cloud SQL instance configured as a read-replica." - returned: success - type: str - ipAddresses: - description: - - The assigned IP addresses for the instance. - returned: success - type: complex - contains: - ipAddress: - description: - - The IP address assigned. - returned: success - type: str - timeToRetire: - description: - - The due time for this IP to be retired in RFC 3339 format, for example - 2012-11-15T16:19:00.094Z. This field is only available when the IP is - scheduled to be retired. - returned: success - type: str - type: - description: - - The type of this IP address. A PRIMARY address is an address that can - accept incoming connections. An OUTGOING address is the source address - of connections originating from the instance, if supported. - returned: success - type: str - ipv6Address: - description: - - The IPv6 address assigned to the instance. This property is applicable only - to First Generation instances. - returned: success - type: str - masterInstanceName: - description: - - The name of the instance which will act as master in the replication setup. - returned: success - type: str - maxDiskSize: - description: - - The maximum disk size of the instance in bytes. - returned: success - type: int - name: - description: - - Name of the Cloud SQL instance. This does not include the project ID. - returned: success - type: str - region: - description: - - The geographical region. Defaults to us-central or us-central1 depending on - the instance type (First Generation or Second Generation/PostgreSQL). - returned: success - type: str - replicaConfiguration: - description: - - Configuration specific to failover replicas and read replicas. - returned: success - type: complex - contains: - failoverTarget: - description: - - Specifies if the replica is the failover target. If the field is set to - true the replica will be designated as a failover replica. - - In case the master instance fails, the replica instance will be promoted - as the new master instance. - - Only one replica can be specified as failover target, and the replica - has to be in different zone with the master instance. - returned: success - type: bool - mysqlReplicaConfiguration: - description: - - MySQL specific configuration when replicating from a MySQL on-premises - master. Replication configuration information such as the username, password, - certificates, and keys are not stored in the instance metadata. The configuration - information is used only to set up the replication connection and is stored - by MySQL in a file named master.info in the data directory. - returned: success - type: complex - contains: - caCertificate: - description: - - PEM representation of the trusted CA's x509 certificate. - returned: success - type: str - clientCertificate: - description: - - PEM representation of the slave's x509 certificate . - returned: success - type: str - clientKey: - description: - - PEM representation of the slave's private key. The corresponding public - key is encoded in the client's certificate. - returned: success - type: str - connectRetryInterval: - description: - - Seconds to wait between connect retries. MySQL's default is 60 seconds. - returned: success - type: int - dumpFilePath: - description: - - Path to a SQL dump file in Google Cloud Storage from which the slave - instance is to be created. The URI is in the form gs://bucketName/fileName. - Compressed gzip files (.gz) are also supported. Dumps should have - the binlog coordinates from which replication should begin. This can - be accomplished by setting --master-data to 1 when using mysqldump. - returned: success - type: str - masterHeartbeatPeriod: - description: - - Interval in milliseconds between replication heartbeats. - returned: success - type: int - password: - description: - - The password for the replication connection. - returned: success - type: str - sslCipher: - description: - - A list of permissible ciphers to use for SSL encryption. - returned: success - type: str - username: - description: - - The username for the replication connection. - returned: success - type: str - verifyServerCertificate: - description: - - Whether or not to check the master's Common Name value in the certificate - that it sends during the SSL handshake. - returned: success - type: bool - replicaNames: - description: - - The replicas of the instance. - returned: success - type: list - serviceAccountEmailAddress: - description: - - The service account email address assigned to the instance. This property - is applicable only to Second Generation instances. - returned: success - type: str - settings: - description: - - The user settings. - returned: success - type: complex - contains: - databaseFlags: - description: - - The database flags passed to the instance at startup. - returned: success - type: complex - contains: - name: - description: - - The name of the flag. These flags are passed at instance startup, - so include both server options and system variables for MySQL. Flags - should be specified with underscores, not hyphens. - returned: success - type: str - value: - description: - - The value of the flag. Booleans should be set to on for true and off - for false. This field must be omitted if the flag doesn't take a value. - returned: success - type: str - ipConfiguration: - description: - - The settings for IP Management. This allows to enable or disable the instance - IP and manage which external networks can connect to the instance. The - IPv4 address cannot be disabled for Second Generation instances. - returned: success - type: complex - contains: - ipv4Enabled: - description: - - Whether the instance should be assigned an IP address or not. - returned: success - type: bool - authorizedNetworks: - description: - - The list of external networks that are allowed to connect to the instance - using the IP. In CIDR notation, also known as 'slash' notation (e.g. - 192.168.100.0/24). - returned: success - type: complex - contains: - expirationTime: - description: - - The time when this access control entry expires in RFC 3339 format, - for example 2012-11-15T16:19:00.094Z. - returned: success - type: str - name: - description: - - An optional label to identify this entry. - returned: success - type: str - value: - description: - - The whitelisted value for the access control list. For example, - to grant access to a client from an external IP (IPv4 or IPv6) - address or subnet, use that address or subnet here. - returned: success - type: str - requireSsl: - description: - - Whether the mysqld should default to 'REQUIRE X509' for users connecting - over IP. - returned: success - type: bool - tier: - description: - - The tier or machine type for this instance, for example db-n1-standard-1. - For MySQL instances, this field determines whether the instance is Second - Generation (recommended) or First Generation. - returned: success - type: str - availabilityType: - description: - - The availabilityType define if your postgres instance is run zonal or - regional. - returned: success - type: str - backupConfiguration: - description: - - The daily backup configuration for the instance. - returned: success - type: complex - contains: - enabled: - description: - - Enable Autobackup for your instance. - returned: success - type: bool - binaryLogEnabled: - description: - - Whether binary log is enabled. If backup configuration is disabled, - binary log must be disabled as well. MySQL only. - returned: success - type: bool - startTime: - description: - - Define the backup start time in UTC (HH:MM) . - returned: success - type: str - settingsVersion: - description: - - The version of instance settings. This is a required field for update - method to make sure concurrent updates are handled properly. During update, - use the most recent settingsVersion value for this instance and do not - try to update this value. - returned: success - type: int -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict()) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/sqlservice.admin'] - - return_value = {'resources': fetch_list(module, collection(module))} - module.exit_json(**return_value) - - -def collection(module): - return "https://www.googleapis.com/sql/v1beta4/projects/{project}/instances".format(**module.params) - - -def fetch_list(module, link): - auth = GcpSession(module, 'sql') - return auth.list(link, return_if_object, array_name='items') - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_sql_user_facts.py b/plugins/modules/cloud/google/gcp_sql_user_facts.py deleted file mode 120000 index 44488004a4..0000000000 --- a/plugins/modules/cloud/google/gcp_sql_user_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_sql_user_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_sql_user_info.py b/plugins/modules/cloud/google/gcp_sql_user_info.py deleted file mode 100644 index 5609713451..0000000000 --- a/plugins/modules/cloud/google/gcp_sql_user_info.py +++ /dev/null @@ -1,192 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_sql_user_info -description: -- Gather info for GCP User -short_description: Gather info for GCP User -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - 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 - type: dict - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on a user - gcp_sql_user_info: - instance: "{{ instance }}" - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - 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. - returned: success - type: str - name: - description: - - The name of the user in the Cloud SQL instance. - returned: success - type: str - instance: - description: - - The name of the Cloud SQL instance. This does not include the project ID. - returned: success - type: dict - password: - description: - - The password for the user. - returned: success - type: str -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest, replace_resource_dict -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict(instance=dict(required=True, type='dict'))) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/sqlservice.admin'] - - return_value = {'resources': fetch_list(module, collection(module))} - module.exit_json(**return_value) - - -def collection(module): - res = {'project': module.params['project'], 'instance': replace_resource_dict(module.params['instance'], 'name')} - return "https://www.googleapis.com/sql/v1beta4/projects/{project}/instances/{instance}/users".format(**res) - - -def fetch_list(module, link): - auth = GcpSession(module, 'sql') - return auth.list(link, return_if_object, array_name='items') - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/cloud/google/gcp_tpu_node_facts.py b/plugins/modules/cloud/google/gcp_tpu_node_facts.py deleted file mode 120000 index 5e0ba332eb..0000000000 --- a/plugins/modules/cloud/google/gcp_tpu_node_facts.py +++ /dev/null @@ -1 +0,0 @@ -gcp_tpu_node_info.py \ No newline at end of file diff --git a/plugins/modules/cloud/google/gcp_tpu_node_info.py b/plugins/modules/cloud/google/gcp_tpu_node_info.py deleted file mode 100644 index 064ec9332b..0000000000 --- a/plugins/modules/cloud/google/gcp_tpu_node_info.py +++ /dev/null @@ -1,249 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -DOCUMENTATION = ''' ---- -module: gcp_tpu_node_info -description: -- Gather info for GCP Node -short_description: Gather info for GCP Node -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - zone: - description: - - The GCP location for the TPU. - required: true - type: str - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: Get info on a node - gcp_tpu_node_info: - zone: us-central1-b - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - name: - description: - - The immutable name of the TPU. - returned: success - type: str - description: - description: - - The user-supplied description of the TPU. Maximum of 512 characters. - returned: success - type: str - acceleratorType: - description: - - The type of hardware accelerators associated with this node. - returned: success - type: str - tensorflowVersion: - description: - - The version of Tensorflow running in the Node. - returned: success - type: str - network: - description: - - The name of a network to peer the TPU node to. It must be a preexisting Compute - Engine network inside of the project on which this API has been activated. - If none is provided, "default" will be used. - returned: success - type: str - cidrBlock: - description: - - The CIDR block that the TPU node will use when selecting an IP address. This - CIDR block must be a /29 block; the Compute Engine networks API forbids a - smaller block, and using a larger block would be wasteful (a node can only - consume one IP address). - - Errors will occur if the CIDR block has already been used for a currently - existing TPU node, the CIDR block conflicts with any subnetworks in the user's - provided network, or the provided network is peered with another network that - is using that CIDR block. - returned: success - type: str - serviceAccount: - description: - - The service account used to run the tensor flow services within the node. - To share resources, including Google Cloud Storage data, with the Tensorflow - job running in the Node, this account must have permissions to that data. - returned: success - type: str - schedulingConfig: - description: - - Sets the scheduling options for this TPU instance. - returned: success - type: complex - contains: - preemptible: - description: - - Defines whether the TPU instance is preemptible. - returned: success - type: bool - networkEndpoints: - description: - - The network endpoints where TPU workers can be accessed and sent work. - - It is recommended that Tensorflow clients of the node first reach out to the - first (index 0) entry. - returned: success - type: complex - contains: - ipAddress: - description: - - The IP address of this network endpoint. - returned: success - type: str - port: - description: - - The port of this network endpoint. - returned: success - type: int - labels: - description: - - Resource labels to represent user provided metadata. - returned: success - type: dict - zone: - description: - - The GCP location for the TPU. - returned: success - type: str -''' - -################################################################################ -# Imports -################################################################################ -from ansible_collections.google.cloud.plugins.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict(zone=dict(required=True, type='str'))) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/cloud-platform'] - - return_value = {'resources': fetch_list(module, collection(module))} - module.exit_json(**return_value) - - -def collection(module): - return "https://tpu.googleapis.com/v1/projects/{project}/locations/{zone}/nodes".format(**module.params) - - -def fetch_list(module, link): - auth = GcpSession(module, 'tpu') - return auth.list(link, return_if_object, array_name='nodes') - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() diff --git a/plugins/modules/gcp_bigquery_dataset_info.py b/plugins/modules/gcp_bigquery_dataset_info.py deleted file mode 120000 index 95b1a92bf0..0000000000 --- a/plugins/modules/gcp_bigquery_dataset_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_bigquery_dataset_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_bigquery_table_info.py b/plugins/modules/gcp_bigquery_table_info.py deleted file mode 120000 index 97fb12aa4d..0000000000 --- a/plugins/modules/gcp_bigquery_table_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_bigquery_table_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_cloudbuild_trigger_info.py b/plugins/modules/gcp_cloudbuild_trigger_info.py deleted file mode 120000 index 554263402a..0000000000 --- a/plugins/modules/gcp_cloudbuild_trigger_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_cloudbuild_trigger_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_compute_address_info.py b/plugins/modules/gcp_compute_address_info.py deleted file mode 120000 index 5c2fa9c8ad..0000000000 --- a/plugins/modules/gcp_compute_address_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_compute_address_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_compute_backend_bucket_info.py b/plugins/modules/gcp_compute_backend_bucket_info.py deleted file mode 120000 index 4a935e9506..0000000000 --- a/plugins/modules/gcp_compute_backend_bucket_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_compute_backend_bucket_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_compute_backend_service_info.py b/plugins/modules/gcp_compute_backend_service_info.py deleted file mode 120000 index 327acf8a1b..0000000000 --- a/plugins/modules/gcp_compute_backend_service_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_compute_backend_service_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_compute_disk_info.py b/plugins/modules/gcp_compute_disk_info.py deleted file mode 120000 index aab32d7f03..0000000000 --- a/plugins/modules/gcp_compute_disk_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_compute_disk_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_compute_firewall_info.py b/plugins/modules/gcp_compute_firewall_info.py deleted file mode 120000 index 0736340639..0000000000 --- a/plugins/modules/gcp_compute_firewall_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_compute_firewall_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_compute_forwarding_rule_info.py b/plugins/modules/gcp_compute_forwarding_rule_info.py deleted file mode 120000 index d538a6ec02..0000000000 --- a/plugins/modules/gcp_compute_forwarding_rule_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_compute_forwarding_rule_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_compute_global_address_info.py b/plugins/modules/gcp_compute_global_address_info.py deleted file mode 120000 index 36b648bfad..0000000000 --- a/plugins/modules/gcp_compute_global_address_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_compute_global_address_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_compute_global_forwarding_rule_info.py b/plugins/modules/gcp_compute_global_forwarding_rule_info.py deleted file mode 120000 index efb33478d7..0000000000 --- a/plugins/modules/gcp_compute_global_forwarding_rule_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_compute_global_forwarding_rule_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_compute_health_check_info.py b/plugins/modules/gcp_compute_health_check_info.py deleted file mode 120000 index e4b4951557..0000000000 --- a/plugins/modules/gcp_compute_health_check_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_compute_health_check_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_compute_http_health_check_info.py b/plugins/modules/gcp_compute_http_health_check_info.py deleted file mode 120000 index 7df1a73907..0000000000 --- a/plugins/modules/gcp_compute_http_health_check_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_compute_http_health_check_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_compute_https_health_check_info.py b/plugins/modules/gcp_compute_https_health_check_info.py deleted file mode 120000 index b790892234..0000000000 --- a/plugins/modules/gcp_compute_https_health_check_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_compute_https_health_check_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_compute_image_info.py b/plugins/modules/gcp_compute_image_info.py deleted file mode 120000 index 4951d77a09..0000000000 --- a/plugins/modules/gcp_compute_image_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_compute_image_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_compute_instance_group_info.py b/plugins/modules/gcp_compute_instance_group_info.py deleted file mode 120000 index e0ae97dcde..0000000000 --- a/plugins/modules/gcp_compute_instance_group_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_compute_instance_group_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_compute_instance_group_manager_info.py b/plugins/modules/gcp_compute_instance_group_manager_info.py deleted file mode 120000 index 53a6934f24..0000000000 --- a/plugins/modules/gcp_compute_instance_group_manager_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_compute_instance_group_manager_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_compute_instance_info.py b/plugins/modules/gcp_compute_instance_info.py deleted file mode 120000 index c930e65d44..0000000000 --- a/plugins/modules/gcp_compute_instance_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_compute_instance_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_compute_instance_template_info.py b/plugins/modules/gcp_compute_instance_template_info.py deleted file mode 120000 index e4f6bf854c..0000000000 --- a/plugins/modules/gcp_compute_instance_template_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_compute_instance_template_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_compute_interconnect_attachment_info.py b/plugins/modules/gcp_compute_interconnect_attachment_info.py deleted file mode 120000 index b8c717d0af..0000000000 --- a/plugins/modules/gcp_compute_interconnect_attachment_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_compute_interconnect_attachment_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_compute_network_info.py b/plugins/modules/gcp_compute_network_info.py deleted file mode 120000 index 601d870f2a..0000000000 --- a/plugins/modules/gcp_compute_network_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_compute_network_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_compute_region_disk_info.py b/plugins/modules/gcp_compute_region_disk_info.py deleted file mode 120000 index e7e6ce7d42..0000000000 --- a/plugins/modules/gcp_compute_region_disk_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_compute_region_disk_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_compute_route_info.py b/plugins/modules/gcp_compute_route_info.py deleted file mode 120000 index 2ddbac86c3..0000000000 --- a/plugins/modules/gcp_compute_route_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_compute_route_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_compute_router_info.py b/plugins/modules/gcp_compute_router_info.py deleted file mode 120000 index e498f8d597..0000000000 --- a/plugins/modules/gcp_compute_router_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_compute_router_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_compute_ssl_certificate_info.py b/plugins/modules/gcp_compute_ssl_certificate_info.py deleted file mode 120000 index 915e9c91df..0000000000 --- a/plugins/modules/gcp_compute_ssl_certificate_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_compute_ssl_certificate_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_compute_ssl_policy_info.py b/plugins/modules/gcp_compute_ssl_policy_info.py deleted file mode 120000 index b16e750772..0000000000 --- a/plugins/modules/gcp_compute_ssl_policy_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_compute_ssl_policy_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_compute_subnetwork_info.py b/plugins/modules/gcp_compute_subnetwork_info.py deleted file mode 120000 index bd6f411c0c..0000000000 --- a/plugins/modules/gcp_compute_subnetwork_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_compute_subnetwork_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_compute_target_http_proxy_info.py b/plugins/modules/gcp_compute_target_http_proxy_info.py deleted file mode 120000 index 476874949a..0000000000 --- a/plugins/modules/gcp_compute_target_http_proxy_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_compute_target_http_proxy_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_compute_target_https_proxy_info.py b/plugins/modules/gcp_compute_target_https_proxy_info.py deleted file mode 120000 index 5b190d18ff..0000000000 --- a/plugins/modules/gcp_compute_target_https_proxy_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_compute_target_https_proxy_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_compute_target_pool_info.py b/plugins/modules/gcp_compute_target_pool_info.py deleted file mode 120000 index 7232536b0b..0000000000 --- a/plugins/modules/gcp_compute_target_pool_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_compute_target_pool_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_compute_target_ssl_proxy_info.py b/plugins/modules/gcp_compute_target_ssl_proxy_info.py deleted file mode 120000 index c188c2fe57..0000000000 --- a/plugins/modules/gcp_compute_target_ssl_proxy_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_compute_target_ssl_proxy_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_compute_target_tcp_proxy_info.py b/plugins/modules/gcp_compute_target_tcp_proxy_info.py deleted file mode 120000 index 42c68d80c2..0000000000 --- a/plugins/modules/gcp_compute_target_tcp_proxy_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_compute_target_tcp_proxy_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_compute_target_vpn_gateway_info.py b/plugins/modules/gcp_compute_target_vpn_gateway_info.py deleted file mode 120000 index 7548c8d231..0000000000 --- a/plugins/modules/gcp_compute_target_vpn_gateway_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_compute_target_vpn_gateway_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_compute_url_map_info.py b/plugins/modules/gcp_compute_url_map_info.py deleted file mode 120000 index 113767f2b3..0000000000 --- a/plugins/modules/gcp_compute_url_map_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_compute_url_map_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_compute_vpn_tunnel_info.py b/plugins/modules/gcp_compute_vpn_tunnel_info.py deleted file mode 120000 index 4a32db5eac..0000000000 --- a/plugins/modules/gcp_compute_vpn_tunnel_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_compute_vpn_tunnel_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_container_cluster_info.py b/plugins/modules/gcp_container_cluster_info.py deleted file mode 120000 index 5b8be281b9..0000000000 --- a/plugins/modules/gcp_container_cluster_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_container_cluster_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_container_node_pool_info.py b/plugins/modules/gcp_container_node_pool_info.py deleted file mode 120000 index 0dab0b8f1a..0000000000 --- a/plugins/modules/gcp_container_node_pool_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_container_node_pool_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_dns_managed_zone_info.py b/plugins/modules/gcp_dns_managed_zone_info.py deleted file mode 120000 index e2f7f6bb02..0000000000 --- a/plugins/modules/gcp_dns_managed_zone_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_dns_managed_zone_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_dns_resource_record_set_info.py b/plugins/modules/gcp_dns_resource_record_set_info.py deleted file mode 120000 index 9fd823c68f..0000000000 --- a/plugins/modules/gcp_dns_resource_record_set_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_dns_resource_record_set_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_iam_role_info.py b/plugins/modules/gcp_iam_role_info.py deleted file mode 120000 index af87066099..0000000000 --- a/plugins/modules/gcp_iam_role_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_iam_role_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_iam_service_account_info.py b/plugins/modules/gcp_iam_service_account_info.py deleted file mode 120000 index 4c7a656239..0000000000 --- a/plugins/modules/gcp_iam_service_account_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_iam_service_account_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_pubsub_subscription_info.py b/plugins/modules/gcp_pubsub_subscription_info.py deleted file mode 120000 index df774cc63a..0000000000 --- a/plugins/modules/gcp_pubsub_subscription_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_pubsub_subscription_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_pubsub_topic_info.py b/plugins/modules/gcp_pubsub_topic_info.py deleted file mode 120000 index 3d5779b59f..0000000000 --- a/plugins/modules/gcp_pubsub_topic_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_pubsub_topic_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_redis_instance_info.py b/plugins/modules/gcp_redis_instance_info.py deleted file mode 120000 index d8e7763c71..0000000000 --- a/plugins/modules/gcp_redis_instance_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_redis_instance_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_resourcemanager_project_info.py b/plugins/modules/gcp_resourcemanager_project_info.py deleted file mode 120000 index a0659a9fe8..0000000000 --- a/plugins/modules/gcp_resourcemanager_project_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_resourcemanager_project_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_sourcerepo_repository_info.py b/plugins/modules/gcp_sourcerepo_repository_info.py deleted file mode 120000 index 23d3ef4be4..0000000000 --- a/plugins/modules/gcp_sourcerepo_repository_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_sourcerepo_repository_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_spanner_database_info.py b/plugins/modules/gcp_spanner_database_info.py deleted file mode 120000 index 90ddbc16fd..0000000000 --- a/plugins/modules/gcp_spanner_database_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_spanner_database_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_spanner_instance_info.py b/plugins/modules/gcp_spanner_instance_info.py deleted file mode 120000 index c96d254527..0000000000 --- a/plugins/modules/gcp_spanner_instance_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_spanner_instance_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_sql_database_info.py b/plugins/modules/gcp_sql_database_info.py deleted file mode 120000 index e8bf01df3b..0000000000 --- a/plugins/modules/gcp_sql_database_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_sql_database_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_sql_instance_info.py b/plugins/modules/gcp_sql_instance_info.py deleted file mode 120000 index 85d59a787b..0000000000 --- a/plugins/modules/gcp_sql_instance_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_sql_instance_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_sql_user_info.py b/plugins/modules/gcp_sql_user_info.py deleted file mode 120000 index 8af5b870b0..0000000000 --- a/plugins/modules/gcp_sql_user_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_sql_user_info.py \ No newline at end of file diff --git a/plugins/modules/gcp_tpu_node_info.py b/plugins/modules/gcp_tpu_node_info.py deleted file mode 120000 index 8585edbda8..0000000000 --- a/plugins/modules/gcp_tpu_node_info.py +++ /dev/null @@ -1 +0,0 @@ -./cloud/google/gcp_tpu_node_info.py \ No newline at end of file diff --git a/tests/sanity/ignore-2.10.txt b/tests/sanity/ignore-2.10.txt index fb785fe412..c0dd907e2e 100644 --- a/tests/sanity/ignore-2.10.txt +++ b/tests/sanity/ignore-2.10.txt @@ -347,78 +347,6 @@ plugins/modules/cloud/google/gcp_backend_service.py validate-modules:doc-missing plugins/modules/cloud/google/gcp_backend_service.py validate-modules:parameter-list-no-elements plugins/modules/cloud/google/gcp_backend_service.py validate-modules:parameter-type-not-in-doc plugins/modules/cloud/google/gcp_backend_service.py validate-modules:undocumented-parameter -plugins/modules/cloud/google/gcp_bigquery_dataset_info.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/google/gcp_bigquery_table_info.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/google/gcp_cloudbuild_trigger_info.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/google/gcp_compute_address_info.py validate-modules:doc-elements-mismatch -plugins/modules/cloud/google/gcp_compute_address_info.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/google/gcp_compute_backend_bucket_info.py validate-modules:doc-elements-mismatch -plugins/modules/cloud/google/gcp_compute_backend_bucket_info.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/google/gcp_compute_backend_service_info.py validate-modules:doc-elements-mismatch -plugins/modules/cloud/google/gcp_compute_backend_service_info.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/google/gcp_compute_disk_info.py validate-modules:doc-elements-mismatch -plugins/modules/cloud/google/gcp_compute_disk_info.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/google/gcp_compute_firewall_info.py validate-modules:doc-elements-mismatch -plugins/modules/cloud/google/gcp_compute_firewall_info.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/google/gcp_compute_forwarding_rule_info.py validate-modules:doc-elements-mismatch -plugins/modules/cloud/google/gcp_compute_forwarding_rule_info.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/google/gcp_compute_global_address_info.py validate-modules:doc-elements-mismatch -plugins/modules/cloud/google/gcp_compute_global_address_info.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/google/gcp_compute_global_forwarding_rule_info.py validate-modules:doc-elements-mismatch -plugins/modules/cloud/google/gcp_compute_global_forwarding_rule_info.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/google/gcp_compute_health_check_info.py validate-modules:doc-elements-mismatch -plugins/modules/cloud/google/gcp_compute_health_check_info.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/google/gcp_compute_http_health_check_info.py validate-modules:doc-elements-mismatch -plugins/modules/cloud/google/gcp_compute_http_health_check_info.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/google/gcp_compute_https_health_check_info.py validate-modules:doc-elements-mismatch -plugins/modules/cloud/google/gcp_compute_https_health_check_info.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/google/gcp_compute_image_info.py validate-modules:doc-elements-mismatch -plugins/modules/cloud/google/gcp_compute_image_info.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/google/gcp_compute_instance_group_info.py validate-modules:doc-elements-mismatch -plugins/modules/cloud/google/gcp_compute_instance_group_info.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/google/gcp_compute_instance_group_manager_info.py validate-modules:doc-elements-mismatch -plugins/modules/cloud/google/gcp_compute_instance_group_manager_info.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/google/gcp_compute_instance_info.py validate-modules:doc-elements-mismatch -plugins/modules/cloud/google/gcp_compute_instance_info.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/google/gcp_compute_instance_template_info.py validate-modules:doc-elements-mismatch -plugins/modules/cloud/google/gcp_compute_instance_template_info.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/google/gcp_compute_interconnect_attachment_info.py validate-modules:doc-elements-mismatch -plugins/modules/cloud/google/gcp_compute_interconnect_attachment_info.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/google/gcp_compute_network_info.py validate-modules:doc-elements-mismatch -plugins/modules/cloud/google/gcp_compute_network_info.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/google/gcp_compute_region_disk_info.py validate-modules:doc-elements-mismatch -plugins/modules/cloud/google/gcp_compute_region_disk_info.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/google/gcp_compute_route_info.py validate-modules:doc-elements-mismatch -plugins/modules/cloud/google/gcp_compute_route_info.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/google/gcp_compute_router_info.py validate-modules:doc-elements-mismatch -plugins/modules/cloud/google/gcp_compute_router_info.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/google/gcp_compute_ssl_certificate_info.py validate-modules:doc-elements-mismatch -plugins/modules/cloud/google/gcp_compute_ssl_certificate_info.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/google/gcp_compute_ssl_policy_info.py validate-modules:doc-elements-mismatch -plugins/modules/cloud/google/gcp_compute_ssl_policy_info.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/google/gcp_compute_subnetwork_info.py validate-modules:doc-elements-mismatch -plugins/modules/cloud/google/gcp_compute_subnetwork_info.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/google/gcp_compute_target_http_proxy_info.py validate-modules:doc-elements-mismatch -plugins/modules/cloud/google/gcp_compute_target_http_proxy_info.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/google/gcp_compute_target_https_proxy_info.py validate-modules:doc-elements-mismatch -plugins/modules/cloud/google/gcp_compute_target_https_proxy_info.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/google/gcp_compute_target_pool_info.py validate-modules:doc-elements-mismatch -plugins/modules/cloud/google/gcp_compute_target_pool_info.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/google/gcp_compute_target_ssl_proxy_info.py validate-modules:doc-elements-mismatch -plugins/modules/cloud/google/gcp_compute_target_ssl_proxy_info.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/google/gcp_compute_target_tcp_proxy_info.py validate-modules:doc-elements-mismatch -plugins/modules/cloud/google/gcp_compute_target_tcp_proxy_info.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/google/gcp_compute_target_vpn_gateway_info.py validate-modules:doc-elements-mismatch -plugins/modules/cloud/google/gcp_compute_target_vpn_gateway_info.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/google/gcp_compute_url_map_info.py validate-modules:doc-elements-mismatch -plugins/modules/cloud/google/gcp_compute_url_map_info.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/google/gcp_compute_vpn_tunnel_info.py validate-modules:doc-elements-mismatch -plugins/modules/cloud/google/gcp_compute_vpn_tunnel_info.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/google/gcp_container_cluster_info.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/google/gcp_container_node_pool_info.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/google/gcp_dns_managed_zone_info.py validate-modules:doc-elements-mismatch -plugins/modules/cloud/google/gcp_dns_managed_zone_info.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/google/gcp_dns_resource_record_set_info.py validate-modules:parameter-list-no-elements plugins/modules/cloud/google/gcp_forwarding_rule.py validate-modules:doc-choices-do-not-match-spec plugins/modules/cloud/google/gcp_forwarding_rule.py validate-modules:doc-default-does-not-match-spec plugins/modules/cloud/google/gcp_forwarding_rule.py validate-modules:doc-missing-type @@ -433,25 +361,12 @@ plugins/modules/cloud/google/gcp_healthcheck.py validate-modules:doc-missing-typ plugins/modules/cloud/google/gcp_healthcheck.py validate-modules:doc-required-mismatch plugins/modules/cloud/google/gcp_healthcheck.py validate-modules:parameter-list-no-elements plugins/modules/cloud/google/gcp_healthcheck.py validate-modules:parameter-type-not-in-doc -plugins/modules/cloud/google/gcp_iam_role_info.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/google/gcp_iam_service_account_info.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/google/gcp_pubsub_subscription_info.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/google/gcp_pubsub_topic_info.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/google/gcp_redis_instance_info.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/google/gcp_resourcemanager_project_info.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/google/gcp_sourcerepo_repository_info.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/google/gcp_spanner_database_info.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/google/gcp_spanner_instance_info.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/google/gcp_sql_database_info.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/google/gcp_sql_instance_info.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/google/gcp_sql_user_info.py validate-modules:parameter-list-no-elements plugins/modules/cloud/google/gcp_target_proxy.py validate-modules:doc-choices-do-not-match-spec plugins/modules/cloud/google/gcp_target_proxy.py validate-modules:doc-missing-type plugins/modules/cloud/google/gcp_target_proxy.py validate-modules:doc-required-mismatch plugins/modules/cloud/google/gcp_target_proxy.py validate-modules:parameter-list-no-elements plugins/modules/cloud/google/gcp_target_proxy.py validate-modules:parameter-type-not-in-doc plugins/modules/cloud/google/gcp_target_proxy.py validate-modules:undocumented-parameter -plugins/modules/cloud/google/gcp_tpu_node_info.py validate-modules:parameter-list-no-elements plugins/modules/cloud/google/gcp_url_map.py validate-modules:doc-choices-do-not-match-spec plugins/modules/cloud/google/gcp_url_map.py validate-modules:doc-default-does-not-match-spec plugins/modules/cloud/google/gcp_url_map.py validate-modules:doc-missing-type