Module: Google::Cloud::Kms

Defined in:
lib/google/cloud/kms.rb,
lib/google/cloud/kms/helpers.rb,
lib/google/cloud/kms/version.rb

Constant Summary collapse

VERSION =
"2.9.3"

Class Method Summary collapse

Class Method Details

.autokey(version: :v1, transport: :grpc, &block) ⇒ ::Object

Create a new client object for Autokey.

By default, this returns an instance of Google::Cloud::Kms::V1::Autokey::Client for a gRPC client for version V1 of the API. However, you can specify a different API version by passing it in the version parameter. If the Autokey service is supported by that API version, and the corresponding gem is available, the appropriate versioned client will be returned. You can also specify a different transport by passing :rest or :grpc in the transport parameter.

Raises an exception if the currently installed versioned client gem for the given API version does not support the given transport of the Autokey service. You can determine whether the method will succeed by calling autokey_available?.

About Autokey

Provides interfaces for using Cloud KMS Autokey to provision new CryptoKeys, ready for Customer Managed Encryption Key (CMEK) use, on-demand. To support certain client tooling, this feature is modeled around a KeyHandle resource: creating a KeyHandle in a resource project and given location triggers Cloud KMS Autokey to provision a CryptoKey in the configured key project and the same location.

Prior to use in a given resource project, UpdateAutokeyConfig should have been called on an ancestor folder, setting the key project where Cloud KMS Autokey should create new CryptoKeys. See documentation for additional prerequisites. To check what key project, if any, is currently configured on a resource project's ancestor folder, see ShowEffectiveAutokeyConfig.

Parameters:

  • version (::String, ::Symbol) (defaults to: :v1)

    The API version to connect to. Optional. Defaults to :v1.

  • transport (:grpc, :rest) (defaults to: :grpc)

    The transport to use. Defaults to :grpc.

Returns:

  • (::Object)

    A client object for the specified version.



92
93
94
95
96
97
98
99
100
101
102
# File 'lib/google/cloud/kms.rb', line 92

def self.autokey version: :v1, transport: :grpc, &block
  require "google/cloud/kms/#{version.to_s.downcase}"

  package_name = Google::Cloud::Kms
                 .constants
                 .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") }
                 .first
  service_module = Google::Cloud::Kms.const_get(package_name).const_get(:Autokey)
  service_module = service_module.const_get(:Rest) if transport == :rest
  service_module.const_get(:Client).new(&block)
end

.autokey_admin(version: :v1, transport: :grpc, &block) ⇒ ::Object

Create a new client object for AutokeyAdmin.

By default, this returns an instance of Google::Cloud::Kms::V1::AutokeyAdmin::Client for a gRPC client for version V1 of the API. However, you can specify a different API version by passing it in the version parameter. If the AutokeyAdmin service is supported by that API version, and the corresponding gem is available, the appropriate versioned client will be returned. You can also specify a different transport by passing :rest or :grpc in the transport parameter.

Raises an exception if the currently installed versioned client gem for the given API version does not support the given transport of the AutokeyAdmin service. You can determine whether the method will succeed by calling autokey_admin_available?.

About AutokeyAdmin

Provides interfaces for managing Cloud KMS Autokey folder-level configurations. A configuration is inherited by all descendent projects. A configuration at one folder overrides any other configurations in its ancestry. Setting a configuration on a folder is a prerequisite for Cloud KMS Autokey, so that users working in a descendant project can request provisioned CryptoKeys, ready for Customer Managed Encryption Key (CMEK) use, on-demand.

Parameters:

  • version (::String, ::Symbol) (defaults to: :v1)

    The API version to connect to. Optional. Defaults to :v1.

  • transport (:grpc, :rest) (defaults to: :grpc)

    The transport to use. Defaults to :grpc.

Returns:

  • (::Object)

    A client object for the specified version.



169
170
171
172
173
174
175
176
177
178
179
# File 'lib/google/cloud/kms.rb', line 169

