googleapis
Version:
Google APIs Client Library for Node.js
892 lines (891 loc) • 44.3 kB
TypeScript
/**
* Copyright 2015 Google Inc. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { AxiosPromise } from 'axios';
import { GoogleApis } from '../..';
import { BodyResponseCallback, GlobalOptions, MethodOptions } from '../../lib/api';
/**
* Google Cloud Key Management Service (KMS) API
*
* Manages encryption for your cloud services the same way you do on-premises.
* You can generate, use, rotate, and destroy AES256 encryption keys.
*
* @example
* const google = require('googleapis');
* const cloudkms = google.cloudkms('v1');
*
* @namespace cloudkms
* @type {Function}
* @version v1
* @variation v1
* @param {object=} options Options for Cloudkms
*/
export declare class Cloudkms {
_options: GlobalOptions;
google: GoogleApis;
root: this;
projects: Resource$Projects;
constructor(options: GlobalOptions, google: GoogleApis);
getRoot(): this;
}
/**
* 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:foo@gmail.com" ] }, {
* "log_type": "DATA_WRITE", }, {
* "log_type": "ADMIN_READ", } ] }, {
* "service": "fooservice.googleapis.com"
* "audit_log_configs": [ { "log_type":
* "DATA_READ", }, { "log_type":
* "DATA_WRITE", "exempted_members": [
* "user:bar@gmail.com" ] } ] } ]
* } For fooservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
* logging. It also exempts foo@gmail.com from DATA_READ logging, and
* bar@gmail.com from DATA_WRITE logging.
*/
export interface Schema$AuditConfig {
/**
* The configuration for logging of each type of permission.
*/
auditLogConfigs: Schema$AuditLogConfig[];
/**
* 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.
*/
service: string;
}
/**
* Provides the configuration for logging a type of permissions. Example: {
* "audit_log_configs": [ { "log_type":
* "DATA_READ", "exempted_members": [
* "user:foo@gmail.com" ] }, {
* "log_type": "DATA_WRITE", } ] } This
* enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
* foo@gmail.com from DATA_READ logging.
*/
export interface Schema$AuditLogConfig {
/**
* Specifies the identities that do not cause logging for this type of
* permission. Follows the same format of Binding.members.
*/
exemptedMembers: string[];
/**
* The log type that this config enables.
*/
logType: string;
}
/**
* Associates `members` with a `role`.
*/
export interface Schema$Binding {
/**
* Specifies the identities requesting access for a Cloud Platform resource.
* `members` can have the following values: * `allUsers`: A special
* identifier that represents anyone who is on the internet; with or
* without a Google account. * `allAuthenticatedUsers`: A special identifier
* that represents anyone who is authenticated with a Google account or a
* service account. * `user:{emailid}`: An email address that represents a
* specific Google account. For example, `alice@gmail.com` or
* `joe@example.com`. * `serviceAccount:{emailid}`: An email address that
* represents a service account. For example,
* `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email
* address that represents a Google group. For example,
* `admins@example.com`. * `domain:{domain}`: A Google Apps domain name that
* represents all the users of that domain. For example, `google.com` or
* `example.com`.
*/
members: string[];
/**
* Role that is assigned to `members`. For example, `roles/viewer`,
* `roles/editor`, or `roles/owner`. Required
*/
role: string;
}
/**
* A CryptoKey represents a logical key that can be used for cryptographic
* operations. A CryptoKey is made up of one or more versions, which represent
* the actual key material used in cryptographic operations.
*/
export interface Schema$CryptoKey {
/**
* Output only. The time at which this CryptoKey was created.
*/
createTime: string;
/**
* Labels with user-defined metadata. For more information, see [Labeling
* Keys](/kms/docs/labeling-keys).
*/
labels: any;
/**
* Output only. The resource name for this CryptoKey in the format
* `projects/x/locations/x/keyRings/x/cryptoKeys/x.
*/
name: string;
/**
* 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.
*/
nextRotationTime: string;
/**
* Output only. A copy of the "primary" CryptoKeyVersion that will
* be used by Encrypt when this CryptoKey is given in EncryptRequest.name. The
* CryptoKey's primary version can be updated via
* UpdateCryptoKeyPrimaryVersion.
*/
primary: Schema$CryptoKeyVersion;
/**
* The immutable purpose of this CryptoKey. Currently, the only acceptable
* purpose is ENCRYPT_DECRYPT.
*/
purpose: string;
/**
* next_rotation_time will be advanced by this period when the service
* automatically rotates a key. Must be at least one day. If rotation_period
* is set, next_rotation_time must also be set.
*/
rotationPeriod: string;
}
/**
* A CryptoKeyVersion represents an individual cryptographic key, and the
* associated key material. It can be used for cryptographic operations either
* directly, or via its parent CryptoKey, in which case the server will choose
* the appropriate version for the operation. 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 or decrypt data when an
* authorized user or application invokes Cloud KMS.
*/
export interface Schema$CryptoKeyVersion {
/**
* Output only. The time at which this CryptoKeyVersion was created.
*/
createTime: string;
/**
* Output only. The time this CryptoKeyVersion's key material was
* destroyed. Only present if state is DESTROYED.
*/
destroyEventTime: string;
/**
* Output only. The time this CryptoKeyVersion's key material is scheduled
* for destruction. Only present if state is DESTROY_SCHEDULED.
*/
destroyTime: string;
/**
* Output only. The resource name for this CryptoKeyVersion in the format
* `projects/x/locations/x/keyRings/x/cryptoKeys/x/cryptoKeyVersions/x.
*/
name: string;
/**
* The current state of the CryptoKeyVersion.
*/
state: string;
}
/**
* Request message for KeyManagementService.Decrypt.
*/
export interface Schema$DecryptRequest {
/**
* Optional data that must match the data originally supplied in
* EncryptRequest.additional_authenticated_data.
*/
additionalAuthenticatedData: string;
/**
* Required. The encrypted data originally returned in
* EncryptResponse.ciphertext.
*/
ciphertext: string;
}
/**
* Response message for KeyManagementService.Decrypt.
*/
export interface Schema$DecryptResponse {
/**
* The decrypted data originally supplied in EncryptRequest.plaintext.
*/
plaintext: string;
}
/**
* Request message for KeyManagementService.DestroyCryptoKeyVersion.
*/
export interface Schema$DestroyCryptoKeyVersionRequest {
}
/**
* Request message for KeyManagementService.Encrypt.
*/
export interface Schema$EncryptRequest {
/**
* Optional data that, if specified, must also be provided during decryption
* through DecryptRequest.additional_authenticated_data. Must be no larger
* than 64KiB.
*/
additionalAuthenticatedData: string;
/**
* Required. The data to encrypt. Must be no larger than 64KiB.
*/
plaintext: string;
}
/**
* Response message for KeyManagementService.Encrypt.
*/
export interface Schema$EncryptResponse {
/**
* The encrypted data.
*/
ciphertext: string;
/**
* The resource name of the CryptoKeyVersion used in encryption.
*/
name: string;
}
/**
* A KeyRing is a toplevel logical grouping of CryptoKeys.
*/
export interface Schema$KeyRing {
/**
* Output only. The time at which this KeyRing was created.
*/
createTime: string;
/**
* Output only. The resource name for the KeyRing in the format
* `projects/x/locations/x/keyRings/x.
*/
name: string;
}
/**
* Response message for KeyManagementService.ListCryptoKeys.
*/
export interface Schema$ListCryptoKeysResponse {
/**
* The list of CryptoKeys.
*/
cryptoKeys: Schema$CryptoKey[];
/**
* A token to retrieve next page of results. Pass this value in
* ListCryptoKeysRequest.page_token to retrieve the next page of results.
*/
nextPageToken: string;
/**
* The total number of CryptoKeys that matched the query.
*/
totalSize: number;
}
/**
* Response message for KeyManagementService.ListCryptoKeyVersions.
*/
export interface Schema$ListCryptoKeyVersionsResponse {
/**
* The list of CryptoKeyVersions.
*/
cryptoKeyVersions: Schema$CryptoKeyVersion[];
/**
* A token to retrieve next page of results. Pass this value in
* ListCryptoKeyVersionsRequest.page_token to retrieve the next page of
* results.
*/
nextPageToken: string;
/**
* The total number of CryptoKeyVersions that matched the query.
*/
totalSize: number;
}
/**
* Response message for KeyManagementService.ListKeyRings.
*/
export interface Schema$ListKeyRingsResponse {
/**
* The list of KeyRings.
*/
keyRings: Schema$KeyRing[];
/**
* A token to retrieve next page of results. Pass this value in
* ListKeyRingsRequest.page_token to retrieve the next page of results.
*/
nextPageToken: string;
/**
* The total number of KeyRings that matched the query.
*/
totalSize: number;
}
/**
* The response message for Locations.ListLocations.
*/
export interface Schema$ListLocationsResponse {
/**
* A list of locations that matches the specified filter in the request.
*/
locations: Schema$Location[];
/**
* The standard List next-page token.
*/
nextPageToken: string;
}
/**
* A resource that represents Google Cloud Platform location.
*/
export interface Schema$Location {
/**
* The friendly name for this location, typically a nearby city name. For
* example, "Tokyo".
*/
displayName: string;
/**
* Cross-service attributes for the location. For example
* {"cloud.googleapis.com/region": "us-east1"}
*/
labels: any;
/**
* The canonical id for this location. For example: `"us-east1"`.
*/
locationId: string;
/**
* Service-specific metadata. For example the available capacity at the given
* location.
*/
metadata: any;
/**
* Resource name for the location, which may vary between implementations. For
* example: `"projects/example-project/locations/us-east1"`
*/
name: string;
}
/**
* Defines an Identity and Access Management (IAM) policy. It is used to specify
* access control policies for Cloud Platform resources. A `Policy` consists
* of a list of `bindings`. A `Binding` binds a list of `members` to a `role`,
* where the members can be user accounts, Google groups, Google domains, and
* service accounts. A `role` is a named list of permissions defined by IAM.
* **Example** { "bindings": [ { "role":
* "roles/owner", "members": [
* "user:mike@example.com", "group:admins@example.com",
* "domain:google.com",
* "serviceAccount:my-other-app@appspot.gserviceaccount.com", ] }, {
* "role": "roles/viewer", "members":
* ["user:sean@example.com"] } ] } For a
* description of IAM and its features, see the [IAM developer's
* guide](https://cloud.google.com/iam/docs).
*/
export interface Schema$Policy {
/**
* Specifies cloud audit logging configuration for this policy.
*/
auditConfigs: Schema$AuditConfig[];
/**
* Associates a list of `members` to a `role`. `bindings` with no members will
* result in an error.
*/
bindings: Schema$Binding[];
/**
* `etag` is used for optimistic concurrency control as a way to help prevent
* simultaneous updates of a policy from overwriting each other. It is
* strongly suggested that systems make use of the `etag` in the
* read-modify-write cycle to perform policy updates in order to avoid race
* conditions: An `etag` is returned in the response to `getIamPolicy`, and
* systems are expected to put that etag in the request to `setIamPolicy` to
* ensure that their change will be applied to the same version of the policy.
* If no `etag` is provided in the call to `setIamPolicy`, then the existing
* policy is overwritten blindly.
*/
etag: string;
/**
* Deprecated.
*/
version: number;
}
/**
* Request message for KeyManagementService.RestoreCryptoKeyVersion.
*/
export interface Schema$RestoreCryptoKeyVersionRequest {
}
/**
* Request message for `SetIamPolicy` method.
*/
export interface Schema$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: Schema$Policy;
/**
* OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
* the fields in the mask will be modified. If no mask is provided, the
* following default mask is used: paths: "bindings, etag" This
* field is only used by Cloud IAM.
*/
updateMask: string;
}
/**
* Request message for `TestIamPermissions` method.
*/
export interface Schema$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).
*/
permissions: string[];
}
/**
* Response message for `TestIamPermissions` method.
*/
export interface Schema$TestIamPermissionsResponse {
/**
* A subset of `TestPermissionsRequest.permissions` that the caller is
* allowed.
*/
permissions: string[];
}
/**
* Request message for KeyManagementService.UpdateCryptoKeyPrimaryVersion.
*/
export interface Schema$UpdateCryptoKeyPrimaryVersionRequest {
/**
* The id of the child CryptoKeyVersion to use as primary.
*/
cryptoKeyVersionId: string;
}
export declare class Resource$Projects {
root: Cloudkms;
locations: Resource$Projects$Locations;
constructor(root: Cloudkms);
getRoot(): Cloudkms;
}
export declare class Resource$Projects$Locations {
root: Cloudkms;
keyRings: Resource$Projects$Locations$Keyrings;
constructor(root: Cloudkms);
getRoot(): Cloudkms;
/**
* cloudkms.projects.locations.get
* @desc Gets information about a location.
* @alias cloudkms.projects.locations.get
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.name Resource name for the location.
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
get(params?: any, options?: MethodOptions): AxiosPromise<Schema$Location>;
get(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$Location>, callback?: BodyResponseCallback<Schema$Location>): void;
/**
* cloudkms.projects.locations.list
* @desc Lists information about the supported locations for this service.
* @alias cloudkms.projects.locations.list
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string=} params.filter The standard list filter.
* @param {string} params.name The resource that owns the locations collection, if applicable.
* @param {integer=} params.pageSize The standard list page size.
* @param {string=} params.pageToken The standard list page token.
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
list(params?: any, options?: MethodOptions): AxiosPromise<Schema$ListLocationsResponse>;
list(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$ListLocationsResponse>, callback?: BodyResponseCallback<Schema$ListLocationsResponse>): void;
}
export declare class Resource$Projects$Locations$Keyrings {
root: Cloudkms;
cryptoKeys: Resource$Projects$Locations$Keyrings$Cryptokeys;
constructor(root: Cloudkms);
getRoot(): Cloudkms;
/**
* cloudkms.projects.locations.keyRings.create
* @desc Create a new KeyRing in a given Project and Location.
* @alias cloudkms.projects.locations.keyRings.create
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string=} params.keyRingId Required. It must be unique within a location and match the regular expression `[a-zA-Z0-9_-]{1,63}`
* @param {string} params.parent Required. The resource name of the location associated with the KeyRings, in the format `projects/x/locations/x`.
* @param {().KeyRing} params.resource Request body data
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
create(params?: any, options?: MethodOptions): AxiosPromise<Schema$KeyRing>;
create(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$KeyRing>, callback?: BodyResponseCallback<Schema$KeyRing>): void;
/**
* cloudkms.projects.locations.keyRings.get
* @desc Returns metadata for a given KeyRing.
* @alias cloudkms.projects.locations.keyRings.get
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.name The name of the KeyRing to get.
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
get(params?: any, options?: MethodOptions): AxiosPromise<Schema$KeyRing>;
get(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$KeyRing>, callback?: BodyResponseCallback<Schema$KeyRing>): void;
/**
* cloudkms.projects.locations.keyRings.getIamPolicy
* @desc Gets the access control policy for a resource. Returns an empty
* policy if the resource exists and does not have a policy set.
* @alias cloudkms.projects.locations.keyRings.getIamPolicy
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.resource_ REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
getIamPolicy(params?: any, options?: MethodOptions): AxiosPromise<Schema$Policy>;
getIamPolicy(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$Policy>, callback?: BodyResponseCallback<Schema$Policy>): void;
/**
* cloudkms.projects.locations.keyRings.list
* @desc Lists KeyRings.
* @alias cloudkms.projects.locations.keyRings.list
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {integer=} params.pageSize Optional limit on the number of KeyRings to include in the response. Further KeyRings can subsequently be obtained by including the ListKeyRingsResponse.next_page_token in a subsequent request. If unspecified, the server will pick an appropriate default.
* @param {string=} params.pageToken Optional pagination token, returned earlier via ListKeyRingsResponse.next_page_token.
* @param {string} params.parent Required. The resource name of the location associated with the KeyRings, in the format `projects/x/locations/x`.
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
list(params?: any, options?: MethodOptions): AxiosPromise<Schema$ListKeyRingsResponse>;
list(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$ListKeyRingsResponse>, callback?: BodyResponseCallback<Schema$ListKeyRingsResponse>): void;
/**
* cloudkms.projects.locations.keyRings.setIamPolicy
* @desc Sets the access control policy on the specified resource. Replaces
* any existing policy.
* @alias cloudkms.projects.locations.keyRings.setIamPolicy
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.resource_ REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.
* @param {().SetIamPolicyRequest} params.resource Request body data
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
setIamPolicy(params?: any, options?: MethodOptions): AxiosPromise<Schema$Policy>;
setIamPolicy(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$Policy>, callback?: BodyResponseCallback<Schema$Policy>): void;
/**
* cloudkms.projects.locations.keyRings.testIamPermissions
* @desc 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.
* @alias cloudkms.projects.locations.keyRings.testIamPermissions
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.resource_ REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.
* @param {().TestIamPermissionsRequest} params.resource Request body data
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
testIamPermissions(params?: any, options?: MethodOptions): AxiosPromise<Schema$TestIamPermissionsResponse>;
testIamPermissions(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$TestIamPermissionsResponse>, callback?: BodyResponseCallback<Schema$TestIamPermissionsResponse>): void;
}
export declare class Resource$Projects$Locations$Keyrings$Cryptokeys {
root: Cloudkms;
cryptoKeyVersions: Resource$Projects$Locations$Keyrings$Cryptokeys$Cryptokeyversions;
constructor(root: Cloudkms);
getRoot(): Cloudkms;
/**
* cloudkms.projects.locations.keyRings.cryptoKeys.create
* @desc Create a new CryptoKey within a KeyRing. CryptoKey.purpose is
* required.
* @alias cloudkms.projects.locations.keyRings.cryptoKeys.create
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string=} params.cryptoKeyId Required. It must be unique within a KeyRing and match the regular expression `[a-zA-Z0-9_-]{1,63}`
* @param {string} params.parent Required. The name of the KeyRing associated with the CryptoKeys.
* @param {().CryptoKey} params.resource Request body data
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
create(params?: any, options?: MethodOptions): AxiosPromise<Schema$CryptoKey>;
create(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$CryptoKey>, callback?: BodyResponseCallback<Schema$CryptoKey>): void;
/**
* cloudkms.projects.locations.keyRings.cryptoKeys.decrypt
* @desc Decrypts data that was protected by Encrypt.
* @alias cloudkms.projects.locations.keyRings.cryptoKeys.decrypt
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.name Required. The resource name of the CryptoKey to use for decryption. The server will choose the appropriate version.
* @param {().DecryptRequest} params.resource Request body data
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
decrypt(params?: any, options?: MethodOptions): AxiosPromise<Schema$DecryptResponse>;
decrypt(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$DecryptResponse>, callback?: BodyResponseCallback<Schema$DecryptResponse>): void;
/**
* cloudkms.projects.locations.keyRings.cryptoKeys.encrypt
* @desc Encrypts data, so that it can only be recovered by a call to Decrypt.
* @alias cloudkms.projects.locations.keyRings.cryptoKeys.encrypt
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.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.
* @param {().EncryptRequest} params.resource Request body data
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
encrypt(params?: any, options?: MethodOptions): AxiosPromise<Schema$EncryptResponse>;
encrypt(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$EncryptResponse>, callback?: BodyResponseCallback<Schema$EncryptResponse>): void;
/**
* cloudkms.projects.locations.keyRings.cryptoKeys.get
* @desc Returns metadata for a given CryptoKey, as well as its primary
* CryptoKeyVersion.
* @alias cloudkms.projects.locations.keyRings.cryptoKeys.get
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.name The name of the CryptoKey to get.
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
get(params?: any, options?: MethodOptions): AxiosPromise<Schema$CryptoKey>;
get(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$CryptoKey>, callback?: BodyResponseCallback<Schema$CryptoKey>): void;
/**
* cloudkms.projects.locations.keyRings.cryptoKeys.getIamPolicy
* @desc Gets the access control policy for a resource. Returns an empty
* policy if the resource exists and does not have a policy set.
* @alias cloudkms.projects.locations.keyRings.cryptoKeys.getIamPolicy
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.resource_ REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
getIamPolicy(params?: any, options?: MethodOptions): AxiosPromise<Schema$Policy>;
getIamPolicy(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$Policy>, callback?: BodyResponseCallback<Schema$Policy>): void;
/**
* cloudkms.projects.locations.keyRings.cryptoKeys.list
* @desc Lists CryptoKeys.
* @alias cloudkms.projects.locations.keyRings.cryptoKeys.list
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {integer=} params.pageSize Optional limit on the number of CryptoKeys to include in the response. Further CryptoKeys can subsequently be obtained by including the ListCryptoKeysResponse.next_page_token in a subsequent request. If unspecified, the server will pick an appropriate default.
* @param {string=} params.pageToken Optional pagination token, returned earlier via ListCryptoKeysResponse.next_page_token.
* @param {string} params.parent Required. The resource name of the KeyRing to list, in the format `projects/x/locations/x/keyRings/x`.
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
list(params?: any, options?: MethodOptions): AxiosPromise<Schema$ListCryptoKeysResponse>;
list(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$ListCryptoKeysResponse>, callback?: BodyResponseCallback<Schema$ListCryptoKeysResponse>): void;
/**
* cloudkms.projects.locations.keyRings.cryptoKeys.patch
* @desc Update a CryptoKey.
* @alias cloudkms.projects.locations.keyRings.cryptoKeys.patch
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.name Output only. The resource name for this CryptoKey in the format `projects/x/locations/x/keyRings/x/cryptoKeys/x`.
* @param {string=} params.updateMask Required list of fields to be updated in this request.
* @param {().CryptoKey} params.resource Request body data
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
patch(params?: any, options?: MethodOptions): AxiosPromise<Schema$CryptoKey>;
patch(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$CryptoKey>, callback?: BodyResponseCallback<Schema$CryptoKey>): void;
/**
* cloudkms.projects.locations.keyRings.cryptoKeys.setIamPolicy
* @desc Sets the access control policy on the specified resource. Replaces
* any existing policy.
* @alias cloudkms.projects.locations.keyRings.cryptoKeys.setIamPolicy
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.resource_ REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.
* @param {().SetIamPolicyRequest} params.resource Request body data
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
setIamPolicy(params?: any, options?: MethodOptions): AxiosPromise<Schema$Policy>;
setIamPolicy(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$Policy>, callback?: BodyResponseCallback<Schema$Policy>): void;
/**
* cloudkms.projects.locations.keyRings.cryptoKeys.testIamPermissions
* @desc 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.
* @alias cloudkms.projects.locations.keyRings.cryptoKeys.testIamPermissions
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.resource_ REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.
* @param {().TestIamPermissionsRequest} params.resource Request body data
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
testIamPermissions(params?: any, options?: MethodOptions): AxiosPromise<Schema$TestIamPermissionsResponse>;
testIamPermissions(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$TestIamPermissionsResponse>, callback?: BodyResponseCallback<Schema$TestIamPermissionsResponse>): void;
/**
* cloudkms.projects.locations.keyRings.cryptoKeys.updatePrimaryVersion
* @desc Update the version of a CryptoKey that will be used in Encrypt
* @alias cloudkms.projects.locations.keyRings.cryptoKeys.updatePrimaryVersion
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.name The resource name of the CryptoKey to update.
* @param {().UpdateCryptoKeyPrimaryVersionRequest} params.resource Request body data
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
updatePrimaryVersion(params?: any, options?: MethodOptions): AxiosPromise<Schema$CryptoKey>;
updatePrimaryVersion(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$CryptoKey>, callback?: BodyResponseCallback<Schema$CryptoKey>): void;
}
export declare class Resource$Projects$Locations$Keyrings$Cryptokeys$Cryptokeyversions {
root: Cloudkms;
constructor(root: Cloudkms);
getRoot(): Cloudkms;
/**
* cloudkms.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.create
* @desc Create a new CryptoKeyVersion in a CryptoKey. The server will assign
* the next sequential id. If unset, state will be set to ENABLED.
* @alias
* cloudkms.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.create
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.parent Required. The name of the CryptoKey associated with the CryptoKeyVersions.
* @param {().CryptoKeyVersion} params.resource Request body data
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
create(params?: any, options?: MethodOptions): AxiosPromise<Schema$CryptoKeyVersion>;
create(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$CryptoKeyVersion>, callback?: BodyResponseCallback<Schema$CryptoKeyVersion>): void;
/**
* cloudkms.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.destroy
* @desc 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.
* @alias
* cloudkms.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.destroy
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.name The resource name of the CryptoKeyVersion to destroy.
* @param {().DestroyCryptoKeyVersionRequest} params.resource Request body data
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
destroy(params?: any, options?: MethodOptions): AxiosPromise<Schema$CryptoKeyVersion>;
destroy(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$CryptoKeyVersion>, callback?: BodyResponseCallback<Schema$CryptoKeyVersion>): void;
/**
* cloudkms.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.get
* @desc Returns metadata for a given CryptoKeyVersion.
* @alias
* cloudkms.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.get
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.name The name of the CryptoKeyVersion to get.
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
get(params?: any, options?: MethodOptions): AxiosPromise<Schema$CryptoKeyVersion>;
get(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$CryptoKeyVersion>, callback?: BodyResponseCallback<Schema$CryptoKeyVersion>): void;
/**
* cloudkms.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.list
* @desc Lists CryptoKeyVersions.
* @alias
* cloudkms.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.list
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {integer=} params.pageSize Optional limit on the number of CryptoKeyVersions to include in the response. Further CryptoKeyVersions can subsequently be obtained by including the ListCryptoKeyVersionsResponse.next_page_token in a subsequent request. If unspecified, the server will pick an appropriate default.
* @param {string=} params.pageToken Optional pagination token, returned earlier via ListCryptoKeyVersionsResponse.next_page_token.
* @param {string} params.parent Required. The resource name of the CryptoKey to list, in the format `projects/x/locations/x/keyRings/x/cryptoKeys/x`.
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
list(params?: any, options?: MethodOptions): AxiosPromise<Schema$ListCryptoKeyVersionsResponse>;
list(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$ListCryptoKeyVersionsResponse>, callback?: BodyResponseCallback<Schema$ListCryptoKeyVersionsResponse>): void;
/**
* cloudkms.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.patch
* @desc 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.
* @alias
* cloudkms.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.patch
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.name Output only. The resource name for this CryptoKeyVersion in the format `projects/x/locations/x/keyRings/x/cryptoKeys/x/cryptoKeyVersions/x`.
* @param {string=} params.updateMask Required list of fields to be updated in this request.
* @param {().CryptoKeyVersion} params.resource Request body data
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
patch(params?: any, options?: MethodOptions): AxiosPromise<Schema$CryptoKeyVersion>;
patch(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$CryptoKeyVersion>, callback?: BodyResponseCallback<Schema$CryptoKeyVersion>): void;
/**
* cloudkms.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.restore
* @desc 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.
* @alias
* cloudkms.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.restore
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.name The resource name of the CryptoKeyVersion to restore.
* @param {().RestoreCryptoKeyVersionRequest} params.resource Request body data
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
restore(params?: any, options?: MethodOptions): AxiosPromise<Schema$CryptoKeyVersion>;
restore(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$CryptoKeyVersion>, callback?: BodyResponseCallback<Schema$CryptoKeyVersion>): void;
}