def main():
    """Main function"""

    module = GcpModule(
        argument_spec=dict(
            state=dict(default='present', choices=['present', 'absent'], type='str'),
            bucket=dict(required=True, type='dict'),
            entity=dict(required=True, type='str'),
            role=dict(type='str'),
        )
    )

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

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

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

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

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

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

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

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

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

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

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

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

    module.exit_json(**fetch)
示例#3
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'),
            kms_key_name=dict(type='str'),
            labels=dict(type='dict'),
            message_storage_policy=dict(type='dict', options=dict(allowed_persistence_regions=dict(required=True, type='list', elements='str'))),
        )
    )

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

    state = module.params['state']

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

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

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

    module.exit_json(**fetch)
示例#4
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'),
            location=dict(required=True, type='str'),
        )
    )

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

    state = module.params['state']

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

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

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

    module.exit_json(**fetch)
示例#5
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']
    })
示例#6
0
def main():
    """Main function"""

    module = GcpModule(argument_spec=dict(
        state=dict(
            default='present', choices=['present', 'absent'], type='str'),
        affinity_cookie_ttl_sec=dict(type='int'),
        backends=dict(
            type='list',
            elements='dict',
            options=dict(
                balancing_mode=dict(default='UTILIZATION', type='str'),
                capacity_scaler=dict(default=1.0, type='str'),
                description=dict(type='str'),
                group=dict(type='str'),
                max_connections=dict(type='int'),
                max_connections_per_instance=dict(type='int'),
                max_connections_per_endpoint=dict(type='int'),
                max_rate=dict(type='int'),
                max_rate_per_instance=dict(type='str'),
                max_rate_per_endpoint=dict(type='str'),
                max_utilization=dict(default=0.8, type='str'),
            ),
        ),
        cdn_policy=dict(
            type='dict',
            options=dict(
                cache_key_policy=dict(
                    type='dict',
                    options=dict(
                        include_host=dict(type='bool'),
                        include_protocol=dict(type='bool'),
                        include_query_string=dict(type='bool'),
                        query_string_blacklist=dict(type='list',
                                                    elements='str'),
                        query_string_whitelist=dict(type='list',
                                                    elements='str'),
                    ),
                ),
                signed_url_cache_max_age_sec=dict(default=3600, type='int'),
            ),
        ),
        connection_draining=dict(type='dict',
                                 options=dict(draining_timeout_sec=dict(
                                     default=300, type='int'))),
        description=dict(type='str'),
        enable_cdn=dict(type='bool'),
        health_checks=dict(required=True, type='list', elements='str'),
        iap=dict(
            type='dict',
            options=dict(enabled=dict(type='bool'),
                         oauth2_client_id=dict(required=True, type='str'),
                         oauth2_client_secret=dict(required=True, type='str')),
        ),
        load_balancing_scheme=dict(default='EXTERNAL', type='str'),
        name=dict(required=True, type='str'),
        port_name=dict(type='str'),
        protocol=dict(type='str'),
        security_policy=dict(type='str'),
        session_affinity=dict(type='str'),
        timeout_sec=dict(type='int', aliases=['timeout_seconds']),
    ))

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

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

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

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

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

    module.exit_json(**fetch)