def self.autokey_admin version: :v1, transport: :grpc, &block
  require "google/cloud/kms/#{version.to_s.downcase}"

  package_name = Google::Cloud::Kms
                 .constants
                 .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") }
                 .first
  service_module = Google::Cloud::Kms.const_get(package_name).const_get(:AutokeyAdmin)
  service_module = service_module.const_get(:Rest) if transport == :rest
  service_module.const_get(:Client).new(&block)
end

.autokey_admin_available?(version: :v1, transport: :grpc) ⇒ boolean

Determines whether the AutokeyAdmin service is supported by the current client. If true, you can retrieve a client object by calling autokey_admin. If false, that method will raise an exception. This could happen if the given API version does not exist or does not support the AutokeyAdmin service, or if the versioned client gem needs an update to support the AutokeyAdmin service.

Parameters:

  • version (::String, ::Symbol) (defaults to: :v1)

    The API version to connect to. Optional. Defaults to :v1.

  • transport (:grpc, :rest) (defaults to: :grpc)

    The transport to use. Defaults to :grpc.

Returns:

  • (boolean)

    Whether the service is available.



193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
# File 'lib/google/cloud/kms.rb', line 193

def self.autokey_admin_available? version: :v1, transport: :grpc
  require "google/cloud/kms/#{version.to_s.downcase}"
  package_name = Google::Cloud::Kms
                 .constants
                 .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") }
                 .first
  return false unless package_name
  service_module = Google::Cloud::Kms.const_get package_name
  return false unless service_module.const_defined? :AutokeyAdmin
  service_module = service_module.const_get :AutokeyAdmin
  if transport == :rest
    return false unless service_module.const_defined? :Rest
    service_module = service_module.const_get :Rest
  end
  service_module.const_defined? :Client
rescue ::LoadError
  false
end

.autokey_available?(version: :v1, transport: :grpc) ⇒ boolean

Determines whether the Autokey service is supported by the current client. If true, you can retrieve a client object by calling autokey. If false, that method will raise an exception. This could happen if the given API version does not exist or does not support the Autokey service, or if the versioned client gem needs an update to support the Autokey service.

Parameters:

  • version (::String, ::Symbol) (defaults to: :v1)

    The API version to connect to. Optional. Defaults to :v1.

  • transport (:grpc, :rest) (defaults to: :grpc)

    The transport to use. Defaults to :grpc.

Returns:

  • (boolean)

    Whether the service is available.



116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
# File 'lib/google/cloud/kms.rb', line 116

def self.autokey_available? version: :v1, transport: :grpc
  require "google/cloud/kms/#{version.to_s.downcase}"
  package_name = Google::Cloud::Kms
                 .constants
                 .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") }
                 .first
  return false unless package_name
  service_module = Google::Cloud::Kms.const_get package_name
  return false unless service_module.const_defined? :Autokey
  service_module = service_module.const_get :Autokey
  if transport == :rest
    return false unless service_module.const_defined? :Rest
    service_module = service_module.const_get :Rest
  end
  service_module.const_defined? :Client
rescue ::LoadError
  false
end

.configure {|::Google::Cloud.configure.kms| ... } ⇒ ::Google::Cloud::Config

Configure the google-cloud-kms library.

The following configuration parameters are supported:

  • credentials (type: String, Hash, Google::Auth::Credentials) - The path to the keyfile as a String, the contents of the keyfile as a Hash, or a Google::Auth::Credentials object.
  • lib_name (type: String) - The library name as recorded in instrumentation and logging.
  • lib_version (type: String) - The library version as recorded in instrumentation and logging.
  • interceptors (type: Array<GRPC::ClientInterceptor>) - An array of interceptors that are run before calls are executed.
  • timeout (type: Numeric) - Default timeout in seconds.
  • metadata (type: Hash{Symbol=>String}) - Additional headers to be sent with the call.
  • retry_policy (type: Hash) - The retry policy. The value is a hash with the following keys:
    • :initial_delay (type: Numeric) - The initial delay in seconds.
    • :max_delay (type: Numeric) - The max delay in seconds.
    • :multiplier (type: Numeric) - The incremental backoff multiplier.
    • :retry_codes (type: Array<String>) - The error codes that should trigger a retry.

