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
-
.autokey(version: :v1, transport: :grpc, &block) ⇒ ::Object
Create a new client object for Autokey.
-
.autokey_admin(version: :v1, transport: :grpc, &block) ⇒ ::Object
Create a new client object for AutokeyAdmin.
-
.autokey_admin_available?(version: :v1, transport: :grpc) ⇒ boolean
Determines whether the AutokeyAdmin service is supported by the current client.
-
.autokey_available?(version: :v1, transport: :grpc) ⇒ boolean
Determines whether the Autokey service is supported by the current client.
-
.configure {|::Google::Cloud.configure.kms| ... } ⇒ ::Google::Cloud::Config
Configure the google-cloud-kms library.
-
.ekm_service(version: :v1, transport: :grpc, &block) ⇒ ::Object
Create a new client object for EkmService.
-
.ekm_service_available?(version: :v1, transport: :grpc) ⇒ boolean
Determines whether the EkmService service is supported by the current client.
-
.iam_policy(version: :v1, &block) ⇒ IAMPolicy::Client
Create a new client object for IAMPolicy.
-
.key_management_service(version: :v1, transport: :grpc, &block) ⇒ ::Object
Create a new client object for KeyManagementService.
-
.key_management_service_available?(version: :v1, transport: :grpc) ⇒ boolean
Determines whether the KeyManagementService service is supported by the current client.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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 |