示例#7
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',
            no_log=True,
            options=dict(raw_key=dict(type='str'),
                         kms_key_name=dict(type='str'),
                         kms_key_service_account=dict(type='str'))),
        disk_encryption_key=dict(type='dict',
                                 no_log=True,
                                 options=dict(raw_key=dict(type='str'),
                                              kms_key_name=dict(type='str'),
                                              kms_key_service_account=dict(
                                                  type='str'))),
        source_snapshot=dict(type='dict', no_log=True),
        source_snapshot_encryption_key=dict(
            type='dict',
            no_log=True,
            options=dict(raw_key=dict(type='str'),
                         kms_key_name=dict(type='str'),
                         kms_key_service_account=dict(type='str'))),
    ))

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

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

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

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

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

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

    module = GcpModule(argument_spec=dict(
        state=dict(
            default='present', choices=['present', 'absent'], type='str'),
        name=dict(type='str'),
        app_engine_routing_override=dict(type='dict',
                                         options=dict(service=dict(type='str'),
                                                      version=dict(type='str'),
                                                      instance=dict(
                                                          type='str'))),
        rate_limits=dict(type='dict',
                         options=dict(max_dispatches_per_second=dict(
                             type='str'),
                                      max_concurrent_dispatches=dict(
                                          type='int'))),
        retry_config=dict(
            type='dict',
            options=dict(
                max_attempts=dict(type='int'),
                max_retry_duration=dict(type='str'),
                min_backoff=dict(type='str'),
                max_backoff=dict(type='str'),
                max_doublings=dict(type='int'),
            ),
        ),
        status=dict(type='str'),
        location=dict(required=True, type='str'),
    ))

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

    state = module.params['state']

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

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

    if fetch:
        instance = QueueStatus(module, fetch.get('state'))
        instance.run()
        if module.params.get('status'):
            fetch.update({'status': module.params['status']})
    fetch.update({'changed': changed})

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

    module = GcpModule(argument_spec=dict(
        state=dict(
            default='present', choices=['present', 'absent'], type='str'),
        name=dict(type='str'),
        access=dict(
            type='list',
            elements='dict',
            options=dict(
                domain=dict(type='str'),
                group_by_email=dict(type='str'),
                role=dict(required=True, type='str'),
                special_group=dict(type='str'),
                user_by_email=dict(type='str'),
                view=dict(
                    type='dict',
                    options=dict(dataset_id=dict(required=True, type='str'),
                                 project_id=dict(required=True, type='str'),
                                 table_id=dict(required=True, type='str')),
                ),
            ),
        ),
        dataset_reference=dict(required=True,
                               type='dict',
                               options=dict(dataset_id=dict(required=True,
                                                            type='str'),
                                            project_id=dict(type='str'))),
        default_table_expiration_ms=dict(type='int'),
        default_partition_expiration_ms=dict(type='int'),
        description=dict(type='str'),
        friendly_name=dict(type='str'),
        labels=dict(type='dict'),
        location=dict(default='US', type='str'),
        default_encryption_configuration=dict(type='dict',
                                              options=dict(kms_key_name=dict(
                                                  required=True, type='str'))),
    ))

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

    state = module.params['state']
    kind = 'bigquery#dataset'

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

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

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

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

    module = GcpModule(argument_spec=dict(
        state=dict(
            default='present', choices=['present', 'absent'], type='str'),
        backends=dict(
            type='list',
            elements='dict',
            options=dict(
                balancing_mode=dict(default='CONNECTION', type='str'),
                capacity_scaler=dict(type='str'),
                description=dict(type='str'),
                group=dict(required=True, type='str'),
                max_connections=dict(type='int'),
                max_connections_per_instance=dict(type='int'),
                max_connections_per_endpoint=dict(type='int'),
                max_rate=dict(type='int'),
                max_rate_per_instance=dict(type='str'),
                max_rate_per_endpoint=dict(type='str'),
                max_utilization=dict(type='str'),
            ),
        ),
        connection_draining=dict(type='dict',
                                 options=dict(draining_timeout_sec=dict(
                                     default=300, type='int'))),
        description=dict(type='str'),
        health_checks=dict(required=True, type='list', elements='str'),
        load_balancing_scheme=dict(default='INTERNAL', type='str'),
        name=dict(required=True, type='str'),
        protocol=dict(type='str'),
        session_affinity=dict(type='str'),
        timeout_sec=dict(type='int'),
        region=dict(required=True, type='str'),
    ))

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

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

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

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

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

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

    module = GcpModule(
        argument_spec=dict(
            state=dict(default='present',
                       choices=['present', 'absent'],
                       type='str'),
            name=dict(required=True, type='str'),
            snapshot_schedule_policy=dict(
                type='dict',
                options=dict(
                    schedule=dict(
                        required=True,
                        type='dict',
                        options=dict(
                            hourly_schedule=dict(
                                type='dict',
                                options=dict(hours_in_cycle=dict(required=True,
                                                                 type='int'),
                                             start_time=dict(required=True,
                                                             type='str'))),
                            daily_schedule=dict(
                                type='dict',
                                options=dict(days_in_cycle=dict(required=True,
                                                                type='int'),
                                             start_time=dict(required=True,
                                                             type='str'))),
                            weekly_schedule=dict(
                                type='dict',
                                options=dict(day_of_weeks=dict(
                                    required=True,
                                    type='list',
                                    elements='dict',
                                    options=dict(start_time=dict(required=True,
                                                                 type='str'),
                                                 day=dict(required=True,
                                                          type='str')),
                                )),
                            ),
                        ),
                    ),
                    retention_policy=dict(
                        type='dict',
                        options=dict(max_retention_days=dict(required=True,
                                                             type='int'),
                                     on_source_disk_delete=dict(
                                         default='KEEP_AUTO_SNAPSHOTS',
                                         type='str')),
                    ),
                    snapshot_properties=dict(
                        type='dict',
                        options=dict(labels=dict(type='dict'),
                                     storage_locations=dict(type='list',
                                                            elements='str'),
                                     guest_flush=dict(type='bool'))),
                ),
            ),
            group_placement_policy=dict(
                type='dict',
                options=dict(vm_count=dict(type='int'),
                             availability_domain_count=dict(type='int'),
                             collocation=dict(type='str'))),
            region=dict(required=True, type='str'),
        ),
        mutually_exclusive=[[
            'group_placement_policy', 'snapshot_schedule_policy'
        ]],
    )

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

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

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

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

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

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

    module = GcpModule(argument_spec=dict(
        state=dict(
            default='present', choices=['present', 'absent'], type='str'),
        name=dict(required=True, type='str'),
        topic=dict(required=True, type='dict'),
        labels=dict(type='dict'),
        push_config=dict(
            type='dict',
            options=dict(
                oidc_token=dict(type='dict',
                                options=dict(service_account_email=dict(
                                    required=True, type='str'),
                                             audience=dict(type='str'))),
                push_endpoint=dict(required=True, type='str'),
                attributes=dict(type='dict'),
            ),
        ),
        ack_deadline_seconds=dict(type='int'),
        message_retention_duration=dict(default='604800s', type='str'),
        retain_acked_messages=dict(type='bool'),
        expiration_policy=dict(
            type='dict', options=dict(ttl=dict(required=True, type='str'))),
        filter=dict(type='str'),
        dead_letter_policy=dict(type='dict',
                                options=dict(dead_letter_topic=dict(
                                    type='str'),
                                             max_delivery_attempts=dict(
                                                 type='int'))),
        retry_policy=dict(type='dict',
                          options=dict(minimum_backoff=dict(type='str'),
                                       maximum_backoff=dict(type='str'))),
        enable_message_ordering=dict(type='bool'),
    ))

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

    state = module.params['state']

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

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

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

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

    module = GcpModule(argument_spec=dict(
        state=dict(
            default='present', choices=['present', 'absent'], type='str'),
        id=dict(type='str'),
        name=dict(type='str'),
        description=dict(type='str'),
        disabled=dict(type='bool'),
        substitutions=dict(type='dict'),
        filename=dict(type='str'),
        ignored_files=dict(type='list', elements='str'),
        included_files=dict(type='list', elements='str'),
        trigger_template=dict(
            type='dict',
            options=dict(
                project_id=dict(type='str'),
                repo_name=dict(default='default', type='str'),
                dir=dict(type='str'),
                invert_regex=dict(type='bool'),
                branch_name=dict(type='str'),
                tag_name=dict(type='str'),
                commit_sha=dict(type='str'),
            ),
        ),
        build=dict(
            type='dict',
            options=dict(
                tags=dict(type='list', elements='str'),
                images=dict(type='list', elements='str'),
                timeout=dict(default='600s', type='str'),
                steps=dict(
                    required=True,
                    type='list',
                    elements='dict',
                    options=dict(
                        name=dict(required=True, type='str'),
                        args=dict(type='list', elements='str'),
                        env=dict(type='list', elements='str'),
                        id=dict(type='str'),
                        entrypoint=dict(type='str'),
                        dir=dict(type='str'),
                        secret_env=dict(type='list', elements='str'),
                        timeout=dict(type='str'),
                        timing=dict(type='str'),
                        volumes=dict(type='list',
                                     elements='dict',
                                     options=dict(name=dict(required=True,
                                                            type='str'),
                                                  path=dict(required=True,
                                                            type='str'))),
                        wait_for=dict(type='list', elements='str'),
                    ),
                ),
            ),
        ),
    ))

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

    state = module.params['state']

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

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

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

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

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

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

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

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

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

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

    module.exit_json(**fetch)