Yields:

Returns:

  • (::Google::Cloud::Config)

    The default configuration used by this library



395
396
397
398
399
# File 'lib/google/cloud/kms.rb', line 395

def self.configure
  yield ::Google::Cloud.configure.kms if block_given?

  ::Google::Cloud.configure.kms
end

.ekm_service(version: :v1, transport: :grpc, &block) ⇒ ::Object

Create a new client object for EkmService.

By default, this returns an instance of Google::Cloud::Kms::V1::EkmService::Client for a gRPC client for version V1 of the API. However, you can specify a different API version by passing it in the version parameter. If the EkmService service is supported by that API version, and the corresponding gem is available, the appropriate versioned client will be returned. You can also specify a different transport by passing :rest or :grpc in the transport parameter.

Raises an exception if the currently installed versioned client gem for the given API version does not support the given transport of the EkmService service. You can determine whether the method will succeed by calling ekm_service_available?.

About EkmService

Google Cloud Key Management EKM Service

Manages external cryptographic keys and operations using those keys. Implements a REST model with the following objects:

  • EkmConnection

Parameters:

  • version (::String, ::Symbol) (defaults to: :v1)

    The API version to connect to. Optional. Defaults to :v1.

  • transport (:grpc, :rest) (defaults to: :grpc)

    The transport to use. Defaults to :grpc.

Returns:

  • (::Object)

    A client object for the specified version.



243
244
245
246
247
248
249
250
251
252
253
# File 'lib/google/cloud/kms.rb', line 243

def self.ekm_service version: :v1, transport: :grpc, &block
  require "google/cloud/kms/#{version.to_s.downcase}"

  package_name = Google::Cloud::Kms
                 .constants
                 .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") }
                 .first
  service_module = Google::Cloud::Kms.const_get(package_name).const_get(:EkmService)
  service_module = service_module.const_get(:Rest) if transport == :rest
  service_module.const_get(:Client).new(&block)
end

.ekm_service_available?(version: :v1, transport: :grpc) ⇒ boolean

Determines whether the EkmService service is supported by the current client. If true, you can retrieve a client object by calling ekm_service. If false, that method will raise an exception. This could happen if the given API version does not exist or does not support the EkmService service, or if the versioned client gem needs an update to support the EkmService service.

Parameters:

  • version (::String, ::Symbol) (defaults to: :v1)

    The API version to connect to. Optional. Defaults to :v1.

  • transport (:grpc, :rest) (defaults to: :grpc)

    The transport to use. Defaults to :grpc.

Returns:

  • (boolean)

    Whether the service is available.



267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
# File 'lib/google/cloud/kms.rb', line 267

def self.ekm_service_available? version: :v1, transport: :grpc
  require "google/cloud/kms/#{version.to_s.downcase}"
  package_name = Google::Cloud::Kms
                 .constants
                 .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") }
                 .first
  return false unless package_name
  service_module = Google::Cloud::Kms.const_get package_name
  return false unless service_module.const_defined? :EkmService
  service_module = service_module.const_get :EkmService
  if transport == :rest
    return false unless service_module.const_defined? :Rest
    service_module = service_module.const_get :Rest
  end
  service_module.const_defined? :Client
rescue ::LoadError
  false
end

.iam_policy(version: :v1, &block) ⇒ IAMPolicy::Client

Create a new client object for IAMPolicy.

By default, this returns an instance of Google::Cloud::Kms::V1::IAMPolicy::Client for version V1 of the API. However, you can specify specify a different API version by passing it in the version parameter. If the IAMPolicy service is supported by that API version, and the corresponding gem is available, the appropriate versioned client will be returned.

About IAMPolicy

API Overview

Manages Identity and Access Management (IAM) policies.

Any implementation of an API that offers access control features implements the google.iam.v1.IAMPolicy interface.

Data model

Access control is applied when a principal (user or service account), takes some action on a resource exposed by a service. Resources, identified by URI-like names, are the unit of access control specification. Service implementations can choose the granularity of access control and the supported permissions for their resources. For example one database service may allow access control to be specified only at the Table level, whereas another might allow access control to also be specified at the Column level.

