Ejemplo n.º 1
0
def main():
    """Main function"""

    module = GcpModule(
        argument_spec=dict(
            state=dict(default='present', choices=['present', 'absent'], type='str'),
            name=dict(type='str')
        )
    )

    state = module.params['state']

    fetch = fetch_resource(module, self_link(module))
    changed = False

    if fetch:
        if state == 'present':
            if is_different(module, fetch):
                fetch = update(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)
Ejemplo n.º 2
0
def main():
    """Main function"""

    module = GcpModule(
        argument_spec=dict(
            state=dict(default='present', choices=['present', 'absent'], type='str'),
            dest_range=dict(type='str'),
            name=dict(type='str'),
            network=dict(type='dict'),
            priority=dict(type='int'),
            tags=dict(type='list', elements='str'),
            next_hop_gateway=dict(type='str'),
            next_hop_instance=dict(type='str'),
            next_hop_ip=dict(type='str'),
            next_hop_vpn_tunnel=dict(type='str')
        )
    )

    state = module.params['state']
    kind = 'compute#route'

    fetch = fetch_resource(module, self_link(module), kind)
    changed = False

    if fetch:
        if state == 'present':
            if is_different(module, fetch):
                fetch = update(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'),
            check_interval_sec=dict(type='int'),
            description=dict(type='str'),
            healthy_threshold=dict(type='int'),
            host=dict(type='str'),
            name=dict(required=True, type='str'),
            port=dict(type='int'),
            request_path=dict(type='str'),
            timeout_sec=dict(type='int', aliases=['timeout_seconds']),
            unhealthy_threshold=dict(type='int')
        )
    )

    state = module.params['state']
    kind = 'compute#httpsHealthCheck'

    fetch = fetch_resource(module, self_link(module), kind)
    changed = False

    if fetch:
        if state == 'present':
            if is_different(module, fetch):
                fetch = update(module, self_link(module), kind, fetch)
                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)
Ejemplo n.º 4
0
def main():
    """Main function"""

    module = GcpModule(
        argument_spec=dict(
            state=dict(default='present', choices=['present', 'absent'], type='str'),
            description=dict(type='str'),
            gateway_address=dict(type='str'),
            ip_cidr_range=dict(type='str'),
            name=dict(type='str'),
            network=dict(type='dict'),
            private_ip_google_access=dict(type='bool'),
            region=dict(required=True, type='str')
        )
    )

    state = module.params['state']
    kind = 'compute#subnetwork'

    fetch = fetch_resource(module, self_link(module), kind)
    changed = False

    if fetch:
        if state == 'present':
            if is_different(module, fetch):
                fetch = update(module, self_link(module), kind, fetch)
                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)
def main():
    """Main function"""

    module = GcpModule(
        argument_spec=dict(
            state=dict(default='present', choices=['present', 'absent'], type='str'),
            name=dict(required=True, type='str'),
            type=dict(required=True, type='str', choices=['A', 'AAAA', 'CAA', 'CNAME', 'MX', 'NAPTR', 'NS', 'PTR', 'SOA', 'SPF', 'SRV', 'TXT']),
            ttl=dict(type='int'),
            target=dict(type='list', elements='str'),
            managed_zone=dict(required=True, type='dict')
        )
    )

    state = module.params['state']
    kind = 'dns#resourceRecordSet'

    fetch = fetch_wrapped_resource(module, 'dns#resourceRecordSet',
                                   'dns#resourceRecordSetsListResponse',
                                   'rrsets')
    changed = False

    if fetch:
        if state == 'present':
            if is_different(module, fetch):
                fetch = update(module, self_link(module), kind, fetch)
                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)
Ejemplo n.º 6
0
def main():
    module = GcpModule(
        argument_spec=dict(filters=dict(type='list', elements='str'),
                           region=dict(required=True, type='str')))

    if module._name == 'gcp_compute_region_disk_facts':
        module.deprecate(
            "The 'gcp_compute_region_disk_facts' module has been renamed to 'gcp_compute_region_disk_info'",
            version='2.13')

    if not module.params['scopes']:
        module.params['scopes'] = ['https://www.googleapis.com/auth/compute']

    items = fetch_list(module, collection(module),
                       query_options(module.params['filters']))
    if items.get('items'):
        items = items.get('items')
    else:
        items = []
    return_value = {'resources': items}
    module.exit_json(**return_value)