示例#15
0
def main():
    """Main function"""

    module = GcpModule(argument_spec=dict(
        state=dict(
            default='present', choices=['present', 'absent'], type='str'),
        name=dict(required=True, type='str'),
        description=dict(type='str'),
        filter=dict(required=True, type='str'),
        metric_descriptor=dict(
            required=True,
            type='dict',
            options=dict(
                unit=dict(default='1', type='str'),
                value_type=dict(required=True, type='str'),
                metric_kind=dict(required=True, type='str'),
                labels=dict(
                    type='list',
                    elements='dict',
                    options=dict(key=dict(required=True, type='str'),
                                 description=dict(type='str'),
                                 value_type=dict(default='STRING',
                                                 type='str')),
                ),
            ),
        ),
        label_extractors=dict(type='dict'),
        value_extractor=dict(type='str'),
        bucket_options=dict(
            type='dict',
            options=dict(
                linear_buckets=dict(type='dict',
                                    options=dict(num_finite_buckets=dict(
                                        type='int'),
                                                 width=dict(type='int'),
                                                 offset=dict(type='str'))),
                exponential_buckets=dict(type='dict',
                                         options=dict(num_finite_buckets=dict(
                                             type='int'),
                                                      growth_factor=dict(
                                                          type='int'),
                                                      scale=dict(type='str'))),
                explicit_buckets=dict(type='dict',
                                      options=dict(bounds=dict(
                                          type='list', elements='str'))),
            ),
        ),
    ))

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

    state = module.params['state']

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

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

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

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

    module = GcpModule(argument_spec=dict(
        state=dict(
            default='present', choices=['present', 'absent'], type='str'),
        acl=dict(
            type='list',
            elements='dict',
            options=dict(
                bucket=dict(required=True, type='dict'),
                entity=dict(required=True, type='str'),
                entity_id=dict(type='str'),
                project_team=dict(type='dict',
                                  options=dict(project_number=dict(type='str'),
                                               team=dict(type='str'))),
                role=dict(type='str'),
            ),
        ),
        cors=dict(
            type='list',
            elements='dict',
            options=dict(
                max_age_seconds=dict(type='int'),
                method=dict(type='list', elements='str'),
                origin=dict(type='list', elements='str'),
                response_header=dict(type='list', elements='str'),
            ),
        ),
        default_event_based_hold=dict(type='bool'),
        default_object_acl=dict(
            type='list',
            elements='dict',
            options=dict(
                bucket=dict(required=True, type='dict'),
                entity=dict(required=True, type='str'),
                object=dict(type='str'),
                role=dict(required=True, type='str'),
            ),
        ),
        lifecycle=dict(
            type='dict',
            options=dict(rule=dict(
                type='list',
                elements='dict',
                options=dict(
                    action=dict(type='dict',
                                options=dict(storage_class=dict(type='str'),
                                             type=dict(type='str'))),
                    condition=dict(
                        type='dict',
                        options=dict(
                            age_days=dict(type='int'),
                            created_before=dict(type='str'),
                            is_live=dict(type='bool'),
                            matches_storage_class=dict(type='list',
                                                       elements='str'),
                            num_newer_versions=dict(type='int'),
                        ),
                    ),
                ),
            )),
        ),
        location=dict(type='str'),
        logging=dict(type='dict',
                     options=dict(log_bucket=dict(type='str'),
                                  log_object_prefix=dict(type='str'))),
        metageneration=dict(type='int'),
        name=dict(type='str'),
        owner=dict(type='dict', options=dict(entity=dict(type='str'))),
        storage_class=dict(type='str'),
        versioning=dict(type='dict', options=dict(enabled=dict(type='bool'))),
        website=dict(type='dict',
                     options=dict(main_page_suffix=dict(type='str'),
                                  not_found_page=dict(type='str'))),
        labels=dict(type='dict'),
        project=dict(type='str'),
        predefined_default_object_acl=dict(type='str'),
    ))

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

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

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

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

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

    module.exit_json(**fetch)