Policy Structure

See google.iam.v1.Policy

This is intentionally not a CRUD style API because access control policies are created and deleted implicitly with the resources to which they are attached.

Parameters:

  • version (::String, ::Symbol) (defaults to: :v1)

    The API version to connect to. Optional. Defaults to :v1.

Returns:

  • (IAMPolicy::Client)

    A client object for the specified version.



69
70
71
72
73
74
75
76
77
78
# File 'lib/google/cloud/kms/helpers.rb', line 69

def self.iam_policy version: :v1, &block
  require "google/cloud/kms/#{version.to_s.downcase}"

  package_name = Google::Cloud::Kms
                 .constants
                 .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") }
                 .first
  package_module = Google::Cloud::Kms.const_get package_name
  package_module.const_get(:IAMPolicy).const_get(:Client).new(&block)
end

.key_management_service(version: :v1, transport: :grpc, &block) ⇒ ::Object

Create a new client object for KeyManagementService.

By default, this returns an instance of Google::Cloud::Kms::V1::KeyManagementService::Client for a gRPC client for version V1 of the API. However, you can specify a different API version by passing it in the version parameter. If the KeyManagementService service is supported by that API version, and the corresponding gem is available, the appropriate versioned client will be returned. You can also specify a different transport by passing :rest or :grpc in the transport parameter.

Raises an exception if the currently installed versioned client gem for the given API version does not support the given transport of the KeyManagementService service. You can determine whether the method will succeed by calling key_management_service_available?.

About KeyManagementService

Google Cloud Key Management Service

Manages cryptographic keys and operations using those keys. Implements a REST model with the following objects:

  • KeyRing
  • CryptoKey
  • CryptoKeyVersion
  • ImportJob

If you are using manual gRPC libraries, see Using gRPC with Cloud KMS.

Parameters:

  • version (::String, ::Symbol) (defaults to: :v1)

    The API version to connect to. Optional. Defaults to :v1.

  • transport (:grpc, :rest) (defaults to: :grpc)

    The transport to use. Defaults to :grpc.

Returns:

  • (::Object)

    A client object for the specified version.



324
325
326
327
328
329
330
331
332
333
334
# File 'lib/google/cloud/kms.rb', line 324

def self.key_management_service version: :v1, transport: :grpc, &block
  require "google/cloud/kms/#{version.to_s.downcase}"

  package_name = Google::Cloud::Kms
                 .constants
                 .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") }
                 .first
  service_module = Google::Cloud::Kms.const_get(package_name).const_get(:KeyManagementService)
  service_module = service_module.const_get(:Rest) if transport == :rest
  service_module.const_get(:Client).new(&block)
end

.key_management_service_available?(version: :v1, transport: :grpc) ⇒ boolean

Determines whether the KeyManagementService service is supported by the current client. If true, you can retrieve a client object by calling key_management_service. If false, that method will raise an exception. This could happen if the given API version does not exist or does not support the KeyManagementService service, or if the versioned client gem needs an update to support the KeyManagementService service.

Parameters:

  • version (::String, ::Symbol) (defaults to: :v1)

    The API version to connect to. Optional. Defaults to :v1.

  • transport (:grpc, :rest) (defaults to: :grpc)

    The transport to use. Defaults to :grpc.

Returns:

  • (boolean)

    Whether the service is available.



348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
# File 'lib/google/cloud/kms.rb', line 348

def self.key_management_service_available? version: :v1, transport: :grpc
  require "google/cloud/kms/#{version.to_s.downcase}"
  package_name = Google::Cloud::Kms
                 .constants
                 .select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") }
                 .first
  return false unless package_name
  service_module = Google::Cloud::Kms.const_get package_name
  return false unless service_module.const_defined? :KeyManagementService
  service_module = service_module.const_get :KeyManagementService
  if transport == :rest
    return false unless service_module.const_defined? :Rest
    service_module = service_module.const_get :Rest
  end
  service_module.const_defined? :Client
rescue ::LoadError
  false
end