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'),
            deployment_uri=dict(required=True, type='str'),
            runtime_version=dict(type='str'),
            machine_type=dict(type='str'),
            labels=dict(type='dict'),
            framework=dict(type='str'),
            python_version=dict(type='str'),
            service_account=dict(type='str'),
            auto_scaling=dict(type='dict',
                              options=dict(min_nodes=dict(type='int'))),
            manual_scaling=dict(type='dict',
                                options=dict(nodes=dict(type='int'))),
            prediction_class=dict(type='str'),
            model=dict(required=True, type='dict'),
            is_default=dict(type='bool', aliases=['default']),
        ),
        mutually_exclusive=[['auto_scaling', 'manual_scaling']],
    )

    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))
            if module.params.get('is_default') is True:
                set_default(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'),
        ip_address=dict(type='str'),
        ip_protocol=dict(type='str'),
        ip_version=dict(type='str'),
        load_balancing_scheme=dict(default='EXTERNAL', type='str'),
        metadata_filters=dict(
            type='list',
            elements='dict',
            options=dict(
                filter_match_criteria=dict(required=True, type='str'),
                filter_labels=dict(required=True,
                                   type='list',
                                   elements='dict',
                                   options=dict(
                                       name=dict(required=True, type='str'),
                                       value=dict(required=True, type='str'))),
            ),
        ),
        name=dict(required=True, type='str'),
        network=dict(type='dict'),
        port_range=dict(type='str'),
        target=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#forwardingRule'

    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)
Example #3
0
def main():
    module = GcpModule(argument_spec=dict(dataset=dict(type='str')))

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

    return_value = {'resources': fetch_list(module, collection(module))}
    module.exit_json(**return_value)
def main():
    module = GcpModule(argument_spec=dict(instance=dict(required=True, type='str')))

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

    return_value = {'resources': fetch_list(module, collection(module))}
    module.exit_json(**return_value)
def main():
    module = GcpModule(argument_spec=dict(filters=dict(type='list', elements='str'), region=dict(required=True, type='str')))

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

    return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))}
    module.exit_json(**return_value)
Example #6
0
def main():
    module = GcpModule(argument_spec=dict())

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

    return_value = {'resources': fetch_list(module, collection(module))}
    module.exit_json(**return_value)
Example #7
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'),
        tier=dict(required=True, type='str'),
        labels=dict(type='dict'),
        file_shares=dict(required=True,
                         type='list',
                         elements='dict',
                         options=dict(name=dict(required=True, type='str'),
                                      capacity_gb=dict(required=True,
                                                       type='int'))),
        networks=dict(
            required=True,
            type='list',
            elements='dict',
            options=dict(network=dict(required=True, type='str'),
                         modes=dict(required=True, type='list',
                                    elements='str'),
                         reserved_ip_range=dict(type='str')),
        ),
        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):
                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, 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'),
        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'))),
    ))

    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():
    module = GcpModule(argument_spec=dict(
        location=dict(required=True, type='str', aliases=['region', 'zone'])))

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

    return_value = {'resources': fetch_list(module, collection(module))}
    module.exit_json(**return_value)
Example #10
0
def main():
    module = GcpModule(argument_spec=dict(
        config=dict(required=True, type='str')))

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

    return_value = {'resources': fetch_list(module, collection(module))}
    module.exit_json(**return_value)
Example #11
0
def main():
    module = GcpModule(argument_spec=dict(
        managed_zone=dict(required=True, type='dict')))

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

    return_value = {'resources': fetch_list(module, collection(module))}
    module.exit_json(**return_value)
Example #12
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'),
        network=dict(required=True, type='dict'),
        bgp=dict(
            type='dict',
            options=dict(
                asn=dict(required=True, type='int'),
                advertise_mode=dict(default='DEFAULT', type='str'),
                advertised_groups=dict(type='list', elements='str'),
                advertised_ip_ranges=dict(
                    type='list',
                    elements='dict',
                    options=dict(range=dict(required=True, type='str'),
                                 description=dict(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#router'

    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(type='str'),
        named_ports=dict(type='list',
                         elements='dict',
                         options=dict(name=dict(type='str'),
                                      port=dict(type='int'))),
        network=dict(type='dict'),
        region=dict(type='str'),
        subnetwork=dict(type='dict'),
        zone=dict(required=True, type='str'),
        instances=dict(type='list', elements='dict'),
    ))

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

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

    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 = {}

    if fetch:
        instance = InstanceLogic(module)
        instance.run()
        fetch.update({'instances': instance.list_instances()})
    fetch.update({'changed': changed})

    module.exit_json(**fetch)
Example #14
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(required=True, type='str'))),
            image_encryption_key=dict(type='dict', options=dict(raw_key=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'), sha1_checksum=dict(type='str'), source=dict(required=True, type='str'))),
            source_disk=dict(type='dict'),
            source_disk_encryption_key=dict(type='dict', options=dict(raw_key=dict(type='str'))),
            source_disk_id=dict(type='str'),
            source_type=dict(type='str'),
        )
    )

    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)