示例#17
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'),
        entry_point=dict(type='str'),
        runtime=dict(type='str'),
        timeout=dict(type='str'),
        available_memory_mb=dict(type='int'),
        labels=dict(type='dict'),
        environment_variables=dict(type='dict'),
        source_archive_url=dict(type='str'),
        source_upload_url=dict(type='str'),
        source_repository=dict(type='dict', options=dict(url=dict(
            type='str'))),
        https_trigger=dict(type='dict', options=dict()),
        event_trigger=dict(type='dict',
                           options=dict(
                               event_type=dict(required=True, type='str'),
                               resource=dict(required=True, type='str'),
                               service=dict(type='str'))),
        location=dict(required=True, type='str'),
        trigger_http=dict(type='bool'),
    ))

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

    state = module.params['state']

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

    # Need to set triggerHttps to {} if boolean true.
    if fetch and fetch.get('httpsTrigger') and module.params['trigger_http']:
        module.params['https_trigger'] = fetch.get('httpsTrigger')
    elif module.params['trigger_http']:
        module.params['https_trigger'] = {}

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

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

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

    module = GcpModule(argument_spec=dict(
        state=dict(
            default='present', choices=['present', 'absent'], type='str'),
        description=dict(type='str'),
        name=dict(required=True, type='str'),
        specific_reservation_required=dict(type='bool'),
        specific_reservation=dict(
            required=True,
            type='dict',
            options=dict(
                count=dict(required=True, type='int'),
                instance_properties=dict(
                    required=True,
                    type='dict',
                    options=dict(
                        machine_type=dict(required=True, type='str'),
                        min_cpu_platform=dict(type='str'),
                        guest_accelerators=dict(
                            type='list',
                            elements='dict',
                            options=dict(accelerator_type=dict(required=True,
                                                               type='str'),
                                         accelerator_count=dict(required=True,
                                                                type='int')),
                        ),
                        local_ssds=dict(
                            type='list',
                            elements='dict',
                            options=dict(
                                interface=dict(default='SCSI', type='str'),
                                disk_size_gb=dict(required=True, type='int')),
                        ),
                    ),
                ),
            ),
        ),
        zone=dict(required=True, type='str'),
    ))

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

    state = module.params['state']

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

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

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

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

    module = GcpModule(argument_spec=dict(
        state=dict(
            default='present', choices=['present', 'absent'], type='str'),
        default_service=dict(required=True, type='dict'),
        description=dict(type='str'),
        host_rules=dict(
            type='list',
            elements='dict',
            options=dict(description=dict(type='str'),
                         hosts=dict(required=True, type='list',
                                    elements='str'),
                         path_matcher=dict(required=True, type='str')),
        ),
        name=dict(required=True, type='str'),
        path_matchers=dict(
            type='list',
            elements='dict',
            options=dict(
                default_service=dict(required=True, type='dict'),
                description=dict(type='str'),
                name=dict(required=True, type='str'),
                path_rules=dict(
                    type='list',
                    elements='dict',
                    options=dict(paths=dict(
                        required=True, type='list', elements='str'),
                                 service=dict(required=True, type='dict')),
                ),
            ),
        ),
        tests=dict(
            type='list',
            elements='dict',
            options=dict(
                description=dict(type='str'),
                host=dict(required=True, type='str'),
                path=dict(required=True, type='str'),
                service=dict(required=True, type='dict'),
            ),
        ),
    ))

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

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

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

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

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

    module.exit_json(**fetch)