Ejemplo n.º 7
0
def main():
    module = GcpModule(argument_spec=dict(
        instance=dict(required=True, type='str')))

    if module._name == 'gcp_sql_database_facts':
        module.deprecate(
            "The 'gcp_sql_database_facts' module has been renamed to 'gcp_sql_database_info'",
            version='2.13')

    if not module.params['scopes']:
        module.params['scopes'] = [
            'https://www.googleapis.com/auth/sqlservice.admin'
        ]

    items = fetch_list(module, collection(module))
    if items.get('items'):
        items = items.get('items')
    else:
        items = []
    return_value = {'resources': items}
    module.exit_json(**return_value)
Ejemplo n.º 8
0
def main():
    """Main function"""

    module = GcpModule(
        argument_spec=dict(state=dict(
            default='present', choices=['present', 'absent'], type='str'),
                           certificate=dict(required=True, type='str'),
                           description=dict(type='str'),
                           name=dict(type='str'),
                           private_key=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#sslCertificate'

    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)
Ejemplo n.º 9
0
def main():
    """Main function"""

    module = GcpModule(argument_spec=dict(state=dict(
        default='present', choices=['present', 'absent'], type='str'),
                                          description=dict(type='str'),
                                          gateway_ipv4=dict(type='str'),
                                          ipv4_range=dict(type='str'),
                                          name=dict(type='str'),
                                          auto_create_subnetworks=dict(
                                              type='bool')))

    if not module.params['scopes']:
        module.params['scopes'] = ['https://www.googleapis.com/auth/compute']

    state = module.params['state']
    kind = 'compute#network'

    fetch = fetch_resource(module, self_link(module), kind)
    changed = False

    if fetch:
        if state == 'present':
            if is_different(module, fetch):
                fetch = update(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)
Ejemplo n.º 10
0
def main():
    """Main function"""

    module = GcpModule(
        argument_spec=dict(state=dict(
            default='present', choices=['present', 'absent'], type='str'),
                           name=dict(type='str'),
                           extra_statements=dict(type='list', elements='str'),
                           instance=dict(required=True, type='dict')))

    if not module.params['scopes']:
        module.params['scopes'] = [
            'https://www.googleapis.com/auth/spanner.admin'
        ]

    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)
Ejemplo n.º 11
0
def main():
    module = GcpModule(argument_spec=dict(
        location=dict(required=True, type='str', aliases=['region', 'zone']),
        cluster=dict(required=True, type='dict')))

    if module._name == 'gcp_container_node_pool_facts':
        module.deprecate(
            "The 'gcp_container_node_pool_facts' module has been renamed to 'gcp_container_node_pool_info'",
            version='2.13')

    if not module.params['scopes']:
        module.params['scopes'] = [
            'https://www.googleapis.com/auth/cloud-platform'
        ]

    items = fetch_list(module, collection(module))
    if items.get('nodePools'):
        items = items.get('nodePools')
    else:
        items = []
    return_value = {'resources': items}
    module.exit_json(**return_value)
Ejemplo n.º 12
0
def main():
    """Main function"""

    module = GcpModule(
        argument_spec=dict(
            state=dict(default='present', choices=['present', 'absent'], type='str'),
            name=dict(type='str'),
            topic=dict(type='dict'),
            push_config=dict(type='dict', options=dict(
                push_endpoint=dict(type='str')
            )),
            ack_deadline_seconds=dict(type='int')
        )
    )

    state = module.params['state']

    fetch = fetch_resource(module, self_link(module))
    changed = False

    if fetch:
        if state == 'present':
            if is_different(module, fetch):
                fetch = update(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)
Ejemplo n.º 13
0
def main():
    """Main function"""

    module = GcpModule(
        argument_spec=dict(state=dict(
            default='present', choices=['present', 'absent'], type='str'),
                           description=dict(type='str'),
                           gateway_address=dict(type='str'),
                           ip_cidr_range=dict(type='str'),
                           name=dict(type='str'),
                           network=dict(type='dict'),
                           private_ip_google_access=dict(type='bool'),
                           region=dict(required=True, type='str')))

    state = module.params['state']
    kind = 'compute#subnetwork'

    fetch = fetch_resource(module, self_link(module), kind)
    changed = False

    if fetch:
        if state == 'present':
            if is_different(module, fetch):
                fetch = update(module, self_link(module), kind, fetch)
                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)
