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)
Example #2
0
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():
    """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)
def main():
    module = GcpModule(argument_spec=dict())

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

    return_value = {'resources': fetch_list(module, collection(module))}
    module.exit_json(**return_value)
def 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 #6
0
def main():
    module = GcpModule(argument_spec=dict(filters=dict(type='list', elements='str')))

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

    return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))}
    module.exit_json(**return_value)
Example #7
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 #8
0
def main():
    module = GcpModule(argument_spec=dict(
        key_ring=dict(required=True, type='str')))

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

    return_value = {'resources': fetch_list(module, collection(module))}
    module.exit_json(**return_value)
Example #9
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'),
        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():
    """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)
Example #11
0
def main():
    module = GcpModule(argument_spec=dict(
        instance=dict(required=True, type='dict')))

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

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

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

    return_value = {'resources': fetch_list(module, collection(module))}
    module.exit_json(**return_value)
def 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)
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'),
        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 #15
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)
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'),
        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'),
        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'),
            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)
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)
Example #22
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'),
        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)
Example #23
0
def main():
    """Main function"""

    module = GcpModule(argument_spec=dict(
        state=dict(
            default='present', choices=['present', 'absent'], type='str'),
        address=dict(type='str'),
        description=dict(type='str'),
        name=dict(required=True, type='str'),
        ip_version=dict(type='str'),
        prefix_length=dict(type='int'),
        address_type=dict(default='EXTERNAL', type='str'),
        purpose=dict(type='str'),
        network=dict(type='dict'),
    ))

    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'),
        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 #25
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 #26
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'),
            quic_override=dict(type='str'),
            ssl_certificates=dict(required=True, type='list', elements='dict'),
            ssl_policy=dict(type='dict'),
            url_map=dict(required=True, type='dict'),
        )
    )

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

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

    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 #27
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_endpoint_type=dict(default='GCE_VM_IP_PORT', type='str'),
        network=dict(required=True, type='dict'),
        subnetwork=dict(type='dict'),
        default_port=dict(type='int'),
        zone=dict(required=True, type='str'),
    ))

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

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

    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'),
        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)
def main():
    """Main function"""

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

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

    state = module.params['state']
    kind = 'sql#user'

    fetch = fetch_wrapped_resource(module, 'sql#user', 'sql#usersList',
                                   'items')
    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'),
        config=dict(required=True, type='str'),
        display_name=dict(required=True, type='str'),
        node_count=dict(default=1, type='int'),
        labels=dict(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)