| // This is a generated file (see the discoveryapis_generator project). |
| |
| // ignore_for_file: camel_case_types |
| // ignore_for_file: comment_references |
| // ignore_for_file: file_names |
| // ignore_for_file: library_names |
| // ignore_for_file: lines_longer_than_80_chars |
| // ignore_for_file: non_constant_identifier_names |
| // ignore_for_file: prefer_expression_function_bodies |
| // ignore_for_file: prefer_interpolation_to_compose_strings |
| // ignore_for_file: unnecessary_brace_in_string_interps |
| // ignore_for_file: unnecessary_cast |
| // ignore_for_file: unnecessary_lambdas |
| // ignore_for_file: unnecessary_parenthesis |
| // ignore_for_file: unnecessary_string_interpolations |
| |
| /// Cloud Key Management Service (KMS) API - v1 |
| /// |
| /// Manages keys and performs cryptographic operations in a central cloud |
| /// service, for direct use by other cloud resources and applications. |
| /// |
| /// For more information, see <https://cloud.google.com/kms/> |
| /// |
| /// Create an instance of [CloudKMSApi] to access these resources: |
| /// |
| /// - [ProjectsResource] |
| /// - [ProjectsLocationsResource] |
| /// - [ProjectsLocationsKeyRingsResource] |
| /// - [ProjectsLocationsKeyRingsCryptoKeysResource] |
| /// - [ProjectsLocationsKeyRingsCryptoKeysCryptoKeyVersionsResource] |
| /// - [ProjectsLocationsKeyRingsImportJobsResource] |
| library cloudkms.v1; |
| |
| import 'dart:async' as async; |
| import 'dart:convert' as convert; |
| import 'dart:core' as core; |
| |
| import 'package:_discoveryapis_commons/_discoveryapis_commons.dart' as commons; |
| import 'package:http/http.dart' as http; |
| |
| import '../src/user_agent.dart'; |
| |
| export 'package:_discoveryapis_commons/_discoveryapis_commons.dart' |
| show ApiRequestError, DetailedApiRequestError; |
| |
| /// Manages keys and performs cryptographic operations in a central cloud |
| /// service, for direct use by other cloud resources and applications. |
| class CloudKMSApi { |
| /// View and manage your data across Google Cloud Platform services |
| static const cloudPlatformScope = |
| 'https://www.googleapis.com/auth/cloud-platform'; |
| |
| /// View and manage your keys and secrets stored in Cloud Key Management |
| /// Service |
| static const cloudkmsScope = 'https://www.googleapis.com/auth/cloudkms'; |
| |
| final commons.ApiRequester _requester; |
| |
| ProjectsResource get projects => ProjectsResource(_requester); |
| |
| CloudKMSApi(http.Client client, |
| {core.String rootUrl = 'https://cloudkms.googleapis.com/', |
| core.String servicePath = ''}) |
| : _requester = |
| commons.ApiRequester(client, rootUrl, servicePath, userAgent); |
| } |
| |
| class ProjectsResource { |
| final commons.ApiRequester _requester; |
| |
| ProjectsLocationsResource get locations => |
| ProjectsLocationsResource(_requester); |
| |
| ProjectsResource(commons.ApiRequester client) : _requester = client; |
| } |
| |
| class ProjectsLocationsResource { |
| final commons.ApiRequester _requester; |
| |
| ProjectsLocationsKeyRingsResource get keyRings => |
| ProjectsLocationsKeyRingsResource(_requester); |
| |
| ProjectsLocationsResource(commons.ApiRequester client) : _requester = client; |
| |
| /// Gets information about a location. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Resource name for the location. |
| /// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// 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, { |
| core.String $fields, |
| }) async { |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = await _requester.request( |
| _url, |
| 'GET', |
| queryParams: _queryParams, |
| ); |
| return Location.fromJson(_response as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// 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/\[^/\]+$`. |
| /// |
| /// [filter] - The standard list filter. |
| /// |
| /// [pageSize] - The standard list page size. |
| /// |
| /// [pageToken] - The standard list page token. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// 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.String filter, |
| core.int pageSize, |
| core.String pageToken, |
| core.String $fields, |
| }) async { |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if (filter != null) { |
| _queryParams['filter'] = [filter]; |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = |
| 'v1/' + commons.Escaper.ecapeVariableReserved('$name') + '/locations'; |
| |
| final _response = await _requester.request( |
| _url, |
| 'GET', |
| queryParams: _queryParams, |
| ); |
| return ListLocationsResponse.fromJson( |
| _response as core.Map<core.String, core.dynamic>); |
| } |
| } |
| |
| class ProjectsLocationsKeyRingsResource { |
| final commons.ApiRequester _requester; |
| |
| ProjectsLocationsKeyRingsCryptoKeysResource get cryptoKeys => |
| ProjectsLocationsKeyRingsCryptoKeysResource(_requester); |
| ProjectsLocationsKeyRingsImportJobsResource get importJobs => |
| ProjectsLocationsKeyRingsImportJobsResource(_requester); |
| |
| ProjectsLocationsKeyRingsResource(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}` |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// 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, |
| core.String $fields, |
| }) async { |
| final _body = |
| request == null ? null : convert.json.encode(request.toJson()); |
| if (parent == null) { |
| throw core.ArgumentError('Parameter parent is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if (keyRingId != null) { |
| _queryParams['keyRingId'] = [keyRingId]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = |
| 'v1/' + commons.Escaper.ecapeVariableReserved('$parent') + '/keyRings'; |
| |
| final _response = await _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| ); |
| return KeyRing.fromJson(_response as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Returns metadata for a given KeyRing. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Required. The name of the KeyRing to get. |
| /// Value must have pattern |
| /// `^projects/\[^/\]+/locations/\[^/\]+/keyRings/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// 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, { |
| core.String $fields, |
| }) async { |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = await _requester.request( |
| _url, |
| 'GET', |
| queryParams: _queryParams, |
| ); |
| return KeyRing.fromJson(_response as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// 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/\[^/\]+$`. |
| /// |
| /// [options_requestedPolicyVersion] - Optional. The policy format version to |
| /// be returned. Valid values are 0, 1, and 3. Requests specifying an invalid |
| /// value will be rejected. Requests for policies with any conditional |
| /// bindings must specify version 3. Policies without any conditional bindings |
| /// may specify any valid value or leave the field unset. To learn which |
| /// resources support conditions in their IAM policies, see the |
| /// [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// 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, { |
| core.int options_requestedPolicyVersion, |
| core.String $fields, |
| }) async { |
| if (resource == null) { |
| throw core.ArgumentError('Parameter resource is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if (options_requestedPolicyVersion != null) { |
| _queryParams['options.requestedPolicyVersion'] = [ |
| '${options_requestedPolicyVersion}' |
| ]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = 'v1/' + |
| commons.Escaper.ecapeVariableReserved('$resource') + |
| ':getIamPolicy'; |
| |
| final _response = await _requester.request( |
| _url, |
| 'GET', |
| queryParams: _queryParams, |
| ); |
| return Policy.fromJson(_response as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// 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/\[^/\]+$`. |
| /// |
| /// [filter] - Optional. Only include resources that match the filter in the |
| /// response. For more information, see |
| /// [Sorting and filtering list results](https://cloud.google.com/kms/docs/sorting-and-filtering). |
| /// |
| /// [orderBy] - Optional. Specify how the results should be sorted. If not |
| /// specified, the results will be sorted in the default order. For more |
| /// information, see |
| /// [Sorting and filtering list results](https://cloud.google.com/kms/docs/sorting-and-filtering). |
| /// |
| /// [pageSize] - Optional. 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. Optional pagination token, returned earlier via |
| /// ListKeyRingsResponse.next_page_token. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// 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.String filter, |
| core.String orderBy, |
| core.int pageSize, |
| core.String pageToken, |
| core.String $fields, |
| }) async { |
| if (parent == null) { |
| throw core.ArgumentError('Parameter parent is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if (filter != null) { |
| _queryParams['filter'] = [filter]; |
| } |
| if (orderBy != null) { |
| _queryParams['orderBy'] = [orderBy]; |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = |
| 'v1/' + commons.Escaper.ecapeVariableReserved('$parent') + '/keyRings'; |
| |
| final _response = await _requester.request( |
| _url, |
| 'GET', |
| queryParams: _queryParams, |
| ); |
| return ListKeyRingsResponse.fromJson( |
| _response as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Sets the access control policy on the specified resource. |
| /// |
| /// Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, |
| /// and `PERMISSION_DENIED` errors. |
| /// |
| /// [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/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// 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, { |
| core.String $fields, |
| }) async { |
| final _body = |
| request == null ? null : convert.json.encode(request.toJson()); |
| if (resource == null) { |
| throw core.ArgumentError('Parameter resource is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = 'v1/' + |
| commons.Escaper.ecapeVariableReserved('$resource') + |
| ':setIamPolicy'; |
| |
| final _response = await _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| ); |
| return Policy.fromJson(_response as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// 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/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// 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, { |
| core.String $fields, |
| }) async { |
| final _body = |
| request == null ? null : convert.json.encode(request.toJson()); |
| if (resource == null) { |
| throw core.ArgumentError('Parameter resource is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = 'v1/' + |
| commons.Escaper.ecapeVariableReserved('$resource') + |
| ':testIamPermissions'; |
| |
| final _response = await _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| ); |
| return TestIamPermissionsResponse.fromJson( |
| _response as core.Map<core.String, core.dynamic>); |
| } |
| } |
| |
| class ProjectsLocationsKeyRingsCryptoKeysResource { |
| final commons.ApiRequester _requester; |
| |
| ProjectsLocationsKeyRingsCryptoKeysCryptoKeyVersionsResource |
| get cryptoKeyVersions => |
| ProjectsLocationsKeyRingsCryptoKeysCryptoKeyVersionsResource( |
| _requester); |
| |
| ProjectsLocationsKeyRingsCryptoKeysResource(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// Create a new CryptoKey within a KeyRing. |
| /// |
| /// CryptoKey.purpose and CryptoKey.version_template.algorithm are 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}` |
| /// |
| /// [skipInitialVersionCreation] - If set to true, the request will create a |
| /// CryptoKey without any CryptoKeyVersions. You must manually call |
| /// CreateCryptoKeyVersion or ImportCryptoKeyVersion before you can use this |
| /// CryptoKey. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// 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, |
| core.bool skipInitialVersionCreation, |
| core.String $fields, |
| }) async { |
| final _body = |
| request == null ? null : convert.json.encode(request.toJson()); |
| if (parent == null) { |
| throw core.ArgumentError('Parameter parent is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if (cryptoKeyId != null) { |
| _queryParams['cryptoKeyId'] = [cryptoKeyId]; |
| } |
| if (skipInitialVersionCreation != null) { |
| _queryParams['skipInitialVersionCreation'] = [ |
| '${skipInitialVersionCreation}' |
| ]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = 'v1/' + |
| commons.Escaper.ecapeVariableReserved('$parent') + |
| '/cryptoKeys'; |
| |
| final _response = await _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| ); |
| return CryptoKey.fromJson(_response as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Decrypts data that was protected by Encrypt. |
| /// |
| /// The CryptoKey.purpose must be ENCRYPT_DECRYPT. |
| /// |
| /// [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/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// 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, { |
| core.String $fields, |
| }) async { |
| final _body = |
| request == null ? null : convert.json.encode(request.toJson()); |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = |
| 'v1/' + commons.Escaper.ecapeVariableReserved('$name') + ':decrypt'; |
| |
| final _response = await _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| ); |
| return DecryptResponse.fromJson( |
| _response as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Encrypts data, so that it can only be recovered by a call to Decrypt. |
| /// |
| /// The CryptoKey.purpose must be ENCRYPT_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/.*$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// 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, { |
| core.String $fields, |
| }) async { |
| final _body = |
| request == null ? null : convert.json.encode(request.toJson()); |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = |
| 'v1/' + commons.Escaper.ecapeVariableReserved('$name') + ':encrypt'; |
| |
| final _response = await _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| ); |
| return EncryptResponse.fromJson( |
| _response as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Returns metadata for a given CryptoKey, as well as its primary |
| /// CryptoKeyVersion. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Required. The name of the CryptoKey to get. |
| /// Value must have pattern |
| /// `^projects/\[^/\]+/locations/\[^/\]+/keyRings/\[^/\]+/cryptoKeys/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// 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, { |
| core.String $fields, |
| }) async { |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = await _requester.request( |
| _url, |
| 'GET', |
| queryParams: _queryParams, |
| ); |
| return CryptoKey.fromJson(_response as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// 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/\[^/\]+$`. |
| /// |
| /// [options_requestedPolicyVersion] - Optional. The policy format version to |
| /// be returned. Valid values are 0, 1, and 3. Requests specifying an invalid |
| /// value will be rejected. Requests for policies with any conditional |
| /// bindings must specify version 3. Policies without any conditional bindings |
| /// may specify any valid value or leave the field unset. To learn which |
| /// resources support conditions in their IAM policies, see the |
| /// [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// 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, { |
| core.int options_requestedPolicyVersion, |
| core.String $fields, |
| }) async { |
| if (resource == null) { |
| throw core.ArgumentError('Parameter resource is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if (options_requestedPolicyVersion != null) { |
| _queryParams['options.requestedPolicyVersion'] = [ |
| '${options_requestedPolicyVersion}' |
| ]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = 'v1/' + |
| commons.Escaper.ecapeVariableReserved('$resource') + |
| ':getIamPolicy'; |
| |
| final _response = await _requester.request( |
| _url, |
| 'GET', |
| queryParams: _queryParams, |
| ); |
| return Policy.fromJson(_response as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// 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/\[^/\]+$`. |
| /// |
| /// [filter] - Optional. Only include resources that match the filter in the |
| /// response. For more information, see |
| /// [Sorting and filtering list results](https://cloud.google.com/kms/docs/sorting-and-filtering). |
| /// |
| /// [orderBy] - Optional. Specify how the results should be sorted. If not |
| /// specified, the results will be sorted in the default order. For more |
| /// information, see |
| /// [Sorting and filtering list results](https://cloud.google.com/kms/docs/sorting-and-filtering). |
| /// |
| /// [pageSize] - Optional. 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. Optional pagination token, returned earlier via |
| /// ListCryptoKeysResponse.next_page_token. |
| /// |
| /// [versionView] - The fields of the primary version to include in the |
| /// response. |
| /// Possible string values are: |
| /// - "CRYPTO_KEY_VERSION_VIEW_UNSPECIFIED" : Default view for each |
| /// CryptoKeyVersion. Does not include the attestation field. |
| /// - "FULL" : Provides all fields in each CryptoKeyVersion, including the |
| /// attestation. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// 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.String filter, |
| core.String orderBy, |
| core.int pageSize, |
| core.String pageToken, |
| core.String versionView, |
| core.String $fields, |
| }) async { |
| if (parent == null) { |
| throw core.ArgumentError('Parameter parent is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if (filter != null) { |
| _queryParams['filter'] = [filter]; |
| } |
| if (orderBy != null) { |
| _queryParams['orderBy'] = [orderBy]; |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if (versionView != null) { |
| _queryParams['versionView'] = [versionView]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = 'v1/' + |
| commons.Escaper.ecapeVariableReserved('$parent') + |
| '/cryptoKeys'; |
| |
| final _response = await _requester.request( |
| _url, |
| 'GET', |
| queryParams: _queryParams, |
| ); |
| return ListCryptoKeysResponse.fromJson( |
| _response as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// 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. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// 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, |
| core.String $fields, |
| }) async { |
| final _body = |
| request == null ? null : convert.json.encode(request.toJson()); |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if (updateMask != null) { |
| _queryParams['updateMask'] = [updateMask]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = await _requester.request( |
| _url, |
| 'PATCH', |
| body: _body, |
| queryParams: _queryParams, |
| ); |
| return CryptoKey.fromJson(_response as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Sets the access control policy on the specified resource. |
| /// |
| /// Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, |
| /// and `PERMISSION_DENIED` errors. |
| /// |
| /// [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/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// 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, { |
| core.String $fields, |
| }) async { |
| final _body = |
| request == null ? null : convert.json.encode(request.toJson()); |
| if (resource == null) { |
| throw core.ArgumentError('Parameter resource is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = 'v1/' + |
| commons.Escaper.ecapeVariableReserved('$resource') + |
| ':setIamPolicy'; |
| |
| final _response = await _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| ); |
| return Policy.fromJson(_response as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// 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/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// 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, { |
| core.String $fields, |
| }) async { |
| final _body = |
| request == null ? null : convert.json.encode(request.toJson()); |
| if (resource == null) { |
| throw core.ArgumentError('Parameter resource is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = 'v1/' + |
| commons.Escaper.ecapeVariableReserved('$resource') + |
| ':testIamPermissions'; |
| |
| final _response = await _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| ); |
| return TestIamPermissionsResponse.fromJson( |
| _response as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Update the version of a CryptoKey that will be used in Encrypt. |
| /// |
| /// Returns an error if called on an asymmetric key. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Required. The resource name of the CryptoKey to update. |
| /// Value must have pattern |
| /// `^projects/\[^/\]+/locations/\[^/\]+/keyRings/\[^/\]+/cryptoKeys/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// 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, { |
| core.String $fields, |
| }) async { |
| final _body = |
| request == null ? null : convert.json.encode(request.toJson()); |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = 'v1/' + |
| commons.Escaper.ecapeVariableReserved('$name') + |
| ':updatePrimaryVersion'; |
| |
| final _response = await _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| ); |
| return CryptoKey.fromJson(_response as core.Map<core.String, core.dynamic>); |
| } |
| } |
| |
| class ProjectsLocationsKeyRingsCryptoKeysCryptoKeyVersionsResource { |
| final commons.ApiRequester _requester; |
| |
| ProjectsLocationsKeyRingsCryptoKeysCryptoKeyVersionsResource( |
| commons.ApiRequester client) |
| : _requester = client; |
| |
| /// Decrypts data that was encrypted with a public key retrieved from |
| /// GetPublicKey corresponding to a CryptoKeyVersion with CryptoKey.purpose |
| /// ASYMMETRIC_DECRYPT. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Required. The resource name of the CryptoKeyVersion to use for |
| /// decryption. |
| /// Value must have pattern |
| /// `^projects/\[^/\]+/locations/\[^/\]+/keyRings/\[^/\]+/cryptoKeys/\[^/\]+/cryptoKeyVersions/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [AsymmetricDecryptResponse]. |
| /// |
| /// 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<AsymmetricDecryptResponse> asymmetricDecrypt( |
| AsymmetricDecryptRequest request, |
| core.String name, { |
| core.String $fields, |
| }) async { |
| final _body = |
| request == null ? null : convert.json.encode(request.toJson()); |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = 'v1/' + |
| commons.Escaper.ecapeVariableReserved('$name') + |
| ':asymmetricDecrypt'; |
| |
| final _response = await _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| ); |
| return AsymmetricDecryptResponse.fromJson( |
| _response as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Signs data using a CryptoKeyVersion with CryptoKey.purpose |
| /// ASYMMETRIC_SIGN, producing a signature that can be verified with the |
| /// public key retrieved from GetPublicKey. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Required. The resource name of the CryptoKeyVersion to use for |
| /// signing. |
| /// Value must have pattern |
| /// `^projects/\[^/\]+/locations/\[^/\]+/keyRings/\[^/\]+/cryptoKeys/\[^/\]+/cryptoKeyVersions/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [AsymmetricSignResponse]. |
| /// |
| /// 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<AsymmetricSignResponse> asymmetricSign( |
| AsymmetricSignRequest request, |
| core.String name, { |
| core.String $fields, |
| }) async { |
| final _body = |
| request == null ? null : convert.json.encode(request.toJson()); |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = 'v1/' + |
| commons.Escaper.ecapeVariableReserved('$name') + |
| ':asymmetricSign'; |
| |
| final _response = await _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| ); |
| return AsymmetricSignResponse.fromJson( |
| _response as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// 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/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// 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, { |
| core.String $fields, |
| }) async { |
| final _body = |
| request == null ? null : convert.json.encode(request.toJson()); |
| if (parent == null) { |
| throw core.ArgumentError('Parameter parent is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = 'v1/' + |
| commons.Escaper.ecapeVariableReserved('$parent') + |
| '/cryptoKeyVersions'; |
| |
| final _response = await _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| ); |
| return CryptoKeyVersion.fromJson( |
| _response as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// 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] - Required. The resource name of the CryptoKeyVersion to destroy. |
| /// Value must have pattern |
| /// `^projects/\[^/\]+/locations/\[^/\]+/keyRings/\[^/\]+/cryptoKeys/\[^/\]+/cryptoKeyVersions/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// 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, { |
| core.String $fields, |
| }) async { |
| final _body = |
| request == null ? null : convert.json.encode(request.toJson()); |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = |
| 'v1/' + commons.Escaper.ecapeVariableReserved('$name') + ':destroy'; |
| |
| final _response = await _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| ); |
| return CryptoKeyVersion.fromJson( |
| _response as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Returns metadata for a given CryptoKeyVersion. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Required. The name of the CryptoKeyVersion to get. |
| /// Value must have pattern |
| /// `^projects/\[^/\]+/locations/\[^/\]+/keyRings/\[^/\]+/cryptoKeys/\[^/\]+/cryptoKeyVersions/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// 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, { |
| core.String $fields, |
| }) async { |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = await _requester.request( |
| _url, |
| 'GET', |
| queryParams: _queryParams, |
| ); |
| return CryptoKeyVersion.fromJson( |
| _response as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Returns the public key for the given CryptoKeyVersion. |
| /// |
| /// The CryptoKey.purpose must be ASYMMETRIC_SIGN or ASYMMETRIC_DECRYPT. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Required. The name of the CryptoKeyVersion public key to get. |
| /// Value must have pattern |
| /// `^projects/\[^/\]+/locations/\[^/\]+/keyRings/\[^/\]+/cryptoKeys/\[^/\]+/cryptoKeyVersions/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [PublicKey]. |
| /// |
| /// 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<PublicKey> getPublicKey( |
| core.String name, { |
| core.String $fields, |
| }) async { |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = |
| 'v1/' + commons.Escaper.ecapeVariableReserved('$name') + '/publicKey'; |
| |
| final _response = await _requester.request( |
| _url, |
| 'GET', |
| queryParams: _queryParams, |
| ); |
| return PublicKey.fromJson(_response as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Imports a new CryptoKeyVersion into an existing CryptoKey using the |
| /// wrapped key material provided in the request. |
| /// |
| /// The version ID will be assigned the next sequential id within the |
| /// CryptoKey. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [parent] - Required. The name of the CryptoKey to be imported into. |
| /// Value must have pattern |
| /// `^projects/\[^/\]+/locations/\[^/\]+/keyRings/\[^/\]+/cryptoKeys/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// 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> import( |
| ImportCryptoKeyVersionRequest request, |
| core.String parent, { |
| core.String $fields, |
| }) async { |
| final _body = |
| request == null ? null : convert.json.encode(request.toJson()); |
| if (parent == null) { |
| throw core.ArgumentError('Parameter parent is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = 'v1/' + |
| commons.Escaper.ecapeVariableReserved('$parent') + |
| '/cryptoKeyVersions:import'; |
| |
| final _response = await _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| ); |
| return CryptoKeyVersion.fromJson( |
| _response as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// 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/\[^/\]+$`. |
| /// |
| /// [filter] - Optional. Only include resources that match the filter in the |
| /// response. For more information, see |
| /// [Sorting and filtering list results](https://cloud.google.com/kms/docs/sorting-and-filtering). |
| /// |
| /// [orderBy] - Optional. Specify how the results should be sorted. If not |
| /// specified, the results will be sorted in the default order. For more |
| /// information, see |
| /// [Sorting and filtering list results](https://cloud.google.com/kms/docs/sorting-and-filtering). |
| /// |
| /// [pageSize] - Optional. 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. Optional pagination token, returned earlier via |
| /// ListCryptoKeyVersionsResponse.next_page_token. |
| /// |
| /// [view] - The fields to include in the response. |
| /// Possible string values are: |
| /// - "CRYPTO_KEY_VERSION_VIEW_UNSPECIFIED" : Default view for each |
| /// CryptoKeyVersion. Does not include the attestation field. |
| /// - "FULL" : Provides all fields in each CryptoKeyVersion, including the |
| /// attestation. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// 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.String filter, |
| core.String orderBy, |
| core.int pageSize, |
| core.String pageToken, |
| core.String view, |
| core.String $fields, |
| }) async { |
| if (parent == null) { |
| throw core.ArgumentError('Parameter parent is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if (filter != null) { |
| _queryParams['filter'] = [filter]; |
| } |
| if (orderBy != null) { |
| _queryParams['orderBy'] = [orderBy]; |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if (view != null) { |
| _queryParams['view'] = [view]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = 'v1/' + |
| commons.Escaper.ecapeVariableReserved('$parent') + |
| '/cryptoKeyVersions'; |
| |
| final _response = await _requester.request( |
| _url, |
| 'GET', |
| queryParams: _queryParams, |
| ); |
| return ListCryptoKeyVersionsResponse.fromJson( |
| _response as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// 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. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// 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, |
| core.String $fields, |
| }) async { |
| final _body = |
| request == null ? null : convert.json.encode(request.toJson()); |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if (updateMask != null) { |
| _queryParams['updateMask'] = [updateMask]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = await _requester.request( |
| _url, |
| 'PATCH', |
| body: _body, |
| queryParams: _queryParams, |
| ); |
| return CryptoKeyVersion.fromJson( |
| _response as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// 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] - Required. The resource name of the CryptoKeyVersion to restore. |
| /// Value must have pattern |
| /// `^projects/\[^/\]+/locations/\[^/\]+/keyRings/\[^/\]+/cryptoKeys/\[^/\]+/cryptoKeyVersions/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// 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, { |
| core.String $fields, |
| }) async { |
| final _body = |
| request == null ? null : convert.json.encode(request.toJson()); |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = |
| 'v1/' + commons.Escaper.ecapeVariableReserved('$name') + ':restore'; |
| |
| final _response = await _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| ); |
| return CryptoKeyVersion.fromJson( |
| _response as core.Map<core.String, core.dynamic>); |
| } |
| } |
| |
| class ProjectsLocationsKeyRingsImportJobsResource { |
| final commons.ApiRequester _requester; |
| |
| ProjectsLocationsKeyRingsImportJobsResource(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// Create a new ImportJob within a KeyRing. |
| /// |
| /// ImportJob.import_method is required. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [parent] - Required. The name of the KeyRing associated with the |
| /// ImportJobs. |
| /// Value must have pattern |
| /// `^projects/\[^/\]+/locations/\[^/\]+/keyRings/\[^/\]+$`. |
| /// |
| /// [importJobId] - Required. It must be unique within a KeyRing and match the |
| /// regular expression `[a-zA-Z0-9_-]{1,63}` |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ImportJob]. |
| /// |
| /// 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<ImportJob> create( |
| ImportJob request, |
| core.String parent, { |
| core.String importJobId, |
| core.String $fields, |
| }) async { |
| final _body = |
| request == null ? null : convert.json.encode(request.toJson()); |
| if (parent == null) { |
| throw core.ArgumentError('Parameter parent is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if (importJobId != null) { |
| _queryParams['importJobId'] = [importJobId]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = 'v1/' + |
| commons.Escaper.ecapeVariableReserved('$parent') + |
| '/importJobs'; |
| |
| final _response = await _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| ); |
| return ImportJob.fromJson(_response as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Returns metadata for a given ImportJob. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Required. The name of the ImportJob to get. |
| /// Value must have pattern |
| /// `^projects/\[^/\]+/locations/\[^/\]+/keyRings/\[^/\]+/importJobs/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ImportJob]. |
| /// |
| /// 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<ImportJob> get( |
| core.String name, { |
| core.String $fields, |
| }) async { |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = 'v1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = await _requester.request( |
| _url, |
| 'GET', |
| queryParams: _queryParams, |
| ); |
| return ImportJob.fromJson(_response as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// 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/\[^/\]+/importJobs/\[^/\]+$`. |
| /// |
| /// [options_requestedPolicyVersion] - Optional. The policy format version to |
| /// be returned. Valid values are 0, 1, and 3. Requests specifying an invalid |
| /// value will be rejected. Requests for policies with any conditional |
| /// bindings must specify version 3. Policies without any conditional bindings |
| /// may specify any valid value or leave the field unset. To learn which |
| /// resources support conditions in their IAM policies, see the |
| /// [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// 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, { |
| core.int options_requestedPolicyVersion, |
| core.String $fields, |
| }) async { |
| if (resource == null) { |
| throw core.ArgumentError('Parameter resource is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if (options_requestedPolicyVersion != null) { |
| _queryParams['options.requestedPolicyVersion'] = [ |
| '${options_requestedPolicyVersion}' |
| ]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = 'v1/' + |
| commons.Escaper.ecapeVariableReserved('$resource') + |
| ':getIamPolicy'; |
| |
| final _response = await _requester.request( |
| _url, |
| 'GET', |
| queryParams: _queryParams, |
| ); |
| return Policy.fromJson(_response as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Lists ImportJobs. |
| /// |
| /// 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/\[^/\]+$`. |
| /// |
| /// [filter] - Optional. Only include resources that match the filter in the |
| /// response. For more information, see |
| /// [Sorting and filtering list results](https://cloud.google.com/kms/docs/sorting-and-filtering). |
| /// |
| /// [orderBy] - Optional. Specify how the results should be sorted. If not |
| /// specified, the results will be sorted in the default order. For more |
| /// information, see |
| /// [Sorting and filtering list results](https://cloud.google.com/kms/docs/sorting-and-filtering). |
| /// |
| /// [pageSize] - Optional. Optional limit on the number of ImportJobs to |
| /// include in the response. Further ImportJobs can subsequently be obtained |
| /// by including the ListImportJobsResponse.next_page_token in a subsequent |
| /// request. If unspecified, the server will pick an appropriate default. |
| /// |
| /// [pageToken] - Optional. Optional pagination token, returned earlier via |
| /// ListImportJobsResponse.next_page_token. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListImportJobsResponse]. |
| /// |
| /// 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<ListImportJobsResponse> list( |
| core.String parent, { |
| core.String filter, |
| core.String orderBy, |
| core.int pageSize, |
| core.String pageToken, |
| core.String $fields, |
| }) async { |
| if (parent == null) { |
| throw core.ArgumentError('Parameter parent is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if (filter != null) { |
| _queryParams['filter'] = [filter]; |
| } |
| if (orderBy != null) { |
| _queryParams['orderBy'] = [orderBy]; |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = 'v1/' + |
| commons.Escaper.ecapeVariableReserved('$parent') + |
| '/importJobs'; |
| |
| final _response = await _requester.request( |
| _url, |
| 'GET', |
| queryParams: _queryParams, |
| ); |
| return ListImportJobsResponse.fromJson( |
| _response as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// Sets the access control policy on the specified resource. |
| /// |
| /// Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, |
| /// and `PERMISSION_DENIED` errors. |
| /// |
| /// [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/\[^/\]+/importJobs/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// 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, { |
| core.String $fields, |
| }) async { |
| final _body = |
| request == null ? null : convert.json.encode(request.toJson()); |
| if (resource == null) { |
| throw core.ArgumentError('Parameter resource is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = 'v1/' + |
| commons.Escaper.ecapeVariableReserved('$resource') + |
| ':setIamPolicy'; |
| |
| final _response = await _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| ); |
| return Policy.fromJson(_response as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// 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/\[^/\]+/importJobs/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// 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, { |
| core.String $fields, |
| }) async { |
| final _body = |
| request == null ? null : convert.json.encode(request.toJson()); |
| if (resource == null) { |
| throw core.ArgumentError('Parameter resource is required.'); |
| } |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| final _url = 'v1/' + |
| commons.Escaper.ecapeVariableReserved('$resource') + |
| ':testIamPermissions'; |
| |
| final _response = await _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| ); |
| return TestIamPermissionsResponse.fromJson( |
| _response as core.Map<core.String, core.dynamic>); |
| } |
| } |
| |
| /// Request message for KeyManagementService.AsymmetricDecrypt. |
| class AsymmetricDecryptRequest { |
| /// The data encrypted with the named CryptoKeyVersion's public key using |
| /// OAEP. |
| /// |
| /// Required. |
| core.String ciphertext; |
| core.List<core.int> get ciphertextAsBytes => |
| convert.base64.decode(ciphertext); |
| |
| set ciphertextAsBytes(core.List<core.int> _bytes) { |
| ciphertext = |
| convert.base64.encode(_bytes).replaceAll('/', '_').replaceAll('+', '-'); |
| } |
| |
| /// An optional CRC32C checksum of the AsymmetricDecryptRequest.ciphertext. |
| /// |
| /// If specified, KeyManagementService will verify the integrity of the |
| /// received AsymmetricDecryptRequest.ciphertext using this checksum. |
| /// KeyManagementService will report an error if the checksum verification |
| /// fails. If you receive a checksum error, your client should verify that |
| /// CRC32C(AsymmetricDecryptRequest.ciphertext) is equal to |
| /// AsymmetricDecryptRequest.ciphertext_crc32c, and if so, perform a limited |
| /// number of retries. A persistent mismatch may indicate an issue in your |
| /// computation of the CRC32C checksum. Note: This field is defined as int64 |
| /// for reasons of compatibility across different languages. However, it is a |
| /// non-negative integer, which will never exceed 2^32-1, and can be safely |
| /// downconverted to uint32 in languages that support this type. NOTE: This |
| /// field is in Beta. |
| /// |
| /// Optional. |
| core.String ciphertextCrc32c; |
| |
| AsymmetricDecryptRequest(); |
| |
| AsymmetricDecryptRequest.fromJson(core.Map _json) { |
| if (_json.containsKey('ciphertext')) { |
| ciphertext = _json['ciphertext'] as core.String; |
| } |
| if (_json.containsKey('ciphertextCrc32c')) { |
| ciphertextCrc32c = _json['ciphertextCrc32c'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (ciphertext != null) { |
| _json['ciphertext'] = ciphertext; |
| } |
| if (ciphertextCrc32c != null) { |
| _json['ciphertextCrc32c'] = ciphertextCrc32c; |
| } |
| return _json; |
| } |
| } |
| |
| /// Response message for KeyManagementService.AsymmetricDecrypt. |
| class AsymmetricDecryptResponse { |
| /// The decrypted data originally encrypted with the matching public key. |
| core.String plaintext; |
| core.List<core.int> get plaintextAsBytes => convert.base64.decode(plaintext); |
| |
| set plaintextAsBytes(core.List<core.int> _bytes) { |
| plaintext = |
| convert.base64.encode(_bytes).replaceAll('/', '_').replaceAll('+', '-'); |
| } |
| |
| /// Integrity verification field. |
| /// |
| /// A CRC32C checksum of the returned AsymmetricDecryptResponse.plaintext. An |
| /// integrity check of AsymmetricDecryptResponse.plaintext can be performed by |
| /// computing the CRC32C checksum of AsymmetricDecryptResponse.plaintext and |
| /// comparing your results to this field. Discard the response in case of |
| /// non-matching checksum values, and perform a limited number of retries. A |
| /// persistent mismatch may indicate an issue in your computation of the |
| /// CRC32C checksum. Note: This field is defined as int64 for reasons of |
| /// compatibility across different languages. However, it is a non-negative |
| /// integer, which will never exceed 2^32-1, and can be safely downconverted |
| /// to uint32 in languages that support this type. NOTE: This field is in |
| /// Beta. |
| core.String plaintextCrc32c; |
| |
| /// The ProtectionLevel of the CryptoKeyVersion used in decryption. |
| /// Possible string values are: |
| /// - "PROTECTION_LEVEL_UNSPECIFIED" : Not specified. |
| /// - "SOFTWARE" : Crypto operations are performed in software. |
| /// - "HSM" : Crypto operations are performed in a Hardware Security Module. |
| /// - "EXTERNAL" : Crypto operations are performed by an external key manager. |
| core.String protectionLevel; |
| |
| /// Integrity verification field. |
| /// |
| /// A flag indicating whether AsymmetricDecryptRequest.ciphertext_crc32c was |
| /// received by KeyManagementService and used for the integrity verification |
| /// of the ciphertext. A false value of this field indicates either that |
| /// AsymmetricDecryptRequest.ciphertext_crc32c was left unset or that it was |
| /// not delivered to KeyManagementService. If you've set |
| /// AsymmetricDecryptRequest.ciphertext_crc32c but this field is still false, |
| /// discard the response and perform a limited number of retries. NOTE: This |
| /// field is in Beta. |
| core.bool verifiedCiphertextCrc32c; |
| |
| AsymmetricDecryptResponse(); |
| |
| AsymmetricDecryptResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('plaintext')) { |
| plaintext = _json['plaintext'] as core.String; |
| } |
| if (_json.containsKey('plaintextCrc32c')) { |
| plaintextCrc32c = _json['plaintextCrc32c'] as core.String; |
| } |
| if (_json.containsKey('protectionLevel')) { |
| protectionLevel = _json['protectionLevel'] as core.String; |
| } |
| if (_json.containsKey('verifiedCiphertextCrc32c')) { |
| verifiedCiphertextCrc32c = _json['verifiedCiphertextCrc32c'] as core.bool; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (plaintext != null) { |
| _json['plaintext'] = plaintext; |
| } |
| if (plaintextCrc32c != null) { |
| _json['plaintextCrc32c'] = plaintextCrc32c; |
| } |
| if (protectionLevel != null) { |
| _json['protectionLevel'] = protectionLevel; |
| } |
| if (verifiedCiphertextCrc32c != null) { |
| _json['verifiedCiphertextCrc32c'] = verifiedCiphertextCrc32c; |
| } |
| return _json; |
| } |
| } |
| |
| /// Request message for KeyManagementService.AsymmetricSign. |
| class AsymmetricSignRequest { |
| /// The digest of the data to sign. |
| /// |
| /// The digest must be produced with the same digest algorithm as specified by |
| /// the key version's algorithm. |
| /// |
| /// Optional. |
| Digest digest; |
| |
| /// An optional CRC32C checksum of the AsymmetricSignRequest.digest. |
| /// |
| /// If specified, KeyManagementService will verify the integrity of the |
| /// received AsymmetricSignRequest.digest using this checksum. |
| /// KeyManagementService will report an error if the checksum verification |
| /// fails. If you receive a checksum error, your client should verify that |
| /// CRC32C(AsymmetricSignRequest.digest) is equal to |
| /// AsymmetricSignRequest.digest_crc32c, and if so, perform a limited number |
| /// of retries. A persistent mismatch may indicate an issue in your |
| /// computation of the CRC32C checksum. Note: This field is defined as int64 |
| /// for reasons of compatibility across different languages. However, it is a |
| /// non-negative integer, which will never exceed 2^32-1, and can be safely |
| /// downconverted to uint32 in languages that support this type. NOTE: This |
| /// field is in Beta. |
| /// |
| /// Optional. |
| core.String digestCrc32c; |
| |
| AsymmetricSignRequest(); |
| |
| AsymmetricSignRequest.fromJson(core.Map _json) { |
| if (_json.containsKey('digest')) { |
| digest = Digest.fromJson( |
| _json['digest'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('digestCrc32c')) { |
| digestCrc32c = _json['digestCrc32c'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (digest != null) { |
| _json['digest'] = digest.toJson(); |
| } |
| if (digestCrc32c != null) { |
| _json['digestCrc32c'] = digestCrc32c; |
| } |
| return _json; |
| } |
| } |
| |
| /// Response message for KeyManagementService.AsymmetricSign. |
| class AsymmetricSignResponse { |
| /// The resource name of the CryptoKeyVersion used for signing. |
| /// |
| /// Check this field to verify that the intended resource was used for |
| /// signing. NOTE: This field is in Beta. |
| core.String name; |
| |
| /// The ProtectionLevel of the CryptoKeyVersion used for signing. |
| /// Possible string values are: |
| /// - "PROTECTION_LEVEL_UNSPECIFIED" : Not specified. |
| /// - "SOFTWARE" : Crypto operations are performed in software. |
| /// - "HSM" : Crypto operations are performed in a Hardware Security Module. |
| /// - "EXTERNAL" : Crypto operations are performed by an external key manager. |
| core.String protectionLevel; |
| |
| /// The created signature. |
| core.String signature; |
| core.List<core.int> get signatureAsBytes => convert.base64.decode(signature); |
| |
| set signatureAsBytes(core.List<core.int> _bytes) { |
| signature = |
| convert.base64.encode(_bytes).replaceAll('/', '_').replaceAll('+', '-'); |
| } |
| |
| /// Integrity verification field. |
| /// |
| /// A CRC32C checksum of the returned AsymmetricSignResponse.signature. An |
| /// integrity check of AsymmetricSignResponse.signature can be performed by |
| /// computing the CRC32C checksum of AsymmetricSignResponse.signature and |
| /// comparing your results to this field. Discard the response in case of |
| /// non-matching checksum values, and perform a limited number of retries. A |
| /// persistent mismatch may indicate an issue in your computation of the |
| /// CRC32C checksum. Note: This field is defined as int64 for reasons of |
| /// compatibility across different languages. However, it is a non-negative |
| /// integer, which will never exceed 2^32-1, and can be safely downconverted |
| /// to uint32 in languages that support this type. NOTE: This field is in |
| /// Beta. |
| core.String signatureCrc32c; |
| |
| /// Integrity verification field. |
| /// |
| /// A flag indicating whether AsymmetricSignRequest.digest_crc32c was received |
| /// by KeyManagementService and used for the integrity verification of the |
| /// digest. A false value of this field indicates either that |
| /// AsymmetricSignRequest.digest_crc32c was left unset or that it was not |
| /// delivered to KeyManagementService. If you've set |
| /// AsymmetricSignRequest.digest_crc32c but this field is still false, discard |
| /// the response and perform a limited number of retries. NOTE: This field is |
| /// in Beta. |
| core.bool verifiedDigestCrc32c; |
| |
| AsymmetricSignResponse(); |
| |
| AsymmetricSignResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('name')) { |
| name = _json['name'] as core.String; |
| } |
| if (_json.containsKey('protectionLevel')) { |
| protectionLevel = _json['protectionLevel'] as core.String; |
| } |
| if (_json.containsKey('signature')) { |
| signature = _json['signature'] as core.String; |
| } |
| if (_json.containsKey('signatureCrc32c')) { |
| signatureCrc32c = _json['signatureCrc32c'] as core.String; |
| } |
| if (_json.containsKey('verifiedDigestCrc32c')) { |
| verifiedDigestCrc32c = _json['verifiedDigestCrc32c'] as core.bool; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (name != null) { |
| _json['name'] = name; |
| } |
| if (protectionLevel != null) { |
| _json['protectionLevel'] = protectionLevel; |
| } |
| if (signature != null) { |
| _json['signature'] = signature; |
| } |
| if (signatureCrc32c != null) { |
| _json['signatureCrc32c'] = signatureCrc32c; |
| } |
| if (verifiedDigestCrc32c != null) { |
| _json['verifiedDigestCrc32c'] = verifiedDigestCrc32c; |
| } |
| return _json; |
| } |
| } |
| |
| /// 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 AuditLogConfig are exempted. Example Policy with |
| /// multiple AuditConfigs: { "audit_configs": \[ { "service": "allServices", |
| /// "audit_log_configs": \[ { "log_type": "DATA_READ", "exempted_members": \[ |
| /// "user:jose@example.com" \] }, { "log_type": "DATA_WRITE" }, { "log_type": |
| /// "ADMIN_READ" } \] }, { "service": "sampleservice.googleapis.com", |
| /// "audit_log_configs": \[ { "log_type": "DATA_READ" }, { "log_type": |
| /// "DATA_WRITE", "exempted_members": \[ "user:aliya@example.com" \] } \] } \] } |
| /// For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ |
| /// logging. It also exempts jose@example.com from DATA_READ logging, and |
| /// aliya@example.com from DATA_WRITE logging. |
| class AuditConfig { |
| /// The configuration for logging of each type of permission. |
| 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'] as core.List) |
| .map<AuditLogConfig>((value) => AuditLogConfig.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('service')) { |
| service = _json['service'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| 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:jose@example.com" \] }, { "log_type": |
| /// "DATA_WRITE" } \] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while |
| /// exempting jose@example.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'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('logType')) { |
| logType = _json['logType'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <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. |
| /// |
| /// If the condition evaluates to `true`, then this binding applies to the |
| /// current request. If the condition evaluates to `false`, then this binding |
| /// does not apply to the current request. However, a different role binding |
| /// might grant the same role to one or more of the members in this binding. |
| /// To learn which resources support conditions in their IAM policies, see the |
| /// [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). |
| 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@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`. * `deleted:user:{emailid}?uid={uniqueid}`: |
| /// An email address (plus unique identifier) representing a user that has |
| /// been recently deleted. For example, |
| /// `alice@example.com?uid=123456789012345678901`. If the user is recovered, |
| /// this value reverts to `user:{emailid}` and the recovered user retains the |
| /// role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: |
| /// An email address (plus unique identifier) representing a service account |
| /// that has been recently deleted. For example, |
| /// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If |
| /// the service account is undeleted, this value reverts to |
| /// `serviceAccount:{emailid}` and the undeleted service account retains the |
| /// role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email |
| /// address (plus unique identifier) representing a Google group that has been |
| /// recently deleted. For example, |
| /// `admins@example.com?uid=123456789012345678901`. If the group is recovered, |
| /// this value reverts to `group:{emailid}` and the recovered group retains |
| /// the role in the binding. * `domain:{domain}`: The G Suite domain (primary) |
| /// 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`. |
| core.String role; |
| |
| Binding(); |
| |
| Binding.fromJson(core.Map _json) { |
| if (_json.containsKey('condition')) { |
| condition = Expr.fromJson( |
| _json['condition'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('members')) { |
| members = (_json['members'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('role')) { |
| role = _json['role'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <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; |
| } |
| } |
| |
| /// Certificate chains needed to verify the attestation. |
| /// |
| /// Certificates in chains are PEM-encoded and are ordered based on |
| /// https://tools.ietf.org/html/rfc5246#section-7.4.2. |
| class CertificateChains { |
| /// Cavium certificate chain corresponding to the attestation. |
| core.List<core.String> caviumCerts; |
| |
| /// Google card certificate chain corresponding to the attestation. |
| core.List<core.String> googleCardCerts; |
| |
| /// Google partition certificate chain corresponding to the attestation. |
| core.List<core.String> googlePartitionCerts; |
| |
| CertificateChains(); |
| |
| CertificateChains.fromJson(core.Map _json) { |
| if (_json.containsKey('caviumCerts')) { |
| caviumCerts = (_json['caviumCerts'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('googleCardCerts')) { |
| googleCardCerts = (_json['googleCardCerts'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('googlePartitionCerts')) { |
| googlePartitionCerts = (_json['googlePartitionCerts'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (caviumCerts != null) { |
| _json['caviumCerts'] = caviumCerts; |
| } |
| if (googleCardCerts != null) { |
| _json['googleCardCerts'] = googleCardCerts; |
| } |
| if (googlePartitionCerts != null) { |
| _json['googlePartitionCerts'] = googlePartitionCerts; |
| } |
| return _json; |
| } |
| } |
| |
| /// A CryptoKey represents a logical key that can be used for cryptographic |
| /// operations. |
| /// |
| /// A CryptoKey is made up of zero or more versions, which represent the actual |
| /// key material used in cryptographic operations. |
| class CryptoKey { |
| /// The time at which this CryptoKey was created. |
| /// |
| /// Output only. |
| core.String createTime; |
| |
| /// Labels with user-defined metadata. |
| /// |
| /// For more information, see |
| /// [Labeling Keys](https://cloud.google.com/kms/docs/labeling-keys). |
| core.Map<core.String, core.String> labels; |
| |
| /// The resource name for this CryptoKey in the format `projects / * |
| /// /locations / * /keyRings / * /cryptoKeys / * `. |
| /// |
| /// Output only. |
| 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. Keys with |
| /// purpose ENCRYPT_DECRYPT support automatic rotation. For other keys, this |
| /// field must be omitted. |
| core.String nextRotationTime; |
| |
| /// 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. Keys with purpose ENCRYPT_DECRYPT may have |
| /// a primary. For other keys, this field will be omitted. |
| /// |
| /// Output only. |
| CryptoKeyVersion primary; |
| |
| /// The immutable purpose of this CryptoKey. |
| /// |
| /// Immutable. |
| /// Possible string values are: |
| /// - "CRYPTO_KEY_PURPOSE_UNSPECIFIED" : Not specified. |
| /// - "ENCRYPT_DECRYPT" : CryptoKeys with this purpose may be used with |
| /// Encrypt and Decrypt. |
| /// - "ASYMMETRIC_SIGN" : CryptoKeys with this purpose may be used with |
| /// AsymmetricSign and GetPublicKey. |
| /// - "ASYMMETRIC_DECRYPT" : CryptoKeys with this purpose may be used with |
| /// AsymmetricDecrypt and GetPublicKey. |
| core.String purpose; |
| |
| /// next_rotation_time will be advanced by this period when the service |
| /// automatically rotates a key. |
| /// |
| /// Must be at least 24 hours and at most 876,000 hours. If rotation_period is |
| /// set, next_rotation_time must also be set. Keys with purpose |
| /// ENCRYPT_DECRYPT support automatic rotation. For other keys, this field |
| /// must be omitted. |
| core.String rotationPeriod; |
| |
| /// A template describing settings for new CryptoKeyVersion instances. |
| /// |
| /// The properties of new CryptoKeyVersion instances created by either |
| /// CreateCryptoKeyVersion or auto-rotation are controlled by this template. |
| CryptoKeyVersionTemplate versionTemplate; |
| |
| CryptoKey(); |
| |
| CryptoKey.fromJson(core.Map _json) { |
| if (_json.containsKey('createTime')) { |
| createTime = _json['createTime'] as core.String; |
| } |
| if (_json.containsKey('labels')) { |
| labels = |
| (_json['labels'] as core.Map).cast<core.String, core.String>().map( |
| (key, item) => core.MapEntry( |
| key, |
| item as core.String, |
| ), |
| ); |
| } |
| if (_json.containsKey('name')) { |
| name = _json['name'] as core.String; |
| } |
| if (_json.containsKey('nextRotationTime')) { |
| nextRotationTime = _json['nextRotationTime'] as core.String; |
| } |
| if (_json.containsKey('primary')) { |
| primary = CryptoKeyVersion.fromJson( |
| _json['primary'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('purpose')) { |
| purpose = _json['purpose'] as core.String; |
| } |
| if (_json.containsKey('rotationPeriod')) { |
| rotationPeriod = _json['rotationPeriod'] as core.String; |
| } |
| if (_json.containsKey('versionTemplate')) { |
| versionTemplate = CryptoKeyVersionTemplate.fromJson( |
| _json['versionTemplate'] as core.Map<core.String, core.dynamic>); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (createTime != null) { |
| _json['createTime'] = createTime; |
| } |
| if (labels != null) { |
| _json['labels'] = labels; |
| } |
| 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; |
| } |
| if (versionTemplate != null) { |
| _json['versionTemplate'] = versionTemplate.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// A CryptoKeyVersion represents an individual cryptographic key, and the |
| /// associated key material. |
| /// |
| /// An ENABLED version can be used for cryptographic operations. For security |
| /// reasons, the raw cryptographic key material represented by a |
| /// CryptoKeyVersion can never be viewed or exported. It can only be used to |
| /// encrypt, decrypt, or sign data when an authorized user or application |
| /// invokes Cloud KMS. |
| class CryptoKeyVersion { |
| /// The CryptoKeyVersionAlgorithm that this CryptoKeyVersion supports. |
| /// |
| /// Output only. |
| /// Possible string values are: |
| /// - "CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED" : Not specified. |
| /// - "GOOGLE_SYMMETRIC_ENCRYPTION" : Creates symmetric encryption keys. |
| /// - "RSA_SIGN_PSS_2048_SHA256" : RSASSA-PSS 2048 bit key with a SHA256 |
| /// digest. |
| /// - "RSA_SIGN_PSS_3072_SHA256" : RSASSA-PSS 3072 bit key with a SHA256 |
| /// digest. |
| /// - "RSA_SIGN_PSS_4096_SHA256" : RSASSA-PSS 4096 bit key with a SHA256 |
| /// digest. |
| /// - "RSA_SIGN_PSS_4096_SHA512" : RSASSA-PSS 4096 bit key with a SHA512 |
| /// digest. |
| /// - "RSA_SIGN_PKCS1_2048_SHA256" : RSASSA-PKCS1-v1_5 with a 2048 bit key and |
| /// a SHA256 digest. |
| /// - "RSA_SIGN_PKCS1_3072_SHA256" : RSASSA-PKCS1-v1_5 with a 3072 bit key and |
| /// a SHA256 digest. |
| /// - "RSA_SIGN_PKCS1_4096_SHA256" : RSASSA-PKCS1-v1_5 with a 4096 bit key and |
| /// a SHA256 digest. |
| /// - "RSA_SIGN_PKCS1_4096_SHA512" : RSASSA-PKCS1-v1_5 with a 4096 bit key and |
| /// a SHA512 digest. |
| /// - "RSA_DECRYPT_OAEP_2048_SHA256" : RSAES-OAEP 2048 bit key with a SHA256 |
| /// digest. |
| /// - "RSA_DECRYPT_OAEP_3072_SHA256" : RSAES-OAEP 3072 bit key with a SHA256 |
| /// digest. |
| /// - "RSA_DECRYPT_OAEP_4096_SHA256" : RSAES-OAEP 4096 bit key with a SHA256 |
| /// digest. |
| /// - "RSA_DECRYPT_OAEP_4096_SHA512" : RSAES-OAEP 4096 bit key with a SHA512 |
| /// digest. |
| /// - "EC_SIGN_P256_SHA256" : ECDSA on the NIST P-256 curve with a SHA256 |
| /// digest. |
| /// - "EC_SIGN_P384_SHA384" : ECDSA on the NIST P-384 curve with a SHA384 |
| /// digest. |
| /// - "EXTERNAL_SYMMETRIC_ENCRYPTION" : Algorithm representing symmetric |
| /// encryption by an external key manager. |
| core.String algorithm; |
| |
| /// Statement that was generated and signed by the HSM at key creation time. |
| /// |
| /// Use this statement to verify attributes of the key as stored on the HSM, |
| /// independently of Google. Only provided for key versions with |
| /// protection_level HSM. |
| /// |
| /// Output only. |
| KeyOperationAttestation attestation; |
| |
| /// The time at which this CryptoKeyVersion was created. |
| /// |
| /// Output only. |
| core.String createTime; |
| |
| /// The time this CryptoKeyVersion's key material was destroyed. |
| /// |
| /// Only present if state is DESTROYED. |
| /// |
| /// Output only. |
| core.String destroyEventTime; |
| |
| /// The time this CryptoKeyVersion's key material is scheduled for |
| /// destruction. |
| /// |
| /// Only present if state is DESTROY_SCHEDULED. |
| /// |
| /// Output only. |
| core.String destroyTime; |
| |
| /// ExternalProtectionLevelOptions stores a group of additional fields for |
| /// configuring a CryptoKeyVersion that are specific to the EXTERNAL |
| /// protection level. |
| ExternalProtectionLevelOptions externalProtectionLevelOptions; |
| |
| /// The time this CryptoKeyVersion's key material was generated. |
| /// |
| /// Output only. |
| core.String generateTime; |
| |
| /// The root cause of an import failure. |
| /// |
| /// Only present if state is IMPORT_FAILED. |
| /// |
| /// Output only. |
| core.String importFailureReason; |
| |
| /// The name of the ImportJob used to import this CryptoKeyVersion. |
| /// |
| /// Only present if the underlying key material was imported. |
| /// |
| /// Output only. |
| core.String importJob; |
| |
| /// The time at which this CryptoKeyVersion's key material was imported. |
| /// |
| /// Output only. |
| core.String importTime; |
| |
| /// The resource name for this CryptoKeyVersion in the format `projects / * |
| /// /locations / * /keyRings / * /cryptoKeys / * /cryptoKeyVersions / * `. |
| /// |
| /// Output only. |
| core.String name; |
| |
| /// The ProtectionLevel describing how crypto operations are performed with |
| /// this CryptoKeyVersion. |
| /// |
| /// Output only. |
| /// Possible string values are: |
| /// - "PROTECTION_LEVEL_UNSPECIFIED" : Not specified. |
| /// - "SOFTWARE" : Crypto operations are performed in software. |
| /// - "HSM" : Crypto operations are performed in a Hardware Security Module. |
| /// - "EXTERNAL" : Crypto operations are performed by an external key manager. |
| core.String protectionLevel; |
| |
| /// The current state of the CryptoKeyVersion. |
| /// Possible string values are: |
| /// - "CRYPTO_KEY_VERSION_STATE_UNSPECIFIED" : Not specified. |
| /// - "PENDING_GENERATION" : This version is still being generated. It may not |
| /// be used, enabled, disabled, or destroyed yet. Cloud KMS will automatically |
| /// mark this version ENABLED as soon as the version is ready. |
| /// - "ENABLED" : This version may be used for cryptographic operations. |
| /// - "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. |
| /// - "PENDING_IMPORT" : This version is still being imported. It may not be |
| /// used, enabled, disabled, or destroyed yet. Cloud KMS will automatically |
| /// mark this version ENABLED as soon as the version is ready. |
| /// - "IMPORT_FAILED" : This version was not imported successfully. It may not |
| /// be used, enabled, disabled, or destroyed. The submitted key material has |
| /// been discarded. Additional details can be found in |
| /// CryptoKeyVersion.import_failure_reason. |
| core.String state; |
| |
| CryptoKeyVersion(); |
| |
| CryptoKeyVersion.fromJson(core.Map _json) { |
| if (_json.containsKey('algorithm')) { |
| algorithm = _json['algorithm'] as core.String; |
| } |
| if (_json.containsKey('attestation')) { |
| attestation = KeyOperationAttestation.fromJson( |
| _json['attestation'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('createTime')) { |
| createTime = _json['createTime'] as core.String; |
| } |
| if (_json.containsKey('destroyEventTime')) { |
| destroyEventTime = _json['destroyEventTime'] as core.String; |
| } |
| if (_json.containsKey('destroyTime')) { |
| destroyTime = _json['destroyTime'] as core.String; |
| } |
| if (_json.containsKey('externalProtectionLevelOptions')) { |
| externalProtectionLevelOptions = ExternalProtectionLevelOptions.fromJson( |
| _json['externalProtectionLevelOptions'] |
| as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('generateTime')) { |
| generateTime = _json['generateTime'] as core.String; |
| } |
| if (_json.containsKey('importFailureReason')) { |
| importFailureReason = _json['importFailureReason'] as core.String; |
| } |
| if (_json.containsKey('importJob')) { |
| importJob = _json['importJob'] as core.String; |
| } |
| if (_json.containsKey('importTime')) { |
| importTime = _json['importTime'] as core.String; |
| } |
| if (_json.containsKey('name')) { |
| name = _json['name'] as core.String; |
| } |
| if (_json.containsKey('protectionLevel')) { |
| protectionLevel = _json['protectionLevel'] as core.String; |
| } |
| if (_json.containsKey('state')) { |
| state = _json['state'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (algorithm != null) { |
| _json['algorithm'] = algorithm; |
| } |
| if (attestation != null) { |
| _json['attestation'] = attestation.toJson(); |
| } |
| if (createTime != null) { |
| _json['createTime'] = createTime; |
| } |
| if (destroyEventTime != null) { |
| _json['destroyEventTime'] = destroyEventTime; |
| } |
| if (destroyTime != null) { |
| _json['destroyTime'] = destroyTime; |
| } |
| if (externalProtectionLevelOptions != null) { |
| _json['externalProtectionLevelOptions'] = |
| externalProtectionLevelOptions.toJson(); |
| } |
| if (generateTime != null) { |
| _json['generateTime'] = generateTime; |
| } |
| if (importFailureReason != null) { |
| _json['importFailureReason'] = importFailureReason; |
| } |
| if (importJob != null) { |
| _json['importJob'] = importJob; |
| } |
| if (importTime != null) { |
| _json['importTime'] = importTime; |
| } |
| if (name != null) { |
| _json['name'] = name; |
| } |
| if (protectionLevel != null) { |
| _json['protectionLevel'] = protectionLevel; |
| } |
| if (state != null) { |
| _json['state'] = state; |
| } |
| return _json; |
| } |
| } |
| |
| /// A CryptoKeyVersionTemplate specifies the properties to use when creating a |
| /// new CryptoKeyVersion, either manually with CreateCryptoKeyVersion or |
| /// automatically as a result of auto-rotation. |
| class CryptoKeyVersionTemplate { |
| /// Algorithm to use when creating a CryptoKeyVersion based on this template. |
| /// |
| /// For backwards compatibility, GOOGLE_SYMMETRIC_ENCRYPTION is implied if |
| /// both this field is omitted and CryptoKey.purpose is ENCRYPT_DECRYPT. |
| /// |
| /// Required. |
| /// Possible string values are: |
| /// - "CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED" : Not specified. |
| /// - "GOOGLE_SYMMETRIC_ENCRYPTION" : Creates symmetric encryption keys. |
| /// - "RSA_SIGN_PSS_2048_SHA256" : RSASSA-PSS 2048 bit key with a SHA256 |
| /// digest. |
| /// - "RSA_SIGN_PSS_3072_SHA256" : RSASSA-PSS 3072 bit key with a SHA256 |
| /// digest. |
| /// - "RSA_SIGN_PSS_4096_SHA256" : RSASSA-PSS 4096 bit key with a SHA256 |
| /// digest. |
| /// - "RSA_SIGN_PSS_4096_SHA512" : RSASSA-PSS 4096 bit key with a SHA512 |
| /// digest. |
| /// - "RSA_SIGN_PKCS1_2048_SHA256" : RSASSA-PKCS1-v1_5 with a 2048 bit key and |
| /// a SHA256 digest. |
| /// - "RSA_SIGN_PKCS1_3072_SHA256" : RSASSA-PKCS1-v1_5 with a 3072 bit key and |
| /// a SHA256 digest. |
| /// - "RSA_SIGN_PKCS1_4096_SHA256" : RSASSA-PKCS1-v1_5 with a 4096 bit key and |
| /// a SHA256 digest. |
| /// - "RSA_SIGN_PKCS1_4096_SHA512" : RSASSA-PKCS1-v1_5 with a 4096 bit key and |
| /// a SHA512 digest. |
| /// - "RSA_DECRYPT_OAEP_2048_SHA256" : RSAES-OAEP 2048 bit key with a SHA256 |
| /// digest. |
| /// - "RSA_DECRYPT_OAEP_3072_SHA256" : RSAES-OAEP 3072 bit key with a SHA256 |
| /// digest. |
| /// - "RSA_DECRYPT_OAEP_4096_SHA256" : RSAES-OAEP 4096 bit key with a SHA256 |
| /// digest. |
| /// - "RSA_DECRYPT_OAEP_4096_SHA512" : RSAES-OAEP 4096 bit key with a SHA512 |
| /// digest. |
| /// - "EC_SIGN_P256_SHA256" : ECDSA on the NIST P-256 curve with a SHA256 |
| /// digest. |
| /// - "EC_SIGN_P384_SHA384" : ECDSA on the NIST P-384 curve with a SHA384 |
| /// digest. |
| /// - "EXTERNAL_SYMMETRIC_ENCRYPTION" : Algorithm representing symmetric |
| /// encryption by an external key manager. |
| core.String algorithm; |
| |
| /// ProtectionLevel to use when creating a CryptoKeyVersion based on this |
| /// template. |
| /// |
| /// Immutable. Defaults to SOFTWARE. |
| /// Possible string values are: |
| /// - "PROTECTION_LEVEL_UNSPECIFIED" : Not specified. |
| /// - "SOFTWARE" : Crypto operations are performed in software. |
| /// - "HSM" : Crypto operations are performed in a Hardware Security Module. |
| /// - "EXTERNAL" : Crypto operations are performed by an external key manager. |
| core.String protectionLevel; |
| |
| CryptoKeyVersionTemplate(); |
| |
| CryptoKeyVersionTemplate.fromJson(core.Map _json) { |
| if (_json.containsKey('algorithm')) { |
| algorithm = _json['algorithm'] as core.String; |
| } |
| if (_json.containsKey('protectionLevel')) { |
| protectionLevel = _json['protectionLevel'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (algorithm != null) { |
| _json['algorithm'] = algorithm; |
| } |
| if (protectionLevel != null) { |
| _json['protectionLevel'] = protectionLevel; |
| } |
| return _json; |
| } |
| } |
| |
| /// Request message for KeyManagementService.Decrypt. |
| class DecryptRequest { |
| /// Optional data that must match the data originally supplied in |
| /// EncryptRequest.additional_authenticated_data. |
| /// |
| /// Optional. |
| core.String additionalAuthenticatedData; |
| core.List<core.int> get additionalAuthenticatedDataAsBytes => |
| convert.base64.decode(additionalAuthenticatedData); |
| |
| set additionalAuthenticatedDataAsBytes(core.List<core.int> _bytes) { |
| additionalAuthenticatedData = |
| convert.base64.encode(_bytes).replaceAll('/', '_').replaceAll('+', '-'); |
| } |
| |
| /// An optional CRC32C checksum of the |
| /// DecryptRequest.additional_authenticated_data. |
| /// |
| /// If specified, KeyManagementService will verify the integrity of the |
| /// received DecryptRequest.additional_authenticated_data using this checksum. |
| /// KeyManagementService will report an error if the checksum verification |
| /// fails. If you receive a checksum error, your client should verify that |
| /// CRC32C(DecryptRequest.additional_authenticated_data) is equal to |
| /// DecryptRequest.additional_authenticated_data_crc32c, and if so, perform a |
| /// limited number of retries. A persistent mismatch may indicate an issue in |
| /// your computation of the CRC32C checksum. Note: This field is defined as |
| /// int64 for reasons of compatibility across different languages. However, it |
| /// is a non-negative integer, which will never exceed 2^32-1, and can be |
| /// safely downconverted to uint32 in languages that support this type. NOTE: |
| /// This field is in Beta. |
| /// |
| /// Optional. |
| core.String additionalAuthenticatedDataCrc32c; |
| |
| /// The encrypted data originally returned in EncryptResponse.ciphertext. |
| /// |
| /// Required. |
| core.String ciphertext; |
| core.List<core.int> get ciphertextAsBytes => |
| convert.base64.decode(ciphertext); |
| |
| set ciphertextAsBytes(core.List<core.int> _bytes) { |
| ciphertext = |
| convert.base64.encode(_bytes).replaceAll('/', '_').replaceAll('+', '-'); |
| } |
| |
| /// An optional CRC32C checksum of the DecryptRequest.ciphertext. |
| /// |
| /// If specified, KeyManagementService will verify the integrity of the |
| /// received DecryptRequest.ciphertext using this checksum. |
| /// KeyManagementService will report an error if the checksum verification |
| /// fails. If you receive a checksum error, your client should verify that |
| /// CRC32C(DecryptRequest.ciphertext) is equal to |
| /// DecryptRequest.ciphertext_crc32c, and if so, perform a limited number of |
| /// retries. A persistent mismatch may indicate an issue in your computation |
| /// of the CRC32C checksum. Note: This field is defined as int64 for reasons |
| /// of compatibility across different languages. However, it is a non-negative |
| /// integer, which will never exceed 2^32-1, and can be safely downconverted |
| /// to uint32 in languages that support this type. NOTE: This field is in |
| /// Beta. |
| /// |
| /// Optional. |
| core.String ciphertextCrc32c; |
| |
| DecryptRequest(); |
| |
| DecryptRequest.fromJson(core.Map _json) { |
| if (_json.containsKey('additionalAuthenticatedData')) { |
| additionalAuthenticatedData = |
| _json['additionalAuthenticatedData'] as core.String; |
| } |
| if (_json.containsKey('additionalAuthenticatedDataCrc32c')) { |
| additionalAuthenticatedDataCrc32c = |
| _json['additionalAuthenticatedDataCrc32c'] as core.String; |
| } |
| if (_json.containsKey('ciphertext')) { |
| ciphertext = _json['ciphertext'] as core.String; |
| } |
| if (_json.containsKey('ciphertextCrc32c')) { |
| ciphertextCrc32c = _json['ciphertextCrc32c'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (additionalAuthenticatedData != null) { |
| _json['additionalAuthenticatedData'] = additionalAuthenticatedData; |
| } |
| if (additionalAuthenticatedDataCrc32c != null) { |
| _json['additionalAuthenticatedDataCrc32c'] = |
| additionalAuthenticatedDataCrc32c; |
| } |
| if (ciphertext != null) { |
| _json['ciphertext'] = ciphertext; |
| } |
| if (ciphertextCrc32c != null) { |
| _json['ciphertextCrc32c'] = ciphertextCrc32c; |
| } |
| 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 => convert.base64.decode(plaintext); |
| |
| set plaintextAsBytes(core.List<core.int> _bytes) { |
| plaintext = |
| convert.base64.encode(_bytes).replaceAll('/', '_').replaceAll('+', '-'); |
| } |
| |
| /// Integrity verification field. |
| /// |
| /// A CRC32C checksum of the returned DecryptResponse.plaintext. An integrity |
| /// check of DecryptResponse.plaintext can be performed by computing the |
| /// CRC32C checksum of DecryptResponse.plaintext and comparing your results to |
| /// this field. Discard the response in case of non-matching checksum values, |
| /// and perform a limited number of retries. A persistent mismatch may |
| /// indicate an issue in your computation of the CRC32C checksum. Note: |
| /// receiving this response message indicates that KeyManagementService is |
| /// able to successfully decrypt the ciphertext. Note: This field is defined |
| /// as int64 for reasons of compatibility across different languages. However, |
| /// it is a non-negative integer, which will never exceed 2^32-1, and can be |
| /// safely downconverted to uint32 in languages that support this type. NOTE: |
| /// This field is in Beta. |
| core.String plaintextCrc32c; |
| |
| /// The ProtectionLevel of the CryptoKeyVersion used in decryption. |
| /// Possible string values are: |
| /// - "PROTECTION_LEVEL_UNSPECIFIED" : Not specified. |
| /// - "SOFTWARE" : Crypto operations are performed in software. |
| /// - "HSM" : Crypto operations are performed in a Hardware Security Module. |
| /// - "EXTERNAL" : Crypto operations are performed by an external key manager. |
| core.String protectionLevel; |
| |
| /// Whether the Decryption was performed using the primary key version. |
| core.bool usedPrimary; |
| |
| DecryptResponse(); |
| |
| DecryptResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('plaintext')) { |
| plaintext = _json['plaintext'] as core.String; |
| } |
| if (_json.containsKey('plaintextCrc32c')) { |
| plaintextCrc32c = _json['plaintextCrc32c'] as core.String; |
| } |
| if (_json.containsKey('protectionLevel')) { |
| protectionLevel = _json['protectionLevel'] as core.String; |
| } |
| if (_json.containsKey('usedPrimary')) { |
| usedPrimary = _json['usedPrimary'] as core.bool; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (plaintext != null) { |
| _json['plaintext'] = plaintext; |
| } |
| if (plaintextCrc32c != null) { |
| _json['plaintextCrc32c'] = plaintextCrc32c; |
| } |
| if (protectionLevel != null) { |
| _json['protectionLevel'] = protectionLevel; |
| } |
| if (usedPrimary != null) { |
| _json['usedPrimary'] = usedPrimary; |
| } |
| return _json; |
| } |
| } |
| |
| /// Request message for KeyManagementService.DestroyCryptoKeyVersion. |
| class DestroyCryptoKeyVersionRequest { |
| DestroyCryptoKeyVersionRequest(); |
| |
| DestroyCryptoKeyVersionRequest.fromJson( |
| // ignore: avoid_unused_constructor_parameters |
| core.Map _json); |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| return _json; |
| } |
| } |
| |
| /// A Digest holds a cryptographic message digest. |
| class Digest { |
| /// A message digest produced with the SHA-256 algorithm. |
| core.String sha256; |
| core.List<core.int> get sha256AsBytes => convert.base64.decode(sha256); |
| |
| set sha256AsBytes(core.List<core.int> _bytes) { |
| sha256 = |
| convert.base64.encode(_bytes).replaceAll('/', '_').replaceAll('+', '-'); |
| } |
| |
| /// A message digest produced with the SHA-384 algorithm. |
| core.String sha384; |
| core.List<core.int> get sha384AsBytes => convert.base64.decode(sha384); |
| |
| set sha384AsBytes(core.List<core.int> _bytes) { |
| sha384 = |
| convert.base64.encode(_bytes).replaceAll('/', '_').replaceAll('+', '-'); |
| } |
| |
| /// A message digest produced with the SHA-512 algorithm. |
| core.String sha512; |
| core.List<core.int> get sha512AsBytes => convert.base64.decode(sha512); |
| |
| set sha512AsBytes(core.List<core.int> _bytes) { |
| sha512 = |
| convert.base64.encode(_bytes).replaceAll('/', '_').replaceAll('+', '-'); |
| } |
| |
| Digest(); |
| |
| Digest.fromJson(core.Map _json) { |
| if (_json.containsKey('sha256')) { |
| sha256 = _json['sha256'] as core.String; |
| } |
| if (_json.containsKey('sha384')) { |
| sha384 = _json['sha384'] as core.String; |
| } |
| if (_json.containsKey('sha512')) { |
| sha512 = _json['sha512'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (sha256 != null) { |
| _json['sha256'] = sha256; |
| } |
| if (sha384 != null) { |
| _json['sha384'] = sha384; |
| } |
| if (sha512 != null) { |
| _json['sha512'] = sha512; |
| } |
| 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. |
| /// |
| /// The maximum size depends on the key version's protection_level. For |
| /// SOFTWARE keys, the AAD must be no larger than 64KiB. For HSM keys, the |
| /// combined length of the plaintext and additional_authenticated_data fields |
| /// must be no larger than 8KiB. |
| /// |
| /// Optional. |
| core.String additionalAuthenticatedData; |
| core.List<core.int> get additionalAuthenticatedDataAsBytes => |
| convert.base64.decode(additionalAuthenticatedData); |
| |
| set additionalAuthenticatedDataAsBytes(core.List<core.int> _bytes) { |
| additionalAuthenticatedData = |
| convert.base64.encode(_bytes).replaceAll('/', '_').replaceAll('+', '-'); |
| } |
| |
| /// An optional CRC32C checksum of the |
| /// EncryptRequest.additional_authenticated_data. |
| /// |
| /// If specified, KeyManagementService will verify the integrity of the |
| /// received EncryptRequest.additional_authenticated_data using this checksum. |
| /// KeyManagementService will report an error if the checksum verification |
| /// fails. If you receive a checksum error, your client should verify that |
| /// CRC32C(EncryptRequest.additional_authenticated_data) is equal to |
| /// EncryptRequest.additional_authenticated_data_crc32c, and if so, perform a |
| /// limited number of retries. A persistent mismatch may indicate an issue in |
| /// your computation of the CRC32C checksum. Note: This field is defined as |
| /// int64 for reasons of compatibility across different languages. However, it |
| /// is a non-negative integer, which will never exceed 2^32-1, and can be |
| /// safely downconverted to uint32 in languages that support this type. NOTE: |
| /// This field is in Beta. |
| /// |
| /// Optional. |
| core.String additionalAuthenticatedDataCrc32c; |
| |
| /// The data to encrypt. |
| /// |
| /// Must be no larger than 64KiB. The maximum size depends on the key |
| /// version's protection_level. For SOFTWARE keys, the plaintext must be no |
| /// larger than 64KiB. For HSM keys, the combined length of the plaintext and |
| /// additional_authenticated_data fields must be no larger than 8KiB. |
| /// |
| /// Required. |
| core.String plaintext; |
| core.List<core.int> get plaintextAsBytes => convert.base64.decode(plaintext); |
| |
| set plaintextAsBytes(core.List<core.int> _bytes) { |
| plaintext = |
| convert.base64.encode(_bytes).replaceAll('/', '_').replaceAll('+', '-'); |
| } |
| |
| /// An optional CRC32C checksum of the EncryptRequest.plaintext. |
| /// |
| /// If specified, KeyManagementService will verify the integrity of the |
| /// received EncryptRequest.plaintext using this checksum. |
| /// KeyManagementService will report an error if the checksum verification |
| /// fails. If you receive a checksum error, your client should verify that |
| /// CRC32C(EncryptRequest.plaintext) is equal to |
| /// EncryptRequest.plaintext_crc32c, and if so, perform a limited number of |
| /// retries. A persistent mismatch may indicate an issue in your computation |
| /// of the CRC32C checksum. Note: This field is defined as int64 for reasons |
| /// of compatibility across different languages. However, it is a non-negative |
| /// integer, which will never exceed 2^32-1, and can be safely downconverted |
| /// to uint32 in languages that support this type. NOTE: This field is in |
| /// Beta. |
| /// |
| /// Optional. |
| core.String plaintextCrc32c; |
| |
| EncryptRequest(); |
| |
| EncryptRequest.fromJson(core.Map _json) { |
| if (_json.containsKey('additionalAuthenticatedData')) { |
| additionalAuthenticatedData = |
| _json['additionalAuthenticatedData'] as core.String; |
| } |
| if (_json.containsKey('additionalAuthenticatedDataCrc32c')) { |
| additionalAuthenticatedDataCrc32c = |
| _json['additionalAuthenticatedDataCrc32c'] as core.String; |
| } |
| if (_json.containsKey('plaintext')) { |
| plaintext = _json['plaintext'] as core.String; |
| } |
| if (_json.containsKey('plaintextCrc32c')) { |
| plaintextCrc32c = _json['plaintextCrc32c'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (additionalAuthenticatedData != null) { |
| _json['additionalAuthenticatedData'] = additionalAuthenticatedData; |
| } |
| if (additionalAuthenticatedDataCrc32c != null) { |
| _json['additionalAuthenticatedDataCrc32c'] = |
| additionalAuthenticatedDataCrc32c; |
| } |
| if (plaintext != null) { |
| _json['plaintext'] = plaintext; |
| } |
| if (plaintextCrc32c != null) { |
| _json['plaintextCrc32c'] = plaintextCrc32c; |
| } |
| return _json; |
| } |
| } |
| |
| /// Response message for KeyManagementService.Encrypt. |
| class EncryptResponse { |
| /// The encrypted data. |
| core.String ciphertext; |
| core.List<core.int> get ciphertextAsBytes => |
| convert.base64.decode(ciphertext); |
| |
| set ciphertextAsBytes(core.List<core.int> _bytes) { |
| ciphertext = |
| convert.base64.encode(_bytes).replaceAll('/', '_').replaceAll('+', '-'); |
| } |
| |
| /// Integrity verification field. |
| /// |
| /// A CRC32C checksum of the returned EncryptResponse.ciphertext. An integrity |
| /// check of EncryptResponse.ciphertext can be performed by computing the |
| /// CRC32C checksum of EncryptResponse.ciphertext and comparing your results |
| /// to this field. Discard the response in case of non-matching checksum |
| /// values, and perform a limited number of retries. A persistent mismatch may |
| /// indicate an issue in your computation of the CRC32C checksum. Note: This |
| /// field is defined as int64 for reasons of compatibility across different |
| /// languages. However, it is a non-negative integer, which will never exceed |
| /// 2^32-1, and can be safely downconverted to uint32 in languages that |
| /// support this type. NOTE: This field is in Beta. |
| core.String ciphertextCrc32c; |
| |
| /// The resource name of the CryptoKeyVersion used in encryption. |
| /// |
| /// Check this field to verify that the intended resource was used for |
| /// encryption. |
| core.String name; |
| |
| /// The ProtectionLevel of the CryptoKeyVersion used in encryption. |
| /// Possible string values are: |
| /// - "PROTECTION_LEVEL_UNSPECIFIED" : Not specified. |
| /// - "SOFTWARE" : Crypto operations are performed in software. |
| /// - "HSM" : Crypto operations are performed in a Hardware Security Module. |
| /// - "EXTERNAL" : Crypto operations are performed by an external key manager. |
| core.String protectionLevel; |
| |
| /// Integrity verification field. |
| /// |
| /// A flag indicating whether |
| /// EncryptRequest.additional_authenticated_data_crc32c was received by |
| /// KeyManagementService and used for the integrity verification of the AAD. A |
| /// false value of this field indicates either that |
| /// EncryptRequest.additional_authenticated_data_crc32c was left unset or that |
| /// it was not delivered to KeyManagementService. If you've set |
| /// EncryptRequest.additional_authenticated_data_crc32c but this field is |
| /// still false, discard the response and perform a limited number of retries. |
| /// NOTE: This field is in Beta. |
| core.bool verifiedAdditionalAuthenticatedDataCrc32c; |
| |
| /// Integrity verification field. |
| /// |
| /// A flag indicating whether EncryptRequest.plaintext_crc32c was received by |
| /// KeyManagementService and used for the integrity verification of the |
| /// plaintext. A false value of this field indicates either that |
| /// EncryptRequest.plaintext_crc32c was left unset or that it was not |
| /// delivered to KeyManagementService. If you've set |
| /// EncryptRequest.plaintext_crc32c but this field is still false, discard the |
| /// response and perform a limited number of retries. NOTE: This field is in |
| /// Beta. |
| core.bool verifiedPlaintextCrc32c; |
| |
| EncryptResponse(); |
| |
| EncryptResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('ciphertext')) { |
| ciphertext = _json['ciphertext'] as core.String; |
| } |
| if (_json.containsKey('ciphertextCrc32c')) { |
| ciphertextCrc32c = _json['ciphertextCrc32c'] as core.String; |
| } |
| if (_json.containsKey('name')) { |
| name = _json['name'] as core.String; |
| } |
| if (_json.containsKey('protectionLevel')) { |
| protectionLevel = _json['protectionLevel'] as core.String; |
| } |
| if (_json.containsKey('verifiedAdditionalAuthenticatedDataCrc32c')) { |
| verifiedAdditionalAuthenticatedDataCrc32c = |
| _json['verifiedAdditionalAuthenticatedDataCrc32c'] as core.bool; |
| } |
| if (_json.containsKey('verifiedPlaintextCrc32c')) { |
| verifiedPlaintextCrc32c = _json['verifiedPlaintextCrc32c'] as core.bool; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (ciphertext != null) { |
| _json['ciphertext'] = ciphertext; |
| } |
| if (ciphertextCrc32c != null) { |
| _json['ciphertextCrc32c'] = ciphertextCrc32c; |
| } |
| if (name != null) { |
| _json['name'] = name; |
| } |
| if (protectionLevel != null) { |
| _json['protectionLevel'] = protectionLevel; |
| } |
| if (verifiedAdditionalAuthenticatedDataCrc32c != null) { |
| _json['verifiedAdditionalAuthenticatedDataCrc32c'] = |
| verifiedAdditionalAuthenticatedDataCrc32c; |
| } |
| if (verifiedPlaintextCrc32c != null) { |
| _json['verifiedPlaintextCrc32c'] = verifiedPlaintextCrc32c; |
| } |
| return _json; |
| } |
| } |
| |
| /// Represents a textual expression in the Common Expression Language (CEL) |
| /// syntax. |
| /// |
| /// CEL is a C-like expression language. The syntax and semantics of CEL are |
| /// documented at https://github.com/google/cel-spec. Example (Comparison): |
| /// title: "Summary size limit" description: "Determines if a summary is less |
| /// than 100 chars" expression: "document.summary.size() < 100" Example |
| /// (Equality): title: "Requestor is owner" description: "Determines if |
| /// requestor is the document owner" expression: "document.owner == |
| /// request.auth.claims.email" Example (Logic): title: "Public documents" |
| /// description: "Determine whether the document should be publicly visible" |
| /// expression: "document.type != 'private' && document.type != 'internal'" |
| /// Example (Data Manipulation): title: "Notification string" description: |
| /// "Create a notification string with a timestamp." expression: "'New message |
| /// received at ' + string(document.create_time)" The exact variables and |
| /// functions that may be referenced within an expression are determined by the |
| /// service that evaluates it. See the service documentation for additional |
| /// information. |
| class Expr { |
| /// Description of the expression. |
| /// |
| /// This is a longer text which describes the expression, e.g. when hovered |
| /// over it in a UI. |
| /// |
| /// Optional. |
| core.String description; |
| |
| /// Textual representation of an expression in Common Expression Language |
| /// syntax. |
| core.String expression; |
| |
| /// String indicating the location of the expression for error reporting, e.g. |
| /// a file name and a position in the file. |
| /// |
| /// Optional. |
| core.String location; |
| |
| /// 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. |
| /// |
| /// Optional. |
| core.String title; |
| |
| Expr(); |
| |
| Expr.fromJson(core.Map _json) { |
| if (_json.containsKey('description')) { |
| description = _json['description'] as core.String; |
| } |
| if (_json.containsKey('expression')) { |
| expression = _json['expression'] as core.String; |
| } |
| if (_json.containsKey('location')) { |
| location = _json['location'] as core.String; |
| } |
| if (_json.containsKey('title')) { |
| title = _json['title'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <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; |
| } |
| } |
| |
| /// ExternalProtectionLevelOptions stores a group of additional fields for |
| /// configuring a CryptoKeyVersion that are specific to the EXTERNAL protection |
| /// level. |
| class ExternalProtectionLevelOptions { |
| /// The URI for an external resource that this CryptoKeyVersion represents. |
| core.String externalKeyUri; |
| |
| ExternalProtectionLevelOptions(); |
| |
| ExternalProtectionLevelOptions.fromJson(core.Map _json) { |
| if (_json.containsKey('externalKeyUri')) { |
| externalKeyUri = _json['externalKeyUri'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (externalKeyUri != null) { |
| _json['externalKeyUri'] = externalKeyUri; |
| } |
| return _json; |
| } |
| } |
| |
| /// Request message for KeyManagementService.ImportCryptoKeyVersion. |
| class ImportCryptoKeyVersionRequest { |
| /// The algorithm of the key being imported. |
| /// |
| /// This does not need to match the version_template of the CryptoKey this |
| /// version imports into. |
| /// |
| /// Required. |
| /// Possible string values are: |
| /// - "CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED" : Not specified. |
| /// - "GOOGLE_SYMMETRIC_ENCRYPTION" : Creates symmetric encryption keys. |
| /// - "RSA_SIGN_PSS_2048_SHA256" : RSASSA-PSS 2048 bit key with a SHA256 |
| /// digest. |
| /// - "RSA_SIGN_PSS_3072_SHA256" : RSASSA-PSS 3072 bit key with a SHA256 |
| /// digest. |
| /// - "RSA_SIGN_PSS_4096_SHA256" : RSASSA-PSS 4096 bit key with a SHA256 |
| /// digest. |
| /// - "RSA_SIGN_PSS_4096_SHA512" : RSASSA-PSS 4096 bit key with a SHA512 |
| /// digest. |
| /// - "RSA_SIGN_PKCS1_2048_SHA256" : RSASSA-PKCS1-v1_5 with a 2048 bit key and |
| /// a SHA256 digest. |
| /// - "RSA_SIGN_PKCS1_3072_SHA256" : RSASSA-PKCS1-v1_5 with a 3072 bit key and |
| /// a SHA256 digest. |
| /// - "RSA_SIGN_PKCS1_4096_SHA256" : RSASSA-PKCS1-v1_5 with a 4096 bit key and |
| /// a SHA256 digest. |
| /// - "RSA_SIGN_PKCS1_4096_SHA512" : RSASSA-PKCS1-v1_5 with a 4096 bit key and |
| /// a SHA512 digest. |
| /// - "RSA_DECRYPT_OAEP_2048_SHA256" : RSAES-OAEP 2048 bit key with a SHA256 |
| /// digest. |
| /// - "RSA_DECRYPT_OAEP_3072_SHA256" : RSAES-OAEP 3072 bit key with a SHA256 |
| /// digest. |
| /// - "RSA_DECRYPT_OAEP_4096_SHA256" : RSAES-OAEP 4096 bit key with a SHA256 |
| /// digest. |
| /// - "RSA_DECRYPT_OAEP_4096_SHA512" : RSAES-OAEP 4096 bit key with a SHA512 |
| /// digest. |
| /// - "EC_SIGN_P256_SHA256" : ECDSA on the NIST P-256 curve with a SHA256 |
| /// digest. |
| /// - "EC_SIGN_P384_SHA384" : ECDSA on the NIST P-384 curve with a SHA384 |
| /// digest. |
| /// - "EXTERNAL_SYMMETRIC_ENCRYPTION" : Algorithm representing symmetric |
| /// encryption by an external key manager. |
| core.String algorithm; |
| |
| /// The name of the ImportJob that was used to wrap this key material. |
| /// |
| /// Required. |
| core.String importJob; |
| |
| /// Wrapped key material produced with RSA_OAEP_3072_SHA1_AES_256 or |
| /// RSA_OAEP_4096_SHA1_AES_256. |
| /// |
| /// This field contains the concatenation of two wrapped keys: 1. An ephemeral |
| /// AES-256 wrapping key wrapped with the public_key using RSAES-OAEP with |
| /// SHA-1, MGF1 with SHA-1, and an empty label. 2. The key to be imported, |
| /// wrapped with the ephemeral AES-256 key using AES-KWP (RFC 5649). If |
| /// importing symmetric key material, it is expected that the unwrapped key |
| /// contains plain bytes. If importing asymmetric key material, it is expected |
| /// that the unwrapped key is in PKCS#8-encoded DER format (the PrivateKeyInfo |
| /// structure from RFC 5208). This format is the same as the format produced |
| /// by PKCS#11 mechanism CKM_RSA_AES_KEY_WRAP. |
| core.String rsaAesWrappedKey; |
| core.List<core.int> get rsaAesWrappedKeyAsBytes => |
| convert.base64.decode(rsaAesWrappedKey); |
| |
| set rsaAesWrappedKeyAsBytes(core.List<core.int> _bytes) { |
| rsaAesWrappedKey = |
| convert.base64.encode(_bytes).replaceAll('/', '_').replaceAll('+', '-'); |
| } |
| |
| ImportCryptoKeyVersionRequest(); |
| |
| ImportCryptoKeyVersionRequest.fromJson(core.Map _json) { |
| if (_json.containsKey('algorithm')) { |
| algorithm = _json['algorithm'] as core.String; |
| } |
| if (_json.containsKey('importJob')) { |
| importJob = _json['importJob'] as core.String; |
| } |
| if (_json.containsKey('rsaAesWrappedKey')) { |
| rsaAesWrappedKey = _json['rsaAesWrappedKey'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (algorithm != null) { |
| _json['algorithm'] = algorithm; |
| } |
| if (importJob != null) { |
| _json['importJob'] = importJob; |
| } |
| if (rsaAesWrappedKey != null) { |
| _json['rsaAesWrappedKey'] = rsaAesWrappedKey; |
| } |
| return _json; |
| } |
| } |
| |
| /// An ImportJob can be used to create CryptoKeys and CryptoKeyVersions using |
| /// pre-existing key material, generated outside of Cloud KMS. |
| /// |
| /// When an ImportJob is created, Cloud KMS will generate a "wrapping key", |
| /// which is a public/private key pair. You use the wrapping key to encrypt |
| /// (also known as wrap) the pre-existing key material to protect it during the |
| /// import process. The nature of the wrapping key depends on the choice of |
| /// import_method. When the wrapping key generation is complete, the state will |
| /// be set to ACTIVE and the public_key can be fetched. The fetched public key |
| /// can then be used to wrap your pre-existing key material. Once the key |
| /// material is wrapped, it can be imported into a new CryptoKeyVersion in an |
| /// existing CryptoKey by calling ImportCryptoKeyVersion. Multiple |
| /// CryptoKeyVersions can be imported with a single ImportJob. Cloud KMS uses |
| /// the private key portion of the wrapping key to unwrap the key material. Only |
| /// Cloud KMS has access to the private key. An ImportJob expires 3 days after |
| /// it is created. Once expired, Cloud KMS will no longer be able to import or |
| /// unwrap any key material that was wrapped with the ImportJob's public key. |
| /// For more information, see |
| /// [Importing a key](https://cloud.google.com/kms/docs/importing-a-key). |
| class ImportJob { |
| /// Statement that was generated and signed by the key creator (for example, |
| /// an HSM) at key creation time. |
| /// |
| /// Use this statement to verify attributes of the key as stored on the HSM, |
| /// independently of Google. Only present if the chosen ImportMethod is one |
| /// with a protection level of HSM. |
| /// |
| /// Output only. |
| KeyOperationAttestation attestation; |
| |
| /// The time at which this ImportJob was created. |
| /// |
| /// Output only. |
| core.String createTime; |
| |
| /// The time this ImportJob expired. |
| /// |
| /// Only present if state is EXPIRED. |
| /// |
| /// Output only. |
| core.String expireEventTime; |
| |
| /// The time at which this ImportJob is scheduled for expiration and can no |
| /// longer be used to import key material. |
| /// |
| /// Output only. |
| core.String expireTime; |
| |
| /// The time this ImportJob's key material was generated. |
| /// |
| /// Output only. |
| core.String generateTime; |
| |
| /// The wrapping method to be used for incoming key material. |
| /// |
| /// Required. Immutable. |
| /// Possible string values are: |
| /// - "IMPORT_METHOD_UNSPECIFIED" : Not specified. |
| /// - "RSA_OAEP_3072_SHA1_AES_256" : This ImportMethod represents the |
| /// CKM_RSA_AES_KEY_WRAP key wrapping scheme defined in the PKCS #11 standard. |
| /// In summary, this involves wrapping the raw key with an ephemeral AES key, |
| /// and wrapping the ephemeral AES key with a 3072 bit RSA key. For more |
| /// details, see |
| /// [RSA AES key wrap mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908). |
| /// - "RSA_OAEP_4096_SHA1_AES_256" : This ImportMethod represents the |
| /// CKM_RSA_AES_KEY_WRAP key wrapping scheme defined in the PKCS #11 standard. |
| /// In summary, this involves wrapping the raw key with an ephemeral AES key, |
| /// and wrapping the ephemeral AES key with a 4096 bit RSA key. For more |
| /// details, see |
| /// [RSA AES key wrap mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908). |
| core.String importMethod; |
| |
| /// The resource name for this ImportJob in the format `projects / * |
| /// /locations / * /keyRings / * /importJobs / * `. |
| /// |
| /// Output only. |
| core.String name; |
| |
| /// The protection level of the ImportJob. |
| /// |
| /// This must match the protection_level of the version_template on the |
| /// CryptoKey you attempt to import into. |
| /// |
| /// Required. Immutable. |
| /// Possible string values are: |
| /// - "PROTECTION_LEVEL_UNSPECIFIED" : Not specified. |
| /// - "SOFTWARE" : Crypto operations are performed in software. |
| /// - "HSM" : Crypto operations are performed in a Hardware Security Module. |
| /// - "EXTERNAL" : Crypto operations are performed by an external key manager. |
| core.String protectionLevel; |
| |
| /// The public key with which to wrap key material prior to import. |
| /// |
| /// Only returned if state is ACTIVE. |
| /// |
| /// Output only. |
| WrappingPublicKey publicKey; |
| |
| /// The current state of the ImportJob, indicating if it can be used. |
| /// |
| /// Output only. |
| /// Possible string values are: |
| /// - "IMPORT_JOB_STATE_UNSPECIFIED" : Not specified. |
| /// - "PENDING_GENERATION" : The wrapping key for this job is still being |
| /// generated. It may not be used. Cloud KMS will automatically mark this job |
| /// as ACTIVE as soon as the wrapping key is generated. |
| /// - "ACTIVE" : This job may be used in CreateCryptoKey and |
| /// CreateCryptoKeyVersion requests. |
| /// - "EXPIRED" : This job can no longer be used and may not leave this state |
| /// once entered. |
| core.String state; |
| |
| ImportJob(); |
| |
| ImportJob.fromJson(core.Map _json) { |
| if (_json.containsKey('attestation')) { |
| attestation = KeyOperationAttestation.fromJson( |
| _json['attestation'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('createTime')) { |
| createTime = _json['createTime'] as core.String; |
| } |
| if (_json.containsKey('expireEventTime')) { |
| expireEventTime = _json['expireEventTime'] as core.String; |
| } |
| if (_json.containsKey('expireTime')) { |
| expireTime = _json['expireTime'] as core.String; |
| } |
| if (_json.containsKey('generateTime')) { |
| generateTime = _json['generateTime'] as core.String; |
| } |
| if (_json.containsKey('importMethod')) { |
| importMethod = _json['importMethod'] as core.String; |
| } |
| if (_json.containsKey('name')) { |
| name = _json['name'] as core.String; |
| } |
| if (_json.containsKey('protectionLevel')) { |
| protectionLevel = _json['protectionLevel'] as core.String; |
| } |
| if (_json.containsKey('publicKey')) { |
| publicKey = WrappingPublicKey.fromJson( |
| _json['publicKey'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('state')) { |
| state = _json['state'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (attestation != null) { |
| _json['attestation'] = attestation.toJson(); |
| } |
| if (createTime != null) { |
| _json['createTime'] = createTime; |
| } |
| if (expireEventTime != null) { |
| _json['expireEventTime'] = expireEventTime; |
| } |
| if (expireTime != null) { |
| _json['expireTime'] = expireTime; |
| } |
| if (generateTime != null) { |
| _json['generateTime'] = generateTime; |
| } |
| if (importMethod != null) { |
| _json['importMethod'] = importMethod; |
| } |
| if (name != null) { |
| _json['name'] = name; |
| } |
| if (protectionLevel != null) { |
| _json['protectionLevel'] = protectionLevel; |
| } |
| if (publicKey != null) { |
| _json['publicKey'] = publicKey.toJson(); |
| } |
| if (state != null) { |
| _json['state'] = state; |
| } |
| return _json; |
| } |
| } |
| |
| /// Contains an HSM-generated attestation about a key operation. |
| /// |
| /// For more information, see |
| /// [Verifying attestations](https://cloud.google.com/kms/docs/attest-key). |
| class KeyOperationAttestation { |
| /// The certificate chains needed to validate the attestation |
| /// |
| /// Output only. |
| CertificateChains certChains; |
| |
| /// The attestation data provided by the HSM when the key operation was |
| /// performed. |
| /// |
| /// Output only. |
| core.String content; |
| core.List<core.int> get contentAsBytes => convert.base64.decode(content); |
| |
| set contentAsBytes(core.List<core.int> _bytes) { |
| content = |
| convert.base64.encode(_bytes).replaceAll('/', '_').replaceAll('+', '-'); |
| } |
| |
| /// The format of the attestation data. |
| /// |
| /// Output only. |
| /// Possible string values are: |
| /// - "ATTESTATION_FORMAT_UNSPECIFIED" : Not specified. |
| /// - "CAVIUM_V1_COMPRESSED" : Cavium HSM attestation compressed with gzip. |
| /// Note that this format is defined by Cavium and subject to change at any |
| /// time. |
| /// - "CAVIUM_V2_COMPRESSED" : Cavium HSM attestation V2 compressed with gzip. |
| /// This is a new format introduced in Cavium's version 3.2-08. |
| core.String format; |
| |
| KeyOperationAttestation(); |
| |
| KeyOperationAttestation.fromJson(core.Map _json) { |
| if (_json.containsKey('certChains')) { |
| certChains = CertificateChains.fromJson( |
| _json['certChains'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('content')) { |
| content = _json['content'] as core.String; |
| } |
| if (_json.containsKey('format')) { |
| format = _json['format'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (certChains != null) { |
| _json['certChains'] = certChains.toJson(); |
| } |
| if (content != null) { |
| _json['content'] = content; |
| } |
| if (format != null) { |
| _json['format'] = format; |
| } |
| return _json; |
| } |
| } |
| |
| /// A KeyRing is a toplevel logical grouping of CryptoKeys. |
| class KeyRing { |
| /// The time at which this KeyRing was created. |
| /// |
| /// Output only. |
| core.String createTime; |
| |
| /// The resource name for the KeyRing in the format `projects / * /locations / |
| /// * /keyRings / * `. |
| /// |
| /// Output only. |
| core.String name; |
| |
| KeyRing(); |
| |
| KeyRing.fromJson(core.Map _json) { |
| if (_json.containsKey('createTime')) { |
| createTime = _json['createTime'] as core.String; |
| } |
| if (_json.containsKey('name')) { |
| name = _json['name'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <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'] as core.List) |
| .map<CryptoKeyVersion>((value) => CryptoKeyVersion.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('nextPageToken')) { |
| nextPageToken = _json['nextPageToken'] as core.String; |
| } |
| if (_json.containsKey('totalSize')) { |
| totalSize = _json['totalSize'] as core.int; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <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'] as core.List) |
| .map<CryptoKey>((value) => |
| CryptoKey.fromJson(value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('nextPageToken')) { |
| nextPageToken = _json['nextPageToken'] as core.String; |
| } |
| if (_json.containsKey('totalSize')) { |
| totalSize = _json['totalSize'] as core.int; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <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.ListImportJobs. |
| class ListImportJobsResponse { |
| /// The list of ImportJobs. |
| core.List<ImportJob> importJobs; |
| |
| /// A token to retrieve next page of results. |
| /// |
| /// Pass this value in ListImportJobsRequest.page_token to retrieve the next |
| /// page of results. |
| core.String nextPageToken; |
| |
| /// The total number of ImportJobs that matched the query. |
| core.int totalSize; |
| |
| ListImportJobsResponse(); |
| |
| ListImportJobsResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('importJobs')) { |
| importJobs = (_json['importJobs'] as core.List) |
| .map<ImportJob>((value) => |
| ImportJob.fromJson(value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('nextPageToken')) { |
| nextPageToken = _json['nextPageToken'] as core.String; |
| } |
| if (_json.containsKey('totalSize')) { |
| totalSize = _json['totalSize'] as core.int; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (importJobs != null) { |
| _json['importJobs'] = importJobs.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'] as core.List) |
| .map<KeyRing>((value) => |
| KeyRing.fromJson(value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('nextPageToken')) { |
| nextPageToken = _json['nextPageToken'] as core.String; |
| } |
| if (_json.containsKey('totalSize')) { |
| totalSize = _json['totalSize'] as core.int; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <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'] as core.List) |
| .map<Location>((value) => |
| Location.fromJson(value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('nextPageToken')) { |
| nextPageToken = _json['nextPageToken'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <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 { |
| /// The friendly name for this location, typically a nearby city name. |
| /// |
| /// For example, "Tokyo". |
| core.String displayName; |
| |
| /// 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('displayName')) { |
| displayName = _json['displayName'] as core.String; |
| } |
| if (_json.containsKey('labels')) { |
| labels = |
| (_json['labels'] as core.Map).cast<core.String, core.String>().map( |
| (key, item) => core.MapEntry( |
| key, |
| item as core.String, |
| ), |
| ); |
| } |
| if (_json.containsKey('locationId')) { |
| locationId = _json['locationId'] as core.String; |
| } |
| if (_json.containsKey('metadata')) { |
| metadata = |
| (_json['metadata'] as core.Map).cast<core.String, core.Object>().map( |
| (key, item) => core.MapEntry( |
| key, |
| item as core.Object, |
| ), |
| ); |
| } |
| if (_json.containsKey('name')) { |
| name = _json['name'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (displayName != null) { |
| _json['displayName'] = displayName; |
| } |
| 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; |
| } |
| } |
| |
| /// Cloud KMS metadata for the given google.cloud.location.Location. |
| class LocationMetadata { |
| /// Indicates whether CryptoKeys with protection_level EXTERNAL can be created |
| /// in this location. |
| core.bool ekmAvailable; |
| |
| /// Indicates whether CryptoKeys with protection_level HSM can be created in |
| /// this location. |
| core.bool hsmAvailable; |
| |
| LocationMetadata(); |
| |
| LocationMetadata.fromJson(core.Map _json) { |
| if (_json.containsKey('ekmAvailable')) { |
| ekmAvailable = _json['ekmAvailable'] as core.bool; |
| } |
| if (_json.containsKey('hsmAvailable')) { |
| hsmAvailable = _json['hsmAvailable'] as core.bool; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (ekmAvailable != null) { |
| _json['ekmAvailable'] = ekmAvailable; |
| } |
| if (hsmAvailable != null) { |
| _json['hsmAvailable'] = hsmAvailable; |
| } |
| return _json; |
| } |
| } |
| |
| /// An Identity and Access Management (IAM) policy, which specifies access |
| /// controls for Google Cloud resources. |
| /// |
| /// A `Policy` is a collection of `bindings`. A `binding` binds one or more |
| /// `members` to a single `role`. Members can be user accounts, service |
| /// accounts, Google groups, and domains (such as G Suite). A `role` is a named |
| /// list of permissions; each `role` can be an IAM predefined role or a |
| /// user-created custom role. For some types of Google Cloud resources, a |
| /// `binding` can also specify a `condition`, which is a logical expression that |
| /// allows access to a resource only if the expression evaluates to `true`. A |
| /// condition can add constraints based on attributes of the request, the |
| /// resource, or both. To learn which resources support conditions in their IAM |
| /// policies, see the |
| /// [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). |
| /// **JSON example:** { "bindings": \[ { "role": |
| /// "roles/resourcemanager.organizationAdmin", "members": \[ |
| /// "user:mike@example.com", "group:admins@example.com", "domain:google.com", |
| /// "serviceAccount:my-project-id@appspot.gserviceaccount.com" \] }, { "role": |
| /// "roles/resourcemanager.organizationViewer", "members": \[ |
| /// "user:eve@example.com" \], "condition": { "title": "expirable access", |
| /// "description": "Does not grant access after Sep 2020", "expression": |
| /// "request.time < timestamp('2020-10-01T00:00:00.000Z')", } } \], "etag": |
| /// "BwWWja0YfJA=", "version": 3 } **YAML example:** bindings: - members: - |
| /// user:mike@example.com - group:admins@example.com - domain:google.com - |
| /// serviceAccount:my-project-id@appspot.gserviceaccount.com role: |
| /// roles/resourcemanager.organizationAdmin - members: - user:eve@example.com |
| /// role: roles/resourcemanager.organizationViewer condition: title: expirable |
| /// access description: Does not grant access after Sep 2020 expression: |
| /// request.time < timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - |
| /// version: 3 For a description of IAM and its features, see the |
| /// [IAM documentation](https://cloud.google.com/iam/docs/). |
| class Policy { |
| /// Specifies cloud audit logging configuration for this policy. |
| core.List<AuditConfig> auditConfigs; |
| |
| /// Associates a list of `members` to a `role`. |
| /// |
| /// Optionally, may specify a `condition` that determines how and when the |
| /// `bindings` are applied. Each of the `bindings` must contain at least one |
| /// member. |
| 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. **Important:** If you use IAM Conditions, you must include the |
| /// `etag` field whenever you call `setIamPolicy`. If you omit this field, |
| /// then IAM allows you to overwrite a version `3` policy with a version `1` |
| /// policy, and all of the conditions in the version `3` policy are lost. |
| core.String etag; |
| core.List<core.int> get etagAsBytes => convert.base64.decode(etag); |
| |
| set etagAsBytes(core.List<core.int> _bytes) { |
| etag = |
| convert.base64.encode(_bytes).replaceAll('/', '_').replaceAll('+', '-'); |
| } |
| |
| /// Specifies the format of the policy. |
| /// |
| /// Valid values are `0`, `1`, and `3`. Requests that specify an invalid value |
| /// are rejected. Any operation that affects conditional role bindings must |
| /// specify version `3`. This requirement applies to the following operations: |
| /// * Getting a policy that includes a conditional role binding * Adding a |
| /// conditional role binding to a policy * Changing a conditional role binding |
| /// in a policy * Removing any role binding, with or without a condition, from |
| /// a policy that includes conditions **Important:** If you use IAM |
| /// Conditions, you must include the `etag` field whenever you call |
| /// `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a |
| /// version `3` policy with a version `1` policy, and all of the conditions in |
| /// the version `3` policy are lost. If a policy does not include any |
| /// conditions, operations on that policy may specify any valid version or |
| /// leave the field unset. To learn which resources support conditions in |
| /// their IAM policies, see the |
| /// [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). |
| core.int version; |
| |
| Policy(); |
| |
| Policy.fromJson(core.Map _json) { |
| if (_json.containsKey('auditConfigs')) { |
| auditConfigs = (_json['auditConfigs'] as core.List) |
| .map<AuditConfig>((value) => AuditConfig.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('bindings')) { |
| bindings = (_json['bindings'] as core.List) |
| .map<Binding>((value) => |
| Binding.fromJson(value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('etag')) { |
| etag = _json['etag'] as core.String; |
| } |
| if (_json.containsKey('version')) { |
| version = _json['version'] as core.int; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <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 (version != null) { |
| _json['version'] = version; |
| } |
| return _json; |
| } |
| } |
| |
| /// The public key for a given CryptoKeyVersion. |
| /// |
| /// Obtained via GetPublicKey. |
| class PublicKey { |
| /// The Algorithm associated with this key. |
| /// Possible string values are: |
| /// - "CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED" : Not specified. |
| /// - "GOOGLE_SYMMETRIC_ENCRYPTION" : Creates symmetric encryption keys. |
| /// - "RSA_SIGN_PSS_2048_SHA256" : RSASSA-PSS 2048 bit key with a SHA256 |
| /// digest. |
| /// - "RSA_SIGN_PSS_3072_SHA256" : RSASSA-PSS 3072 bit key with a SHA256 |
| /// digest. |
| /// - "RSA_SIGN_PSS_4096_SHA256" : RSASSA-PSS 4096 bit key with a SHA256 |
| /// digest. |
| /// - "RSA_SIGN_PSS_4096_SHA512" : RSASSA-PSS 4096 bit key with a SHA512 |
| /// digest. |
| /// - "RSA_SIGN_PKCS1_2048_SHA256" : RSASSA-PKCS1-v1_5 with a 2048 bit key and |
| /// a SHA256 digest. |
| /// - "RSA_SIGN_PKCS1_3072_SHA256" : RSASSA-PKCS1-v1_5 with a 3072 bit key and |
| /// a SHA256 digest. |
| /// - "RSA_SIGN_PKCS1_4096_SHA256" : RSASSA-PKCS1-v1_5 with a 4096 bit key and |
| /// a SHA256 digest. |
| /// - "RSA_SIGN_PKCS1_4096_SHA512" : RSASSA-PKCS1-v1_5 with a 4096 bit key and |
| /// a SHA512 digest. |
| /// - "RSA_DECRYPT_OAEP_2048_SHA256" : RSAES-OAEP 2048 bit key with a SHA256 |
| /// digest. |
| /// - "RSA_DECRYPT_OAEP_3072_SHA256" : RSAES-OAEP 3072 bit key with a SHA256 |
| /// digest. |
| /// - "RSA_DECRYPT_OAEP_4096_SHA256" : RSAES-OAEP 4096 bit key with a SHA256 |
| /// digest. |
| /// - "RSA_DECRYPT_OAEP_4096_SHA512" : RSAES-OAEP 4096 bit key with a SHA512 |
| /// digest. |
| /// - "EC_SIGN_P256_SHA256" : ECDSA on the NIST P-256 curve with a SHA256 |
| /// digest. |
| /// - "EC_SIGN_P384_SHA384" : ECDSA on the NIST P-384 curve with a SHA384 |
| /// digest. |
| /// - "EXTERNAL_SYMMETRIC_ENCRYPTION" : Algorithm representing symmetric |
| /// encryption by an external key manager. |
| core.String algorithm; |
| |
| /// The name of the CryptoKeyVersion public key. |
| /// |
| /// Provided here for verification. NOTE: This field is in Beta. |
| core.String name; |
| |
| /// The public key, encoded in PEM format. |
| /// |
| /// For more information, see the |
| /// [RFC 7468](https://tools.ietf.org/html/rfc7468) sections for |
| /// [General Considerations](https://tools.ietf.org/html/rfc7468#section-2) |
| /// and |
| /// [Textual Encoding of Subject Public Key Info](https://tools.ietf.org/html/rfc7468#section-13). |
| core.String pem; |
| |
| /// Integrity verification field. |
| /// |
| /// A CRC32C checksum of the returned PublicKey.pem. An integrity check of |
| /// PublicKey.pem can be performed by computing the CRC32C checksum of |
| /// PublicKey.pem and comparing your results to this field. Discard the |
| /// response in case of non-matching checksum values, and perform a limited |
| /// number of retries. A persistent mismatch may indicate an issue in your |
| /// computation of the CRC32C checksum. Note: This field is defined as int64 |
| /// for reasons of compatibility across different languages. However, it is a |
| /// non-negative integer, which will never exceed 2^32-1, and can be safely |
| /// downconverted to uint32 in languages that support this type. NOTE: This |
| /// field is in Beta. |
| core.String pemCrc32c; |
| |
| /// The ProtectionLevel of the CryptoKeyVersion public key. |
| /// Possible string values are: |
| /// - "PROTECTION_LEVEL_UNSPECIFIED" : Not specified. |
| /// - "SOFTWARE" : Crypto operations are performed in software. |
| /// - "HSM" : Crypto operations are performed in a Hardware Security Module. |
| /// - "EXTERNAL" : Crypto operations are performed by an external key manager. |
| core.String protectionLevel; |
| |
| PublicKey(); |
| |
| PublicKey.fromJson(core.Map _json) { |
| if (_json.containsKey('algorithm')) { |
| algorithm = _json['algorithm'] as core.String; |
| } |
| if (_json.containsKey('name')) { |
| name = _json['name'] as core.String; |
| } |
| if (_json.containsKey('pem')) { |
| pem = _json['pem'] as core.String; |
| } |
| if (_json.containsKey('pemCrc32c')) { |
| pemCrc32c = _json['pemCrc32c'] as core.String; |
| } |
| if (_json.containsKey('protectionLevel')) { |
| protectionLevel = _json['protectionLevel'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (algorithm != null) { |
| _json['algorithm'] = algorithm; |
| } |
| if (name != null) { |
| _json['name'] = name; |
| } |
| if (pem != null) { |
| _json['pem'] = pem; |
| } |
| if (pemCrc32c != null) { |
| _json['pemCrc32c'] = pemCrc32c; |
| } |
| if (protectionLevel != null) { |
| _json['protectionLevel'] = protectionLevel; |
| } |
| return _json; |
| } |
| } |
| |
| /// Request message for KeyManagementService.RestoreCryptoKeyVersion. |
| class RestoreCryptoKeyVersionRequest { |
| RestoreCryptoKeyVersionRequest(); |
| |
| RestoreCryptoKeyVersionRequest.fromJson( |
| // ignore: avoid_unused_constructor_parameters |
| core.Map _json); |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| 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"` |
| core.String updateMask; |
| |
| SetIamPolicyRequest(); |
| |
| SetIamPolicyRequest.fromJson(core.Map _json) { |
| if (_json.containsKey('policy')) { |
| policy = Policy.fromJson( |
| _json['policy'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('updateMask')) { |
| updateMask = _json['updateMask'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <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'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <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'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <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. |
| /// |
| /// Required. |
| core.String cryptoKeyVersionId; |
| |
| UpdateCryptoKeyPrimaryVersionRequest(); |
| |
| UpdateCryptoKeyPrimaryVersionRequest.fromJson(core.Map _json) { |
| if (_json.containsKey('cryptoKeyVersionId')) { |
| cryptoKeyVersionId = _json['cryptoKeyVersionId'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (cryptoKeyVersionId != null) { |
| _json['cryptoKeyVersionId'] = cryptoKeyVersionId; |
| } |
| return _json; |
| } |
| } |
| |
| /// The public key component of the wrapping key. |
| /// |
| /// For details of the type of key this public key corresponds to, see the |
| /// ImportMethod. |
| class WrappingPublicKey { |
| /// The public key, encoded in PEM format. |
| /// |
| /// For more information, see the |
| /// [RFC 7468](https://tools.ietf.org/html/rfc7468) sections for |
| /// [General Considerations](https://tools.ietf.org/html/rfc7468#section-2) |
| /// and |
| /// [Textual Encoding of Subject Public Key Info](https://tools.ietf.org/html/rfc7468#section-13). |
| core.String pem; |
| |
| WrappingPublicKey(); |
| |
| WrappingPublicKey.fromJson(core.Map _json) { |
| if (_json.containsKey('pem')) { |
| pem = _json['pem'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (pem != null) { |
| _json['pem'] = pem; |
| } |
| return _json; |
| } |
| } |