Ejemplo n.º 14
0
def main():
    """Main function"""

    module = GcpModule(argument_spec=dict(
        state=dict(
            default='present', choices=['present', 'absent'], type='str'),
        action=dict(type='str'),
        overwrite=dict(type='bool'),
        src=dict(type='path'),
        dest=dict(type='path'),
        bucket=dict(type='str'),
    ))

    if not module.params['scopes']:
        module.params['scopes'] = [
            'https://www.googleapis.com/auth/devstorage.full_control'
        ]

    remote_object = fetch_resource(module, self_link(module))
    local_file_exists = os.path.isfile(local_file_path(module))

    # Check if files exist.
    if module.params['action'] == 'download' and not remote_object:
        module.fail_json(msg="File does not exist in bucket")

    if module.params['action'] == 'upload' and not local_file_exists:
        module.fail_json(msg="File does not exist on disk")

    # Check if we'll be overwriting files.
    if not module.params['overwrite']:
        remote_object['changed'] = False
        if module.params['action'] == 'download' and local_file_exists:
            # If files differ, throw an error
            if get_md5_local(
                    local_file_path(module)) != remote_object['md5Hash']:
                module.fail_json(
                    msg="Local file is different than remote file")
            # If files are the same, module is done running.
            else:
                module.exit_json(**remote_object)

        elif module.params['action'] == 'upload' and remote_object:
            # If files differ, throw an error
            if get_md5_local(
                    local_file_path(module)) != remote_object['md5Hash']:
                module.fail_json(
                    msg="Local file is different than remote file")
            # If files are the same, module is done running.
            else:
                module.exit_json(**remote_object)

    # Upload/download the files
    auth = GcpSession(module, 'storage')
    if module.params['action'] == 'download':
        results = download_file(module)
    else:
        results = upload_file(module)

    module.exit_json(**results)
Ejemplo n.º 15
0
def main():
    """Main function"""

    module = GcpModule(
        argument_spec=dict(
            state=dict(default='present', choices=['present', 'absent'], type='str'),
            description=dict(type='str'),
            name=dict(type='str'),
            proxy_header=dict(type='str', choices=['NONE', 'PROXY_V1']),
            service=dict(type='dict')
        )
    )

    state = module.params['state']
    kind = 'compute#targetTcpProxy'

    fetch = fetch_resource(module, self_link(module), kind)
    changed = False

    if fetch:
        if state == 'present':
            if is_different(module, fetch):
                fetch = update(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)
Ejemplo n.º 16
0
def main():
    """Main function"""

    module = GcpModule(
        argument_spec=dict(
            state=dict(default='present', choices=['present', 'absent'], type='str'),
            bucket_name=dict(required=True, type='str'),
            description=dict(type='str'),
            enable_cdn=dict(type='bool'),
            name=dict(required=True, type='str')
        )
    )

    state = module.params['state']
    kind = 'compute#backendBucket'

    fetch = fetch_resource(module, self_link(module), kind)
    changed = False

    if fetch:
        if state == 'present':
            if is_different(module, fetch):
                fetch = update(module, self_link(module), kind, fetch)
                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)
def main():
    """Main function"""

    module = GcpModule(
        argument_spec=dict(
            state=dict(default='present', choices=['present', 'absent'], type='str'),
            bucket_name=dict(required=True, type='str'),
            description=dict(type='str'),
            enable_cdn=dict(type='bool'),
            name=dict(required=True, type='str')
        )
    )

    state = module.params['state']
    kind = 'compute#backendBucket'

    fetch = fetch_resource(module, self_link(module), kind)
    changed = False

    if fetch:
        if state == 'present':
            if is_different(module, fetch):
                fetch = update(module, self_link(module), kind, fetch)
                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)
Ejemplo n.º 18
0
def main():
    """Main function"""

    module = GcpModule(
        argument_spec=dict(
            state=dict(default='present', choices=['present', 'absent'], type='str'),
            description=dict(type='str'),
            dns_name=dict(type='str'),
            name=dict(required=True, type='str'),
            name_server_set=dict(type='list'),
        )
    )

    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):
                fetch = update(module, self_link(module), kind)
        else:
            delete(module, self_link(module), kind)
            fetch = {}
            changed = True
    else:
        if state == 'present':
            fetch = create(module, collection(module), kind)
            changed = True

    if fetch:
        fetch.update({'changed': changed})
    else:
        fetch = {'changed': changed}

    module.exit_json(**fetch)