示例#20
0
def main():
    """Main function"""

    module = GcpModule(
        argument_spec=dict(
            state=dict(default='present',
                       choices=['present', 'absent'],
                       type='str'),
            allowed=dict(type='list',
                         elements='dict',
                         options=dict(ip_protocol=dict(required=True,
                                                       type='str'),
                                      ports=dict(type='list',
                                                 elements='str'))),
            denied=dict(type='list',
                        elements='dict',
                        options=dict(ip_protocol=dict(required=True,
                                                      type='str'),
                                     ports=dict(type='list', elements='str'))),
            description=dict(type='str'),
            destination_ranges=dict(type='list', elements='str'),
            direction=dict(type='str'),
            disabled=dict(type='bool'),
            log_config=dict(type='dict',
                            options=dict(enable=dict(type='bool'),
                                         metadata=dict(type='str'))),
            name=dict(required=True, type='str'),
            network=dict(default=dict(selfLink='global/networks/default'),
                         type='dict'),
            priority=dict(default=1000, type='int'),
            source_ranges=dict(type='list', elements='str'),
            source_service_accounts=dict(type='list', elements='str'),
            source_tags=dict(type='list', elements='str'),
            target_service_accounts=dict(type='list', elements='str'),
            target_tags=dict(type='list', elements='str'),
        ),
        mutually_exclusive=[
            ['destination_ranges', 'source_ranges', 'source_tags'],
            ['destination_ranges', 'source_ranges'],
            ['source_service_accounts', 'source_tags', 'target_tags'],
            [
                'destination_ranges', 'source_service_accounts', 'source_tags',
                'target_service_accounts'
            ],
            ['source_tags', 'target_service_accounts', 'target_tags'],
            [
                'source_service_accounts', 'target_service_accounts',
                'target_tags'
            ],
        ],
    )

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

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

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

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

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

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

    module = GcpModule(argument_spec=dict(
        state=dict(
            default='present', choices=['present', 'absent'], type='str'),
        name=dict(type='str'),
        config=dict(
            type='dict',
            options=dict(
                machine_type=dict(type='str'),
                disk_size_gb=dict(type='int'),
                oauth_scopes=dict(type='list', elements='str'),
                service_account=dict(type='str'),
                metadata=dict(type='dict'),
                image_type=dict(type='str'),
                labels=dict(type='dict'),
                local_ssd_count=dict(type='int'),
                tags=dict(type='list', elements='str'),
                preemptible=dict(type='bool'),
                accelerators=dict(type='list',
                                  elements='dict',
                                  options=dict(accelerator_count=dict(
                                      type='int'),
                                               accelerator_type=dict(
                                                   type='str'))),
                disk_type=dict(type='str'),
                min_cpu_platform=dict(type='str'),
                taints=dict(type='list',
                            elements='dict',
                            options=dict(key=dict(type='str'),
                                         value=dict(type='str'),
                                         effect=dict(type='str'))),
                shielded_instance_config=dict(
                    type='dict',
                    options=dict(enable_secure_boot=dict(type='bool'),
                                 enable_integrity_monitoring=dict(
                                     type='bool'))),
                workload_meta_config=dict(type='dict',
                                          options=dict(mode=dict(type='str'))),
            ),
        ),
        initial_node_count=dict(required=True, type='int'),
        version=dict(type='str'),
        autoscaling=dict(type='dict',
                         options=dict(enabled=dict(type='bool'),
                                      min_node_count=dict(type='int'),
                                      max_node_count=dict(type='int'))),
        management=dict(type='dict',
                        options=dict(auto_upgrade=dict(type='bool'),
                                     auto_repair=dict(type='bool'),
                                     upgrade_options=dict(type='dict',
                                                          options=dict()))),
        max_pods_constraint=dict(
            type='dict', options=dict(max_pods_per_node=dict(type='int'))),
        conditions=dict(
            type='list', elements='dict', options=dict(code=dict(type='str'))),
        cluster=dict(required=True, type='dict'),
        location=dict(required=True, type='str', aliases=['region', 'zone']),
    ))

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

    state = module.params['state']

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

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

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

    module.exit_json(**fetch)
