def main(): """Main function""" module = GcpModule( argument_spec=dict( state=dict(default='present', choices=['present', 'absent'], type='str'), bucket=dict(required=True, type='dict'), entity=dict(required=True, type='str'), role=dict(type='str'), ) ) if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/devstorage.full_control'] state = module.params['state'] kind = 'storage#bucketAccessControl' fetch = fetch_resource(module, self_link(module), kind) changed = False if fetch: if state == 'present': if is_different(module, fetch): update(module, self_link(module), kind) fetch = fetch_resource(module, self_link(module), kind) changed = True else: delete(module, self_link(module), kind) fetch = {} changed = True else: if state == 'present': fetch = create(module, collection(module), kind) changed = True else: fetch = {} fetch.update({'changed': changed}) module.exit_json(**fetch)
def main(): """Main function""" module = GcpModule(argument_spec=dict( state=dict( default='present', choices=['present', 'absent'], type='str'), description=dict(type='str'), name=dict(required=True, type='str'), url_map=dict(required=True, type='dict'), region=dict(required=True, type='str'), )) if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] state = module.params['state'] kind = 'compute#targetHttpProxy' fetch = fetch_resource(module, self_link(module), kind) changed = False if fetch: if state == 'present': if is_different(module, fetch): update(module, self_link(module), kind, fetch) fetch = fetch_resource(module, self_link(module), kind) changed = True else: delete(module, self_link(module), kind) fetch = {} changed = True else: if state == 'present': fetch = create(module, collection(module), kind) changed = True else: fetch = {} fetch.update({'changed': changed}) module.exit_json(**fetch)
def main(): """Main function""" module = GcpModule( argument_spec=dict( state=dict(default='present', choices=['present', 'absent'], type='str'), name=dict(required=True, type='str'), kms_key_name=dict(type='str'), labels=dict(type='dict'), message_storage_policy=dict(type='dict', options=dict(allowed_persistence_regions=dict(required=True, type='list', elements='str'))), ) ) if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/pubsub'] state = module.params['state'] fetch = fetch_resource(module, self_link(module)) changed = False if fetch: if state == 'present': if is_different(module, fetch): update(module, self_link(module), fetch) fetch = fetch_resource(module, self_link(module)) changed = True else: delete(module, self_link(module)) fetch = {} changed = True else: if state == 'present': fetch = create(module, self_link(module)) changed = True else: fetch = {} fetch.update({'changed': changed}) module.exit_json(**fetch)
def main(): """Main function""" module = GcpModule( argument_spec=dict( state=dict(default='present', choices=['present', 'absent'], type='str'), name=dict(required=True, type='str'), location=dict(required=True, type='str'), ) ) if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/cloudkms'] state = module.params['state'] fetch = fetch_resource(module, self_link(module)) changed = False if fetch: if state == 'present': if is_different(module, fetch): update(module, self_link(module)) fetch = fetch_resource(module, self_link(module)) changed = True else: delete(module, self_link(module)) fetch = {} changed = True else: if state == 'present': fetch = create(module, create_link(module)) changed = True else: fetch = {} fetch.update({'changed': changed}) module.exit_json(**fetch)
def main(): """Main function""" module = GcpModule(argument_spec=dict( state=dict( default='present', choices=['present', 'absent'], type='str'), private_key_type=dict(type='str'), key_algorithm=dict(type='str'), service_account=dict(type='dict'), path=dict(type='path'), )) if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/iam'] state = module.params['state'] # If file exists, we're doing a no-op or deleting the key. changed = False if os.path.isfile(module.params['path']): fetch = fetch_resource(module) # If file exists and we should delete the file, delete it. if fetch and module.params['state'] == 'absent': delete(module) changed = True # Create the file if present state and no current file. elif module.params['state'] == 'present': create(module) changed = True # Not returning any information about the key because that information should # end up in logs. module.exit_json(**{ 'changed': changed, 'file_path': module.params['path'] })
def main(): """Main function""" module = GcpModule(argument_spec=dict( state=dict( default='present', choices=['present', 'absent'], type='str'), affinity_cookie_ttl_sec=dict(type='int'), backends=dict( type='list', elements='dict', options=dict( balancing_mode=dict(default='UTILIZATION', type='str'), capacity_scaler=dict(default=1.0, type='str'), description=dict(type='str'), group=dict(type='str'), max_connections=dict(type='int'), max_connections_per_instance=dict(type='int'), max_connections_per_endpoint=dict(type='int'), max_rate=dict(type='int'), max_rate_per_instance=dict(type='str'), max_rate_per_endpoint=dict(type='str'), max_utilization=dict(default=0.8, type='str'), ), ), cdn_policy=dict( type='dict', options=dict( cache_key_policy=dict( type='dict', options=dict( include_host=dict(type='bool'), include_protocol=dict(type='bool'), include_query_string=dict(type='bool'), query_string_blacklist=dict(type='list', elements='str'), query_string_whitelist=dict(type='list', elements='str'), ), ), signed_url_cache_max_age_sec=dict(default=3600, type='int'), ), ), connection_draining=dict(type='dict', options=dict(draining_timeout_sec=dict( default=300, type='int'))), description=dict(type='str'), enable_cdn=dict(type='bool'), health_checks=dict(required=True, type='list', elements='str'), iap=dict( type='dict', options=dict(enabled=dict(type='bool'), oauth2_client_id=dict(required=True, type='str'), oauth2_client_secret=dict(required=True, type='str')), ), load_balancing_scheme=dict(default='EXTERNAL', type='str'), name=dict(required=True, type='str'), port_name=dict(type='str'), protocol=dict(type='str'), security_policy=dict(type='str'), session_affinity=dict(type='str'), timeout_sec=dict(type='int', aliases=['timeout_seconds']), )) if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] state = module.params['state'] kind = 'compute#backendService' fetch = fetch_resource(module, self_link(module), kind) changed = False if fetch: if state == 'present': if is_different(module, fetch): update(module, self_link(module), kind, fetch) fetch = fetch_resource(module, self_link(module), kind) changed = True else: delete(module, self_link(module), kind) fetch = {} changed = True else: if state == 'present': fetch = create(module, collection(module), kind) changed = True else: fetch = {} fetch.update({'changed': changed}) module.exit_json(**fetch)
def main(): """Main function""" module = GcpModule(argument_spec=dict( state=dict( default='present', choices=['present', 'absent'], type='str'), description=dict(type='str'), labels=dict(type='dict'), licenses=dict(type='list', elements='str'), name=dict(required=True, type='str'), size_gb=dict(type='int'), physical_block_size_bytes=dict(type='int'), type=dict(type='str'), source_image=dict(type='str'), zone=dict(required=True, type='str'), source_image_encryption_key=dict( type='dict', no_log=True, options=dict(raw_key=dict(type='str'), kms_key_name=dict(type='str'), kms_key_service_account=dict(type='str'))), disk_encryption_key=dict(type='dict', no_log=True, options=dict(raw_key=dict(type='str'), kms_key_name=dict(type='str'), kms_key_service_account=dict( type='str'))), source_snapshot=dict(type='dict', no_log=True), source_snapshot_encryption_key=dict( type='dict', no_log=True, options=dict(raw_key=dict(type='str'), kms_key_name=dict(type='str'), kms_key_service_account=dict(type='str'))), )) if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] state = module.params['state'] kind = 'compute#disk' fetch = fetch_resource(module, self_link(module), kind) changed = False if fetch: if state == 'present': if is_different(module, fetch): update(module, self_link(module), kind, fetch) fetch = fetch_resource(module, self_link(module), kind) changed = True else: delete(module, self_link(module), kind) fetch = {} changed = True else: if state == 'present': fetch = create(module, collection(module), kind) changed = True else: fetch = {} fetch.update({'changed': changed}) module.exit_json(**fetch)
def main(): """Main function""" module = GcpModule(argument_spec=dict( state=dict( default='present', choices=['present', 'absent'], type='str'), name=dict(type='str'), app_engine_routing_override=dict(type='dict', options=dict(service=dict(type='str'), version=dict(type='str'), instance=dict( type='str'))), rate_limits=dict(type='dict', options=dict(max_dispatches_per_second=dict( type='str'), max_concurrent_dispatches=dict( type='int'))), retry_config=dict( type='dict', options=dict( max_attempts=dict(type='int'), max_retry_duration=dict(type='str'), min_backoff=dict(type='str'), max_backoff=dict(type='str'), max_doublings=dict(type='int'), ), ), status=dict(type='str'), location=dict(required=True, type='str'), )) if not module.params['scopes']: module.params['scopes'] = [ 'https://www.googleapis.com/auth/cloud-platform' ] state = module.params['state'] fetch = fetch_resource(module, self_link(module)) changed = False if fetch: if state == 'present': if is_different(module, fetch): update(module, self_link(module), fetch) fetch = fetch_resource(module, self_link(module)) changed = True else: delete(module, self_link(module)) fetch = {} changed = True else: if state == 'present': fetch = create(module, collection(module)) changed = True else: fetch = {} if fetch: instance = QueueStatus(module, fetch.get('state')) instance.run() if module.params.get('status'): fetch.update({'status': module.params['status']}) fetch.update({'changed': changed}) module.exit_json(**fetch)
def main(): """Main function""" module = GcpModule(argument_spec=dict( state=dict( default='present', choices=['present', 'absent'], type='str'), name=dict(type='str'), access=dict( type='list', elements='dict', options=dict( domain=dict(type='str'), group_by_email=dict(type='str'), role=dict(required=True, type='str'), special_group=dict(type='str'), user_by_email=dict(type='str'), view=dict( type='dict', options=dict(dataset_id=dict(required=True, type='str'), project_id=dict(required=True, type='str'), table_id=dict(required=True, type='str')), ), ), ), dataset_reference=dict(required=True, type='dict', options=dict(dataset_id=dict(required=True, type='str'), project_id=dict(type='str'))), default_table_expiration_ms=dict(type='int'), default_partition_expiration_ms=dict(type='int'), description=dict(type='str'), friendly_name=dict(type='str'), labels=dict(type='dict'), location=dict(default='US', type='str'), default_encryption_configuration=dict(type='dict', options=dict(kms_key_name=dict( required=True, type='str'))), )) if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/bigquery'] state = module.params['state'] kind = 'bigquery#dataset' fetch = fetch_resource(module, self_link(module), kind) changed = False if fetch: if state == 'present': if is_different(module, fetch): update(module, self_link(module), kind) fetch = fetch_resource(module, self_link(module), kind) changed = True else: delete(module, self_link(module), kind) fetch = {} changed = True else: if state == 'present': fetch = create(module, collection(module), kind) changed = True else: fetch = {} fetch.update({'changed': changed}) module.exit_json(**fetch)
def main(): """Main function""" module = GcpModule(argument_spec=dict( state=dict( default='present', choices=['present', 'absent'], type='str'), backends=dict( type='list', elements='dict', options=dict( balancing_mode=dict(default='CONNECTION', type='str'), capacity_scaler=dict(type='str'), description=dict(type='str'), group=dict(required=True, type='str'), max_connections=dict(type='int'), max_connections_per_instance=dict(type='int'), max_connections_per_endpoint=dict(type='int'), max_rate=dict(type='int'), max_rate_per_instance=dict(type='str'), max_rate_per_endpoint=dict(type='str'), max_utilization=dict(type='str'), ), ), connection_draining=dict(type='dict', options=dict(draining_timeout_sec=dict( default=300, type='int'))), description=dict(type='str'), health_checks=dict(required=True, type='list', elements='str'), load_balancing_scheme=dict(default='INTERNAL', type='str'), name=dict(required=True, type='str'), protocol=dict(type='str'), session_affinity=dict(type='str'), timeout_sec=dict(type='int'), region=dict(required=True, type='str'), )) if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] state = module.params['state'] kind = 'compute#backendService' fetch = fetch_resource(module, self_link(module), kind) changed = False if fetch: if state == 'present': if is_different(module, fetch): update(module, self_link(module), kind) fetch = fetch_resource(module, self_link(module), kind) changed = True else: delete(module, self_link(module), kind) fetch = {} changed = True else: if state == 'present': fetch = create(module, collection(module), kind) changed = True else: fetch = {} fetch.update({'changed': changed}) module.exit_json(**fetch)
def main(): """Main function""" module = GcpModule( argument_spec=dict( state=dict(default='present', choices=['present', 'absent'], type='str'), name=dict(required=True, type='str'), snapshot_schedule_policy=dict( type='dict', options=dict( schedule=dict( required=True, type='dict', options=dict( hourly_schedule=dict( type='dict', options=dict(hours_in_cycle=dict(required=True, type='int'), start_time=dict(required=True, type='str'))), daily_schedule=dict( type='dict', options=dict(days_in_cycle=dict(required=True, type='int'), start_time=dict(required=True, type='str'))), weekly_schedule=dict( type='dict', options=dict(day_of_weeks=dict( required=True, type='list', elements='dict', options=dict(start_time=dict(required=True, type='str'), day=dict(required=True, type='str')), )), ), ), ), retention_policy=dict( type='dict', options=dict(max_retention_days=dict(required=True, type='int'), on_source_disk_delete=dict( default='KEEP_AUTO_SNAPSHOTS', type='str')), ), snapshot_properties=dict( type='dict', options=dict(labels=dict(type='dict'), storage_locations=dict(type='list', elements='str'), guest_flush=dict(type='bool'))), ), ), group_placement_policy=dict( type='dict', options=dict(vm_count=dict(type='int'), availability_domain_count=dict(type='int'), collocation=dict(type='str'))), region=dict(required=True, type='str'), ), mutually_exclusive=[[ 'group_placement_policy', 'snapshot_schedule_policy' ]], ) if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] state = module.params['state'] kind = 'compute#resourcePolicy' fetch = fetch_resource(module, self_link(module), kind) changed = False if fetch: if state == 'present': if is_different(module, fetch): update(module, self_link(module), kind) fetch = fetch_resource(module, self_link(module), kind) changed = True else: delete(module, self_link(module), kind) fetch = {} changed = True else: if state == 'present': fetch = create(module, collection(module), kind) changed = True else: fetch = {} fetch.update({'changed': changed}) module.exit_json(**fetch)
def main(): """Main function""" module = GcpModule(argument_spec=dict( state=dict( default='present', choices=['present', 'absent'], type='str'), name=dict(required=True, type='str'), topic=dict(required=True, type='dict'), labels=dict(type='dict'), push_config=dict( type='dict', options=dict( oidc_token=dict(type='dict', options=dict(service_account_email=dict( required=True, type='str'), audience=dict(type='str'))), push_endpoint=dict(required=True, type='str'), attributes=dict(type='dict'), ), ), ack_deadline_seconds=dict(type='int'), message_retention_duration=dict(default='604800s', type='str'), retain_acked_messages=dict(type='bool'), expiration_policy=dict( type='dict', options=dict(ttl=dict(required=True, type='str'))), filter=dict(type='str'), dead_letter_policy=dict(type='dict', options=dict(dead_letter_topic=dict( type='str'), max_delivery_attempts=dict( type='int'))), retry_policy=dict(type='dict', options=dict(minimum_backoff=dict(type='str'), maximum_backoff=dict(type='str'))), enable_message_ordering=dict(type='bool'), )) if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/pubsub'] state = module.params['state'] fetch = fetch_resource(module, self_link(module)) changed = False if fetch: if state == 'present': if is_different(module, fetch): update(module, self_link(module), fetch) fetch = fetch_resource(module, self_link(module)) changed = True else: delete(module, self_link(module)) fetch = {} changed = True else: if state == 'present': fetch = create(module, self_link(module)) changed = True else: fetch = {} fetch.update({'changed': changed}) module.exit_json(**fetch)
def main(): """Main function""" module = GcpModule(argument_spec=dict( state=dict( default='present', choices=['present', 'absent'], type='str'), id=dict(type='str'), name=dict(type='str'), description=dict(type='str'), disabled=dict(type='bool'), substitutions=dict(type='dict'), filename=dict(type='str'), ignored_files=dict(type='list', elements='str'), included_files=dict(type='list', elements='str'), trigger_template=dict( type='dict', options=dict( project_id=dict(type='str'), repo_name=dict(default='default', type='str'), dir=dict(type='str'), invert_regex=dict(type='bool'), branch_name=dict(type='str'), tag_name=dict(type='str'), commit_sha=dict(type='str'), ), ), build=dict( type='dict', options=dict( tags=dict(type='list', elements='str'), images=dict(type='list', elements='str'), timeout=dict(default='600s', type='str'), steps=dict( required=True, type='list', elements='dict', options=dict( name=dict(required=True, type='str'), args=dict(type='list', elements='str'), env=dict(type='list', elements='str'), id=dict(type='str'), entrypoint=dict(type='str'), dir=dict(type='str'), secret_env=dict(type='list', elements='str'), timeout=dict(type='str'), timing=dict(type='str'), volumes=dict(type='list', elements='dict', options=dict(name=dict(required=True, type='str'), path=dict(required=True, type='str'))), wait_for=dict(type='list', elements='str'), ), ), ), ), )) if not module.params['scopes']: module.params['scopes'] = [ 'https://www.googleapis.com/auth/cloud-platform' ] state = module.params['state'] fetch = fetch_resource(module, self_link(module)) changed = False if fetch: if state == 'present': if is_different(module, fetch): update(module, self_link(module)) fetch = fetch_resource(module, self_link(module)) changed = True else: delete(module, self_link(module)) fetch = {} changed = True else: if state == 'present': fetch = create(module, collection(module)) changed = True else: fetch = {} fetch.update({'changed': changed}) module.exit_json(**fetch)
def main(): """Main function""" module = GcpModule( argument_spec=dict( state=dict(default='present', choices=['present', 'absent'], type='str'), description=dict(required=True, type='str'), dns_name=dict(required=True, type='str'), dnssec_config=dict( type='dict', options=dict( kind=dict(default='dns#managedZoneDnsSecConfig', type='str'), non_existence=dict(type='str'), state=dict(type='str'), default_key_specs=dict( type='list', elements='dict', options=dict( algorithm=dict(type='str'), key_length=dict(type='int'), key_type=dict(type='str'), kind=dict(default='dns#dnsKeySpec', type='str') ), ), ), ), name=dict(required=True, type='str'), name_server_set=dict(type='str'), labels=dict(type='dict'), visibility=dict(default='public', type='str'), private_visibility_config=dict( type='dict', options=dict(networks=dict(required=True, type='list', elements='dict', options=dict(network_url=dict(required=True, type='str')))) ), ) ) if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/ndev.clouddns.readwrite'] state = module.params['state'] kind = 'dns#managedZone' fetch = fetch_resource(module, self_link(module), kind) changed = False if fetch: if state == 'present': if is_different(module, fetch): update(module, self_link(module), kind, fetch) fetch = fetch_resource(module, self_link(module), kind) changed = True else: delete(module, self_link(module), kind) fetch = {} changed = True else: if state == 'present': fetch = create(module, collection(module), kind) changed = True else: fetch = {} fetch.update({'changed': changed}) module.exit_json(**fetch)
def main(): """Main function""" module = GcpModule(argument_spec=dict( state=dict( default='present', choices=['present', 'absent'], type='str'), name=dict(required=True, type='str'), description=dict(type='str'), filter=dict(required=True, type='str'), metric_descriptor=dict( required=True, type='dict', options=dict( unit=dict(default='1', type='str'), value_type=dict(required=True, type='str'), metric_kind=dict(required=True, type='str'), labels=dict( type='list', elements='dict', options=dict(key=dict(required=True, type='str'), description=dict(type='str'), value_type=dict(default='STRING', type='str')), ), ), ), label_extractors=dict(type='dict'), value_extractor=dict(type='str'), bucket_options=dict( type='dict', options=dict( linear_buckets=dict(type='dict', options=dict(num_finite_buckets=dict( type='int'), width=dict(type='int'), offset=dict(type='str'))), exponential_buckets=dict(type='dict', options=dict(num_finite_buckets=dict( type='int'), growth_factor=dict( type='int'), scale=dict(type='str'))), explicit_buckets=dict(type='dict', options=dict(bounds=dict( type='list', elements='str'))), ), ), )) if not module.params['scopes']: module.params['scopes'] = [ 'https://www.googleapis.com/auth/cloud-platform' ] state = module.params['state'] fetch = fetch_resource(module, self_link(module)) changed = False if fetch: if state == 'present': if is_different(module, fetch): update(module, self_link(module)) fetch = fetch_resource(module, self_link(module)) changed = True else: delete(module, self_link(module)) fetch = {} changed = True else: if state == 'present': fetch = create(module, collection(module)) changed = True else: fetch = {} fetch.update({'changed': changed}) module.exit_json(**fetch)
def main(): """Main function""" module = GcpModule(argument_spec=dict( state=dict( default='present', choices=['present', 'absent'], type='str'), acl=dict( type='list', elements='dict', options=dict( bucket=dict(required=True, type='dict'), entity=dict(required=True, type='str'), entity_id=dict(type='str'), project_team=dict(type='dict', options=dict(project_number=dict(type='str'), team=dict(type='str'))), role=dict(type='str'), ), ), cors=dict( type='list', elements='dict', options=dict( max_age_seconds=dict(type='int'), method=dict(type='list', elements='str'), origin=dict(type='list', elements='str'), response_header=dict(type='list', elements='str'), ), ), default_event_based_hold=dict(type='bool'), default_object_acl=dict( type='list', elements='dict', options=dict( bucket=dict(required=True, type='dict'), entity=dict(required=True, type='str'), object=dict(type='str'), role=dict(required=True, type='str'), ), ), lifecycle=dict( type='dict', options=dict(rule=dict( type='list', elements='dict', options=dict( action=dict(type='dict', options=dict(storage_class=dict(type='str'), type=dict(type='str'))), condition=dict( type='dict', options=dict( age_days=dict(type='int'), created_before=dict(type='str'), is_live=dict(type='bool'), matches_storage_class=dict(type='list', elements='str'), num_newer_versions=dict(type='int'), ), ), ), )), ), location=dict(type='str'), logging=dict(type='dict', options=dict(log_bucket=dict(type='str'), log_object_prefix=dict(type='str'))), metageneration=dict(type='int'), name=dict(type='str'), owner=dict(type='dict', options=dict(entity=dict(type='str'))), storage_class=dict(type='str'), versioning=dict(type='dict', options=dict(enabled=dict(type='bool'))), website=dict(type='dict', options=dict(main_page_suffix=dict(type='str'), not_found_page=dict(type='str'))), labels=dict(type='dict'), project=dict(type='str'), predefined_default_object_acl=dict(type='str'), )) if not module.params['scopes']: module.params['scopes'] = [ 'https://www.googleapis.com/auth/devstorage.full_control' ] state = module.params['state'] kind = 'storage#bucket' fetch = fetch_resource(module, self_link(module), kind) changed = False if fetch: if state == 'present': if is_different(module, fetch): update(module, self_link(module), kind) fetch = fetch_resource(module, self_link(module), kind) changed = True else: delete(module, self_link(module), kind) fetch = {} changed = True else: if state == 'present': fetch = create(module, collection(module), kind) changed = True else: fetch = {} fetch.update({'changed': changed}) module.exit_json(**fetch)
def main(): """Main function""" module = GcpModule(argument_spec=dict( state=dict( default='present', choices=['present', 'absent'], type='str'), name=dict(required=True, type='str'), description=dict(type='str'), entry_point=dict(type='str'), runtime=dict(type='str'), timeout=dict(type='str'), available_memory_mb=dict(type='int'), labels=dict(type='dict'), environment_variables=dict(type='dict'), source_archive_url=dict(type='str'), source_upload_url=dict(type='str'), source_repository=dict(type='dict', options=dict(url=dict( type='str'))), https_trigger=dict(type='dict', options=dict()), event_trigger=dict(type='dict', options=dict( event_type=dict(required=True, type='str'), resource=dict(required=True, type='str'), service=dict(type='str'))), location=dict(required=True, type='str'), trigger_http=dict(type='bool'), )) if not module.params['scopes']: module.params['scopes'] = [ 'https://www.googleapis.com/auth/cloud-platform' ] state = module.params['state'] fetch = fetch_resource(module, self_link(module)) changed = False # Need to set triggerHttps to {} if boolean true. if fetch and fetch.get('httpsTrigger') and module.params['trigger_http']: module.params['https_trigger'] = fetch.get('httpsTrigger') elif module.params['trigger_http']: module.params['https_trigger'] = {} if fetch: if state == 'present': if is_different(module, fetch): update(module, self_link(module), fetch) fetch = fetch_resource(module, self_link(module)) changed = True else: delete(module, self_link(module)) fetch = {} changed = True else: if state == 'present': fetch = create(module, collection(module)) changed = True else: fetch = {} fetch.update({'changed': changed}) module.exit_json(**fetch)
def main(): """Main function""" module = GcpModule(argument_spec=dict( state=dict( default='present', choices=['present', 'absent'], type='str'), description=dict(type='str'), name=dict(required=True, type='str'), specific_reservation_required=dict(type='bool'), specific_reservation=dict( required=True, type='dict', options=dict( count=dict(required=True, type='int'), instance_properties=dict( required=True, type='dict', options=dict( machine_type=dict(required=True, type='str'), min_cpu_platform=dict(type='str'), guest_accelerators=dict( type='list', elements='dict', options=dict(accelerator_type=dict(required=True, type='str'), accelerator_count=dict(required=True, type='int')), ), local_ssds=dict( type='list', elements='dict', options=dict( interface=dict(default='SCSI', type='str'), disk_size_gb=dict(required=True, type='int')), ), ), ), ), ), zone=dict(required=True, type='str'), )) if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] state = module.params['state'] fetch = fetch_resource(module, self_link(module)) changed = False if fetch: if state == 'present': if is_different(module, fetch): update(module, self_link(module)) fetch = fetch_resource(module, self_link(module)) changed = True else: delete(module, self_link(module)) fetch = {} changed = True else: if state == 'present': fetch = create(module, collection(module)) changed = True else: fetch = {} fetch.update({'changed': changed}) module.exit_json(**fetch)
def main(): """Main function""" module = GcpModule(argument_spec=dict( state=dict( default='present', choices=['present', 'absent'], type='str'), default_service=dict(required=True, type='dict'), description=dict(type='str'), host_rules=dict( type='list', elements='dict', options=dict(description=dict(type='str'), hosts=dict(required=True, type='list', elements='str'), path_matcher=dict(required=True, type='str')), ), name=dict(required=True, type='str'), path_matchers=dict( type='list', elements='dict', options=dict( default_service=dict(required=True, type='dict'), description=dict(type='str'), name=dict(required=True, type='str'), path_rules=dict( type='list', elements='dict', options=dict(paths=dict( required=True, type='list', elements='str'), service=dict(required=True, type='dict')), ), ), ), tests=dict( type='list', elements='dict', options=dict( description=dict(type='str'), host=dict(required=True, type='str'), path=dict(required=True, type='str'), service=dict(required=True, type='dict'), ), ), )) if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] state = module.params['state'] kind = 'compute#urlMap' fetch = fetch_resource(module, self_link(module), kind) changed = False if fetch: if state == 'present': if is_different(module, fetch): update(module, self_link(module), kind) fetch = fetch_resource(module, self_link(module), kind) changed = True else: delete(module, self_link(module), kind) fetch = {} changed = True else: if state == 'present': fetch = create(module, collection(module), kind) changed = True else: fetch = {} fetch.update({'changed': changed}) module.exit_json(**fetch)
def main(): """Main function""" module = GcpModule( argument_spec=dict( state=dict(default='present', choices=['present', 'absent'], type='str'), allowed=dict(type='list', elements='dict', options=dict(ip_protocol=dict(required=True, type='str'), ports=dict(type='list', elements='str'))), denied=dict(type='list', elements='dict', options=dict(ip_protocol=dict(required=True, type='str'), ports=dict(type='list', elements='str'))), description=dict(type='str'), destination_ranges=dict(type='list', elements='str'), direction=dict(type='str'), disabled=dict(type='bool'), log_config=dict(type='dict', options=dict(enable=dict(type='bool'), metadata=dict(type='str'))), name=dict(required=True, type='str'), network=dict(default=dict(selfLink='global/networks/default'), type='dict'), priority=dict(default=1000, type='int'), source_ranges=dict(type='list', elements='str'), source_service_accounts=dict(type='list', elements='str'), source_tags=dict(type='list', elements='str'), target_service_accounts=dict(type='list', elements='str'), target_tags=dict(type='list', elements='str'), ), mutually_exclusive=[ ['destination_ranges', 'source_ranges', 'source_tags'], ['destination_ranges', 'source_ranges'], ['source_service_accounts', 'source_tags', 'target_tags'], [ 'destination_ranges', 'source_service_accounts', 'source_tags', 'target_service_accounts' ], ['source_tags', 'target_service_accounts', 'target_tags'], [ 'source_service_accounts', 'target_service_accounts', 'target_tags' ], ], ) if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] state = module.params['state'] kind = 'compute#firewall' fetch = fetch_resource(module, self_link(module), kind) changed = False if fetch: if state == 'present': if is_different(module, fetch): update(module, self_link(module), kind) fetch = fetch_resource(module, self_link(module), kind) changed = True else: delete(module, self_link(module), kind) fetch = {} changed = True else: if state == 'present': fetch = create(module, collection(module), kind) changed = True else: fetch = {} fetch.update({'changed': changed}) module.exit_json(**fetch)
def main(): """Main function""" module = GcpModule(argument_spec=dict( state=dict( default='present', choices=['present', 'absent'], type='str'), name=dict(type='str'), config=dict( type='dict', options=dict( machine_type=dict(type='str'), disk_size_gb=dict(type='int'), oauth_scopes=dict(type='list', elements='str'), service_account=dict(type='str'), metadata=dict(type='dict'), image_type=dict(type='str'), labels=dict(type='dict'), local_ssd_count=dict(type='int'), tags=dict(type='list', elements='str'), preemptible=dict(type='bool'), accelerators=dict(type='list', elements='dict', options=dict(accelerator_count=dict( type='int'), accelerator_type=dict( type='str'))), disk_type=dict(type='str'), min_cpu_platform=dict(type='str'), taints=dict(type='list', elements='dict', options=dict(key=dict(type='str'), value=dict(type='str'), effect=dict(type='str'))), shielded_instance_config=dict( type='dict', options=dict(enable_secure_boot=dict(type='bool'), enable_integrity_monitoring=dict( type='bool'))), workload_meta_config=dict(type='dict', options=dict(mode=dict(type='str'))), ), ), initial_node_count=dict(required=True, type='int'), version=dict(type='str'), autoscaling=dict(type='dict', options=dict(enabled=dict(type='bool'), min_node_count=dict(type='int'), max_node_count=dict(type='int'))), management=dict(type='dict', options=dict(auto_upgrade=dict(type='bool'), auto_repair=dict(type='bool'), upgrade_options=dict(type='dict', options=dict()))), max_pods_constraint=dict( type='dict', options=dict(max_pods_per_node=dict(type='int'))), conditions=dict( type='list', elements='dict', options=dict(code=dict(type='str'))), cluster=dict(required=True, type='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' ] state = module.params['state'] fetch = fetch_resource(module, self_link(module)) changed = False if fetch: if state == 'present': if is_different(module, fetch): update(module, self_link(module)) fetch = fetch_resource(module, self_link(module)) changed = True else: delete(module, self_link(module)) fetch = {} changed = True else: if state == 'present': fetch = create(module, collection(module)) changed = True else: fetch = {} fetch.update({'changed': changed}) module.exit_json(**fetch)
def main(): """Main function""" module = GcpModule(argument_spec=dict( state=dict( default='present', choices=['present', 'absent'], type='str'), name=dict(required=True, type='str'), description=dict(type='str'), autoscaling_policy=dict( required=True, type='dict', options=dict( min_num_replicas=dict(type='int'), max_num_replicas=dict(required=True, type='int'), cool_down_period_sec=dict(default=60, type='int'), cpu_utilization=dict(type='dict', options=dict(utilization_target=dict( type='str'))), custom_metric_utilizations=dict( type='list', elements='dict', options=dict(metric=dict(required=True, type='str'), utilization_target=dict(type='str'), utilization_target_type=dict(type='str')), ), load_balancing_utilization=dict(type='dict', options=dict( utilization_target=dict( type='str'))), ), ), target=dict(required=True, type='str'), region=dict(required=True, type='str'), )) if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] state = module.params['state'] kind = 'compute#autoscaler' fetch = fetch_resource(module, self_link(module), kind) changed = False if fetch: if state == 'present': if is_different(module, fetch): update(module, self_link(module), kind) fetch = fetch_resource(module, self_link(module), kind) changed = True else: delete(module, self_link(module), kind) fetch = {} changed = True else: if state == 'present': fetch = create(module, collection(module), kind) changed = True else: fetch = {} fetch.update({'changed': changed}) module.exit_json(**fetch)
def main(): """Main function""" module = GcpModule( argument_spec=dict( state=dict(default='present', choices=['present', 'absent'], type='str'), name=dict(required=True, type='str'), description=dict(type='str'), schedule=dict(type='str'), time_zone=dict(default='Etc/UTC', type='str'), retry_config=dict( type='dict', options=dict( retry_count=dict(type='int'), max_retry_duration=dict(type='str'), min_backoff_duration=dict(type='str'), max_backoff_duration=dict(type='str'), max_doublings=dict(type='int'), ), ), pubsub_target=dict(type='dict', options=dict(topic_name=dict(required=True, type='str'), data=dict(type='str'), attributes=dict(type='dict'))), app_engine_http_target=dict( type='dict', options=dict( http_method=dict(type='str'), app_engine_routing=dict(type='dict', options=dict(service=dict(type='str'), version=dict(type='str'), instance=dict(type='str'))), relative_uri=dict(required=True, type='str'), body=dict(type='str'), headers=dict(type='dict'), ), ), http_target=dict( type='dict', options=dict( uri=dict(required=True, type='str'), http_method=dict(type='str'), body=dict(type='str'), headers=dict(type='dict'), oauth_token=dict(type='dict', options=dict(service_account_email=dict(required=True, type='str'), scope=dict(type='str'))), oidc_token=dict(type='dict', options=dict(service_account_email=dict(required=True, type='str'), audience=dict(type='str'))), ), ), region=dict(required=True, type='str'), ) ) if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/cloud-platform'] state = module.params['state'] fetch = fetch_resource(module, self_link(module)) changed = False if fetch: if state == 'present': if is_different(module, fetch): update(module, self_link(module)) fetch = fetch_resource(module, self_link(module)) changed = True else: delete(module, self_link(module)) fetch = {} changed = True else: if state == 'present': fetch = create(module, collection(module)) changed = True else: fetch = {} fetch.update({'changed': changed}) module.exit_json(**fetch)
def main(): """Main function""" module = GcpModule(argument_spec=dict( state=dict( default='present', choices=['present', 'absent'], type='str'), check_interval_sec=dict(default=5, type='int'), description=dict(type='str'), healthy_threshold=dict(default=2, type='int'), name=dict(required=True, type='str'), timeout_sec=dict(default=5, type='int', aliases=['timeout_seconds']), unhealthy_threshold=dict(default=2, type='int'), type=dict(type='str'), http_health_check=dict( type='dict', options=dict( host=dict(type='str'), request_path=dict(default='/', type='str'), response=dict(type='str'), port=dict(type='int'), port_name=dict(type='str'), proxy_header=dict(default='NONE', type='str'), port_specification=dict(type='str'), ), ), https_health_check=dict( type='dict', options=dict( host=dict(type='str'), request_path=dict(default='/', type='str'), response=dict(type='str'), port=dict(type='int'), port_name=dict(type='str'), proxy_header=dict(default='NONE', type='str'), port_specification=dict(type='str'), ), ), tcp_health_check=dict( type='dict', options=dict( request=dict(type='str'), response=dict(type='str'), port=dict(type='int'), port_name=dict(type='str'), proxy_header=dict(default='NONE', type='str'), port_specification=dict(type='str'), ), ), ssl_health_check=dict( type='dict', options=dict( request=dict(type='str'), response=dict(type='str'), port=dict(type='int'), port_name=dict(type='str'), proxy_header=dict(default='NONE', type='str'), port_specification=dict(type='str'), ), ), http2_health_check=dict( type='dict', options=dict( host=dict(type='str'), request_path=dict(default='/', type='str'), response=dict(type='str'), port=dict(type='int'), port_name=dict(type='str'), proxy_header=dict(default='NONE', type='str'), port_specification=dict(type='str'), ), ), )) if not module.params['scopes']: module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] state = module.params['state'] kind = 'compute#healthCheck' fetch = fetch_resource(module, self_link(module), kind) changed = False if fetch: if state == 'present': if is_different(module, fetch): update(module, self_link(module), kind) fetch = fetch_resource(module, self_link(module), kind) changed = True else: delete(module, self_link(module), kind) fetch = {} changed = True else: if state == 'present': fetch = create(module, collection(module), kind) changed = True else: fetch = {} fetch.update({'changed': changed}) module.exit_json(**fetch)
def main(): """Main function""" module = GcpModule(argument_spec=dict( state=dict( default='present', choices=['present', 'absent'], type='str'), backend_type=dict(type='str'), connection_name=dict(type='str'), database_version=dict(type='str'), failover_replica=dict(type='dict', options=dict(name=dict( type='str'))), instance_type=dict(type='str'), ipv6_address=dict(type='str'), master_instance_name=dict(type='str'), max_disk_size=dict(type='int'), name=dict(required=True, type='str'), region=dict(type='str'), replica_configuration=dict( type='dict', options=dict( failover_target=dict(type='bool'), mysql_replica_configuration=dict( type='dict', options=dict( ca_certificate=dict(type='str'), client_certificate=dict(type='str'), client_key=dict(type='str'), connect_retry_interval=dict(type='int'), dump_file_path=dict(type='str'), master_heartbeat_period=dict(type='int'), password=dict(type='str'), ssl_cipher=dict(type='str'), username=dict(type='str'), verify_server_certificate=dict(type='bool'), ), ), replica_names=dict(type='list', elements='str'), service_account_email_address=dict(type='str'), ), ), settings=dict( type='dict', options=dict( database_flags=dict(type='list', elements='dict', options=dict(name=dict(type='str'), value=dict(type='str'))), ip_configuration=dict( type='dict', options=dict( ipv4_enabled=dict(type='bool'), authorized_networks=dict( type='list', elements='dict', options=dict(expiration_time=dict(type='str'), name=dict(type='str'), value=dict(type='str'))), require_ssl=dict(type='bool'), ), ), tier=dict(type='str'), availability_type=dict(type='str'), backup_configuration=dict(type='dict', options=dict(enabled=dict( type='bool'), binary_log_enabled=dict( type='bool'), start_time=dict( type='str'))), user_labels=dict(type='dict'), ), ), disk_encryption_configuration=dict( type='dict', options=dict(kms_key_name=dict(type='str'))), disk_encryption_status=dict( type='dict', options=dict(kms_key_version_name=dict(type='str'))), )) if not module.params['scopes']: module.params['scopes'] = [ 'https://www.googleapis.com/auth/sqlservice.admin' ] state = module.params['state'] kind = 'sql#instance' fetch = fetch_resource(module, self_link(module), kind) changed = False if fetch: if state == 'present': if is_different(module, fetch): update(module, self_link(module), kind, fetch) fetch = fetch_resource(module, self_link(module), kind) changed = True else: delete(module, self_link(module), kind, fetch) fetch = {} changed = True else: if state == 'present': fetch = create(module, collection(module), kind) changed = True else: fetch = {} fetch.update({'changed': changed}) module.exit_json(**fetch)