Ejemplo n.º 19
0
def main():
    """Main function"""

    module = GcpModule(
        argument_spec=dict(
            state=dict(default='present', choices=['present', 'absent'], type='str'),
            description=dict(type='str'),
            dns_name=dict(type='str'),
            name=dict(required=True, type='str'),
            name_server_set=dict(type='list', elements='str')
        )
    )

    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):
                fetch = update(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)
Ejemplo n.º 20
0
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']
    })
Ejemplo n.º 21
0
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'),
        ssl_certificates=dict(required=True, type='list', elements='dict'),
        url_map=dict(required=True, type='dict')))

    state = module.params['state']
    kind = 'compute#targetHttpsProxy'

    fetch = fetch_resource(module, self_link(module), kind)
    changed = False

    if fetch:
        if state == 'present':
            if is_different(module, fetch):
                fetch = update(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)
Ejemplo n.º 22
0
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'))),
        initial_node_count=dict(required=True, type='int'),
        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(
                                             auto_upgrade_start_time=dict(
                                                 type='str'),
                                             description=dict(type='str'))))),
        cluster=dict(required=True, type='dict'),
        zone=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):
                fetch = update(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(type='int'),
            name=dict(type='str'),
            timeout_sec=dict(default=5, type='int', aliases=['timeout_seconds']),
            unhealthy_threshold=dict(default=2, type='int'),
            type=dict(type='str', choices=['TCP', 'SSL', 'HTTP']),
            http_health_check=dict(type='dict', options=dict(
                host=dict(type='str'),
                request_path=dict(type='str'),
                port=dict(type='int'),
                port_name=dict(type='str'),
                proxy_header=dict(type='str', choices=['NONE', 'PROXY_V1'])
            )),
            https_health_check=dict(type='dict', options=dict(
                host=dict(type='str'),
                request_path=dict(type='str'),
                port=dict(type='int'),
                port_name=dict(type='str'),
                proxy_header=dict(type='str', choices=['NONE', 'PROXY_V1'])
            )),
            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(type='str', choices=['NONE', 'PROXY_V1'])
            )),
            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(type='str', choices=['NONE', 'PROXY_V1'])
            ))
        )
    )

    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):
                fetch = update(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)
Ejemplo n.º 24
0
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(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'),
            description=dict(type='str'),
            friendly_name=dict(type='str'),
            labels=dict(type='dict'),
            location=dict(default='US', 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'),
            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'),
            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=[
            ['allowed', 'denied'],
            ['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)
Ejemplo n.º 26
0
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)
Ejemplo n.º 27
0
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'),
                domain=dict(type='str'),
                email=dict(type='str'),
                entity=dict(required=True, type='str'),
                entity_id=dict(type='str'),
                id=dict(type='str'),
                project_team=dict(type='dict', options=dict(
                    project_number=dict(type='str'),
                    team=dict(type='str', choices=['editors', 'owners', 'viewers'])
                )),
                role=dict(type='str', choices=['OWNER', 'READER', 'WRITER'])
            )),
            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')
            )),
            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', choices=['Delete', 'SetStorageClass'])
                    )),
                    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'),
                entity_id=dict(type='str')
            )),
            storage_class=dict(type='str', choices=['MULTI_REGIONAL', 'REGIONAL', 'STANDARD', 'NEARLINE', 'COLDLINE', 'DURABLE_REDUCED_AVAILABILITY']),
            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')
            )),
            project=dict(type='str'),
            predefined_default_object_acl=dict(type='str', choices=['authenticatedRead',
                                                                    'bucketOwnerFullControl',
                                                                    'bucketOwnerRead',
                                                                    'private',
                                                                    'projectPrivate',
                                                                    'publicRead'])
        )
    )

    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):
                fetch = update(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)
Ejemplo n.º 28
0
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'),
                ),
            ),
        ),
        mutually_exclusive=[[
            'http2_health_check', 'http_health_check', 'https_health_check',
            'ssl_health_check', 'tcp_health_check'
        ]],
    )

    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'),
        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)
