示例#1
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']})
def main():
    """Main function"""

    module = GcpModule(
        argument_spec=dict(
            state=dict(default='present', choices=['present', 'absent'], type='str'),
            description=dict(required=True, type='str'),
            dns_name=dict(required=True, type='str'),
            dnssec_config=dict(
                type='dict',
                options=dict(
                    kind=dict(default='dns#managedZoneDnsSecConfig', type='str'),
                    non_existence=dict(type='str'),
                    state=dict(type='str'),
                    default_key_specs=dict(
                        type='list',
                        elements='dict',
                        options=dict(
                            algorithm=dict(type='str'), key_length=dict(type='int'), key_type=dict(type='str'), kind=dict(default='dns#dnsKeySpec', type='str')
                        ),
                    ),
                ),
            ),
            name=dict(required=True, type='str'),
            name_server_set=dict(type='str'),
            labels=dict(type='dict'),
            visibility=dict(default='public', type='str'),
            private_visibility_config=dict(type='dict', options=dict(networks=dict(type='list', elements='dict', options=dict(network_url=dict(type='str'))))),
        )
    )

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

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

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

    if fetch:
        if state == 'present':
            if is_different(module, fetch):
                update(module, self_link(module), kind, fetch)
                fetch = fetch_resource(module, self_link(module), kind)
                changed = True
        else:
            delete(module, self_link(module), kind)
            fetch = {}
            changed = True
    else:
        if state == 'present':
            fetch = create(module, collection(module), kind)
            changed = True
        else:
            fetch = {}

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

    module.exit_json(**fetch)
def main():
    """Main function"""

    module = GcpModule(argument_spec=dict(
        state=dict(
            default='present', choices=['present', 'absent'], type='str'),
        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)
示例#4
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'))),
        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)
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(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)
示例#6
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'),
        backend_service=dict(type='dict'),
        ip_version=dict(type='str'),
        load_balancing_scheme=dict(type='str'),
        name=dict(required=True, type='str'),
        network=dict(type='dict'),
        port_range=dict(type='str'),
        ports=dict(type='list', elements='str'),
        subnetwork=dict(type='dict'),
        target=dict(type='dict'),
        all_ports=dict(type='bool'),
        network_tier=dict(type='str'),
        service_label=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#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)
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)
示例#8
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']

    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)
def main():
    module = GcpModule(argument_spec=dict(instance=dict(required=True, type='dict')))

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

    items = fetch_list(module, collection(module))
    if items.get('databases'):
        items = items.get('databases')
    else:
        items = []
    return_value = {'resources': items}
    module.exit_json(**return_value)
示例#10
0
def main():
    module = GcpModule(argument_spec=dict(location=dict(required=True, type='str', aliases=['region', 'zone']), cluster=dict(required=True, type='dict')))

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

    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)
示例#11
0
def main():
    module = GcpModule(argument_spec=dict())

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

    items = fetch_list(module, collection(module))
    if items.get('datasets'):
        items = items.get('datasets')
    else:
        items = []
    return_value = {'resources': items}
    module.exit_json(**return_value)
示例#12
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)
示例#13
0
def main():
    """Main function"""

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

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

    state = module.params['state']
    kind = 'storage#bucketAccessControl'

    if module.params['id']:
        fetch = fetch_resource(module, self_link(module), kind)
    else:
        fetch = {}
    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)
示例#14
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'),
            enable_flow_logs=dict(type='bool'),
            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)
示例#15
0
def main():
    """Main function"""

    module = GcpModule(
        argument_spec=dict(
            state=dict(default='present',
                       choices=['present', 'absent'],
                       type='str'),
            description=dict(type='str'),
            ipv4_range=dict(type='str'),
            name=dict(required=True, type='str'),
            auto_create_subnetworks=dict(type='bool'),
            routing_config=dict(
                type='dict',
                options=dict(routing_mode=dict(required=True, type='str'))),
        ),
        mutually_exclusive=[['auto_create_subnetworks', 'ipv4_range']],
    )

    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):
                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)
示例#16
0
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'
        ]

    items = fetch_list(module, collection(module), module.params['dns_name'])
    if items.get('managedZones'):
        items = items.get('managedZones')
    else:
        items = []
    return_value = {'resources': items}
    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'
        ]

    items = fetch_list(module, collection(module))
    if items.get('rrsets'):
        items = items.get('rrsets')
    else:
        items = []
    return_value = {'resources': items}
    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'),
    ))

    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'),
        check_interval_sec=dict(
            default=5, type='int', aliases=['check_interval_seconds']),
        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#httpHealthCheck'

    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)
示例#20
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'),
        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'),
        interconnect=dict(type='str'),
        description=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)
示例#22
0
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)
示例#23
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(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(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)
示例#24
0
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'),
        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)
示例#25
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)
示例#26
0
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)
示例#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(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)
示例#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'),
        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)
示例#29
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'),
        profile=dict(type='str'),
        min_tls_version=dict(type='str'),
        custom_features=dict(type='list', elements='str'),
    ))

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

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

    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)
示例#30
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'),
        title=dict(type='str'),
        description=dict(type='str'),
        included_permissions=dict(type='list', elements='str'),
        stage=dict(type='str'),
    ))

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

    state = module.params['state']

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

    if fetch:
        if state == 'present':
            if is_different(module, fetch):
                update(module, self_link(module), fetch)
                fetch = fetch_resource(module, self_link(module))
                changed = True
        else:
            delete(module, self_link(module))
            fetch = {}
            changed = True
    else:
        if state == 'present':
            fetch = create(module, collection(module))
            changed = True
        else:
            fetch = {}

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

    module.exit_json(**fetch)