Module: Google::Cloud::Kms

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

Constant Summary collapse

VERSION =
"2.4.0"

Class Method Summary collapse

Class Method Details

.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 gRPC 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



205
206
207
208
209
# File 'lib/google/cloud/kms.rb', line 205

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

  ::Google::Cloud.configure.kms
end

.ekm_service(version: :v1, &block) ⇒ EkmService::Client

Create a new client object for EkmService.

By default, this returns an instance of Google::Cloud::Kms::V1::EkmService::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 EkmService service is supported by that API version, and the corresponding gem is available, the appropriate versioned client will be returned.

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.

Returns:

  • (EkmService::Client)

    A client object for the specified version.



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

def self.ekm_service 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(:EkmService).const_get(:Client).new(&block)
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.



166
167
168
169
170
171
172
173
174
175
# File 'lib/google/cloud/kms.rb', line 166

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, &block) ⇒ KeyManagementService::Client

Create a new client object for KeyManagementService.

By default, this returns an instance of Google::Cloud::Kms::V1::KeyManagementService::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 KeyManagementService service is supported by that API version, and the corresponding gem is available, the appropriate versioned client will be returned.

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.

Returns:

  • (KeyManagementService::Client)

    A client object for the specified version.



111
112
113
114
115
116
117
118
119
120
# File 'lib/google/cloud/kms.rb', line 111

def self.key_management_service 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(:KeyManagementService).const_get(:Client).new(&block)
end