Ejemplo n.º 30
0
def main():
    """Main function"""

    module = GcpModule(
        argument_spec=dict(
            state=dict(default='present', choices=['present', 'absent'], type='str'),
            name=dict(type='str'),
            description=dict(type='str'),
            initial_node_count=dict(required=True, type='int'),
            node_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')
            )),
            master_auth=dict(type='dict', options=dict(
                username=dict(type='str'),
                password=dict(type='str'),
                cluster_ca_certificate=dict(type='str'),
                client_certificate=dict(type='str'),
                client_key=dict(type='str')
            )),
            logging_service=dict(type='str', choices=['logging.googleapis.com', 'none']),
            monitoring_service=dict(type='str', choices=['monitoring.googleapis.com', 'none']),
            network=dict(type='str'),
            cluster_ipv4_cidr=dict(type='str'),
            addons_config=dict(type='dict', options=dict(
                http_load_balancing=dict(type='dict', options=dict(
                    disabled=dict(type='bool')
                )),
                horizontal_pod_autoscaling=dict(type='dict', options=dict(
                    disabled=dict(type='bool')
                ))
            )),
            subnetwork=dict(type='str'),
            location=dict(type='list', elements='str'),
            zone=dict(required=True, type='str')
        )
    )

    state = module.params['state']

    fetch = fetch_resource(module, self_link(module))
    changed = False

    if fetch:
        if state == 'present':
            if is_different(module, fetch):
                fetch = update(module, self_link(module), fetch)
                changed = True
        else:
            delete(module, self_link(module), fetch)
            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'),
        schedule=dict(type='str'),
        time_zone=dict(default='Etc/UTC', type='str'),
        attempt_deadline=dict(default='180s', 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)
Ejemplo n.º 32
0
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'),
                    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'),
                    steps=dict(
                        type='list',
                        elements='dict',
                        options=dict(
                            name=dict(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(type='str'),
                                                      path=dict(type='str'))),
                            wait_for=dict(type='list', elements='str'),
                        ),
                    ),
                ),
            ),
        ),
        mutually_exclusive=[['build', 'filename']],
    )

    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'),
            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)
Ejemplo n.º 34
0
def main():
    """Main function"""

    module = GcpModule(argument_spec=dict(
        state=dict(
            default='present', choices=['present', 'absent'], type='str'),
        description=dict(type='str'),
        disk_size_gb=dict(type='int'),
        family=dict(type='str'),
        guest_os_features=dict(
            type='list',
            elements='dict',
            options=dict(
                type=dict(type='str', choices=['VIRTIO_SCSI_MULTIQUEUE']))),
        image_encryption_key=dict(type='dict',
                                  options=dict(raw_key=dict(type='str'),
                                               sha256=dict(type='str'))),
        labels=dict(type='dict'),
        licenses=dict(type='list', elements='str'),
        name=dict(required=True, type='str'),
        raw_disk=dict(
            type='dict',
            options=dict(container_type=dict(type='str', choices=['TAR']),
                         sha1_checksum=dict(type='str'),
                         source=dict(required=True, type='str')),
        ),
        source_disk=dict(),
        source_disk_encryption_key=dict(type='dict',
                                        options=dict(raw_key=dict(type='str'),
                                                     sha256=dict(type='str'))),
        source_disk_id=dict(type='str'),
        source_type=dict(type='str', choices=['RAW']),
    ))

    if not module.params['scopes']:
        module.params['scopes'] = ['https://www.googleapis.com/auth/compute']

    state = module.params['state']
    kind = 'compute#image'

    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)
