module Google::Cloud::OrgPolicy

Constants

VERSION

Public Class Methods

configure() { |configure.org_policy| ... } click to toggle source

Configure the google-cloud-org_policy 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.

@return [::Google::Cloud::Config] The default configuration used by this library

# File lib/google/cloud/org_policy.rb, line 124
def self.configure
  yield ::Google::Cloud.configure.org_policy if block_given?

  ::Google::Cloud.configure.org_policy
end
org_policy(version: :v2, &block) click to toggle source

Create a new client object for OrgPolicy.

By default, this returns an instance of [Google::Cloud::OrgPolicy::V2::OrgPolicy::Client](googleapis.dev/ruby/google-cloud-org_policy-v2/latest/Google/Cloud/OrgPolicy/V2/OrgPolicy/Client.html) for version V2 of the API. However, you can specify specify a different API version by passing it in the `version` parameter. If the OrgPolicy service is supported by that API version, and the corresponding gem is available, the appropriate versioned client will be returned.

## About OrgPolicy

An interface for managing organization policies.

The Cloud Org Policy service provides a simple mechanism for organizations to restrict the allowed configurations across their entire Cloud Resource hierarchy.

You can use a `policy` to configure restrictions in Cloud resources. For example, you can enforce a `policy` that restricts which Google Cloud Platform APIs can be activated in a certain part of your resource hierarchy, or prevents serial port access to VM instances in a particular folder.

`Policies` are inherited down through the resource hierarchy. A `policy` applied to a parent resource automatically applies to all its child resources unless overridden with a `policy` lower in the hierarchy.

A `constraint` defines an aspect of a resource's configuration that can be controlled by an organization's policy administrator. `Policies` are a collection of `constraints` that defines their allowable configuration on a particular resource and its child resources.

@param version [::String, ::Symbol] The API version to connect to. Optional.

Defaults to `:v2`.

@return [OrgPolicy::Client] A client object for the specified version.

# File lib/google/cloud/org_policy.rb, line 85
def self.org_policy version: :v2, &block
  require "google/cloud/org_policy/#{version.to_s.downcase}"

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