lib/google/cloud/kms.rb in google-cloud-kms-2.1.2 vs lib/google/cloud/kms.rb in google-cloud-kms-2.2.0
- old
+ new
@@ -84,9 +84,63 @@
package_module = Google::Cloud::Kms.const_get package_name
package_module.const_get(:KeyManagementService).const_get(:Client).new(&block)
end
##
+ # Create a new client object for IAMPolicy.
+ #
+ # By default, this returns an instance of
+ # [Google::Cloud::Kms::V1::IAMPolicy::Client](https://googleapis.dev/ruby/google-cloud-kms-v1/latest/Google/Cloud/Kms/V1/IAMPolicy/Client.html)
+ # 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.
+ #
+ # @param version [::String, ::Symbol] The API version to connect to. Optional.
+ # Defaults to `:v1`.
+ # @return [IAMPolicy::Client] A client object for the specified version.
+ #
+ 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
+
+ ##
# Configure the google-cloud-kms library.
#
# The following configuration parameters are supported:
#
# * `credentials` (*type:* `String, Hash, Google::Auth::Credentials`) -