Example #15
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'),
            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', options=dict(raw_key=dict(type='str'), kms_key_name=dict(type='str'))),
            disk_encryption_key=dict(type='dict', options=dict(raw_key=dict(type='str'), kms_key_name=dict(type='str'))),
            source_snapshot=dict(type='dict'),
            source_snapshot_encryption_key=dict(type='dict', options=dict(raw_key=dict(type='str'), kms_key_name=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)
Example #16
0
def main():
    """Main function"""

    module = GcpModule(argument_spec=dict(
        state=dict(
            default='present', choices=['present', 'absent'], type='str'),
        alternative_location_id=dict(type='str'),
        authorized_network=dict(type='str'),
        display_name=dict(type='str'),
        labels=dict(type='dict'),
        redis_configs=dict(type='dict'),
        location_id=dict(type='str'),
        name=dict(required=True, type='str'),
        memory_size_gb=dict(required=True, type='int'),
        redis_version=dict(type='str'),
        reserved_ip_range=dict(type='str'),
        tier=dict(default='BASIC', 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 = 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():
    module = GcpModule(argument_spec=dict(
        dns_name=dict(type='list', elements='str')))

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

    return_value = {
        'resources':
        fetch_list(module, collection(module), module.params['dns_name'])
    }
    module.exit_json(**return_value)
Example #18
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'),
        accelerator_type=dict(required=True, type='str'),
        tensorflow_version=dict(required=True, type='str'),
        network=dict(type='str'),
        cidr_block=dict(required=True, type='str'),
        scheduling_config=dict(type='dict',
                               options=dict(preemptible=dict(required=True,
                                                             type='bool'))),
        labels=dict(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):
                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, create_link(module))
            changed = True
        else:
            fetch = {}

    fetch.update({'changed': changed})

    module.exit_json(**fetch)
Example #19
0
def main():
    """Main function"""

    module = GcpModule(argument_spec=dict(
        state=dict(
            default='present', choices=['present', 'absent'], type='str'),
        description=dict(type='str'),
        ip_cidr_range=dict(required=True, type='str'),
        name=dict(required=True, type='str'),
        network=dict(required=True, type='dict'),
        secondary_ip_ranges=dict(
            type='list',
            elements='dict',
            options=dict(range_name=dict(required=True, type='str'),
                         ip_cidr_range=dict(required=True, type='str'))),
        private_ip_google_access=dict(type='bool'),
        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#subnetwork'

    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)
Example #20
0
def main():
    """Main function"""

    module = GcpModule(argument_spec=dict(
        state=dict(
            default='present', choices=['present', 'absent'], type='str'),
        admin_enabled=dict(type='bool'),
        interconnect=dict(type='str'),
        description=dict(type='str'),
        bandwidth=dict(type='str'),
        edge_availability_domain=dict(type='str'),
        type=dict(type='str'),
        router=dict(required=True, type='dict'),
        name=dict(required=True, type='str'),
        candidate_subnets=dict(type='list', elements='str'),
        vlan_tag8021q=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#interconnectAttachment'

    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'),
        dest_range=dict(required=True, type='str'),
        description=dict(type='str'),
        name=dict(required=True, type='str'),
        network=dict(required=True, type='dict'),
        priority=dict(type='int'),
        tags=dict(type='list', elements='str'),
        next_hop_gateway=dict(type='str'),
        next_hop_instance=dict(type='dict'),
        next_hop_ip=dict(type='str'),
        next_hop_vpn_tunnel=dict(type='dict'),
        next_hop_ilb=dict(type='dict'),
    ))

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

    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):
                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'),
        target_vpn_gateway=dict(type='dict'),
        router=dict(type='dict'),
        peer_ip=dict(type='str'),
        shared_secret=dict(required=True, type='str'),
        ike_version=dict(default=2, type='int'),
        local_traffic_selector=dict(type='list', elements='str'),
        remote_traffic_selector=dict(type='list', elements='str'),
        region=dict(required=True, type='str'),
    ))

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

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

    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'),
        default_version=dict(
            type='dict', options=dict(name=dict(required=True, type='str'))),
        regions=dict(type='list', elements='str'),
        online_prediction_logging=dict(type='bool'),
        online_prediction_console_logging=dict(type='bool'),
        labels=dict(type='dict'),
    ))

    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'),
            address=dict(type='str'),
            address_type=dict(default='EXTERNAL', type='str'),
            description=dict(type='str'),
            name=dict(required=True, type='str'),
            purpose=dict(type='str'),
            network_tier=dict(type='str'),
            subnetwork=dict(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#address'

    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'),
        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'),
    ))

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

    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):
                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'),
        backup_pool=dict(type='dict'),
        description=dict(type='str'),
        failover_ratio=dict(type='str'),
        health_check=dict(type='dict'),
        instances=dict(type='list', elements='dict'),
        name=dict(required=True, type='str'),
        session_affinity=dict(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#targetPool'

    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)
Example #27
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'),
            node_affinity_labels=dict(type='dict'),
            node_type=dict(type='str'),
            node_type_flexibility=dict(type='dict', options=dict(cpus=dict(type='str'), memory=dict(type='str'))),
            region=dict(required=True, type='str'),
        ),
        mutually_exclusive=[['node_type', 'node_type_flexibility']],
    )

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

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

    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)
Example #28
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'),
        labels=dict(type='dict'),
        purpose=dict(default='ENCRYPT_DECRYPT', type='str'),
        rotation_period=dict(type='str'),
        version_template=dict(type='dict',
                              options=dict(algorithm=dict(required=True,
                                                          type='str'),
                                           protection_level=dict(type='str'))),
        key_ring=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 = 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'),
            description=dict(type='str'),
            name=dict(required=True, type='str'),
            proxy_header=dict(type='str'),
            service=dict(required=True, type='dict'),
            ssl_certificates=dict(required=True, type='list', elements='dict'),
            ssl_policy=dict(type='dict'),
        )
    )

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

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

    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)
Example #30
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'),
        cdn_policy=dict(type='dict',
                        options=dict(signed_url_cache_max_age_sec=dict(
                            default=3600, type='int'))),
        description=dict(type='str'),
        enable_cdn=dict(type='bool'),
        name=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#backendBucket'

    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)