blob: 44540b0706082f34950dce332bb51a6e6f351760 [file] [log] [blame]
// This is a generated file (see the discoveryapis_generator project).
library googleapis.cloudkms.v1;
import 'dart:core' as core;
import 'dart:async' as async;
import 'dart:convert' as convert;
import 'package:_discoveryapis_commons/_discoveryapis_commons.dart' as commons;
import 'package:http/http.dart' as http;
export 'package:_discoveryapis_commons/_discoveryapis_commons.dart' show
ApiRequestError, DetailedApiRequestError;
const core.String USER_AGENT = 'dart-api-client cloudkms/v1';
/**
* Manages encryption for your cloud services the same way you do on-premises.
* You can generate, use, rotate, and destroy AES256 encryption keys.
*/
class CloudkmsApi {
/** View and manage your data across Google Cloud Platform services */
static const CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform";
final commons.ApiRequester _requester;
ProjectsResourceApi get projects => new ProjectsResourceApi(_requester);
CloudkmsApi(http.Client client, {core.String rootUrl: "https://cloudkms.googleapis.com/", core.String servicePath: ""}) :
_requester = new commons.ApiRequester(client, rootUrl, servicePath, USER_AGENT);
}
class ProjectsResourceApi {
final commons.ApiRequester _requester;
ProjectsLocationsResourceApi get locations => new ProjectsLocationsResourceApi(_requester);
ProjectsResourceApi(commons.ApiRequester client) :
_requester = client;
}
class ProjectsLocationsResourceApi {
final commons.ApiRequester _requester;
ProjectsLocationsKeyRingsResourceApi get keyRings => new ProjectsLocationsKeyRingsResourceApi(_requester);
ProjectsLocationsResourceApi(commons.ApiRequester client) :
_requester = client;
/**
* Get information about a location.
*
* Request parameters:
*
* [name] - Resource name for the location.
* Value must have pattern "^projects/[^/]+/locations/[^/]+$".
*
* Completes with a [Location].
*
* 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<Location> get(core.String name) {
var _url = null;
var _queryParams = new core.Map();
var _uploadMedia = null;
var _uploadOptions = null;
var _downloadOptions = commons.DownloadOptions.Metadata;
var _body = null;
if (name == null) {
throw new core.ArgumentError("Parameter name is required.");
}
_url = 'v1/' + 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 Location.fromJson(data));
}
/**
* Lists information about the supported locations for this service.
*
* Request parameters:
*
* [name] - The resource that owns the locations collection, if applicable.
* Value must have pattern "^projects/[^/]+$".
*
* [pageSize] - The standard list page size.
*
* [filter] - The standard list filter.
*
* [pageToken] - The standard list page token.
*
* Completes with a [ListLocationsResponse].
*
* 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<ListLocationsResponse> list(core.String name, {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 (name == null) {
throw new core.ArgumentError("Parameter name is required.");
}
if (pageSize != null) {
_queryParams["pageSize"] = ["${pageSize}"];
}
if (filter != null) {
_queryParams["filter"] = [filter];
}
if (pageToken != null) {
_queryParams["pageToken"] = [pageToken];
}
_url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name') + '/locations';
var _response = _requester.request(_url,
"GET",
body: _body,
queryParams: _queryParams,
uploadOptions: _uploadOptions,
uploadMedia: _uploadMedia,
downloadOptions: _downloadOptions);
return _response.then((data) => new ListLocationsResponse.fromJson(data));
}
}
class ProjectsLocationsKeyRingsResourceApi {
final commons.ApiRequester _requester;
ProjectsLocationsKeyRingsCryptoKeysResourceApi get cryptoKeys => new ProjectsLocationsKeyRingsCryptoKeysResourceApi(_requester);
ProjectsLocationsKeyRingsResourceApi(commons.ApiRequester client) :
_requester = client;
/**
* Create a new KeyRing in a given Project and Location.
*
* [request] - The metadata request object.
*
* Request parameters:
*
* [parent] - Required. The resource name of the location associated with the
* KeyRings, in the format `projects / * /locations / * `.
* Value must have pattern "^projects/[^/]+/locations/[^/]+$".
*
* [keyRingId] - Required. It must be unique within a location and match the
* regular
* expression `[a-zA-Z0-9_-]{1,63}`
*
* Completes with a [KeyRing].
*
* 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<KeyRing> create(KeyRing request, core.String parent, {core.String keyRingId}) {
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 (parent == null) {
throw new core.ArgumentError("Parameter parent is required.");
}
if (keyRingId != null) {
_queryParams["keyRingId"] = [keyRingId];
}
_url = 'v1/' + commons.Escaper.ecapeVariableReserved('$parent') + '/keyRings';
var _response = _requester.request(_url,
"POST",
body: _body,
queryParams: _queryParams,
uploadOptions: _uploadOptions,
uploadMedia: _uploadMedia,
downloadOptions: _downloadOptions);
return _response.then((data) => new KeyRing.fromJson(data));
}
/**
* Returns metadata for a given KeyRing.
*
* Request parameters:
*
* [name] - The name of the KeyRing to get.
* Value must have pattern "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+$".
*
* Completes with a [KeyRing].
*
* 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<KeyRing> get(core.String name) {
var _url = null;
var _queryParams = new core.Map();
var _uploadMedia = null;
var _uploadOptions = null;
var _downloadOptions = commons.DownloadOptions.Metadata;
var _body = null;
if (name == null) {
throw new core.ArgumentError("Parameter name is required.");
}
_url = 'v1/' + 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 KeyRing.fromJson(data));
}
/**
* Gets the access control policy for a resource.
* Returns an empty policy if the resource exists and does not have a policy
* set.
*
* 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 "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+$".
*
* 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(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 (resource == null) {
throw new core.ArgumentError("Parameter resource is required.");
}
_url = 'v1/' + commons.Escaper.ecapeVariableReserved('$resource') + ':getIamPolicy';
var _response = _requester.request(_url,
"GET",
body: _body,
queryParams: _queryParams,
uploadOptions: _uploadOptions,
uploadMedia: _uploadMedia,
downloadOptions: _downloadOptions);
return _response.then((data) => new Policy.fromJson(data));
}
/**
* Lists KeyRings.
*
* Request parameters:
*
* [parent] - Required. The resource name of the location associated with the
* KeyRings, in the format `projects / * /locations / * `.
* Value must have pattern "^projects/[^/]+/locations/[^/]+$".
*
* [pageSize] - Optional limit on the number of KeyRings to include in the
* response. Further KeyRings can subsequently be obtained by
* including the ListKeyRingsResponse.next_page_token in a subsequent
* request. If unspecified, the server will pick an appropriate default.
*
* [pageToken] - Optional pagination token, returned earlier via
* ListKeyRingsResponse.next_page_token.
*
* Completes with a [ListKeyRingsResponse].
*
* 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<ListKeyRingsResponse> list(core.String parent, {core.int pageSize, 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 (parent == null) {
throw new core.ArgumentError("Parameter parent is required.");
}
if (pageSize != null) {
_queryParams["pageSize"] = ["${pageSize}"];
}
if (pageToken != null) {
_queryParams["pageToken"] = [pageToken];
}
_url = 'v1/' + commons.Escaper.ecapeVariableReserved('$parent') + '/keyRings';
var _response = _requester.request(_url,
"GET",
body: _body,
queryParams: _queryParams,
uploadOptions: _uploadOptions,
uploadMedia: _uploadMedia,
downloadOptions: _downloadOptions);
return _response.then((data) => new ListKeyRingsResponse.fromJson(data));
}
/**
* Sets the access control policy on the specified resource. Replaces any
* existing 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.
* Value must have pattern "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+$".
*
* 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> setIamPolicy(SetIamPolicyRequest 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 = 'v1/' + commons.Escaper.ecapeVariableReserved('$resource') + ':setIamPolicy';
var _response = _requester.request(_url,
"POST",
body: _body,
queryParams: _queryParams,
uploadOptions: _uploadOptions,
uploadMedia: _uploadMedia,
downloadOptions: _downloadOptions);
return _response.then((data) => new Policy.fromJson(data));
}
/**
* Returns permissions that a caller has on the specified resource.
* If the resource does not exist, this will return an empty set of
* permissions, not a NOT_FOUND error.
*
* Note: This operation is designed to be used for building permission-aware
* UIs and command-line tools, not for authorization checking. This operation
* may "fail open" without warning.
*
* [request] - The metadata request object.
*
* Request parameters:
*
* [resource] - REQUIRED: The resource for which the policy detail is being
* requested.
* See the operation documentation for the appropriate value for this field.
* Value must have pattern "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+$".
*
* Completes with a [TestIamPermissionsResponse].
*
* 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<TestIamPermissionsResponse> testIamPermissions(TestIamPermissionsRequest 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 = 'v1/' + commons.Escaper.ecapeVariableReserved('$resource') + ':testIamPermissions';
var _response = _requester.request(_url,
"POST",
body: _body,
queryParams: _queryParams,
uploadOptions: _uploadOptions,
uploadMedia: _uploadMedia,
downloadOptions: _downloadOptions);
return _response.then((data) => new TestIamPermissionsResponse.fromJson(data));
}
}
class ProjectsLocationsKeyRingsCryptoKeysResourceApi {
final commons.ApiRequester _requester;
ProjectsLocationsKeyRingsCryptoKeysCryptoKeyVersionsResourceApi get cryptoKeyVersions => new ProjectsLocationsKeyRingsCryptoKeysCryptoKeyVersionsResourceApi(_requester);
ProjectsLocationsKeyRingsCryptoKeysResourceApi(commons.ApiRequester client) :
_requester = client;
/**
* Create a new CryptoKey within a KeyRing.
*
* CryptoKey.purpose is required.
*
* [request] - The metadata request object.
*
* Request parameters:
*
* [parent] - Required. The name of the KeyRing associated with the
* CryptoKeys.
* Value must have pattern "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+$".
*
* [cryptoKeyId] - Required. It must be unique within a KeyRing and match the
* regular
* expression `[a-zA-Z0-9_-]{1,63}`
*
* Completes with a [CryptoKey].
*
* 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<CryptoKey> create(CryptoKey request, core.String parent, {core.String cryptoKeyId}) {
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 (parent == null) {
throw new core.ArgumentError("Parameter parent is required.");
}
if (cryptoKeyId != null) {
_queryParams["cryptoKeyId"] = [cryptoKeyId];
}
_url = 'v1/' + commons.Escaper.ecapeVariableReserved('$parent') + '/cryptoKeys';
var _response = _requester.request(_url,
"POST",
body: _body,
queryParams: _queryParams,
uploadOptions: _uploadOptions,
uploadMedia: _uploadMedia,
downloadOptions: _downloadOptions);
return _response.then((data) => new CryptoKey.fromJson(data));
}
/**
* Decrypts data that was protected by Encrypt.
*
* [request] - The metadata request object.
*
* Request parameters:
*
* [name] - Required. The resource name of the CryptoKey to use for
* decryption.
* The server will choose the appropriate version.
* Value must have pattern
* "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+/cryptoKeys/[^/]+$".
*
* Completes with a [DecryptResponse].
*
* 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<DecryptResponse> decrypt(DecryptRequest request, core.String name) {
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 (name == null) {
throw new core.ArgumentError("Parameter name is required.");
}
_url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name') + ':decrypt';
var _response = _requester.request(_url,
"POST",
body: _body,
queryParams: _queryParams,
uploadOptions: _uploadOptions,
uploadMedia: _uploadMedia,
downloadOptions: _downloadOptions);
return _response.then((data) => new DecryptResponse.fromJson(data));
}
/**
* Encrypts data, so that it can only be recovered by a call to Decrypt.
*
* [request] - The metadata request object.
*
* Request parameters:
*
* [name] - Required. The resource name of the CryptoKey or CryptoKeyVersion
* to use for encryption.
*
* If a CryptoKey is specified, the server will use its
* primary version.
* Value must have pattern
* "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+/cryptoKeys/.+$".
*
* Completes with a [EncryptResponse].
*
* 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<EncryptResponse> encrypt(EncryptRequest request, core.String name) {
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 (name == null) {
throw new core.ArgumentError("Parameter name is required.");
}
_url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name') + ':encrypt';
var _response = _requester.request(_url,
"POST",
body: _body,
queryParams: _queryParams,
uploadOptions: _uploadOptions,
uploadMedia: _uploadMedia,
downloadOptions: _downloadOptions);
return _response.then((data) => new EncryptResponse.fromJson(data));
}
/**
* Returns metadata for a given CryptoKey, as well as its
* primary CryptoKeyVersion.
*
* Request parameters:
*
* [name] - The name of the CryptoKey to get.
* Value must have pattern
* "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+/cryptoKeys/[^/]+$".
*
* Completes with a [CryptoKey].
*
* 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<CryptoKey> get(core.String name) {
var _url = null;
var _queryParams = new core.Map();
var _uploadMedia = null;
var _uploadOptions = null;
var _downloadOptions = commons.DownloadOptions.Metadata;
var _body = null;
if (name == null) {
throw new core.ArgumentError("Parameter name is required.");
}
_url = 'v1/' + 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 CryptoKey.fromJson(data));
}
/**
* Gets the access control policy for a resource.
* Returns an empty policy if the resource exists and does not have a policy
* set.
*
* 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
* "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+/cryptoKeys/[^/]+$".
*
* 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(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 (resource == null) {
throw new core.ArgumentError("Parameter resource is required.");
}
_url = 'v1/' + commons.Escaper.ecapeVariableReserved('$resource') + ':getIamPolicy';
var _response = _requester.request(_url,
"GET",
body: _body,
queryParams: _queryParams,
uploadOptions: _uploadOptions,
uploadMedia: _uploadMedia,
downloadOptions: _downloadOptions);
return _response.then((data) => new Policy.fromJson(data));
}
/**
* Lists CryptoKeys.
*
* Request parameters:
*
* [parent] - Required. The resource name of the KeyRing to list, in the
* format
* `projects / * /locations / * /keyRings / * `.
* Value must have pattern "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+$".
*
* [pageSize] - Optional limit on the number of CryptoKeys to include in the
* response. Further CryptoKeys can subsequently be obtained by
* including the ListCryptoKeysResponse.next_page_token in a subsequent
* request. If unspecified, the server will pick an appropriate default.
*
* [pageToken] - Optional pagination token, returned earlier via
* ListCryptoKeysResponse.next_page_token.
*
* Completes with a [ListCryptoKeysResponse].
*
* 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<ListCryptoKeysResponse> list(core.String parent, {core.int pageSize, 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 (parent == null) {
throw new core.ArgumentError("Parameter parent is required.");
}
if (pageSize != null) {
_queryParams["pageSize"] = ["${pageSize}"];
}
if (pageToken != null) {
_queryParams["pageToken"] = [pageToken];
}
_url = 'v1/' + commons.Escaper.ecapeVariableReserved('$parent') + '/cryptoKeys';
var _response = _requester.request(_url,
"GET",
body: _body,
queryParams: _queryParams,
uploadOptions: _uploadOptions,
uploadMedia: _uploadMedia,
downloadOptions: _downloadOptions);
return _response.then((data) => new ListCryptoKeysResponse.fromJson(data));
}
/**
* Update a CryptoKey.
*
* [request] - The metadata request object.
*
* Request parameters:
*
* [name] - Output only. The resource name for this CryptoKey in the format
* `projects / * /locations / * /keyRings / * /cryptoKeys / * `.
* Value must have pattern
* "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+/cryptoKeys/[^/]+$".
*
* [updateMask] - Required list of fields to be updated in this request.
*
* Completes with a [CryptoKey].
*
* 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<CryptoKey> patch(CryptoKey request, core.String name, {core.String updateMask}) {
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 (name == null) {
throw new core.ArgumentError("Parameter name is required.");
}
if (updateMask != null) {
_queryParams["updateMask"] = [updateMask];
}
_url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name');
var _response = _requester.request(_url,
"PATCH",
body: _body,
queryParams: _queryParams,
uploadOptions: _uploadOptions,
uploadMedia: _uploadMedia,
downloadOptions: _downloadOptions);
return _response.then((data) => new CryptoKey.fromJson(data));
}
/**
* Sets the access control policy on the specified resource. Replaces any
* existing 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.
* Value must have pattern
* "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+/cryptoKeys/[^/]+$".
*
* 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> setIamPolicy(SetIamPolicyRequest 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 = 'v1/' + commons.Escaper.ecapeVariableReserved('$resource') + ':setIamPolicy';
var _response = _requester.request(_url,
"POST",
body: _body,
queryParams: _queryParams,
uploadOptions: _uploadOptions,
uploadMedia: _uploadMedia,
downloadOptions: _downloadOptions);
return _response.then((data) => new Policy.fromJson(data));
}
/**
* Returns permissions that a caller has on the specified resource.
* If the resource does not exist, this will return an empty set of
* permissions, not a NOT_FOUND error.
*
* Note: This operation is designed to be used for building permission-aware
* UIs and command-line tools, not for authorization checking. This operation
* may "fail open" without warning.
*
* [request] - The metadata request object.
*
* Request parameters:
*
* [resource] - REQUIRED: The resource for which the policy detail is being
* requested.
* See the operation documentation for the appropriate value for this field.
* Value must have pattern
* "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+/cryptoKeys/[^/]+$".
*
* Completes with a [TestIamPermissionsResponse].
*
* 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<TestIamPermissionsResponse> testIamPermissions(TestIamPermissionsRequest 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 = 'v1/' + commons.Escaper.ecapeVariableReserved('$resource') + ':testIamPermissions';
var _response = _requester.request(_url,
"POST",
body: _body,
queryParams: _queryParams,
uploadOptions: _uploadOptions,
uploadMedia: _uploadMedia,
downloadOptions: _downloadOptions);
return _response.then((data) => new TestIamPermissionsResponse.fromJson(data));
}
/**
* Update the version of a CryptoKey that will be used in Encrypt
*
* [request] - The metadata request object.
*
* Request parameters:
*
* [name] - The resource name of the CryptoKey to update.
* Value must have pattern
* "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+/cryptoKeys/[^/]+$".
*
* Completes with a [CryptoKey].
*
* 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<CryptoKey> updatePrimaryVersion(UpdateCryptoKeyPrimaryVersionRequest request, core.String name) {
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 (name == null) {
throw new core.ArgumentError("Parameter name is required.");
}
_url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name') + ':updatePrimaryVersion';
var _response = _requester.request(_url,
"POST",
body: _body,
queryParams: _queryParams,
uploadOptions: _uploadOptions,
uploadMedia: _uploadMedia,
downloadOptions: _downloadOptions);
return _response.then((data) => new CryptoKey.fromJson(data));
}
}
class ProjectsLocationsKeyRingsCryptoKeysCryptoKeyVersionsResourceApi {
final commons.ApiRequester _requester;
ProjectsLocationsKeyRingsCryptoKeysCryptoKeyVersionsResourceApi(commons.ApiRequester client) :
_requester = client;
/**
* Create a new CryptoKeyVersion in a CryptoKey.
*
* The server will assign the next sequential id. If unset,
* state will be set to
* ENABLED.
*
* [request] - The metadata request object.
*
* Request parameters:
*
* [parent] - Required. The name of the CryptoKey associated with
* the CryptoKeyVersions.
* Value must have pattern
* "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+/cryptoKeys/[^/]+$".
*
* Completes with a [CryptoKeyVersion].
*
* 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<CryptoKeyVersion> create(CryptoKeyVersion request, core.String parent) {
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 (parent == null) {
throw new core.ArgumentError("Parameter parent is required.");
}
_url = 'v1/' + commons.Escaper.ecapeVariableReserved('$parent') + '/cryptoKeyVersions';
var _response = _requester.request(_url,
"POST",
body: _body,
queryParams: _queryParams,
uploadOptions: _uploadOptions,
uploadMedia: _uploadMedia,
downloadOptions: _downloadOptions);
return _response.then((data) => new CryptoKeyVersion.fromJson(data));
}
/**
* Schedule a CryptoKeyVersion for destruction.
*
* Upon calling this method, CryptoKeyVersion.state will be set to
* DESTROY_SCHEDULED
* and destroy_time will be set to a time 24
* hours in the future, at which point the state
* will be changed to
* DESTROYED, and the key
* material will be irrevocably destroyed.
*
* Before the destroy_time is reached,
* RestoreCryptoKeyVersion may be called to reverse the process.
*
* [request] - The metadata request object.
*
* Request parameters:
*
* [name] - The resource name of the CryptoKeyVersion to destroy.
* Value must have pattern
* "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+/cryptoKeys/[^/]+/cryptoKeyVersions/[^/]+$".
*
* Completes with a [CryptoKeyVersion].
*
* 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<CryptoKeyVersion> destroy(DestroyCryptoKeyVersionRequest request, core.String name) {
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 (name == null) {
throw new core.ArgumentError("Parameter name is required.");
}
_url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name') + ':destroy';
var _response = _requester.request(_url,
"POST",
body: _body,
queryParams: _queryParams,
uploadOptions: _uploadOptions,
uploadMedia: _uploadMedia,
downloadOptions: _downloadOptions);
return _response.then((data) => new CryptoKeyVersion.fromJson(data));
}
/**
* Returns metadata for a given CryptoKeyVersion.
*
* Request parameters:
*
* [name] - The name of the CryptoKeyVersion to get.
* Value must have pattern
* "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+/cryptoKeys/[^/]+/cryptoKeyVersions/[^/]+$".
*
* Completes with a [CryptoKeyVersion].
*
* 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<CryptoKeyVersion> get(core.String name) {
var _url = null;
var _queryParams = new core.Map();
var _uploadMedia = null;
var _uploadOptions = null;
var _downloadOptions = commons.DownloadOptions.Metadata;
var _body = null;
if (name == null) {
throw new core.ArgumentError("Parameter name is required.");
}
_url = 'v1/' + 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 CryptoKeyVersion.fromJson(data));
}
/**
* Lists CryptoKeyVersions.
*
* Request parameters:
*
* [parent] - Required. The resource name of the CryptoKey to list, in the
* format
* `projects / * /locations / * /keyRings / * /cryptoKeys / * `.
* Value must have pattern
* "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+/cryptoKeys/[^/]+$".
*
* [pageSize] - Optional limit on the number of CryptoKeyVersions to
* include in the response. Further CryptoKeyVersions can
* subsequently be obtained by including the
* ListCryptoKeyVersionsResponse.next_page_token in a subsequent request.
* If unspecified, the server will pick an appropriate default.
*
* [pageToken] - Optional pagination token, returned earlier via
* ListCryptoKeyVersionsResponse.next_page_token.
*
* Completes with a [ListCryptoKeyVersionsResponse].
*
* 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<ListCryptoKeyVersionsResponse> list(core.String parent, {core.int pageSize, 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 (parent == null) {
throw new core.ArgumentError("Parameter parent is required.");
}
if (pageSize != null) {
_queryParams["pageSize"] = ["${pageSize}"];
}
if (pageToken != null) {
_queryParams["pageToken"] = [pageToken];
}
_url = 'v1/' + commons.Escaper.ecapeVariableReserved('$parent') + '/cryptoKeyVersions';
var _response = _requester.request(_url,
"GET",
body: _body,
queryParams: _queryParams,
uploadOptions: _uploadOptions,
uploadMedia: _uploadMedia,
downloadOptions: _downloadOptions);
return _response.then((data) => new ListCryptoKeyVersionsResponse.fromJson(data));
}
/**
* Update a CryptoKeyVersion's metadata.
*
* state may be changed between
* ENABLED and
* DISABLED using this
* method. See DestroyCryptoKeyVersion and RestoreCryptoKeyVersion to
* move between other states.
*
* [request] - The metadata request object.
*
* Request parameters:
*
* [name] - Output only. The resource name for this CryptoKeyVersion in the
* format
* `projects / * /locations / * /keyRings / * /cryptoKeys / *
* /cryptoKeyVersions / * `.
* Value must have pattern
* "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+/cryptoKeys/[^/]+/cryptoKeyVersions/[^/]+$".
*
* [updateMask] - Required list of fields to be updated in this request.
*
* Completes with a [CryptoKeyVersion].
*
* 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<CryptoKeyVersion> patch(CryptoKeyVersion request, core.String name, {core.String updateMask}) {
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 (name == null) {
throw new core.ArgumentError("Parameter name is required.");
}
if (updateMask != null) {
_queryParams["updateMask"] = [updateMask];
}
_url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name');
var _response = _requester.request(_url,
"PATCH",
body: _body,
queryParams: _queryParams,
uploadOptions: _uploadOptions,
uploadMedia: _uploadMedia,
downloadOptions: _downloadOptions);
return _response.then((data) => new CryptoKeyVersion.fromJson(data));
}
/**
* Restore a CryptoKeyVersion in the
* DESTROY_SCHEDULED,
* state.
*
* Upon restoration of the CryptoKeyVersion, state
* will be set to DISABLED,
* and destroy_time will be cleared.
*
* [request] - The metadata request object.
*
* Request parameters:
*
* [name] - The resource name of the CryptoKeyVersion to restore.
* Value must have pattern
* "^projects/[^/]+/locations/[^/]+/keyRings/[^/]+/cryptoKeys/[^/]+/cryptoKeyVersions/[^/]+$".
*
* Completes with a [CryptoKeyVersion].
*
* 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<CryptoKeyVersion> restore(RestoreCryptoKeyVersionRequest request, core.String name) {
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 (name == null) {
throw new core.ArgumentError("Parameter name is required.");
}
_url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name') + ':restore';
var _response = _requester.request(_url,
"POST",
body: _body,
queryParams: _queryParams,
uploadOptions: _uploadOptions,
uploadMedia: _uploadMedia,
downloadOptions: _downloadOptions);
return _response.then((data) => new CryptoKeyVersion.fromJson(data));
}
}
/**
* 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 AuditConfig 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;
core.List<core.String> exemptedMembers;
/**
* 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("exemptedMembers")) {
exemptedMembers = _json["exemptedMembers"];
}
if (_json.containsKey("service")) {
service = _json["service"];
}
}
core.Map<core.String, core.Object> toJson() {
final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
if (auditLogConfigs != null) {
_json["auditLogConfigs"] = auditLogConfigs.map((value) => (value).toJson()).toList();
}
if (exemptedMembers != null) {
_json["exemptedMembers"] = exemptedMembers;
}
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<core.String, core.Object> toJson() {
final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
if (exemptedMembers != null) {
_json["exemptedMembers"] = exemptedMembers;
}
if (logType != null) {
_json["logType"] = logType;
}
return _json;
}
}
/** Associates `members` with a `role`. */
class Binding {
/**
* The condition that is associated with this binding.
* NOTE: an unsatisfied condition will not allow user access via current
* binding. Different bindings, including their conditions, are examined
* independently.
* This field is GOOGLE_INTERNAL.
*/
Expr condition;
/**
* Specifies the identities requesting access for a Cloud Platform resource.
* `members` can have the following values:
*
* * `allUsers`: A special identifier that represents anyone who is
* on the internet; with or without a Google account.
*
* * `allAuthenticatedUsers`: A special identifier that represents anyone
* who is authenticated with a Google account or a service account.
*
* * `user:{emailid}`: An email address that represents a specific Google
* account. For example, `alice@gmail.com` or `joe@example.com`.
*
*
* * `serviceAccount:{emailid}`: An email address that represents a service
* account. For example, `my-other-app@appspot.gserviceaccount.com`.
*
* * `group:{emailid}`: An email address that represents a Google group.
* For example, `admins@example.com`.
*
*
* * `domain:{domain}`: A Google Apps domain name that represents all the
* users of that domain. For example, `google.com` or `example.com`.
*/
core.List<core.String> members;
/**
* Role that is assigned to `members`.
* For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
* Required
*/
core.String role;
Binding();
Binding.fromJson(core.Map _json) {
if (_json.containsKey("condition")) {
condition = new Expr.fromJson(_json["condition"]);
}
if (_json.containsKey("members")) {
members = _json["members"];
}
if (_json.containsKey("role")) {
role = _json["role"];
}
}
core.Map<core.String, core.Object> toJson() {
final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
if (condition != null) {
_json["condition"] = (condition).toJson();
}
if (members != null) {
_json["members"] = members;
}
if (role != null) {
_json["role"] = role;
}
return _json;
}
}
/** Write a Cloud Audit log */
class CloudAuditOptions {
/**
* The log_name to populate in the Cloud Audit Record.
* Possible string values are:
* - "UNSPECIFIED_LOG_NAME" : Default. Should not be used.
* - "ADMIN_ACTIVITY" : Corresponds to "cloudaudit.googleapis.com/activity"
* - "DATA_ACCESS" : Corresponds to "cloudaudit.googleapis.com/data_access"
*/
core.String logName;
CloudAuditOptions();
CloudAuditOptions.fromJson(core.Map _json) {
if (_json.containsKey("logName")) {
logName = _json["logName"];
}
}
core.Map<core.String, core.Object> toJson() {
final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
if (logName != null) {
_json["logName"] = logName;
}
return _json;
}
}
/** A condition to be met. */
class Condition {
/**
* Trusted attributes supplied by the IAM system.
* Possible string values are:
* - "NO_ATTR" : Default non-attribute.
* - "AUTHORITY" : Either principal or (if present) authority selector.
* - "ATTRIBUTION" : The principal (even if an authority selector is present),
* which
* must only be used for attribution, not authorization.
* - "APPROVER" : An approver (distinct from the requester) that has
* authorized this
* request.
* When used with IN, the condition indicates that one of the approvers
* associated with the request matches the specified principal, or is a
* member of the specified group. Approvers can only grant additional
* access, and are thus only used in a strictly positive context
* (e.g. ALLOW/IN or DENY/NOT_IN).
* - "JUSTIFICATION_TYPE" : What types of justifications have been supplied
* with this request.
* String values should match enum names from tech.iam.JustificationType,
* e.g. "MANUAL_STRING". It is not permitted to grant access based on
* the *absence* of a justification, so justification conditions can only
* be used in a "positive" context (e.g., ALLOW/IN or DENY/NOT_IN).
*
* Multiple justifications, e.g., a Buganizer ID and a manually-entered
* reason, are normal and supported.
*/
core.String iam;
/**
* An operator to apply the subject with.
* Possible string values are:
* - "NO_OP" : Default no-op.
* - "EQUALS" : DEPRECATED. Use IN instead.
* - "NOT_EQUALS" : DEPRECATED. Use NOT_IN instead.
* - "IN" : The condition is true if the subject (or any element of it if it
* is
* a set) matches any of the supplied values.
* - "NOT_IN" : The condition is true if the subject (or every element of it
* if it is
* a set) matches none of the supplied values.
* - "DISCHARGED" : Subject is discharged
*/
core.String op;
/** Trusted attributes discharged by the service. */
core.String svc;
/**
* Trusted attributes supplied by any service that owns resources and uses
* the IAM system for access control.
* Possible string values are:
* - "NO_ATTR" : Default non-attribute type
* - "REGION" : Region of the resource
* - "SERVICE" : Service name
* - "NAME" : Resource name
* - "IP" : IP address of the caller
*/
core.String sys;
/** DEPRECATED. Use 'values' instead. */
core.String value;
/** The objects of the condition. This is mutually exclusive with 'value'. */
core.List<core.String> values;
Condition();
Condition.fromJson(core.Map _json) {
if (_json.containsKey("iam")) {
iam = _json["iam"];
}
if (_json.containsKey("op")) {
op = _json["op"];
}
if (_json.containsKey("svc")) {
svc = _json["svc"];
}
if (_json.containsKey("sys")) {
sys = _json["sys"];
}
if (_json.containsKey("value")) {
value = _json["value"];
}
if (_json.containsKey("values")) {
values = _json["values"];
}
}
core.Map<core.String, core.Object> toJson() {
final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
if (iam != null) {
_json["iam"] = iam;
}
if (op != null) {
_json["op"] = op;
}
if (svc != null) {
_json["svc"] = svc;
}
if (sys != null) {
_json["sys"] = sys;
}
if (value != null) {
_json["value"] = value;
}
if (values != null) {
_json["values"] = values;
}
return _json;
}
}
/**
* Increment a streamz counter with the specified metric and field names.
*
* Metric names should start with a '/', generally be lowercase-only,
* and end in "_count". Field names should not contain an initial slash.
* The actual exported metric names will have "/iam/policy" prepended.
*
* Field names correspond to IAM request parameters and field values are
* their respective values.
*
* At present the only supported field names are
* - "iam_principal", corresponding to IAMContext.principal;
* - "" (empty string), resulting in one aggretated counter with no field.
*
* Examples:
* counter { metric: "/debug_access_count" field: "iam_principal" }
* ==> increment counter /iam/policy/backend_debug_access_count
* {iam_principal=[value of IAMContext.principal]}
*
* At this time we do not support:
* * multiple field names (though this may be supported in the future)
* * decrementing the counter
* * incrementing it by anything other than 1
*/
class CounterOptions {
/** The field value to attribute. */
core.String field;
/** The metric to update. */
core.String metric;
CounterOptions();
CounterOptions.fromJson(core.Map _json) {
if (_json.containsKey("field")) {
field = _json["field"];
}
if (_json.containsKey("metric")) {
metric = _json["metric"];
}
}
core.Map<core.String, core.Object> toJson() {
final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
if (field != null) {
_json["field"] = field;
}
if (metric != null) {
_json["metric"] = metric;
}
return _json;
}
}
/**
* A CryptoKey represents a logical key that can be used for cryptographic
* operations.
*
* A CryptoKey is made up of one or more versions, which
* represent the actual key material used in cryptographic operations.
*/
class CryptoKey {
/** Output only. The time at which this CryptoKey was created. */
core.String createTime;
/**
* Output only. The resource name for this CryptoKey in the format
* `projects / * /locations / * /keyRings / * /cryptoKeys / * `.
*/
core.String name;
/**
* At next_rotation_time, the Key Management Service will automatically:
*
* 1. Create a new version of this CryptoKey.
* 2. Mark the new version as primary.
*
* Key rotations performed manually via
* CreateCryptoKeyVersion and
* UpdateCryptoKeyPrimaryVersion
* do not affect next_rotation_time.
*/
core.String nextRotationTime;
/**
* Output only. A copy of the "primary" CryptoKeyVersion that will be used
* by Encrypt when this CryptoKey is given
* in EncryptRequest.name.
*
* The CryptoKey's primary version can be updated via
* UpdateCryptoKeyPrimaryVersion.
*/
CryptoKeyVersion primary;
/**
* The immutable purpose of this CryptoKey. Currently, the only acceptable
* purpose is ENCRYPT_DECRYPT.
* Possible string values are:
* - "CRYPTO_KEY_PURPOSE_UNSPECIFIED" : Not specified.
* - "ENCRYPT_DECRYPT" : CryptoKeys with this purpose may be used with
* Encrypt and
* Decrypt.
*/
core.String purpose;
/**
* next_rotation_time will be advanced by this period when the service
* automatically rotates a key. Must be at least one day.
*
* If rotation_period is set, next_rotation_time must also be set.
*/
core.String rotationPeriod;
CryptoKey();
CryptoKey.fromJson(core.Map _json) {
if (_json.containsKey("createTime")) {
createTime = _json["createTime"];
}
if (_json.containsKey("name")) {
name = _json["name"];
}
if (_json.containsKey("nextRotationTime")) {
nextRotationTime = _json["nextRotationTime"];
}
if (_json.containsKey("primary")) {
primary = new CryptoKeyVersion.fromJson(_json["primary"]);
}
if (_json.containsKey("purpose")) {
purpose = _json["purpose"];
}
if (_json.containsKey("rotationPeriod")) {
rotationPeriod = _json["rotationPeriod"];
}
}
core.Map<core.String, core.Object> toJson() {
final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
if (createTime != null) {
_json["createTime"] = createTime;
}
if (name != null) {
_json["name"] = name;
}
if (nextRotationTime != null) {
_json["nextRotationTime"] = nextRotationTime;
}
if (primary != null) {
_json["primary"] = (primary).toJson();
}
if (purpose != null) {
_json["purpose"] = purpose;
}
if (rotationPeriod != null) {
_json["rotationPeriod"] = rotationPeriod;
}
return _json;
}
}
/**
* A CryptoKeyVersion represents an individual cryptographic key, and the
* associated key material.
*
* It can be used for cryptographic operations either directly, or via its
* parent CryptoKey, in which case the server will choose the appropriate
* version for the operation.
*/
class CryptoKeyVersion {
/** Output only. The time at which this CryptoKeyVersion was created. */
core.String createTime;
/**
* Output only. The time this CryptoKeyVersion's key material was
* destroyed. Only present if state is
* DESTROYED.
*/
core.String destroyEventTime;
/**
* Output only. The time this CryptoKeyVersion's key material is scheduled
* for destruction. Only present if state is
* DESTROY_SCHEDULED.
*/
core.String destroyTime;
/**
* Output only. The resource name for this CryptoKeyVersion in the format
* `projects / * /locations / * /keyRings / * /cryptoKeys / *
* /cryptoKeyVersions / * `.
*/
core.String name;
/**
* The current state of the CryptoKeyVersion.
* Possible string values are:
* - "CRYPTO_KEY_VERSION_STATE_UNSPECIFIED" : Not specified.
* - "ENABLED" : This version may be used in Encrypt and
* Decrypt requests.
* - "DISABLED" : This version may not be used, but the key material is still
* available,
* and the version can be placed back into the ENABLED state.
* - "DESTROYED" : This version is destroyed, and the key material is no
* longer stored.
* A version may not leave this state once entered.
* - "DESTROY_SCHEDULED" : This version is scheduled for destruction, and will
* be destroyed soon.
* Call
* RestoreCryptoKeyVersion
* to put it back into the DISABLED state.
*/
core.String state;
CryptoKeyVersion();
CryptoKeyVersion.fromJson(core.Map _json) {
if (_json.containsKey("createTime")) {
createTime = _json["createTime"];
}
if (_json.containsKey("destroyEventTime")) {
destroyEventTime = _json["destroyEventTime"];
}
if (_json.containsKey("destroyTime")) {
destroyTime = _json["destroyTime"];
}
if (_json.containsKey("name")) {
name = _json["name"];
}
if (_json.containsKey("state")) {
state = _json["state"];
}
}
core.Map<core.String, core.Object> toJson() {
final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
if (createTime != null) {
_json["createTime"] = createTime;
}
if (destroyEventTime != null) {
_json["destroyEventTime"] = destroyEventTime;
}
if (destroyTime != null) {
_json["destroyTime"] = destroyTime;
}
if (name != null) {
_json["name"] = name;
}
if (state != null) {
_json["state"] = state;
}
return _json;
}
}
/** Write a Data Access (Gin) log */
class DataAccessOptions {
/**
* Whether Gin logging should happen in a fail-closed manner at the caller.
* This is relevant only in the LocalIAM implementation, for now.
* Possible string values are:
* - "LOG_MODE_UNSPECIFIED" : Client is not required to write a partial Gin
* log immediately after
* the authorization check. If client chooses to write one and it fails,
* client may either fail open (allow the operation to continue) or
* fail closed (handle as a DENY outcome).
* - "LOG_FAIL_CLOSED" : The application's operation in the context of which
* this authorization
* check is being made may only be performed if it is successfully logged
* to Gin. For instance, the authorization library may satisfy this
* obligation by emitting a partial log entry at authorization check time
* and only returning ALLOW to the application if it succeeds.
*
* If a matching Rule has this directive, but the client has not indicated
* that it will honor such requirements, then the IAM check will result in
* authorization failure by setting CheckPolicyResponse.success=false.
*/
core.String logMode;
DataAccessOptions();
DataAccessOptions.fromJson(core.Map _json) {
if (_json.containsKey("logMode")) {
logMode = _json["logMode"];
}
}
core.Map<core.String, core.Object> toJson() {
final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
if (logMode != null) {
_json["logMode"] = logMode;
}
return _json;
}
}
/** Request message for KeyManagementService.Decrypt. */
class DecryptRequest {
/**
* Optional data that must match the data originally supplied in
* EncryptRequest.additional_authenticated_data.
*/
core.String additionalAuthenticatedData;
core.List<core.int> get additionalAuthenticatedDataAsBytes {
return convert.BASE64.decode(additionalAuthenticatedData);
}
void set additionalAuthenticatedDataAsBytes(core.List<core.int> _bytes) {
additionalAuthenticatedData = convert.BASE64.encode(_bytes).replaceAll("/", "_").replaceAll("+", "-");
}
/**
* Required. The encrypted data originally returned in
* EncryptResponse.ciphertext.
*/
core.String ciphertext;
core.List<core.int> get ciphertextAsBytes {
return convert.BASE64.decode(ciphertext);
}
void set ciphertextAsBytes(core.List<core.int> _bytes) {
ciphertext = convert.BASE64.encode(_bytes).replaceAll("/", "_").replaceAll("+", "-");
}
DecryptRequest();
DecryptRequest.fromJson(core.Map _json) {
if (_json.containsKey("additionalAuthenticatedData")) {
additionalAuthenticatedData = _json["additionalAuthenticatedData"];
}
if (_json.containsKey("ciphertext")) {
ciphertext = _json["ciphertext"];
}
}
core.Map<core.String, core.Object> toJson() {
final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
if (additionalAuthenticatedData != null) {
_json["additionalAuthenticatedData"] = additionalAuthenticatedData;
}
if (ciphertext != null) {
_json["ciphertext"] = ciphertext;
}
return _json;
}
}
/** Response message for KeyManagementService.Decrypt. */
class DecryptResponse {
/** The decrypted data originally supplied in EncryptRequest.plaintext. */
core.String plaintext;
core.List<core.int> get plaintextAsBytes {
return convert.BASE64.decode(plaintext);
}
void set plaintextAsBytes(core.List<core.int> _bytes) {
plaintext = convert.BASE64.encode(_bytes).replaceAll("/", "_").replaceAll("+", "-");
}
DecryptResponse();
DecryptResponse.fromJson(core.Map _json) {
if (_json.containsKey("plaintext")) {
plaintext = _json["plaintext"];
}
}
core.Map<core.String, core.Object> toJson() {
final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
if (plaintext != null) {
_json["plaintext"] = plaintext;
}
return _json;
}
}
/** Request message for KeyManagementService.DestroyCryptoKeyVersion. */
class DestroyCryptoKeyVersionRequest {
DestroyCryptoKeyVersionRequest();
DestroyCryptoKeyVersionRequest.fromJson(core.Map _json) {
}
core.Map<core.String, core.Object> toJson() {
final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
return _json;
}
}
/** Request message for KeyManagementService.Encrypt. */
class EncryptRequest {
/**
* Optional data that, if specified, must also be provided during decryption
* through DecryptRequest.additional_authenticated_data. Must be no
* larger than 64KiB.
*/
core.String additionalAuthenticatedData;
core.List<core.int> get additionalAuthenticatedDataAsBytes {
return convert.BASE64.decode(additionalAuthenticatedData);
}
void set additionalAuthenticatedDataAsBytes(core.List<core.int> _bytes) {
additionalAuthenticatedData = convert.BASE64.encode(_bytes).replaceAll("/", "_").replaceAll("+", "-");
}
/** Required. The data to encrypt. Must be no larger than 64KiB. */
core.String plaintext;
core.List<core.int> get plaintextAsBytes {
return convert.BASE64.decode(plaintext);
}
void set plaintextAsBytes(core.List<core.int> _bytes) {
plaintext = convert.BASE64.encode(_bytes).replaceAll("/", "_").replaceAll("+", "-");
}
EncryptRequest();
EncryptRequest.fromJson(core.Map _json) {
if (_json.containsKey("additionalAuthenticatedData")) {
additionalAuthenticatedData = _json["additionalAuthenticatedData"];
}
if (_json.containsKey("plaintext")) {
plaintext = _json["plaintext"];
}
}
core.Map<core.String, core.Object> toJson() {
final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
if (additionalAuthenticatedData != null) {
_json["additionalAuthenticatedData"] = additionalAuthenticatedData;
}
if (plaintext != null) {
_json["plaintext"] = plaintext;
}
return _json;
}
}
/** Response message for KeyManagementService.Encrypt. */
class EncryptResponse {
/** The encrypted data. */
core.String ciphertext;
core.List<core.int> get ciphertextAsBytes {
return convert.BASE64.decode(ciphertext);
}
void set ciphertextAsBytes(core.List<core.int> _bytes) {
ciphertext = convert.BASE64.encode(_bytes).replaceAll("/", "_").replaceAll("+", "-");
}
/** The resource name of the CryptoKeyVersion used in encryption. */
core.String name;
EncryptResponse();
EncryptResponse.fromJson(core.Map _json) {
if (_json.containsKey("ciphertext")) {
ciphertext = _json["ciphertext"];
}
if (_json.containsKey("name")) {
name = _json["name"];
}
}
core.Map<core.String, core.Object> toJson() {
final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
if (ciphertext != null) {
_json["ciphertext"] = ciphertext;
}
if (name != null) {
_json["name"] = name;
}
return _json;
}
}
/**
* Represents an expression text. Example:
*
* title: "User account presence"
* description: "Determines whether the request has a user account"
* expression: "size(request.user) > 0"
*/
class Expr {
/**
* An optional description of the expression. This is a longer text which
* describes the expression, e.g. when hovered over it in a UI.
*/
core.String description;
/**
* Textual representation of an expression in
* Common Expression Language syntax.
*
* The application context of the containing message determines which
* well-known feature set of CEL is supported.
*/
core.String expression;
/**
* An optional string indicating the location of the expression for error
* reporting, e.g. a file name and a position in the file.
*/
core.String location;
/**
* An optional title for the expression, i.e. a short string describing
* its purpose. This can be used e.g. in UIs which allow to enter the
* expression.
*/
core.String title;
Expr();
Expr.fromJson(core.Map _json) {
if (_json.containsKey("description")) {
description = _json["description"];
}
if (_json.containsKey("expression")) {
expression = _json["expression"];
}
if (_json.containsKey("location")) {
location = _json["location"];
}
if (_json.containsKey("title")) {
title = _json["title"];
}
}
core.Map<core.String, core.Object> toJson() {
final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
if (description != null) {
_json["description"] = description;
}
if (expression != null) {
_json["expression"] = expression;
}
if (location != null) {
_json["location"] = location;
}
if (title != null) {
_json["title"] = title;
}
return _json;
}
}
/** A KeyRing is a toplevel logical grouping of CryptoKeys. */
class KeyRing {
/** Output only. The time at which this KeyRing was created. */
core.String createTime;
/**
* Output only. The resource name for the KeyRing in the format
* `projects / * /locations / * /keyRings / * `.
*/
core.String name;
KeyRing();
KeyRing.fromJson(core.Map _json) {
if (_json.containsKey("createTime")) {
createTime = _json["createTime"];
}
if (_json.containsKey("name")) {
name = _json["name"];
}
}
core.Map<core.String, core.Object> toJson() {
final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
if (createTime != null) {
_json["createTime"] = createTime;
}
if (name != null) {
_json["name"] = name;
}
return _json;
}
}
/** Response message for KeyManagementService.ListCryptoKeyVersions. */
class ListCryptoKeyVersionsResponse {
/** The list of CryptoKeyVersions. */
core.List<CryptoKeyVersion> cryptoKeyVersions;
/**
* A token to retrieve next page of results. Pass this value in
* ListCryptoKeyVersionsRequest.page_token to retrieve the next page of
* results.
*/
core.String nextPageToken;
/**
* The total number of CryptoKeyVersions that matched the
* query.
*/
core.int totalSize;
ListCryptoKeyVersionsResponse();
ListCryptoKeyVersionsResponse.fromJson(core.Map _json) {
if (_json.containsKey("cryptoKeyVersions")) {
cryptoKeyVersions = _json["cryptoKeyVersions"].map((value) => new CryptoKeyVersion.fromJson(value)).toList();
}
if (_json.containsKey("nextPageToken")) {
nextPageToken = _json["nextPageToken"];
}
if (_json.containsKey("totalSize")) {
totalSize = _json["totalSize"];
}
}
core.Map<core.String, core.Object> toJson() {
final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
if (cryptoKeyVersions != null) {
_json["cryptoKeyVersions"] = cryptoKeyVersions.map((value) => (value).toJson()).toList();
}
if (nextPageToken != null) {
_json["nextPageToken"] = nextPageToken;
}
if (totalSize != null) {
_json["totalSize"] = totalSize;
}
return _json;
}
}
/** Response message for KeyManagementService.ListCryptoKeys. */
class ListCryptoKeysResponse {
/** The list of CryptoKeys. */
core.List<CryptoKey> cryptoKeys;
/**
* A token to retrieve next page of results. Pass this value in
* ListCryptoKeysRequest.page_token to retrieve the next page of results.
*/
core.String nextPageToken;
/** The total number of CryptoKeys that matched the query. */
core.int totalSize;
ListCryptoKeysResponse();
ListCryptoKeysResponse.fromJson(core.Map _json) {
if (_json.containsKey("cryptoKeys")) {
cryptoKeys = _json["cryptoKeys"].map((value) => new CryptoKey.fromJson(value)).toList();
}
if (_json.containsKey("nextPageToken")) {
nextPageToken = _json["nextPageToken"];
}
if (_json.containsKey("totalSize")) {
totalSize = _json["totalSize"];
}
}
core.Map<core.String, core.Object> toJson() {
final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
if (cryptoKeys != null) {
_json["cryptoKeys"] = cryptoKeys.map((value) => (value).toJson()).toList();
}
if (nextPageToken != null) {
_json["nextPageToken"] = nextPageToken;
}
if (totalSize != null) {
_json["totalSize"] = totalSize;
}
return _json;
}
}
/** Response message for KeyManagementService.ListKeyRings. */
class ListKeyRingsResponse {
/** The list of KeyRings. */
core.List<KeyRing> keyRings;
/**
* A token to retrieve next page of results. Pass this value in
* ListKeyRingsRequest.page_token to retrieve the next page of results.
*/
core.String nextPageToken;
/** The total number of KeyRings that matched the query. */
core.int totalSize;
ListKeyRingsResponse();
ListKeyRingsResponse.fromJson(core.Map _json) {
if (_json.containsKey("keyRings")) {
keyRings = _json["keyRings"].map((value) => new KeyRing.fromJson(value)).toList();
}
if (_json.containsKey("nextPageToken")) {
nextPageToken = _json["nextPageToken"];
}
if (_json.containsKey("totalSize")) {
totalSize = _json["totalSize"];
}
}
core.Map<core.String, core.Object> toJson() {
final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
if (keyRings != null) {
_json["keyRings"] = keyRings.map((value) => (value).toJson()).toList();
}
if (nextPageToken != null) {
_json["nextPageToken"] = nextPageToken;
}
if (totalSize != null) {
_json["totalSize"] = totalSize;
}
return _json;
}
}
/** The response message for Locations.ListLocations. */
class ListLocationsResponse {
/** A list of locations that matches the specified filter in the request. */
core.List<Location> locations;
/** The standard List next-page token. */
core.String nextPageToken;
ListLocationsResponse();
ListLocationsResponse.fromJson(core.Map _json) {
if (_json.containsKey("locations")) {
locations = _json["locations"].map((value) => new Location.fromJson(value)).toList();
}
if (_json.containsKey("nextPageToken")) {
nextPageToken = _json["nextPageToken"];
}
}
core.Map<core.String, core.Object> toJson() {
final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
if (locations != null) {
_json["locations"] = locations.map((value) => (value).toJson()).toList();
}
if (nextPageToken != null) {
_json["nextPageToken"] = nextPageToken;
}
return _json;
}
}
/** A resource that represents Google Cloud Platform location. */
class Location {
/**
* Cross-service attributes for the location. For example
*
* {"cloud.googleapis.com/region": "us-east1"}
*/
core.Map<core.String, core.String> labels;
/** The canonical id for this location. For example: `"us-east1"`. */
core.String locationId;
/**
* Service-specific metadata. For example the available capacity at the given
* location.
*
* The values for Object must be JSON objects. It can consist of `num`,
* `String`, `bool` and `null` as well as `Map` and `List` values.
*/
core.Map<core.String, core.Object> metadata;
/**
* Resource name for the location, which may vary between implementations.
* For example: `"projects/example-project/locations/us-east1"`
*/
core.String name;
Location();
Location.fromJson(core.Map _json) {
if (_json.containsKey("labels")) {
labels = _json["labels"];
}
if (_json.containsKey("locationId")) {
locationId = _json["locationId"];
}
if (_json.containsKey("metadata")) {
metadata = _json["metadata"];
}
if (_json.containsKey("name")) {
name = _json["name"];
}
}
core.Map<core.String, core.Object> toJson() {
final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
if (labels != null) {
_json["labels"] = labels;
}
if (locationId != null) {
_json["locationId"] = locationId;
}
if (metadata != null) {
_json["metadata"] = metadata;
}
if (name != null) {
_json["name"] = name;
}
return _json;
}
}
/** Specifies what kind of log the caller must write */
class LogConfig {
/** Cloud audit options. */
CloudAuditOptions cloudAudit;
/** Counter options. */
CounterOptions counter;
/** Data access options. */
DataAccessOptions dataAccess;
LogConfig();
LogConfig.fromJson(core.Map _json) {
if (_json.containsKey("cloudAudit")) {
cloudAudit = new CloudAuditOptions.fromJson(_json["cloudAudit"]);
}
if (_json.containsKey("counter")) {
counter = new CounterOptions.fromJson(_json["counter"]);
}
if (_json.containsKey("dataAccess")) {
dataAccess = new DataAccessOptions.fromJson(_json["dataAccess"]);
}
}
core.Map<core.String, core.Object> toJson() {
final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
if (cloudAudit != null) {
_json["cloudAudit"] = (cloudAudit).toJson();
}
if (counter != null) {
_json["counter"] = (counter).toJson();
}
if (dataAccess != null) {
_json["dataAccess"] = (dataAccess).toJson();
}
return _json;
}
}
/**
* Defines an Identity and Access Management (IAM) policy. It is used to
* specify access control policies for Cloud Platform resources.
*
*
* A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
* `members` to a `role`, where the members can be user accounts, Google groups,
* Google domains, and service accounts. A `role` is a named list of permissions
* defined by IAM.
*
* **Example**
*
* {
* "bindings": [
* {
* "role": "roles/owner",
* "members": [
* "user:mike@example.com",
* "group:admins@example.com",
* "domain:google.com",
* "serviceAccount:my-other-app@appspot.gserviceaccount.com",
* ]
* },
* {
* "role": "roles/viewer",
* "members": ["user:sean@example.com"]
* }
* ]
* }
*
* For a description of IAM and its features, see the
* [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`.
* `bindings` with no members will result in an error.
*/
core.List<Binding> bindings;
/**
* `etag` is used for optimistic concurrency control as a way to help
* prevent simultaneous updates of a policy from overwriting each other.
* It is strongly suggested that systems make use of the `etag` in the
* read-modify-write cycle to perform policy updates in order to avoid race
* conditions: An `etag` is returned in the response to `getIamPolicy`, and
* systems are expected to put that etag in the request to `setIamPolicy` to
* ensure that their change will be applied to the same version of the policy.
*
* If no `etag` is provided in the call to `setIamPolicy`, then the existing
* policy is overwritten 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("+", "-");
}
core.bool iamOwned;
/**
* If more than one rule is specified, the rules are applied in the following
* manner:
* - All matching LOG rules are always applied.
* - If any DENY/DENY_WITH_LOG rule matches, permission is denied.
* Logging will be applied if one or more matching rule requires logging.
* - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
* granted.
* Logging will be applied if one or more matching rule requires logging.
* - Otherwise, if no rule applies, permission is denied.
*/
core.List<Rule> rules;
/** Version of the `Policy`. The default version is 0. */
core.int version;
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();
}
if (_json.containsKey("etag")) {
etag = _json["etag"];
}
if (_json.containsKey("iamOwned")) {
iamOwned = _json["iamOwned"];
}
if (_json.containsKey("rules")) {
rules = _json["rules"].map((value) => new Rule.fromJson(value)).toList();
}
if (_json.containsKey("version")) {
version = _json["version"];
}
}
core.Map<core.String, core.Object> toJson() {
final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
if (auditConfigs != null) {
_json["auditConfigs"] = auditConfigs.map((value) => (value).toJson()).toList();
}
if (bindings != null) {
_json["bindings"] = bindings.map((value) => (value).toJson()).toList();
}
if (etag != null) {
_json["etag"] = etag;
}
if (iamOwned != null) {
_json["iamOwned"] = iamOwned;
}
if (rules != null) {
_json["rules"] = rules.map((value) => (value).toJson()).toList();
}
if (version != null) {
_json["version"] = version;
}
return _json;
}
}
/** Request message for KeyManagementService.RestoreCryptoKeyVersion. */
class RestoreCryptoKeyVersionRequest {
RestoreCryptoKeyVersionRequest();
RestoreCryptoKeyVersionRequest.fromJson(core.Map _json) {
}
core.Map<core.String, core.Object> toJson() {
final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
return _json;
}
}
/** A rule to be applied in a Policy. */
class Rule {
/**
* Required
* Possible string values are:
* - "NO_ACTION" : Default no action.
* - "ALLOW" : Matching 'Entries' grant access.
* - "ALLOW_WITH_LOG" : Matching 'Entries' grant access and the caller
* promises to log
* the request per the returned log_configs.
* - "DENY" : Matching 'Entries' deny access.
* - "DENY_WITH_LOG" : Matching 'Entries' deny access and the caller promises
* to log
* the request per the returned log_configs.
* - "LOG" : Matching 'Entries' tell IAM.Check callers to generate logs.
*/
core.String action;
/** Additional restrictions that must be met */
core.List<Condition> conditions;
/** Human-readable description of the rule. */
core.String description;
/**
* If one or more 'in' clauses are specified, the rule matches if
* the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
*/
core.List<core.String> in_;
/**
* The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
* that match the LOG action.
*/
core.List<LogConfig> logConfig;
/**
* If one or more 'not_in' clauses are specified, the rule matches
* if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
* The format for in and not_in entries is the same as for members in a
* Binding (see google/iam/v1/policy.proto).
*/
core.List<core.String> notIn;
/**
* A permission is a string of form '<service>.<resource type>.<verb>'
* (e.g., 'storage.buckets.list'). A value of '*' matches all permissions,
* and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
*/
core.List<core.String> permissions;
Rule();
Rule.fromJson(core.Map _json) {
if (_json.containsKey("action")) {
action = _json["action"];
}
if (_json.containsKey("conditions")) {
conditions = _json["conditions"].map((value) => new Condition.fromJson(value)).toList();
}
if (_json.containsKey("description")) {
description = _json["description"];
}
if (_json.containsKey("in")) {
in_ = _json["in"];
}
if (_json.containsKey("logConfig")) {
logConfig = _json["logConfig"].map((value) => new LogConfig.fromJson(value)).toList();
}
if (_json.containsKey("notIn")) {
notIn = _json["notIn"];
}
if (_json.containsKey("permissions")) {
permissions = _json["permissions"];
}
}
core.Map<core.String, core.Object> toJson() {
final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
if (action != null) {
_json["action"] = action;
}
if (conditions != null) {
_json["conditions"] = conditions.map((value) => (value).toJson()).toList();
}
if (description != null) {
_json["description"] = description;
}
if (in_ != null) {
_json["in"] = in_;
}
if (logConfig != null) {
_json["logConfig"] = logConfig.map((value) => (value).toJson()).toList();
}
if (notIn != null) {
_json["notIn"] = notIn;
}
if (permissions != null) {
_json["permissions"] = permissions;
}
return _json;
}
}
/** Request message for `SetIamPolicy` method. */
class SetIamPolicyRequest {
/**
* REQUIRED: The complete policy to be applied to the `resource`. The size of
* the policy is limited to a few 10s of KB. An empty policy is a
* valid policy but certain Cloud Platform services (such as Projects)
* 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();
SetIamPolicyRequest.fromJson(core.Map _json) {
if (_json.containsKey("policy")) {
policy = new Policy.fromJson(_json["policy"]);
}
if (_json.containsKey("updateMask")) {
updateMask = _json["updateMask"];
}
}
core.Map<core.String, core.Object> toJson() {
final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
if (policy != null) {
_json["policy"] = (policy).toJson();
}
if (updateMask != null) {
_json["updateMask"] = updateMask;
}
return _json;
}
}
/** Request message for `TestIamPermissions` method. */
class TestIamPermissionsRequest {
/**
* The set of permissions to check for the `resource`. Permissions with
* wildcards (such as '*' or 'storage.*') are not allowed. For more
* information see
* [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
*/
core.List<core.String> permissions;
TestIamPermissionsRequest();
TestIamPermissionsRequest.fromJson(core.Map _json) {
if (_json.containsKey("permissions")) {
permissions = _json["permissions"];
}
}
core.Map<core.String, core.Object> toJson() {
final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
if (permissions != null) {
_json["permissions"] = permissions;
}
return _json;
}
}
/** Response message for `TestIamPermissions` method. */
class TestIamPermissionsResponse {
/**
* A subset of `TestPermissionsRequest.permissions` that the caller is
* allowed.
*/
core.List<core.String> permissions;
TestIamPermissionsResponse();
TestIamPermissionsResponse.fromJson(core.Map _json) {
if (_json.containsKey("permissions")) {
permissions = _json["permissions"];
}
}
core.Map<core.String, core.Object> toJson() {
final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
if (permissions != null) {
_json["permissions"] = permissions;
}
return _json;
}
}
/** Request message for KeyManagementService.UpdateCryptoKeyPrimaryVersion. */
class UpdateCryptoKeyPrimaryVersionRequest {
/** The id of the child CryptoKeyVersion to use as primary. */
core.String cryptoKeyVersionId;
UpdateCryptoKeyPrimaryVersionRequest();
UpdateCryptoKeyPrimaryVersionRequest.fromJson(core.Map _json) {
if (_json.containsKey("cryptoKeyVersionId")) {
cryptoKeyVersionId = _json["cryptoKeyVersionId"];
}
}
core.Map<core.String, core.Object> toJson() {
final core.Map<core.String, core.Object> _json = new core.Map<core.String, core.Object>();
if (cryptoKeyVersionId != null) {
_json["cryptoKeyVersionId"] = cryptoKeyVersionId;
}
return _json;
}
}