示例#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'),
        autoscaling_policy=dict(
            required=True,
            type='dict',
            options=dict(
                min_num_replicas=dict(type='int'),
                max_num_replicas=dict(required=True, type='int'),
                cool_down_period_sec=dict(default=60, type='int'),
                cpu_utilization=dict(type='dict',
                                     options=dict(utilization_target=dict(
                                         type='str'))),
                custom_metric_utilizations=dict(
                    type='list',
                    elements='dict',
                    options=dict(metric=dict(required=True, type='str'),
                                 utilization_target=dict(type='str'),
                                 utilization_target_type=dict(type='str')),
                ),
                load_balancing_utilization=dict(type='dict',
                                                options=dict(
                                                    utilization_target=dict(
                                                        type='str'))),
            ),
        ),
        target=dict(required=True, type='str'),
        region=dict(required=True, type='str'),
    ))

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

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

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

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

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

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

    module = GcpModule(
        argument_spec=dict(
            state=dict(default='present', choices=['present', 'absent'], type='str'),
            name=dict(required=True, type='str'),
            description=dict(type='str'),
            schedule=dict(type='str'),
            time_zone=dict(default='Etc/UTC', type='str'),
            retry_config=dict(
                type='dict',
                options=dict(
                    retry_count=dict(type='int'),
                    max_retry_duration=dict(type='str'),
                    min_backoff_duration=dict(type='str'),
                    max_backoff_duration=dict(type='str'),
                    max_doublings=dict(type='int'),
                ),
            ),
            pubsub_target=dict(type='dict', options=dict(topic_name=dict(required=True, type='str'), data=dict(type='str'), attributes=dict(type='dict'))),
            app_engine_http_target=dict(
                type='dict',
                options=dict(
                    http_method=dict(type='str'),
                    app_engine_routing=dict(type='dict', options=dict(service=dict(type='str'), version=dict(type='str'), instance=dict(type='str'))),
                    relative_uri=dict(required=True, type='str'),
                    body=dict(type='str'),
                    headers=dict(type='dict'),
                ),
            ),
            http_target=dict(
                type='dict',
                options=dict(
                    uri=dict(required=True, type='str'),
                    http_method=dict(type='str'),
                    body=dict(type='str'),
                    headers=dict(type='dict'),
                    oauth_token=dict(type='dict', options=dict(service_account_email=dict(required=True, type='str'), scope=dict(type='str'))),
                    oidc_token=dict(type='dict', options=dict(service_account_email=dict(required=True, type='str'), audience=dict(type='str'))),
                ),
            ),
            region=dict(required=True, type='str'),
        )
    )

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

    state = module.params['state']

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

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

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

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

    module = GcpModule(argument_spec=dict(
        state=dict(
            default='present', choices=['present', 'absent'], type='str'),
        check_interval_sec=dict(default=5, type='int'),
        description=dict(type='str'),
        healthy_threshold=dict(default=2, type='int'),
        name=dict(required=True, type='str'),
        timeout_sec=dict(default=5, type='int', aliases=['timeout_seconds']),
        unhealthy_threshold=dict(default=2, type='int'),
        type=dict(type='str'),
        http_health_check=dict(
            type='dict',
            options=dict(
                host=dict(type='str'),
                request_path=dict(default='/', type='str'),
                response=dict(type='str'),
                port=dict(type='int'),
                port_name=dict(type='str'),
                proxy_header=dict(default='NONE', type='str'),
                port_specification=dict(type='str'),
            ),
        ),
        https_health_check=dict(
            type='dict',
            options=dict(
                host=dict(type='str'),
                request_path=dict(default='/', type='str'),
                response=dict(type='str'),
                port=dict(type='int'),
                port_name=dict(type='str'),
                proxy_header=dict(default='NONE', type='str'),
                port_specification=dict(type='str'),
            ),
        ),
        tcp_health_check=dict(
            type='dict',
            options=dict(
                request=dict(type='str'),
                response=dict(type='str'),
                port=dict(type='int'),
                port_name=dict(type='str'),
                proxy_header=dict(default='NONE', type='str'),
                port_specification=dict(type='str'),
            ),
        ),
        ssl_health_check=dict(
            type='dict',
            options=dict(
                request=dict(type='str'),
                response=dict(type='str'),
                port=dict(type='int'),
                port_name=dict(type='str'),
                proxy_header=dict(default='NONE', type='str'),
                port_specification=dict(type='str'),
            ),
        ),
        http2_health_check=dict(
            type='dict',
            options=dict(
                host=dict(type='str'),
                request_path=dict(default='/', type='str'),
                response=dict(type='str'),
                port=dict(type='int'),
                port_name=dict(type='str'),
                proxy_header=dict(default='NONE', type='str'),
                port_specification=dict(type='str'),
            ),
        ),
    ))

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

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

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

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

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

    module.exit_json(**fetch)
