| Index: generated/googleapis_beta/lib/cloudresourcemanager/v1beta1.dart
 | 
| diff --git a/generated/googleapis_beta/lib/cloudresourcemanager/v1beta1.dart b/generated/googleapis_beta/lib/cloudresourcemanager/v1beta1.dart
 | 
| index ccadb5bd873b075c74329e4aaa6950c897921306..ab7cfb9af569d0c20acbe56ad53b81641d79c080 100644
 | 
| --- a/generated/googleapis_beta/lib/cloudresourcemanager/v1beta1.dart
 | 
| +++ b/generated/googleapis_beta/lib/cloudresourcemanager/v1beta1.dart
 | 
| @@ -43,6 +43,96 @@ class OrganizationsResourceApi {
 | 
|        _requester = client;
 | 
|  
 | 
|    /**
 | 
| +   * Clears a `Policy` from a resource.
 | 
| +   *
 | 
| +   * [request] - The metadata request object.
 | 
| +   *
 | 
| +   * Request parameters:
 | 
| +   *
 | 
| +   * [resource] - Name of the resource for the `Policy` to clear.
 | 
| +   * Value must have pattern "^organizations/[^/]+$".
 | 
| +   *
 | 
| +   * Completes with a [Empty].
 | 
| +   *
 | 
| +   * Completes with a [commons.ApiRequestError] if the API endpoint returned an
 | 
| +   * error.
 | 
| +   *
 | 
| +   * If the used [http.Client] completes with an error when making a REST call,
 | 
| +   * this method will complete with the same error.
 | 
| +   */
 | 
| +  async.Future<Empty> clearOrgPolicy(ClearOrgPolicyRequest request, core.String resource) {
 | 
| +    var _url = null;
 | 
| +    var _queryParams = new core.Map();
 | 
| +    var _uploadMedia = null;
 | 
| +    var _uploadOptions = null;
 | 
| +    var _downloadOptions = commons.DownloadOptions.Metadata;
 | 
| +    var _body = null;
 | 
| +
 | 
| +    if (request != null) {
 | 
| +      _body = convert.JSON.encode((request).toJson());
 | 
| +    }
 | 
| +    if (resource == null) {
 | 
| +      throw new core.ArgumentError("Parameter resource is required.");
 | 
| +    }
 | 
| +
 | 
| +    _url = 'v1beta1/' + commons.Escaper.ecapeVariableReserved('$resource') + ':clearOrgPolicy';
 | 
| +
 | 
| +    var _response = _requester.request(_url,
 | 
| +                                       "POST",
 | 
| +                                       body: _body,
 | 
| +                                       queryParams: _queryParams,
 | 
| +                                       uploadOptions: _uploadOptions,
 | 
| +                                       uploadMedia: _uploadMedia,
 | 
| +                                       downloadOptions: _downloadOptions);
 | 
| +    return _response.then((data) => new Empty.fromJson(data));
 | 
| +  }
 | 
| +
 | 
| +  /**
 | 
| +   * Clears a `Policy` from a resource.
 | 
| +   *
 | 
| +   * [request] - The metadata request object.
 | 
| +   *
 | 
| +   * Request parameters:
 | 
| +   *
 | 
| +   * [resource] - Name of the resource for the `Policy` to clear.
 | 
| +   * Value must have pattern "^organizations/[^/]+$".
 | 
| +   *
 | 
| +   * Completes with a [Empty].
 | 
| +   *
 | 
| +   * Completes with a [commons.ApiRequestError] if the API endpoint returned an
 | 
| +   * error.
 | 
| +   *
 | 
| +   * If the used [http.Client] completes with an error when making a REST call,
 | 
| +   * this method will complete with the same error.
 | 
| +   */
 | 
| +  async.Future<Empty> clearOrgPolicyV1(ClearOrgPolicyRequest request, core.String resource) {
 | 
| +    var _url = null;
 | 
| +    var _queryParams = new core.Map();
 | 
| +    var _uploadMedia = null;
 | 
| +    var _uploadOptions = null;
 | 
| +    var _downloadOptions = commons.DownloadOptions.Metadata;
 | 
| +    var _body = null;
 | 
| +
 | 
| +    if (request != null) {
 | 
| +      _body = convert.JSON.encode((request).toJson());
 | 
| +    }
 | 
| +    if (resource == null) {
 | 
| +      throw new core.ArgumentError("Parameter resource is required.");
 | 
| +    }
 | 
| +
 | 
| +    _url = 'v1beta1/' + commons.Escaper.ecapeVariableReserved('$resource') + ':clearOrgPolicyV1';
 | 
| +
 | 
| +    var _response = _requester.request(_url,
 | 
| +                                       "POST",
 | 
| +                                       body: _body,
 | 
| +                                       queryParams: _queryParams,
 | 
| +                                       uploadOptions: _uploadOptions,
 | 
| +                                       uploadMedia: _uploadMedia,
 | 
| +                                       downloadOptions: _downloadOptions);
 | 
| +    return _response.then((data) => new Empty.fromJson(data));
 | 
| +  }
 | 
| +
 | 
| +  /**
 | 
|     * Fetches an Organization resource identified by the specified resource name.
 | 
|     *
 | 
|     * Request parameters:
 | 
| @@ -70,36 +160,440 @@ class OrganizationsResourceApi {
 | 
|      var _downloadOptions = commons.DownloadOptions.Metadata;
 | 
|      var _body = null;
 | 
|  
 | 
| -    if (name == null) {
 | 
| -      throw new core.ArgumentError("Parameter name is required.");
 | 
| +    if (name == null) {
 | 
| +      throw new core.ArgumentError("Parameter name is required.");
 | 
| +    }
 | 
| +    if (organizationId != null) {
 | 
| +      _queryParams["organizationId"] = [organizationId];
 | 
| +    }
 | 
| +
 | 
| +    _url = 'v1beta1/' + commons.Escaper.ecapeVariableReserved('$name');
 | 
| +
 | 
| +    var _response = _requester.request(_url,
 | 
| +                                       "GET",
 | 
| +                                       body: _body,
 | 
| +                                       queryParams: _queryParams,
 | 
| +                                       uploadOptions: _uploadOptions,
 | 
| +                                       uploadMedia: _uploadMedia,
 | 
| +                                       downloadOptions: _downloadOptions);
 | 
| +    return _response.then((data) => new Organization.fromJson(data));
 | 
| +  }
 | 
| +
 | 
| +  /**
 | 
| +   * Gets the effective `Policy` on a resource. This is the result of merging
 | 
| +   * `Policies` in the resource hierarchy. The returned `Policy` will not have
 | 
| +   * an `etag`set because it is a computed `Policy` across multiple resources.
 | 
| +   *
 | 
| +   * [request] - The metadata request object.
 | 
| +   *
 | 
| +   * Request parameters:
 | 
| +   *
 | 
| +   * [resource] - The name of the resource to start computing the effective
 | 
| +   * `Policy`.
 | 
| +   * Value must have pattern "^organizations/[^/]+$".
 | 
| +   *
 | 
| +   * Completes with a [OrgPolicy].
 | 
| +   *
 | 
| +   * Completes with a [commons.ApiRequestError] if the API endpoint returned an
 | 
| +   * error.
 | 
| +   *
 | 
| +   * If the used [http.Client] completes with an error when making a REST call,
 | 
| +   * this method will complete with the same error.
 | 
| +   */
 | 
| +  async.Future<OrgPolicy> getEffectiveOrgPolicy(GetEffectiveOrgPolicyRequest request, core.String resource) {
 | 
| +    var _url = null;
 | 
| +    var _queryParams = new core.Map();
 | 
| +    var _uploadMedia = null;
 | 
| +    var _uploadOptions = null;
 | 
| +    var _downloadOptions = commons.DownloadOptions.Metadata;
 | 
| +    var _body = null;
 | 
| +
 | 
| +    if (request != null) {
 | 
| +      _body = convert.JSON.encode((request).toJson());
 | 
| +    }
 | 
| +    if (resource == null) {
 | 
| +      throw new core.ArgumentError("Parameter resource is required.");
 | 
| +    }
 | 
| +
 | 
| +    _url = 'v1beta1/' + commons.Escaper.ecapeVariableReserved('$resource') + ':getEffectiveOrgPolicy';
 | 
| +
 | 
| +    var _response = _requester.request(_url,
 | 
| +                                       "POST",
 | 
| +                                       body: _body,
 | 
| +                                       queryParams: _queryParams,
 | 
| +                                       uploadOptions: _uploadOptions,
 | 
| +                                       uploadMedia: _uploadMedia,
 | 
| +                                       downloadOptions: _downloadOptions);
 | 
| +    return _response.then((data) => new OrgPolicy.fromJson(data));
 | 
| +  }
 | 
| +
 | 
| +  /**
 | 
| +   * Gets the effective `Policy` on a resource. This is the result of merging
 | 
| +   * `Policies` in the resource hierarchy. The returned `Policy` will not have
 | 
| +   * an `etag`set because it is a computed `Policy` across multiple resources.
 | 
| +   *
 | 
| +   * [request] - The metadata request object.
 | 
| +   *
 | 
| +   * Request parameters:
 | 
| +   *
 | 
| +   * [resource] - The name of the resource to start computing the effective
 | 
| +   * `Policy`.
 | 
| +   * Value must have pattern "^organizations/[^/]+$".
 | 
| +   *
 | 
| +   * Completes with a [OrgPolicy].
 | 
| +   *
 | 
| +   * Completes with a [commons.ApiRequestError] if the API endpoint returned an
 | 
| +   * error.
 | 
| +   *
 | 
| +   * If the used [http.Client] completes with an error when making a REST call,
 | 
| +   * this method will complete with the same error.
 | 
| +   */
 | 
| +  async.Future<OrgPolicy> getEffectiveOrgPolicyV1(GetEffectiveOrgPolicyRequest request, core.String resource) {
 | 
| +    var _url = null;
 | 
| +    var _queryParams = new core.Map();
 | 
| +    var _uploadMedia = null;
 | 
| +    var _uploadOptions = null;
 | 
| +    var _downloadOptions = commons.DownloadOptions.Metadata;
 | 
| +    var _body = null;
 | 
| +
 | 
| +    if (request != null) {
 | 
| +      _body = convert.JSON.encode((request).toJson());
 | 
| +    }
 | 
| +    if (resource == null) {
 | 
| +      throw new core.ArgumentError("Parameter resource is required.");
 | 
| +    }
 | 
| +
 | 
| +    _url = 'v1beta1/' + commons.Escaper.ecapeVariableReserved('$resource') + ':getEffectiveOrgPolicyV1';
 | 
| +
 | 
| +    var _response = _requester.request(_url,
 | 
| +                                       "POST",
 | 
| +                                       body: _body,
 | 
| +                                       queryParams: _queryParams,
 | 
| +                                       uploadOptions: _uploadOptions,
 | 
| +                                       uploadMedia: _uploadMedia,
 | 
| +                                       downloadOptions: _downloadOptions);
 | 
| +    return _response.then((data) => new OrgPolicy.fromJson(data));
 | 
| +  }
 | 
| +
 | 
| +  /**
 | 
| +   * Gets the access control policy for an Organization resource. May be empty
 | 
| +   * if no such policy or resource exists. The `resource` field should be the
 | 
| +   * organization's resource name, e.g. "organizations/123".
 | 
| +   *
 | 
| +   * [request] - The metadata request object.
 | 
| +   *
 | 
| +   * Request parameters:
 | 
| +   *
 | 
| +   * [resource] - REQUIRED: The resource for which the policy is being
 | 
| +   * requested.
 | 
| +   * See the operation documentation for the appropriate value for this field.
 | 
| +   * Value must have pattern "^organizations/[^/]+$".
 | 
| +   *
 | 
| +   * Completes with a [Policy].
 | 
| +   *
 | 
| +   * Completes with a [commons.ApiRequestError] if the API endpoint returned an
 | 
| +   * error.
 | 
| +   *
 | 
| +   * If the used [http.Client] completes with an error when making a REST call,
 | 
| +   * this method will complete with the same error.
 | 
| +   */
 | 
| +  async.Future<Policy> getIamPolicy(GetIamPolicyRequest request, core.String resource) {
 | 
| +    var _url = null;
 | 
| +    var _queryParams = new core.Map();
 | 
| +    var _uploadMedia = null;
 | 
| +    var _uploadOptions = null;
 | 
| +    var _downloadOptions = commons.DownloadOptions.Metadata;
 | 
| +    var _body = null;
 | 
| +
 | 
| +    if (request != null) {
 | 
| +      _body = convert.JSON.encode((request).toJson());
 | 
| +    }
 | 
| +    if (resource == null) {
 | 
| +      throw new core.ArgumentError("Parameter resource is required.");
 | 
| +    }
 | 
| +
 | 
| +    _url = 'v1beta1/' + commons.Escaper.ecapeVariableReserved('$resource') + ':getIamPolicy';
 | 
| +
 | 
| +    var _response = _requester.request(_url,
 | 
| +                                       "POST",
 | 
| +                                       body: _body,
 | 
| +                                       queryParams: _queryParams,
 | 
| +                                       uploadOptions: _uploadOptions,
 | 
| +                                       uploadMedia: _uploadMedia,
 | 
| +                                       downloadOptions: _downloadOptions);
 | 
| +    return _response.then((data) => new Policy.fromJson(data));
 | 
| +  }
 | 
| +
 | 
| +  /**
 | 
| +   * Gets a `Policy` on a resource.
 | 
| +   *
 | 
| +   * If no `Policy` is set on the resource, a `Policy` is returned with default
 | 
| +   * values including `POLICY_TYPE_NOT_SET` for the `policy_type oneof`. The
 | 
| +   * `etag` value can be used with `SetOrgPolicy()` to create or update a
 | 
| +   * `Policy` during read-modify-write.
 | 
| +   *
 | 
| +   * [request] - The metadata request object.
 | 
| +   *
 | 
| +   * Request parameters:
 | 
| +   *
 | 
| +   * [resource] - Name of the resource the `Policy` is set on.
 | 
| +   * Value must have pattern "^organizations/[^/]+$".
 | 
| +   *
 | 
| +   * Completes with a [OrgPolicy].
 | 
| +   *
 | 
| +   * Completes with a [commons.ApiRequestError] if the API endpoint returned an
 | 
| +   * error.
 | 
| +   *
 | 
| +   * If the used [http.Client] completes with an error when making a REST call,
 | 
| +   * this method will complete with the same error.
 | 
| +   */
 | 
| +  async.Future<OrgPolicy> getOrgPolicy(GetOrgPolicyRequest request, core.String resource) {
 | 
| +    var _url = null;
 | 
| +    var _queryParams = new core.Map();
 | 
| +    var _uploadMedia = null;
 | 
| +    var _uploadOptions = null;
 | 
| +    var _downloadOptions = commons.DownloadOptions.Metadata;
 | 
| +    var _body = null;
 | 
| +
 | 
| +    if (request != null) {
 | 
| +      _body = convert.JSON.encode((request).toJson());
 | 
| +    }
 | 
| +    if (resource == null) {
 | 
| +      throw new core.ArgumentError("Parameter resource is required.");
 | 
| +    }
 | 
| +
 | 
| +    _url = 'v1beta1/' + commons.Escaper.ecapeVariableReserved('$resource') + ':getOrgPolicy';
 | 
| +
 | 
| +    var _response = _requester.request(_url,
 | 
| +                                       "POST",
 | 
| +                                       body: _body,
 | 
| +                                       queryParams: _queryParams,
 | 
| +                                       uploadOptions: _uploadOptions,
 | 
| +                                       uploadMedia: _uploadMedia,
 | 
| +                                       downloadOptions: _downloadOptions);
 | 
| +    return _response.then((data) => new OrgPolicy.fromJson(data));
 | 
| +  }
 | 
| +
 | 
| +  /**
 | 
| +   * Gets a `Policy` on a resource.
 | 
| +   *
 | 
| +   * If no `Policy` is set on the resource, a `Policy` is returned with default
 | 
| +   * values including `POLICY_TYPE_NOT_SET` for the `policy_type oneof`. The
 | 
| +   * `etag` value can be used with `SetOrgPolicy()` to create or update a
 | 
| +   * `Policy` during read-modify-write.
 | 
| +   *
 | 
| +   * [request] - The metadata request object.
 | 
| +   *
 | 
| +   * Request parameters:
 | 
| +   *
 | 
| +   * [resource] - Name of the resource the `Policy` is set on.
 | 
| +   * Value must have pattern "^organizations/[^/]+$".
 | 
| +   *
 | 
| +   * Completes with a [OrgPolicy].
 | 
| +   *
 | 
| +   * Completes with a [commons.ApiRequestError] if the API endpoint returned an
 | 
| +   * error.
 | 
| +   *
 | 
| +   * If the used [http.Client] completes with an error when making a REST call,
 | 
| +   * this method will complete with the same error.
 | 
| +   */
 | 
| +  async.Future<OrgPolicy> getOrgPolicyV1(GetOrgPolicyRequest request, core.String resource) {
 | 
| +    var _url = null;
 | 
| +    var _queryParams = new core.Map();
 | 
| +    var _uploadMedia = null;
 | 
| +    var _uploadOptions = null;
 | 
| +    var _downloadOptions = commons.DownloadOptions.Metadata;
 | 
| +    var _body = null;
 | 
| +
 | 
| +    if (request != null) {
 | 
| +      _body = convert.JSON.encode((request).toJson());
 | 
| +    }
 | 
| +    if (resource == null) {
 | 
| +      throw new core.ArgumentError("Parameter resource is required.");
 | 
| +    }
 | 
| +
 | 
| +    _url = 'v1beta1/' + commons.Escaper.ecapeVariableReserved('$resource') + ':getOrgPolicyV1';
 | 
| +
 | 
| +    var _response = _requester.request(_url,
 | 
| +                                       "POST",
 | 
| +                                       body: _body,
 | 
| +                                       queryParams: _queryParams,
 | 
| +                                       uploadOptions: _uploadOptions,
 | 
| +                                       uploadMedia: _uploadMedia,
 | 
| +                                       downloadOptions: _downloadOptions);
 | 
| +    return _response.then((data) => new OrgPolicy.fromJson(data));
 | 
| +  }
 | 
| +
 | 
| +  /**
 | 
| +   * Lists Organization resources that are visible to the user and satisfy
 | 
| +   * the specified filter. This method returns Organizations in an unspecified
 | 
| +   * order. New Organizations do not necessarily appear at the end of the list.
 | 
| +   *
 | 
| +   * Request parameters:
 | 
| +   *
 | 
| +   * [pageSize] - The maximum number of Organizations to return in the response.
 | 
| +   * This field is optional.
 | 
| +   *
 | 
| +   * [filter] - An optional query string used to filter the Organizations to
 | 
| +   * return in
 | 
| +   * the response. Filter rules are case-insensitive.
 | 
| +   *
 | 
| +   *
 | 
| +   * Organizations may be filtered by `owner.directoryCustomerId` or by
 | 
| +   * `domain`, where the domain is a Google for Work domain, for example:
 | 
| +   *
 | 
| +   * |Filter|Description|
 | 
| +   * |------|-----------|
 | 
| +   * |owner.directorycustomerid:123456789|Organizations with
 | 
| +   * `owner.directory_customer_id` equal to `123456789`.|
 | 
| +   * |domain:google.com|Organizations corresponding to the domain `google.com`.|
 | 
| +   *
 | 
| +   * This field is optional.
 | 
| +   *
 | 
| +   * [pageToken] - A pagination token returned from a previous call to
 | 
| +   * `ListOrganizations`
 | 
| +   * that indicates from where listing should continue.
 | 
| +   * This field is optional.
 | 
| +   *
 | 
| +   * Completes with a [ListOrganizationsResponse].
 | 
| +   *
 | 
| +   * Completes with a [commons.ApiRequestError] if the API endpoint returned an
 | 
| +   * error.
 | 
| +   *
 | 
| +   * If the used [http.Client] completes with an error when making a REST call,
 | 
| +   * this method will complete with the same error.
 | 
| +   */
 | 
| +  async.Future<ListOrganizationsResponse> list({core.int pageSize, core.String filter, core.String pageToken}) {
 | 
| +    var _url = null;
 | 
| +    var _queryParams = new core.Map();
 | 
| +    var _uploadMedia = null;
 | 
| +    var _uploadOptions = null;
 | 
| +    var _downloadOptions = commons.DownloadOptions.Metadata;
 | 
| +    var _body = null;
 | 
| +
 | 
| +    if (pageSize != null) {
 | 
| +      _queryParams["pageSize"] = ["${pageSize}"];
 | 
| +    }
 | 
| +    if (filter != null) {
 | 
| +      _queryParams["filter"] = [filter];
 | 
| +    }
 | 
| +    if (pageToken != null) {
 | 
| +      _queryParams["pageToken"] = [pageToken];
 | 
| +    }
 | 
| +
 | 
| +    _url = 'v1beta1/organizations';
 | 
| +
 | 
| +    var _response = _requester.request(_url,
 | 
| +                                       "GET",
 | 
| +                                       body: _body,
 | 
| +                                       queryParams: _queryParams,
 | 
| +                                       uploadOptions: _uploadOptions,
 | 
| +                                       uploadMedia: _uploadMedia,
 | 
| +                                       downloadOptions: _downloadOptions);
 | 
| +    return _response.then((data) => new ListOrganizationsResponse.fromJson(data));
 | 
| +  }
 | 
| +
 | 
| +  /**
 | 
| +   * Lists `Constraints` that could be applied on the specified resource.
 | 
| +   *
 | 
| +   * [request] - The metadata request object.
 | 
| +   *
 | 
| +   * Request parameters:
 | 
| +   *
 | 
| +   * [resource] - Name of the resource to list `Constraints` for.
 | 
| +   * Value must have pattern "^organizations/[^/]+$".
 | 
| +   *
 | 
| +   * Completes with a [ListAvailableOrgPolicyConstraintsResponse].
 | 
| +   *
 | 
| +   * Completes with a [commons.ApiRequestError] if the API endpoint returned an
 | 
| +   * error.
 | 
| +   *
 | 
| +   * If the used [http.Client] completes with an error when making a REST call,
 | 
| +   * this method will complete with the same error.
 | 
| +   */
 | 
| +  async.Future<ListAvailableOrgPolicyConstraintsResponse> listAvailableOrgPolicyConstraints(ListAvailableOrgPolicyConstraintsRequest request, core.String resource) {
 | 
| +    var _url = null;
 | 
| +    var _queryParams = new core.Map();
 | 
| +    var _uploadMedia = null;
 | 
| +    var _uploadOptions = null;
 | 
| +    var _downloadOptions = commons.DownloadOptions.Metadata;
 | 
| +    var _body = null;
 | 
| +
 | 
| +    if (request != null) {
 | 
| +      _body = convert.JSON.encode((request).toJson());
 | 
| +    }
 | 
| +    if (resource == null) {
 | 
| +      throw new core.ArgumentError("Parameter resource is required.");
 | 
| +    }
 | 
| +
 | 
| +    _url = 'v1beta1/' + commons.Escaper.ecapeVariableReserved('$resource') + ':listAvailableOrgPolicyConstraints';
 | 
| +
 | 
| +    var _response = _requester.request(_url,
 | 
| +                                       "POST",
 | 
| +                                       body: _body,
 | 
| +                                       queryParams: _queryParams,
 | 
| +                                       uploadOptions: _uploadOptions,
 | 
| +                                       uploadMedia: _uploadMedia,
 | 
| +                                       downloadOptions: _downloadOptions);
 | 
| +    return _response.then((data) => new ListAvailableOrgPolicyConstraintsResponse.fromJson(data));
 | 
| +  }
 | 
| +
 | 
| +  /**
 | 
| +   * Lists all the `Policies` set for a particular resource.
 | 
| +   *
 | 
| +   * [request] - The metadata request object.
 | 
| +   *
 | 
| +   * Request parameters:
 | 
| +   *
 | 
| +   * [resource] - Name of the resource to list Policies for.
 | 
| +   * Value must have pattern "^organizations/[^/]+$".
 | 
| +   *
 | 
| +   * Completes with a [ListOrgPoliciesResponse].
 | 
| +   *
 | 
| +   * Completes with a [commons.ApiRequestError] if the API endpoint returned an
 | 
| +   * error.
 | 
| +   *
 | 
| +   * If the used [http.Client] completes with an error when making a REST call,
 | 
| +   * this method will complete with the same error.
 | 
| +   */
 | 
| +  async.Future<ListOrgPoliciesResponse> listOrgPolicies(ListOrgPoliciesRequest request, core.String resource) {
 | 
| +    var _url = null;
 | 
| +    var _queryParams = new core.Map();
 | 
| +    var _uploadMedia = null;
 | 
| +    var _uploadOptions = null;
 | 
| +    var _downloadOptions = commons.DownloadOptions.Metadata;
 | 
| +    var _body = null;
 | 
| +
 | 
| +    if (request != null) {
 | 
| +      _body = convert.JSON.encode((request).toJson());
 | 
|      }
 | 
| -    if (organizationId != null) {
 | 
| -      _queryParams["organizationId"] = [organizationId];
 | 
| +    if (resource == null) {
 | 
| +      throw new core.ArgumentError("Parameter resource is required.");
 | 
|      }
 | 
|  
 | 
| -    _url = 'v1beta1/' + commons.Escaper.ecapeVariableReserved('$name');
 | 
| +    _url = 'v1beta1/' + commons.Escaper.ecapeVariableReserved('$resource') + ':listOrgPolicies';
 | 
|  
 | 
|      var _response = _requester.request(_url,
 | 
| -                                       "GET",
 | 
| +                                       "POST",
 | 
|                                         body: _body,
 | 
|                                         queryParams: _queryParams,
 | 
|                                         uploadOptions: _uploadOptions,
 | 
|                                         uploadMedia: _uploadMedia,
 | 
|                                         downloadOptions: _downloadOptions);
 | 
| -    return _response.then((data) => new Organization.fromJson(data));
 | 
| +    return _response.then((data) => new ListOrgPoliciesResponse.fromJson(data));
 | 
|    }
 | 
|  
 | 
|    /**
 | 
| -   * Gets the access control policy for an Organization resource. May be empty
 | 
| -   * if no such policy or resource exists. The `resource` field should be the
 | 
| -   * organization's resource name, e.g. "organizations/123".
 | 
| +   * Sets the access control policy on an Organization resource. Replaces any
 | 
| +   * existing policy. The `resource` field should be the organization's resource
 | 
| +   * name, e.g. "organizations/123".
 | 
|     *
 | 
|     * [request] - The metadata request object.
 | 
|     *
 | 
|     * Request parameters:
 | 
|     *
 | 
|     * [resource] - REQUIRED: The resource for which the policy is being
 | 
| -   * requested.
 | 
| +   * specified.
 | 
|     * See the operation documentation for the appropriate value for this field.
 | 
|     * Value must have pattern "^organizations/[^/]+$".
 | 
|     *
 | 
| @@ -111,7 +605,7 @@ class OrganizationsResourceApi {
 | 
|     * If the used [http.Client] completes with an error when making a REST call,
 | 
|     * this method will complete with the same error.
 | 
|     */
 | 
| -  async.Future<Policy> getIamPolicy(GetIamPolicyRequest request, core.String resource) {
 | 
| +  async.Future<Policy> setIamPolicy(SetIamPolicyRequest request, core.String resource) {
 | 
|      var _url = null;
 | 
|      var _queryParams = new core.Map();
 | 
|      var _uploadMedia = null;
 | 
| @@ -126,7 +620,7 @@ class OrganizationsResourceApi {
 | 
|        throw new core.ArgumentError("Parameter resource is required.");
 | 
|      }
 | 
|  
 | 
| -    _url = 'v1beta1/' + commons.Escaper.ecapeVariableReserved('$resource') + ':getIamPolicy';
 | 
| +    _url = 'v1beta1/' + commons.Escaper.ecapeVariableReserved('$resource') + ':setIamPolicy';
 | 
|  
 | 
|      var _response = _requester.request(_url,
 | 
|                                         "POST",
 | 
| @@ -139,37 +633,20 @@ class OrganizationsResourceApi {
 | 
|    }
 | 
|  
 | 
|    /**
 | 
| -   * Lists Organization resources that are visible to the user and satisfy
 | 
| -   * the specified filter. This method returns Organizations in an unspecified
 | 
| -   * order. New Organizations do not necessarily appear at the end of the list.
 | 
| -   *
 | 
| -   * Request parameters:
 | 
| -   *
 | 
| -   * [pageSize] - The maximum number of Organizations to return in the response.
 | 
| -   * This field is optional.
 | 
| -   *
 | 
| -   * [filter] - An optional query string used to filter the Organizations to
 | 
| -   * return in
 | 
| -   * the response. Filter rules are case-insensitive.
 | 
| +   * Updates the specified `Policy` on the resource. Creates a new `Policy` for
 | 
| +   * that `Constraint` on the resource if one does not exist.
 | 
|     *
 | 
| +   * Not supplying an `etag` on the request `Policy` results in an unconditional
 | 
| +   * write of the `Policy`.
 | 
|     *
 | 
| -   * Organizations may be filtered by `owner.directoryCustomerId` or by
 | 
| -   * `domain`, where the domain is a Google for Work domain, for example:
 | 
| -   *
 | 
| -   * |Filter|Description|
 | 
| -   * |------|-----------|
 | 
| -   * |owner.directorycustomerid:123456789|Organizations with
 | 
| -   * `owner.directory_customer_id` equal to `123456789`.|
 | 
| -   * |domain:google.com|Organizations corresponding to the domain `google.com`.|
 | 
| +   * [request] - The metadata request object.
 | 
|     *
 | 
| -   * This field is optional.
 | 
| +   * Request parameters:
 | 
|     *
 | 
| -   * [pageToken] - A pagination token returned from a previous call to
 | 
| -   * `ListOrganizations`
 | 
| -   * that indicates from where listing should continue.
 | 
| -   * This field is optional.
 | 
| +   * [resource] - Resource name of the resource to attach the `Policy`.
 | 
| +   * Value must have pattern "^organizations/[^/]+$".
 | 
|     *
 | 
| -   * Completes with a [ListOrganizationsResponse].
 | 
| +   * Completes with a [OrgPolicy].
 | 
|     *
 | 
|     * Completes with a [commons.ApiRequestError] if the API endpoint returned an
 | 
|     * error.
 | 
| @@ -177,7 +654,7 @@ class OrganizationsResourceApi {
 | 
|     * If the used [http.Client] completes with an error when making a REST call,
 | 
|     * this method will complete with the same error.
 | 
|     */
 | 
| -  async.Future<ListOrganizationsResponse> list({core.int pageSize, core.String filter, core.String pageToken}) {
 | 
| +  async.Future<OrgPolicy> setOrgPolicy(SetOrgPolicyRequest request, core.String resource) {
 | 
|      var _url = null;
 | 
|      var _queryParams = new core.Map();
 | 
|      var _uploadMedia = null;
 | 
| @@ -185,43 +662,40 @@ class OrganizationsResourceApi {
 | 
|      var _downloadOptions = commons.DownloadOptions.Metadata;
 | 
|      var _body = null;
 | 
|  
 | 
| -    if (pageSize != null) {
 | 
| -      _queryParams["pageSize"] = ["${pageSize}"];
 | 
| -    }
 | 
| -    if (filter != null) {
 | 
| -      _queryParams["filter"] = [filter];
 | 
| +    if (request != null) {
 | 
| +      _body = convert.JSON.encode((request).toJson());
 | 
|      }
 | 
| -    if (pageToken != null) {
 | 
| -      _queryParams["pageToken"] = [pageToken];
 | 
| +    if (resource == null) {
 | 
| +      throw new core.ArgumentError("Parameter resource is required.");
 | 
|      }
 | 
|  
 | 
| -    _url = 'v1beta1/organizations';
 | 
| +    _url = 'v1beta1/' + commons.Escaper.ecapeVariableReserved('$resource') + ':setOrgPolicy';
 | 
|  
 | 
|      var _response = _requester.request(_url,
 | 
| -                                       "GET",
 | 
| +                                       "POST",
 | 
|                                         body: _body,
 | 
|                                         queryParams: _queryParams,
 | 
|                                         uploadOptions: _uploadOptions,
 | 
|                                         uploadMedia: _uploadMedia,
 | 
|                                         downloadOptions: _downloadOptions);
 | 
| -    return _response.then((data) => new ListOrganizationsResponse.fromJson(data));
 | 
| +    return _response.then((data) => new OrgPolicy.fromJson(data));
 | 
|    }
 | 
|  
 | 
|    /**
 | 
| -   * Sets the access control policy on an Organization resource. Replaces any
 | 
| -   * existing policy. The `resource` field should be the organization's resource
 | 
| -   * name, e.g. "organizations/123".
 | 
| +   * Updates the specified `Policy` on the resource. Creates a new `Policy` for
 | 
| +   * that `Constraint` on the resource if one does not exist.
 | 
| +   *
 | 
| +   * Not supplying an `etag` on the request `Policy` results in an unconditional
 | 
| +   * write of the `Policy`.
 | 
|     *
 | 
|     * [request] - The metadata request object.
 | 
|     *
 | 
|     * Request parameters:
 | 
|     *
 | 
| -   * [resource] - REQUIRED: The resource for which the policy is being
 | 
| -   * specified.
 | 
| -   * See the operation documentation for the appropriate value for this field.
 | 
| +   * [resource] - Resource name of the resource to attach the `Policy`.
 | 
|     * Value must have pattern "^organizations/[^/]+$".
 | 
|     *
 | 
| -   * Completes with a [Policy].
 | 
| +   * Completes with a [OrgPolicy].
 | 
|     *
 | 
|     * Completes with a [commons.ApiRequestError] if the API endpoint returned an
 | 
|     * error.
 | 
| @@ -229,7 +703,7 @@ class OrganizationsResourceApi {
 | 
|     * If the used [http.Client] completes with an error when making a REST call,
 | 
|     * this method will complete with the same error.
 | 
|     */
 | 
| -  async.Future<Policy> setIamPolicy(SetIamPolicyRequest request, core.String resource) {
 | 
| +  async.Future<OrgPolicy> setOrgPolicyV1(SetOrgPolicyRequest request, core.String resource) {
 | 
|      var _url = null;
 | 
|      var _queryParams = new core.Map();
 | 
|      var _uploadMedia = null;
 | 
| @@ -244,7 +718,7 @@ class OrganizationsResourceApi {
 | 
|        throw new core.ArgumentError("Parameter resource is required.");
 | 
|      }
 | 
|  
 | 
| -    _url = 'v1beta1/' + commons.Escaper.ecapeVariableReserved('$resource') + ':setIamPolicy';
 | 
| +    _url = 'v1beta1/' + commons.Escaper.ecapeVariableReserved('$resource') + ':setOrgPolicyV1';
 | 
|  
 | 
|      var _response = _requester.request(_url,
 | 
|                                         "POST",
 | 
| @@ -253,7 +727,7 @@ class OrganizationsResourceApi {
 | 
|                                         uploadOptions: _uploadOptions,
 | 
|                                         uploadMedia: _uploadMedia,
 | 
|                                         downloadOptions: _downloadOptions);
 | 
| -    return _response.then((data) => new Policy.fromJson(data));
 | 
| +    return _response.then((data) => new OrgPolicy.fromJson(data));
 | 
|    }
 | 
|  
 | 
|    /**
 | 
| @@ -648,7 +1122,7 @@ class ProjectsResourceApi {
 | 
|     * |NAME:howl|Equivalent to above.|
 | 
|     * |labels.color:*|The project has the label `color`.|
 | 
|     * |labels.color:red|The project's label `color` has the value `red`.|
 | 
| -   * |labels.color:red label.size:big|The project's label `color` has the
 | 
| +   * |labels.color:red labels.size:big|The project's label `color` has the
 | 
|     * value `red` and its label `size` has the value `big`.
 | 
|     *
 | 
|     * Optional.
 | 
| @@ -717,15 +1191,14 @@ class ProjectsResourceApi {
 | 
|     * explicitly accept the invitation.
 | 
|     *
 | 
|     * + Invitations to grant the owner role cannot be sent using
 | 
| -   * `setIamPolicy()`;
 | 
| -   * they must be sent only using the Cloud Platform Console.
 | 
| +   * `setIamPolicy()`; they must be sent only using the Cloud Platform Console.
 | 
|     *
 | 
|     * + Membership changes that leave the project without any owners that have
 | 
|     * accepted the Terms of Service (ToS) will be rejected.
 | 
|     *
 | 
|     * + There must be at least one owner who has accepted the Terms of
 | 
|     * Service (ToS) agreement in the policy. Calling `setIamPolicy()` to
 | 
| -   * to remove the last ToS-accepted owner from the policy will fail. This
 | 
| +   * remove the last ToS-accepted owner from the policy will fail. This
 | 
|     * restriction also applies to legacy projects that no longer have owners
 | 
|     * who have accepted the ToS. Edits to IAM policies will be rejected until
 | 
|     * the lack of a ToS-accepting owner is rectified.
 | 
| @@ -953,6 +1426,153 @@ class Ancestor {
 | 
|    }
 | 
|  }
 | 
|  
 | 
| +/**
 | 
| + * Specifies the audit configuration for a service.
 | 
| + * The configuration determines which permission types are logged, and what
 | 
| + * identities, if any, are exempted from logging.
 | 
| + * An AuditConifg must have one or more AuditLogConfigs.
 | 
| + *
 | 
| + * If there are AuditConfigs for both `allServices` and a specific service,
 | 
| + * the union of the two AuditConfigs is used for that service: the log_types
 | 
| + * specified in each AuditConfig are enabled, and the exempted_members in each
 | 
| + * AuditConfig are exempted.
 | 
| + * Example Policy with multiple AuditConfigs:
 | 
| + * {
 | 
| + *   "audit_configs": [
 | 
| + *     {
 | 
| + *       "service": "allServices"
 | 
| + *       "audit_log_configs": [
 | 
| + *         {
 | 
| + *           "log_type": "DATA_READ",
 | 
| + *           "exempted_members": [
 | 
| + *             "user:foo@gmail.com"
 | 
| + *           ]
 | 
| + *         },
 | 
| + *         {
 | 
| + *           "log_type": "DATA_WRITE",
 | 
| + *         },
 | 
| + *         {
 | 
| + *           "log_type": "ADMIN_READ",
 | 
| + *         }
 | 
| + *       ]
 | 
| + *     },
 | 
| + *     {
 | 
| + *       "service": "fooservice@googleapis.com"
 | 
| + *       "audit_log_configs": [
 | 
| + *         {
 | 
| + *           "log_type": "DATA_READ",
 | 
| + *         },
 | 
| + *         {
 | 
| + *           "log_type": "DATA_WRITE",
 | 
| + *           "exempted_members": [
 | 
| + *             "user:bar@gmail.com"
 | 
| + *           ]
 | 
| + *         }
 | 
| + *       ]
 | 
| + *     }
 | 
| + *   ]
 | 
| + * }
 | 
| + * For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
 | 
| + * logging. It also exempts foo@gmail.com from DATA_READ logging, and
 | 
| + * bar@gmail.com from DATA_WRITE logging.
 | 
| + */
 | 
| +class AuditConfig {
 | 
| +  /**
 | 
| +   * The configuration for logging of each type of permission.
 | 
| +   * Next ID: 4
 | 
| +   */
 | 
| +  core.List<AuditLogConfig> auditLogConfigs;
 | 
| +  /**
 | 
| +   * Specifies a service that will be enabled for audit logging.
 | 
| +   * For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
 | 
| +   * `allServices` is a special value that covers all services.
 | 
| +   */
 | 
| +  core.String service;
 | 
| +
 | 
| +  AuditConfig();
 | 
| +
 | 
| +  AuditConfig.fromJson(core.Map _json) {
 | 
| +    if (_json.containsKey("auditLogConfigs")) {
 | 
| +      auditLogConfigs = _json["auditLogConfigs"].map((value) => new AuditLogConfig.fromJson(value)).toList();
 | 
| +    }
 | 
| +    if (_json.containsKey("service")) {
 | 
| +      service = _json["service"];
 | 
| +    }
 | 
| +  }
 | 
| +
 | 
| +  core.Map toJson() {
 | 
| +    var _json = new core.Map();
 | 
| +    if (auditLogConfigs != null) {
 | 
| +      _json["auditLogConfigs"] = auditLogConfigs.map((value) => (value).toJson()).toList();
 | 
| +    }
 | 
| +    if (service != null) {
 | 
| +      _json["service"] = service;
 | 
| +    }
 | 
| +    return _json;
 | 
| +  }
 | 
| +}
 | 
| +
 | 
| +/**
 | 
| + * Provides the configuration for logging a type of permissions.
 | 
| + * Example:
 | 
| + *
 | 
| + *     {
 | 
| + *       "audit_log_configs": [
 | 
| + *         {
 | 
| + *           "log_type": "DATA_READ",
 | 
| + *           "exempted_members": [
 | 
| + *             "user:foo@gmail.com"
 | 
| + *           ]
 | 
| + *         },
 | 
| + *         {
 | 
| + *           "log_type": "DATA_WRITE",
 | 
| + *         }
 | 
| + *       ]
 | 
| + *     }
 | 
| + *
 | 
| + * This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
 | 
| + * foo@gmail.com from DATA_READ logging.
 | 
| + */
 | 
| +class AuditLogConfig {
 | 
| +  /**
 | 
| +   * Specifies the identities that do not cause logging for this type of
 | 
| +   * permission.
 | 
| +   * Follows the same format of Binding.members.
 | 
| +   */
 | 
| +  core.List<core.String> exemptedMembers;
 | 
| +  /**
 | 
| +   * The log type that this config enables.
 | 
| +   * Possible string values are:
 | 
| +   * - "LOG_TYPE_UNSPECIFIED" : Default case. Should never be this.
 | 
| +   * - "ADMIN_READ" : Admin reads. Example: CloudIAM getIamPolicy
 | 
| +   * - "DATA_WRITE" : Data writes. Example: CloudSQL Users create
 | 
| +   * - "DATA_READ" : Data reads. Example: CloudSQL Users list
 | 
| +   */
 | 
| +  core.String logType;
 | 
| +
 | 
| +  AuditLogConfig();
 | 
| +
 | 
| +  AuditLogConfig.fromJson(core.Map _json) {
 | 
| +    if (_json.containsKey("exemptedMembers")) {
 | 
| +      exemptedMembers = _json["exemptedMembers"];
 | 
| +    }
 | 
| +    if (_json.containsKey("logType")) {
 | 
| +      logType = _json["logType"];
 | 
| +    }
 | 
| +  }
 | 
| +
 | 
| +  core.Map toJson() {
 | 
| +    var _json = new core.Map();
 | 
| +    if (exemptedMembers != null) {
 | 
| +      _json["exemptedMembers"] = exemptedMembers;
 | 
| +    }
 | 
| +    if (logType != null) {
 | 
| +      _json["logType"] = logType;
 | 
| +    }
 | 
| +    return _json;
 | 
| +  }
 | 
| +}
 | 
| +
 | 
|  /** Associates `members` with a `role`. */
 | 
|  class Binding {
 | 
|    /**
 | 
| @@ -1010,6 +1630,243 @@ class Binding {
 | 
|  }
 | 
|  
 | 
|  /**
 | 
| + * A `Constraint` that is either enforced or not.
 | 
| + *
 | 
| + * For example a constraint `constraints/compute.disableSerialPortAccess`.
 | 
| + * If it is enforced on a VM instance, serial port connections will not be
 | 
| + * opened to that instance.
 | 
| + */
 | 
| +class BooleanConstraint {
 | 
| +
 | 
| +  BooleanConstraint();
 | 
| +
 | 
| +  BooleanConstraint.fromJson(core.Map _json) {
 | 
| +  }
 | 
| +
 | 
| +  core.Map toJson() {
 | 
| +    var _json = new core.Map();
 | 
| +    return _json;
 | 
| +  }
 | 
| +}
 | 
| +
 | 
| +/**
 | 
| + * Used in `policy_type` to specify how `boolean_policy` will behave at this
 | 
| + * resource.
 | 
| + */
 | 
| +class BooleanPolicy {
 | 
| +  /**
 | 
| +   * If `true`, then the `Policy` is enforced. If `false`, then any
 | 
| +   * configuration is acceptable.
 | 
| +   *
 | 
| +   * Suppose you have a `Constraint`
 | 
| +   * `constraints/compute.disableSerialPortAccess`
 | 
| +   * with `constraint_default` set to `ALLOW`. A `Policy` for that
 | 
| +   * `Constraint` exhibits the following behavior:
 | 
| +   *   - If the `Policy` at this resource has enforced set to `false`, serial
 | 
| +   *     port connection attempts will be allowed.
 | 
| +   *   - If the `Policy` at this resource has enforced set to `true`, serial
 | 
| +   *     port connection attempts will be refused.
 | 
| +   *   - If the `Policy` at this resource is `RestoreDefault`, serial port
 | 
| +   *     connection attempts will be allowed.
 | 
| +   *   - If no `Policy` is set at this resource or anywhere higher in the
 | 
| +   *     resource hierarchy, serial port connection attempts will be allowed.
 | 
| +   *   - If no `Policy` is set at this resource, but one exists higher in the
 | 
| +   *     resource hierarchy, the behavior is as if the`Policy` were set at
 | 
| +   *     this resource.
 | 
| +   *
 | 
| +   * The following examples demonstrate the different possible layerings:
 | 
| +   *
 | 
| +   * Example 1 (nearest `Constraint` wins):
 | 
| +   *   `organizations/foo` has a `Policy` with:
 | 
| +   *     {enforced: false}
 | 
| +   *   `projects/bar` has no `Policy` set.
 | 
| +   * The constraint at `projects/bar` and `organizations/foo` will not be
 | 
| +   * enforced.
 | 
| +   *
 | 
| +   * Example 2 (enforcement gets replaced):
 | 
| +   *   `organizations/foo` has a `Policy` with:
 | 
| +   *     {enforced: false}
 | 
| +   *   `projects/bar` has a `Policy` with:
 | 
| +   *     {enforced: true}
 | 
| +   * The constraint at `organizations/foo` is not enforced.
 | 
| +   * The constraint at `projects/bar` is enforced.
 | 
| +   *
 | 
| +   * Example 3 (RestoreDefault):
 | 
| +   *   `organizations/foo` has a `Policy` with:
 | 
| +   *     {enforced: true}
 | 
| +   *   `projects/bar` has a `Policy` with:
 | 
| +   *     {RestoreDefault: {}}
 | 
| +   * The constraint at `organizations/foo` is enforced.
 | 
| +   * The constraint at `projects/bar` is not enforced, because
 | 
| +   * `constraint_default` for the `Constraint` is `ALLOW`.
 | 
| +   */
 | 
| +  core.bool enforced;
 | 
| +
 | 
| +  BooleanPolicy();
 | 
| +
 | 
| +  BooleanPolicy.fromJson(core.Map _json) {
 | 
| +    if (_json.containsKey("enforced")) {
 | 
| +      enforced = _json["enforced"];
 | 
| +    }
 | 
| +  }
 | 
| +
 | 
| +  core.Map toJson() {
 | 
| +    var _json = new core.Map();
 | 
| +    if (enforced != null) {
 | 
| +      _json["enforced"] = enforced;
 | 
| +    }
 | 
| +    return _json;
 | 
| +  }
 | 
| +}
 | 
| +
 | 
| +/** The request sent to the ClearOrgPolicy method. */
 | 
| +class ClearOrgPolicyRequest {
 | 
| +  /** Name of the `Constraint` of the `Policy` to clear. */
 | 
| +  core.String constraint;
 | 
| +  /**
 | 
| +   * The current version, for concurrency control. Not sending an `etag`
 | 
| +   * will cause the `Policy` to be cleared blindly.
 | 
| +   */
 | 
| +  core.String etag;
 | 
| +  core.List<core.int> get etagAsBytes {
 | 
| +    return convert.BASE64.decode(etag);
 | 
| +  }
 | 
| +
 | 
| +  void set etagAsBytes(core.List<core.int> _bytes) {
 | 
| +    etag = convert.BASE64.encode(_bytes).replaceAll("/", "_").replaceAll("+", "-");
 | 
| +  }
 | 
| +
 | 
| +  ClearOrgPolicyRequest();
 | 
| +
 | 
| +  ClearOrgPolicyRequest.fromJson(core.Map _json) {
 | 
| +    if (_json.containsKey("constraint")) {
 | 
| +      constraint = _json["constraint"];
 | 
| +    }
 | 
| +    if (_json.containsKey("etag")) {
 | 
| +      etag = _json["etag"];
 | 
| +    }
 | 
| +  }
 | 
| +
 | 
| +  core.Map toJson() {
 | 
| +    var _json = new core.Map();
 | 
| +    if (constraint != null) {
 | 
| +      _json["constraint"] = constraint;
 | 
| +    }
 | 
| +    if (etag != null) {
 | 
| +      _json["etag"] = etag;
 | 
| +    }
 | 
| +    return _json;
 | 
| +  }
 | 
| +}
 | 
| +
 | 
| +/**
 | 
| + * A `Constraint` describes a way in which a resource's configuration can be
 | 
| + * restricted. For example, it controls which cloud services can be activated
 | 
| + * across an organization, or whether a Compute Engine instance can have
 | 
| + * serial port connections established. `Constraints` can be configured by the
 | 
| + * organization's policy adminstrator to fit the needs of the organzation by
 | 
| + * setting Policies for `Constraints` at different locations in the
 | 
| + * organization's resource hierarchy. Policies are inherited down the resource
 | 
| + * hierarchy from higher levels, but can also be overridden. For details about
 | 
| + * the inheritance rules please read about
 | 
| + * Policies.
 | 
| + *
 | 
| + * `Constraints` have a default behavior determined by the `constraint_default`
 | 
| + * field, which is the enforcement behavior that is used in the absence of a
 | 
| + * `Policy` being defined or inherited for the resource in question.
 | 
| + */
 | 
| +class Constraint {
 | 
| +  /** Defines this constraint as being a BooleanConstraint. */
 | 
| +  BooleanConstraint booleanConstraint;
 | 
| +  /**
 | 
| +   * The evaluation behavior of this constraint in the absense of 'Policy'.
 | 
| +   * Possible string values are:
 | 
| +   * - "CONSTRAINT_DEFAULT_UNSPECIFIED" : This is only used for distinguishing
 | 
| +   * unset values and should never be
 | 
| +   * used.
 | 
| +   * - "ALLOW" : Indicate that all values are allowed for list constraints.
 | 
| +   * Indicate that enforcement is off for boolean constraints.
 | 
| +   * - "DENY" : Indicate that all values are denied for list constraints.
 | 
| +   * Indicate that enforcement is on for boolean constraints.
 | 
| +   */
 | 
| +  core.String constraintDefault;
 | 
| +  /**
 | 
| +   * Detailed description of what this `Constraint` controls as well as how and
 | 
| +   * where it is enforced.
 | 
| +   *
 | 
| +   * Mutable.
 | 
| +   */
 | 
| +  core.String description;
 | 
| +  /**
 | 
| +   * The human readable name.
 | 
| +   *
 | 
| +   * Mutable.
 | 
| +   */
 | 
| +  core.String displayName;
 | 
| +  /** Defines this constraint as being a ListConstraint. */
 | 
| +  ListConstraint listConstraint;
 | 
| +  /**
 | 
| +   * Immutable value, required to globally be unique. For example,
 | 
| +   * `constraints/serviceuser.services`
 | 
| +   */
 | 
| +  core.String name;
 | 
| +  /** Version of the `Constraint`. Default version is 0; */
 | 
| +  core.int version;
 | 
| +
 | 
| +  Constraint();
 | 
| +
 | 
| +  Constraint.fromJson(core.Map _json) {
 | 
| +    if (_json.containsKey("booleanConstraint")) {
 | 
| +      booleanConstraint = new BooleanConstraint.fromJson(_json["booleanConstraint"]);
 | 
| +    }
 | 
| +    if (_json.containsKey("constraintDefault")) {
 | 
| +      constraintDefault = _json["constraintDefault"];
 | 
| +    }
 | 
| +    if (_json.containsKey("description")) {
 | 
| +      description = _json["description"];
 | 
| +    }
 | 
| +    if (_json.containsKey("displayName")) {
 | 
| +      displayName = _json["displayName"];
 | 
| +    }
 | 
| +    if (_json.containsKey("listConstraint")) {
 | 
| +      listConstraint = new ListConstraint.fromJson(_json["listConstraint"]);
 | 
| +    }
 | 
| +    if (_json.containsKey("name")) {
 | 
| +      name = _json["name"];
 | 
| +    }
 | 
| +    if (_json.containsKey("version")) {
 | 
| +      version = _json["version"];
 | 
| +    }
 | 
| +  }
 | 
| +
 | 
| +  core.Map toJson() {
 | 
| +    var _json = new core.Map();
 | 
| +    if (booleanConstraint != null) {
 | 
| +      _json["booleanConstraint"] = (booleanConstraint).toJson();
 | 
| +    }
 | 
| +    if (constraintDefault != null) {
 | 
| +      _json["constraintDefault"] = constraintDefault;
 | 
| +    }
 | 
| +    if (description != null) {
 | 
| +      _json["description"] = description;
 | 
| +    }
 | 
| +    if (displayName != null) {
 | 
| +      _json["displayName"] = displayName;
 | 
| +    }
 | 
| +    if (listConstraint != null) {
 | 
| +      _json["listConstraint"] = (listConstraint).toJson();
 | 
| +    }
 | 
| +    if (name != null) {
 | 
| +      _json["name"] = name;
 | 
| +    }
 | 
| +    if (version != null) {
 | 
| +      _json["version"] = version;
 | 
| +    }
 | 
| +    return _json;
 | 
| +  }
 | 
| +}
 | 
| +
 | 
| +/**
 | 
|   * A generic empty message that you can re-use to avoid defining duplicated
 | 
|   * empty messages in your APIs. A typical example is to use it as the request
 | 
|   * or the response type of an API method. For instance:
 | 
| @@ -1110,8 +1967,8 @@ class FolderOperationError {
 | 
|     * deleted.
 | 
|     * - "CYCLE_INTRODUCED_ERROR" : The attempted action would introduce cycle in
 | 
|     * resource path.
 | 
| -   * - "FOLDER_ALREADY_BEING_MOVED" : The attempted action would move a folder
 | 
| -   * that is already being moved.
 | 
| +   * - "FOLDER_BEING_MOVED" : The attempted action would move a folder that is
 | 
| +   * already being moved.
 | 
|     * - "FOLDER_TO_DELETE_NON_EMPTY" : The folder the caller is trying to delete
 | 
|     * contains active resources.
 | 
|     */
 | 
| @@ -1178,6 +2035,28 @@ class GetAncestryResponse {
 | 
|    }
 | 
|  }
 | 
|  
 | 
| +/** The request sent to the GetEffectiveOrgPolicy method. */
 | 
| +class GetEffectiveOrgPolicyRequest {
 | 
| +  /** The name of the `Constraint` to compute the effective `Policy`. */
 | 
| +  core.String constraint;
 | 
| +
 | 
| +  GetEffectiveOrgPolicyRequest();
 | 
| +
 | 
| +  GetEffectiveOrgPolicyRequest.fromJson(core.Map _json) {
 | 
| +    if (_json.containsKey("constraint")) {
 | 
| +      constraint = _json["constraint"];
 | 
| +    }
 | 
| +  }
 | 
| +
 | 
| +  core.Map toJson() {
 | 
| +    var _json = new core.Map();
 | 
| +    if (constraint != null) {
 | 
| +      _json["constraint"] = constraint;
 | 
| +    }
 | 
| +    return _json;
 | 
| +  }
 | 
| +}
 | 
| +
 | 
|  /** Request message for `GetIamPolicy` method. */
 | 
|  class GetIamPolicyRequest {
 | 
|  
 | 
| @@ -1192,6 +2071,209 @@ class GetIamPolicyRequest {
 | 
|    }
 | 
|  }
 | 
|  
 | 
| +/** The request sent to the GetOrgPolicy method. */
 | 
| +class GetOrgPolicyRequest {
 | 
| +  /** Name of the `Constraint` to get the `Policy`. */
 | 
| +  core.String constraint;
 | 
| +
 | 
| +  GetOrgPolicyRequest();
 | 
| +
 | 
| +  GetOrgPolicyRequest.fromJson(core.Map _json) {
 | 
| +    if (_json.containsKey("constraint")) {
 | 
| +      constraint = _json["constraint"];
 | 
| +    }
 | 
| +  }
 | 
| +
 | 
| +  core.Map toJson() {
 | 
| +    var _json = new core.Map();
 | 
| +    if (constraint != null) {
 | 
| +      _json["constraint"] = constraint;
 | 
| +    }
 | 
| +    return _json;
 | 
| +  }
 | 
| +}
 | 
| +
 | 
| +/**
 | 
| + * The request sent to the [ListAvailableOrgPolicyConstraints]
 | 
| + * google.cloud.OrgPolicy.v1.ListAvailableOrgPolicyConstraints] method.
 | 
| + */
 | 
| +class ListAvailableOrgPolicyConstraintsRequest {
 | 
| +  /**
 | 
| +   * Size of the pages to be returned. This is currently unsupported and will
 | 
| +   * be ignored. The server may at any point start using this field to limit
 | 
| +   * page size.
 | 
| +   */
 | 
| +  core.int pageSize;
 | 
| +  /**
 | 
| +   * Page token used to retrieve the next page. This is currently unsupported
 | 
| +   * and will be ignored. The server may at any point start using this field.
 | 
| +   */
 | 
| +  core.String pageToken;
 | 
| +
 | 
| +  ListAvailableOrgPolicyConstraintsRequest();
 | 
| +
 | 
| +  ListAvailableOrgPolicyConstraintsRequest.fromJson(core.Map _json) {
 | 
| +    if (_json.containsKey("pageSize")) {
 | 
| +      pageSize = _json["pageSize"];
 | 
| +    }
 | 
| +    if (_json.containsKey("pageToken")) {
 | 
| +      pageToken = _json["pageToken"];
 | 
| +    }
 | 
| +  }
 | 
| +
 | 
| +  core.Map toJson() {
 | 
| +    var _json = new core.Map();
 | 
| +    if (pageSize != null) {
 | 
| +      _json["pageSize"] = pageSize;
 | 
| +    }
 | 
| +    if (pageToken != null) {
 | 
| +      _json["pageToken"] = pageToken;
 | 
| +    }
 | 
| +    return _json;
 | 
| +  }
 | 
| +}
 | 
| +
 | 
| +/**
 | 
| + * The response returned from the ListAvailableOrgPolicyConstraints method.
 | 
| + * Returns all `Constraints` that could be set at this level of the hierarchy
 | 
| + * (contrast with the response from `ListPolicies`, which returns all policies
 | 
| + * which are set).
 | 
| + */
 | 
| +class ListAvailableOrgPolicyConstraintsResponse {
 | 
| +  /**
 | 
| +   * The collection of constraints that are settable on the request resource.
 | 
| +   */
 | 
| +  core.List<Constraint> constraints;
 | 
| +  /** Page token used to retrieve the next page. This is currently not used. */
 | 
| +  core.String nextPageToken;
 | 
| +
 | 
| +  ListAvailableOrgPolicyConstraintsResponse();
 | 
| +
 | 
| +  ListAvailableOrgPolicyConstraintsResponse.fromJson(core.Map _json) {
 | 
| +    if (_json.containsKey("constraints")) {
 | 
| +      constraints = _json["constraints"].map((value) => new Constraint.fromJson(value)).toList();
 | 
| +    }
 | 
| +    if (_json.containsKey("nextPageToken")) {
 | 
| +      nextPageToken = _json["nextPageToken"];
 | 
| +    }
 | 
| +  }
 | 
| +
 | 
| +  core.Map toJson() {
 | 
| +    var _json = new core.Map();
 | 
| +    if (constraints != null) {
 | 
| +      _json["constraints"] = constraints.map((value) => (value).toJson()).toList();
 | 
| +    }
 | 
| +    if (nextPageToken != null) {
 | 
| +      _json["nextPageToken"] = nextPageToken;
 | 
| +    }
 | 
| +    return _json;
 | 
| +  }
 | 
| +}
 | 
| +
 | 
| +/**
 | 
| + * A `Constraint` that allows or disallows a list of string values, which are
 | 
| + * configured by an Organization's policy administrator with a `Policy`.
 | 
| + */
 | 
| +class ListConstraint {
 | 
| +  /**
 | 
| +   * Optional. The Google Cloud Console will try to default to a configuration
 | 
| +   * that matches the value specified in this `Constraint`.
 | 
| +   */
 | 
| +  core.String suggestedValue;
 | 
| +
 | 
| +  ListConstraint();
 | 
| +
 | 
| +  ListConstraint.fromJson(core.Map _json) {
 | 
| +    if (_json.containsKey("suggestedValue")) {
 | 
| +      suggestedValue = _json["suggestedValue"];
 | 
| +    }
 | 
| +  }
 | 
| +
 | 
| +  core.Map toJson() {
 | 
| +    var _json = new core.Map();
 | 
| +    if (suggestedValue != null) {
 | 
| +      _json["suggestedValue"] = suggestedValue;
 | 
| +    }
 | 
| +    return _json;
 | 
| +  }
 | 
| +}
 | 
| +
 | 
| +/** The request sent to the ListOrgPolicies method. */
 | 
| +class ListOrgPoliciesRequest {
 | 
| +  /**
 | 
| +   * Size of the pages to be returned. This is currently unsupported and will
 | 
| +   * be ignored. The server may at any point start using this field to limit
 | 
| +   * page size.
 | 
| +   */
 | 
| +  core.int pageSize;
 | 
| +  /**
 | 
| +   * Page token used to retrieve the next page. This is currently unsupported
 | 
| +   * and will be ignored. The server may at any point start using this field.
 | 
| +   */
 | 
| +  core.String pageToken;
 | 
| +
 | 
| +  ListOrgPoliciesRequest();
 | 
| +
 | 
| +  ListOrgPoliciesRequest.fromJson(core.Map _json) {
 | 
| +    if (_json.containsKey("pageSize")) {
 | 
| +      pageSize = _json["pageSize"];
 | 
| +    }
 | 
| +    if (_json.containsKey("pageToken")) {
 | 
| +      pageToken = _json["pageToken"];
 | 
| +    }
 | 
| +  }
 | 
| +
 | 
| +  core.Map toJson() {
 | 
| +    var _json = new core.Map();
 | 
| +    if (pageSize != null) {
 | 
| +      _json["pageSize"] = pageSize;
 | 
| +    }
 | 
| +    if (pageToken != null) {
 | 
| +      _json["pageToken"] = pageToken;
 | 
| +    }
 | 
| +    return _json;
 | 
| +  }
 | 
| +}
 | 
| +
 | 
| +/**
 | 
| + * The response returned from the ListOrgPolicies method. It will be empty
 | 
| + * if no `Policies` are set on the resource.
 | 
| + */
 | 
| +class ListOrgPoliciesResponse {
 | 
| +  /**
 | 
| +   * Page token used to retrieve the next page. This is currently not used, but
 | 
| +   * the server may at any point start supplying a valid token.
 | 
| +   */
 | 
| +  core.String nextPageToken;
 | 
| +  /**
 | 
| +   * The `Policies` that are set on the resource. It will be empty if no
 | 
| +   * `Policies` are set.
 | 
| +   */
 | 
| +  core.List<OrgPolicy> policies;
 | 
| +
 | 
| +  ListOrgPoliciesResponse();
 | 
| +
 | 
| +  ListOrgPoliciesResponse.fromJson(core.Map _json) {
 | 
| +    if (_json.containsKey("nextPageToken")) {
 | 
| +      nextPageToken = _json["nextPageToken"];
 | 
| +    }
 | 
| +    if (_json.containsKey("policies")) {
 | 
| +      policies = _json["policies"].map((value) => new OrgPolicy.fromJson(value)).toList();
 | 
| +    }
 | 
| +  }
 | 
| +
 | 
| +  core.Map toJson() {
 | 
| +    var _json = new core.Map();
 | 
| +    if (nextPageToken != null) {
 | 
| +      _json["nextPageToken"] = nextPageToken;
 | 
| +    }
 | 
| +    if (policies != null) {
 | 
| +      _json["policies"] = policies.map((value) => (value).toJson()).toList();
 | 
| +    }
 | 
| +    return _json;
 | 
| +  }
 | 
| +}
 | 
| +
 | 
|  /** The response returned from the `ListOrganizations` method. */
 | 
|  class ListOrganizationsResponse {
 | 
|    /**
 | 
| @@ -1231,6 +2313,174 @@ class ListOrganizationsResponse {
 | 
|  }
 | 
|  
 | 
|  /**
 | 
| + * Used in `policy_type` to specify how `list_policy` behaves at this
 | 
| + * resource.
 | 
| + *
 | 
| + * A `ListPolicy` can define specific values that are allowed or denied by
 | 
| + * setting either the `allowed_values` or `denied_values` fields. It can also
 | 
| + * be used to allow or deny all values, by setting the `all_values` field. If
 | 
| + * `all_values` is `ALL_VALUES_UNSPECIFIED`, exactly one of `allowed_values`
 | 
| + * or `denied_values` must be set (attempting to set both or neither will
 | 
| + * result in a failed request). If `all_values` is set to either `ALLOW` or
 | 
| + * `DENY`, `allowed_values` and `denied_values` must be unset.
 | 
| + */
 | 
| +class ListPolicy {
 | 
| +  /**
 | 
| +   * The policy all_values state.
 | 
| +   * Possible string values are:
 | 
| +   * - "ALL_VALUES_UNSPECIFIED" : Indicates that either allowed_values or
 | 
| +   * denied_values must be set.
 | 
| +   * - "ALLOW" : A policy with this set allows all values.
 | 
| +   * - "DENY" : A policy with this set denies all values.
 | 
| +   */
 | 
| +  core.String allValues;
 | 
| +  /**
 | 
| +   * List of values allowed  at this resource. an only be set if no values are
 | 
| +   * set for `denied_values` and `all_values` is set to
 | 
| +   * `ALL_VALUES_UNSPECIFIED`.
 | 
| +   */
 | 
| +  core.List<core.String> allowedValues;
 | 
| +  /**
 | 
| +   * List of values denied at this resource. Can only be set if no values are
 | 
| +   * set for `allowed_values` and `all_values` is set to
 | 
| +   * `ALL_VALUES_UNSPECIFIED`.
 | 
| +   */
 | 
| +  core.List<core.String> deniedValues;
 | 
| +  /**
 | 
| +   * Determines the inheritance behavior for this `Policy`.
 | 
| +   *
 | 
| +   * By default, a `ListPolicy` set at a resource supercedes any `Policy` set
 | 
| +   * anywhere up the resource hierarchy. However, if `inherit_from_parent` is
 | 
| +   * set to `true`, then the values from the effective `Policy` of the parent
 | 
| +   * resource are inherited, meaning the values set in this `Policy` are
 | 
| +   * added to the values inherited up the hierarchy.
 | 
| +   *
 | 
| +   * Setting `Policy` hierarchies that inherit both allowed values and denied
 | 
| +   * values isn't recommended in most circumstances to keep the configuration
 | 
| +   * simple and understandable. However, it is possible to set a `Policy` with
 | 
| +   * `allowed_values` set that inherits a `Policy` with `denied_values` set.
 | 
| +   * In this case, the values that are allowed must be in `allowed_values` and
 | 
| +   * not present in `denied_values`.
 | 
| +   *
 | 
| +   * For example, suppose you have a `Constraint`
 | 
| +   * `constraints/serviceuser.services`, which has a `constraint_type` of
 | 
| +   * `list_constraint`, and with `constraint_default` set to `ALLOW`.
 | 
| +   * Suppose that at the Organization level, a `Policy` is applied that
 | 
| +   * restricts the allowed API activations to {`E1`, `E2`}. Then, if a
 | 
| +   * `Policy` is applied to a project below the Organization that has
 | 
| +   * `inherit_from_parent` set to `false` and field all_values set to DENY,
 | 
| +   * then an attempt to activate any API will be denied.
 | 
| +   *
 | 
| +   * The following examples demonstrate different possible layerings:
 | 
| +   *
 | 
| +   * Example 1 (no inherited values):
 | 
| +   *   `organizations/foo` has a `Policy` with values:
 | 
| +   *     {allowed_values: “E1” allowed_values:”E2”}
 | 
| +   *   ``projects/bar`` has `inherit_from_parent` `false` and values:
 | 
| +   *     {allowed_values: "E3" allowed_values: "E4"}
 | 
| +   * The accepted values at `organizations/foo` are `E1`, `E2`.
 | 
| +   * The accepted values at `projects/bar` are `E3`, and `E4`.
 | 
| +   *
 | 
| +   * Example 2 (inherited values):
 | 
| +   *   `organizations/foo` has a `Policy` with values:
 | 
| +   *     {allowed_values: “E1” allowed_values:”E2”}
 | 
| +   *   `projects/bar` has a `Policy` with values:
 | 
| +   *     {value: “E3” value: ”E4” inherit_from_parent: true}
 | 
| +   * The accepted values at `organizations/foo` are `E1`, `E2`.
 | 
| +   * The accepted values at `projects/bar` are `E1`, `E2`, `E3`, and `E4`.
 | 
| +   *
 | 
| +   * Example 3 (inheriting both allowed and denied values):
 | 
| +   *   `organizations/foo` has a `Policy` with values:
 | 
| +   *     {allowed_values: "E1" allowed_values: "E2"}
 | 
| +   *   `projects/bar` has a `Policy` with:
 | 
| +   *     {denied_values: "E1"}
 | 
| +   * The accepted values at `organizations/foo` are `E1`, `E2`.
 | 
| +   * The value accepted at `projects/bar` is `E2`.
 | 
| +   *
 | 
| +   * Example 4 (RestoreDefault):
 | 
| +   *   `organizations/foo` has a `Policy` with values:
 | 
| +   *     {allowed_values: “E1” allowed_values:”E2”}
 | 
| +   *   `projects/bar` has a `Policy` with values:
 | 
| +   *     {RestoreDefault: {}}
 | 
| +   * The accepted values at `organizations/foo` are `E1`, `E2`.
 | 
| +   * The accepted values at `projects/bar` are either all or none depending on
 | 
| +   * the value of `constraint_default` (if `ALLOW`, all; if
 | 
| +   * `DENY`, none).
 | 
| +   *
 | 
| +   * Example 5 (no policy inherits parent policy):
 | 
| +   *   `organizations/foo` has no `Policy` set.
 | 
| +   *   `projects/bar` has no `Policy` set.
 | 
| +   * The accepted values at both levels are either all or none depending on
 | 
| +   * the value of `constraint_default` (if `ALLOW`, all; if
 | 
| +   * `DENY`, none).
 | 
| +   *
 | 
| +   * Example 6 (ListConstraint allowing all):
 | 
| +   *   `organizations/foo` has a `Policy` with values:
 | 
| +   *     {allowed_values: “E1” allowed_values: ”E2”}
 | 
| +   *   `projects/bar` has a `Policy` with:
 | 
| +   *     {all: ALLOW}
 | 
| +   * The accepted values at `organizations/foo` are `E1`, E2`.
 | 
| +   * Any value is accepted at `projects/bar`.
 | 
| +   *
 | 
| +   * Example 7 (ListConstraint allowing none):
 | 
| +   *   `organizations/foo` has a `Policy` with values:
 | 
| +   *     {allowed_values: “E1” allowed_values: ”E2”}
 | 
| +   *   `projects/bar` has a `Policy` with:
 | 
| +   *     {all: DENY}
 | 
| +   * The accepted values at `organizations/foo` are `E1`, E2`.
 | 
| +   * No value is accepted at `projects/bar`.
 | 
| +   */
 | 
| +  core.bool inheritFromParent;
 | 
| +  /**
 | 
| +   * Optional. The Google Cloud Console will try to default to a configuration
 | 
| +   * that matches the value specified in this `Policy`. If `suggested_value`
 | 
| +   * is not set, it will inherit the value specified higher in the hierarchy,
 | 
| +   * unless `inherit_from_parent` is `false`.
 | 
| +   */
 | 
| +  core.String suggestedValue;
 | 
| +
 | 
| +  ListPolicy();
 | 
| +
 | 
| +  ListPolicy.fromJson(core.Map _json) {
 | 
| +    if (_json.containsKey("allValues")) {
 | 
| +      allValues = _json["allValues"];
 | 
| +    }
 | 
| +    if (_json.containsKey("allowedValues")) {
 | 
| +      allowedValues = _json["allowedValues"];
 | 
| +    }
 | 
| +    if (_json.containsKey("deniedValues")) {
 | 
| +      deniedValues = _json["deniedValues"];
 | 
| +    }
 | 
| +    if (_json.containsKey("inheritFromParent")) {
 | 
| +      inheritFromParent = _json["inheritFromParent"];
 | 
| +    }
 | 
| +    if (_json.containsKey("suggestedValue")) {
 | 
| +      suggestedValue = _json["suggestedValue"];
 | 
| +    }
 | 
| +  }
 | 
| +
 | 
| +  core.Map toJson() {
 | 
| +    var _json = new core.Map();
 | 
| +    if (allValues != null) {
 | 
| +      _json["allValues"] = allValues;
 | 
| +    }
 | 
| +    if (allowedValues != null) {
 | 
| +      _json["allowedValues"] = allowedValues;
 | 
| +    }
 | 
| +    if (deniedValues != null) {
 | 
| +      _json["deniedValues"] = deniedValues;
 | 
| +    }
 | 
| +    if (inheritFromParent != null) {
 | 
| +      _json["inheritFromParent"] = inheritFromParent;
 | 
| +    }
 | 
| +    if (suggestedValue != null) {
 | 
| +      _json["suggestedValue"] = suggestedValue;
 | 
| +    }
 | 
| +    return _json;
 | 
| +  }
 | 
| +}
 | 
| +
 | 
| +/**
 | 
|   * A page of the response received from the
 | 
|   * ListProjects
 | 
|   * method.
 | 
| @@ -1284,6 +2534,115 @@ class ListProjectsResponse {
 | 
|  }
 | 
|  
 | 
|  /**
 | 
| + * Defines a Cloud Organization `Policy` which is used to specify `Constraints`
 | 
| + * for configurations of Cloud Platform resources.
 | 
| + */
 | 
| +class OrgPolicy {
 | 
| +  /** For boolean `Constraints`, whether to enforce the `Constraint` or not. */
 | 
| +  BooleanPolicy booleanPolicy;
 | 
| +  /**
 | 
| +   * The name of the `Constraint` the `Policy` is configuring, for example,
 | 
| +   * `constraints/serviceuser.services`.
 | 
| +   *
 | 
| +   * Immutable after creation.
 | 
| +   */
 | 
| +  core.String constraint;
 | 
| +  /**
 | 
| +   * An opaque tag indicating the current version of the `Policy`, used for
 | 
| +   * concurrency control.
 | 
| +   *
 | 
| +   * When the `Policy` is returned from either a `GetPolicy` or a
 | 
| +   * `ListOrgPolicy` request, this `etag` indicates the version of the current
 | 
| +   * `Policy` to use when executing a read-modify-write loop.
 | 
| +   *
 | 
| +   * When the `Policy` is returned from a `GetEffectivePolicy` request, the
 | 
| +   * `etag` will be unset.
 | 
| +   *
 | 
| +   * When the `Policy` is used in a `SetOrgPolicy` method, use the `etag` value
 | 
| +   * that was returned from a `GetOrgPolicy` request as part of a
 | 
| +   * read-modify-write loop for concurrency control. Not setting the `etag`in a
 | 
| +   * `SetOrgPolicy` request will result in an unconditional write of the
 | 
| +   * `Policy`.
 | 
| +   */
 | 
| +  core.String etag;
 | 
| +  core.List<core.int> get etagAsBytes {
 | 
| +    return convert.BASE64.decode(etag);
 | 
| +  }
 | 
| +
 | 
| +  void set etagAsBytes(core.List<core.int> _bytes) {
 | 
| +    etag = convert.BASE64.encode(_bytes).replaceAll("/", "_").replaceAll("+", "-");
 | 
| +  }
 | 
| +  /** List of values either allowed or disallowed. */
 | 
| +  ListPolicy listPolicy;
 | 
| +  /**
 | 
| +   * Restores the default behavior of the constraint; independent of
 | 
| +   * `Constraint` type.
 | 
| +   */
 | 
| +  RestoreDefault restoreDefault;
 | 
| +  /**
 | 
| +   * The time stamp the `Policy` was previously updated. This is set by the
 | 
| +   * server, not specified by the caller, and represents the last time a call to
 | 
| +   * `SetOrgPolicy` was made for that `Policy`. Any value set by the client will
 | 
| +   * be ignored.
 | 
| +   */
 | 
| +  core.String updateTime;
 | 
| +  /** Version of the `Policy`. Default version is 0; */
 | 
| +  core.int version;
 | 
| +
 | 
| +  OrgPolicy();
 | 
| +
 | 
| +  OrgPolicy.fromJson(core.Map _json) {
 | 
| +    if (_json.containsKey("booleanPolicy")) {
 | 
| +      booleanPolicy = new BooleanPolicy.fromJson(_json["booleanPolicy"]);
 | 
| +    }
 | 
| +    if (_json.containsKey("constraint")) {
 | 
| +      constraint = _json["constraint"];
 | 
| +    }
 | 
| +    if (_json.containsKey("etag")) {
 | 
| +      etag = _json["etag"];
 | 
| +    }
 | 
| +    if (_json.containsKey("listPolicy")) {
 | 
| +      listPolicy = new ListPolicy.fromJson(_json["listPolicy"]);
 | 
| +    }
 | 
| +    if (_json.containsKey("restoreDefault")) {
 | 
| +      restoreDefault = new RestoreDefault.fromJson(_json["restoreDefault"]);
 | 
| +    }
 | 
| +    if (_json.containsKey("updateTime")) {
 | 
| +      updateTime = _json["updateTime"];
 | 
| +    }
 | 
| +    if (_json.containsKey("version")) {
 | 
| +      version = _json["version"];
 | 
| +    }
 | 
| +  }
 | 
| +
 | 
| +  core.Map toJson() {
 | 
| +    var _json = new core.Map();
 | 
| +    if (booleanPolicy != null) {
 | 
| +      _json["booleanPolicy"] = (booleanPolicy).toJson();
 | 
| +    }
 | 
| +    if (constraint != null) {
 | 
| +      _json["constraint"] = constraint;
 | 
| +    }
 | 
| +    if (etag != null) {
 | 
| +      _json["etag"] = etag;
 | 
| +    }
 | 
| +    if (listPolicy != null) {
 | 
| +      _json["listPolicy"] = (listPolicy).toJson();
 | 
| +    }
 | 
| +    if (restoreDefault != null) {
 | 
| +      _json["restoreDefault"] = (restoreDefault).toJson();
 | 
| +    }
 | 
| +    if (updateTime != null) {
 | 
| +      _json["updateTime"] = updateTime;
 | 
| +    }
 | 
| +    if (version != null) {
 | 
| +      _json["version"] = version;
 | 
| +    }
 | 
| +    return _json;
 | 
| +  }
 | 
| +}
 | 
| +
 | 
| +/**
 | 
|   * The root node in the resource hierarchy to which a particular entity's
 | 
|   * (e.g., company) resources belong.
 | 
|   */
 | 
| @@ -1439,6 +2798,8 @@ class OrganizationOwner {
 | 
|   * [IAM developer's guide](https://cloud.google.com/iam).
 | 
|   */
 | 
|  class Policy {
 | 
| +  /** Specifies cloud audit logging configuration for this policy. */
 | 
| +  core.List<AuditConfig> auditConfigs;
 | 
|    /**
 | 
|     * Associates a list of `members` to a `role`.
 | 
|     * Multiple `bindings` must not be specified for the same `role`.
 | 
| @@ -1471,6 +2832,9 @@ class Policy {
 | 
|    Policy();
 | 
|  
 | 
|    Policy.fromJson(core.Map _json) {
 | 
| +    if (_json.containsKey("auditConfigs")) {
 | 
| +      auditConfigs = _json["auditConfigs"].map((value) => new AuditConfig.fromJson(value)).toList();
 | 
| +    }
 | 
|      if (_json.containsKey("bindings")) {
 | 
|        bindings = _json["bindings"].map((value) => new Binding.fromJson(value)).toList();
 | 
|      }
 | 
| @@ -1484,6 +2848,9 @@ class Policy {
 | 
|  
 | 
|    core.Map toJson() {
 | 
|      var _json = new core.Map();
 | 
| +    if (auditConfigs != null) {
 | 
| +      _json["auditConfigs"] = auditConfigs.map((value) => (value).toJson()).toList();
 | 
| +    }
 | 
|      if (bindings != null) {
 | 
|        _json["bindings"] = bindings.map((value) => (value).toJson()).toList();
 | 
|      }
 | 
| @@ -1723,6 +3090,33 @@ class ResourceId {
 | 
|    }
 | 
|  }
 | 
|  
 | 
| +/**
 | 
| + * Ignores policies set above this resource and restores the
 | 
| + * `constraint_default` enforcement behavior of the specific `Constraint` at
 | 
| + * this resource.
 | 
| + *
 | 
| + * Suppose that `constraint_default` is set to `ALLOW` for the
 | 
| + * `Constraint` `constraints/serviceuser.services`. Suppose that organization
 | 
| + * foo.com sets a `Policy` at their Organization resource node that restricts
 | 
| + * the allowed service activations to deny all service activations. They
 | 
| + * could then set a `Policy` with the `policy_type` `restore_default` on
 | 
| + * several experimental projects, restoring the `constraint_default`
 | 
| + * enforcement of the `Constraint` for only those projects, allowing those
 | 
| + * projects to have all services activated.
 | 
| + */
 | 
| +class RestoreDefault {
 | 
| +
 | 
| +  RestoreDefault();
 | 
| +
 | 
| +  RestoreDefault.fromJson(core.Map _json) {
 | 
| +  }
 | 
| +
 | 
| +  core.Map toJson() {
 | 
| +    var _json = new core.Map();
 | 
| +    return _json;
 | 
| +  }
 | 
| +}
 | 
| +
 | 
|  /** Request message for `SetIamPolicy` method. */
 | 
|  class SetIamPolicyRequest {
 | 
|    /**
 | 
| @@ -1732,6 +3126,14 @@ class SetIamPolicyRequest {
 | 
|     * might reject them.
 | 
|     */
 | 
|    Policy policy;
 | 
| +  /**
 | 
| +   * OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
 | 
| +   * the fields in the mask will be modified. If no mask is provided, the
 | 
| +   * following default mask is used:
 | 
| +   * paths: "bindings, etag"
 | 
| +   * This field is only used by Cloud IAM.
 | 
| +   */
 | 
| +  core.String updateMask;
 | 
|  
 | 
|    SetIamPolicyRequest();
 | 
|  
 | 
| @@ -1739,6 +3141,34 @@ class SetIamPolicyRequest {
 | 
|      if (_json.containsKey("policy")) {
 | 
|        policy = new Policy.fromJson(_json["policy"]);
 | 
|      }
 | 
| +    if (_json.containsKey("updateMask")) {
 | 
| +      updateMask = _json["updateMask"];
 | 
| +    }
 | 
| +  }
 | 
| +
 | 
| +  core.Map toJson() {
 | 
| +    var _json = new core.Map();
 | 
| +    if (policy != null) {
 | 
| +      _json["policy"] = (policy).toJson();
 | 
| +    }
 | 
| +    if (updateMask != null) {
 | 
| +      _json["updateMask"] = updateMask;
 | 
| +    }
 | 
| +    return _json;
 | 
| +  }
 | 
| +}
 | 
| +
 | 
| +/** The request sent to the SetOrgPolicyRequest method. */
 | 
| +class SetOrgPolicyRequest {
 | 
| +  /** `Policy` to set on the resource. */
 | 
| +  OrgPolicy policy;
 | 
| +
 | 
| +  SetOrgPolicyRequest();
 | 
| +
 | 
| +  SetOrgPolicyRequest.fromJson(core.Map _json) {
 | 
| +    if (_json.containsKey("policy")) {
 | 
| +      policy = new OrgPolicy.fromJson(_json["policy"]);
 | 
| +    }
 | 
|    }
 | 
|  
 | 
|    core.Map toJson() {
 | 
| 
 |