Ejemplo n.º 35
0
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'),
        type=dict(type='str'),
        source_image=dict(type='str'),
        zone=dict(required=True, type='str'),
        source_image_encryption_key=dict(type='dict',
                                         options=dict(raw_key=dict(type='str'),
                                                      sha256=dict(type='str'),
                                                      kms_key_name=dict(
                                                          type='str'))),
        disk_encryption_key=dict(type='dict',
                                 options=dict(raw_key=dict(type='str'),
                                              sha256=dict(type='str'),
                                              kms_key_name=dict(type='str'))),
        source_snapshot=dict(),
        source_snapshot_encryption_key=dict(type='dict',
                                            options=dict(raw_key=dict(
                                                type='str'),
                                                         kms_key_name=dict(
                                                             type='str'),
                                                         sha256=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)
Ejemplo n.º 36
0
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),
                domain=dict(type='str'),
                email=dict(type='str'),
                entity=dict(required=True, type='str'),
                entity_id=dict(type='str'),
                id=dict(type='str'),
                project_team=dict(
                    type='dict',
                    options=dict(
                        project_number=dict(type='str'),
                        team=dict(type='str',
                                  choices=['editors', 'owners', 'viewers']))),
                role=dict(type='str', choices=['OWNER', 'READER', 'WRITER']),
            ),
        ),
        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_object_acl=dict(
            type='list',
            elements='dict',
            options=dict(
                bucket=dict(required=True),
                domain=dict(type='str'),
                email=dict(type='str'),
                entity=dict(required=True, type='str'),
                entity_id=dict(type='str'),
                generation=dict(type='int'),
                id=dict(type='str'),
                object=dict(type='str'),
                project_team=dict(
                    type='dict',
                    options=dict(
                        project_number=dict(type='str'),
                        team=dict(type='str',
                                  choices=['editors', 'owners', 'viewers']))),
                role=dict(
                    required=True, type='str', choices=['OWNER', 'READER']),
            ),
        ),
        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',
                                      choices=['Delete', 'SetStorageClass']))),
                    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'),
                                entity_id=dict(type='str'))),
        storage_class=dict(
            type='str',
            choices=[
                'MULTI_REGIONAL', 'REGIONAL', 'STANDARD', 'NEARLINE',
                'COLDLINE', 'DURABLE_REDUCED_AVAILABILITY'
            ]),
        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'))),
        project=dict(type='str'),
        predefined_default_object_acl=dict(
            type='str',
            choices=[
                'authenticatedRead', 'bucketOwnerFullControl',
                'bucketOwnerRead', 'private', 'projectPrivate', 'publicRead'
            ]),
    ))

    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)
Ejemplo n.º 37
0
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_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'))),
        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)
Ejemplo n.º 38
0
def main():
    """Main function"""

    module = GcpModule(
        argument_spec=dict(
            state=dict(default='present', choices=['present', 'absent'], type='str'),
            default_service=dict(required=True),
            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),
                    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))
                    ),
                ),
            ),
            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)
                ),
            ),
        )
    )

    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)
Ejemplo n.º 39
0
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')),
                    ),
                    display_name=dict(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)
Ejemplo n.º 40
0
def main():
    """Main function"""

    module = GcpModule(argument_spec=dict(
        state=dict(
            default='present', choices=['present', 'absent'], type='str'),
        backend_type=dict(type='str',
                          choices=['FIRST_GEN', 'SECOND_GEN', 'EXTERNAL']),
        connection_name=dict(type='str'),
        database_version=dict(
            type='str',
            choices=['MYSQL_5_5', 'MYSQL_5_6', 'MYSQL_5_7', 'POSTGRES_9_6']),
        failover_replica=dict(type='dict',
                              options=dict(available=dict(type='bool'),
                                           name=dict(type='str'))),
        instance_type=dict(type='str',
                           choices=[
                               'CLOUD_SQL_INSTANCE', 'ON_PREMISES_INSTANCE',
                               'READ_REPLICA_INSTANCE'
                           ]),
        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(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'),
                                   settings_version=dict(type='int')))))

    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)
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(type='str', choices=['UTILIZATION', 'RATE', 'CONNECTION']),
                capacity_scaler=dict(type='str'),
                description=dict(type='str'),
                group=dict(type='dict'),
                max_connections=dict(type='int'),
                max_connections_per_instance=dict(type='int'),
                max_rate=dict(type='int'),
                max_rate_per_instance=dict(type='str'),
                max_utilization=dict(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')
                ))
            )),
            connection_draining=dict(type='dict', options=dict(
                draining_timeout_sec=dict(type='int')
            )),
            description=dict(type='str'),
            enable_cdn=dict(type='bool'),
            health_checks=dict(type='list', elements='str'),
            name=dict(type='str'),
            port_name=dict(type='str'),
            protocol=dict(type='str', choices=['HTTP', 'HTTPS', 'TCP', 'SSL']),
            region=dict(type='str'),
            session_affinity=dict(type='str', choices=['NONE', 'CLIENT_IP', 'GENERATED_COOKIE', 'CLIENT_IP_PROTO', 'CLIENT_IP_PORT_PROTO']),
            timeout_sec=dict(type='int', aliases=['timeout_seconds'])
        )
    )

    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):
                fetch = update(module, self_link(module), kind, fetch)
                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)