示例#25
0
def main():
    """Main function"""

    module = GcpModule(argument_spec=dict(
        state=dict(
            default='present', choices=['present', 'absent'], type='str'),
        backend_type=dict(type='str'),
        connection_name=dict(type='str'),
        database_version=dict(type='str'),
        failover_replica=dict(type='dict', options=dict(name=dict(
            type='str'))),
        instance_type=dict(type='str'),
        ipv6_address=dict(type='str'),
        master_instance_name=dict(type='str'),
        max_disk_size=dict(type='int'),
        name=dict(required=True, type='str'),
        region=dict(type='str'),
        replica_configuration=dict(
            type='dict',
            options=dict(
                failover_target=dict(type='bool'),
                mysql_replica_configuration=dict(
                    type='dict',
                    options=dict(
                        ca_certificate=dict(type='str'),
                        client_certificate=dict(type='str'),
                        client_key=dict(type='str'),
                        connect_retry_interval=dict(type='int'),
                        dump_file_path=dict(type='str'),
                        master_heartbeat_period=dict(type='int'),
                        password=dict(type='str'),
                        ssl_cipher=dict(type='str'),
                        username=dict(type='str'),
                        verify_server_certificate=dict(type='bool'),
                    ),
                ),
                replica_names=dict(type='list', elements='str'),
                service_account_email_address=dict(type='str'),
            ),
        ),
        settings=dict(
            type='dict',
            options=dict(
                database_flags=dict(type='list',
                                    elements='dict',
                                    options=dict(name=dict(type='str'),
                                                 value=dict(type='str'))),
                ip_configuration=dict(
                    type='dict',
                    options=dict(
                        ipv4_enabled=dict(type='bool'),
                        authorized_networks=dict(
                            type='list',
                            elements='dict',
                            options=dict(expiration_time=dict(type='str'),
                                         name=dict(type='str'),
                                         value=dict(type='str'))),
                        require_ssl=dict(type='bool'),
                    ),
                ),
                tier=dict(type='str'),
                availability_type=dict(type='str'),
                backup_configuration=dict(type='dict',
                                          options=dict(enabled=dict(
                                              type='bool'),
                                                       binary_log_enabled=dict(
                                                           type='bool'),
                                                       start_time=dict(
                                                           type='str'))),
                user_labels=dict(type='dict'),
            ),
        ),
        disk_encryption_configuration=dict(
            type='dict', options=dict(kms_key_name=dict(type='str'))),
        disk_encryption_status=dict(
            type='dict', options=dict(kms_key_version_name=dict(type='str'))),
    ))

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

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

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

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

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

    module.exit_json(**fetch)