class Google::Cloud::AccessApproval::V1::AccessApproval::Client

Client for the AccessApproval service.

This API allows a customer to manage accesses to cloud resources by Google personnel. It defines the following resource model:

The service also periodically emails a list of recipients, defined at the Project/Folder/Organization level in the accessApprovalSettings, when there is a pending ApprovalRequest for them to act on. The ApprovalRequests can also optionally be published to a Cloud Pub/Sub topic owned by the customer (for Beta, the Pub/Sub setup is managed manually).

ApprovalRequests can be approved or dismissed. Google personel can only access the indicated resource or resources if the request is approved (subject to some exclusions: cloud.google.com/access-approval/docs/overview#exclusions).

Note: Using Access Approval functionality will mean that Google may not be able to meet the SLAs for your chosen products, as any support response times may be dramatically increased. As such the SLAs do not apply to any service disruption to the extent impacted by Customer's use of Access Approval. Do not enable Access Approval for projects where you may require high service availability and rapid response by Google Cloud Support.

After a request is approved or dismissed, no further action may be taken on it. Requests with the requested_expiration in the past or with no activity for 14 days are considered dismissed. When an approval expires, the request is considered dismissed.

If a request is not approved or dismissed, we call it pending.

Attributes

access_approval_stub[R]

@private

Public Class Methods

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

Configure the AccessApproval Client class.

See {::Google::Cloud::AccessApproval::V1::AccessApproval::Client::Configuration} for a description of the configuration fields.

@example

# Modify the configuration for all AccessApproval clients
::Google::Cloud::AccessApproval::V1::AccessApproval::Client.configure do |config|
  config.timeout = 10.0
end

@yield [config] Configure the Client client. @yieldparam config [Client::Configuration]

@return [Client::Configuration]

# File lib/google/cloud/access_approval/v1/access_approval/client.rb, line 86
def self.configure
  @configure ||= begin
    namespace = ["Google", "Cloud", "AccessApproval", "V1"]
    parent_config = while namespace.any?
                      parent_name = namespace.join "::"
                      parent_const = const_get parent_name
                      break parent_const.configure if parent_const.respond_to? :configure
                      namespace.pop
                    end
    default_config = Client::Configuration.new parent_config

    default_config.rpcs.list_approval_requests.timeout = 600.0
    default_config.rpcs.list_approval_requests.retry_policy = {
      initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [14]
    }

    default_config.rpcs.get_approval_request.timeout = 600.0
    default_config.rpcs.get_approval_request.retry_policy = {
      initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [14]
    }

    default_config.rpcs.approve_approval_request.timeout = 600.0

    default_config.rpcs.dismiss_approval_request.timeout = 600.0

    default_config.rpcs.get_access_approval_settings.timeout = 600.0
    default_config.rpcs.get_access_approval_settings.retry_policy = {
      initial_delay: 0.1, max_delay: 60.0, multiplier: 1.3, retry_codes: [14]
    }

    default_config.rpcs.update_access_approval_settings.timeout = 600.0

    default_config.rpcs.delete_access_approval_settings.timeout = 600.0

    default_config
  end
  yield @configure if block_given?
  @configure
end
new() { |config| ... } click to toggle source

Create a new AccessApproval client object.

@example

# Create a client using the default configuration
client = ::Google::Cloud::AccessApproval::V1::AccessApproval::Client.new

# Create a client using a custom configuration
client = ::Google::Cloud::AccessApproval::V1::AccessApproval::Client.new do |config|
  config.timeout = 10.0
end

@yield [config] Configure the AccessApproval client. @yieldparam config [Client::Configuration]

# File lib/google/cloud/access_approval/v1/access_approval/client.rb, line 162
def initialize
  # These require statements are intentionally placed here to initialize
  # the gRPC module only when it's required.
  # See https://github.com/googleapis/toolkit/issues/446
  require "gapic/grpc"
  require "google/cloud/accessapproval/v1/accessapproval_services_pb"

  # Create the configuration object
  @config = Configuration.new Client.configure

  # Yield the configuration if needed
  yield @config if block_given?

  # Create credentials
  credentials = @config.credentials
  # Use self-signed JWT if the endpoint is unchanged from default,
  # but only if the default endpoint does not have a region prefix.
  enable_self_signed_jwt = @config.endpoint == Client.configure.endpoint &&
                           !@config.endpoint.split(".").first.include?("-")
  credentials ||= Credentials.default scope: @config.scope,
                                      enable_self_signed_jwt: enable_self_signed_jwt
  if credentials.is_a?(::String) || credentials.is_a?(::Hash)
    credentials = Credentials.new credentials, scope: @config.scope
  end
  @quota_project_id = @config.quota_project
  @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id

  @access_approval_stub = ::Gapic::ServiceStub.new(
    ::Google::Cloud::AccessApproval::V1::AccessApproval::Stub,
    credentials:  credentials,
    endpoint:     @config.endpoint,
    channel_args: @config.channel_args,
    interceptors: @config.interceptors
  )
end

Public Instance Methods

approve_approval_request(request, options = nil) { |response, operation| ... } click to toggle source

Approves a request and returns the updated ApprovalRequest.

Returns NOT_FOUND if the request does not exist. Returns FAILED_PRECONDITION if the request exists but is not in a pending state.

@overload approve_approval_request(request, options = nil)

Pass arguments to `approve_approval_request` via a request object, either of type
{::Google::Cloud::AccessApproval::V1::ApproveApprovalRequestMessage} or an equivalent Hash.

@param request [::Google::Cloud::AccessApproval::V1::ApproveApprovalRequestMessage, ::Hash]
  A request object representing the call parameters. Required. To specify no
  parameters, or to keep all the default parameter values, pass an empty Hash.
@param options [::Gapic::CallOptions, ::Hash]
  Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.

@overload approve_approval_request(name: nil, expire_time: nil)

Pass arguments to `approve_approval_request` via keyword arguments. Note that at
least one keyword argument is required. To specify no parameters, or to keep all
the default parameter values, pass an empty Hash as a request object (see above).

@param name [::String]
  Name of the approval request to approve.
@param expire_time [::Google::Protobuf::Timestamp, ::Hash]
  The expiration time of this approval.

@yield [response, operation] Access the result along with the RPC operation @yieldparam response [::Google::Cloud::AccessApproval::V1::ApprovalRequest] @yieldparam operation [::GRPC::ActiveCall::Operation]

@return [::Google::Cloud::AccessApproval::V1::ApprovalRequest]

@raise [::Google::Cloud::Error] if the RPC is aborted.

# File lib/google/cloud/access_approval/v1/access_approval/client.rb, line 387
def approve_approval_request request, options = nil
  raise ::ArgumentError, "request must be provided" if request.nil?

  request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::AccessApproval::V1::ApproveApprovalRequestMessage

  # Converts hash and nil to an options object
  options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h

  # Customize the options with defaults
  metadata = @config.rpcs.approve_approval_request.metadata.to_h

  # Set x-goog-api-client and x-goog-user-project headers
  metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
    lib_name: @config.lib_name, lib_version: @config.lib_version,
    gapic_version: ::Google::Cloud::AccessApproval::V1::VERSION
  metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id

  header_params = {
    "name" => request.name
  }
  request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
  metadata[:"x-goog-request-params"] ||= request_params_header

  options.apply_defaults timeout:      @config.rpcs.approve_approval_request.timeout,
                         metadata:     metadata,
                         retry_policy: @config.rpcs.approve_approval_request.retry_policy

  options.apply_defaults timeout:      @config.timeout,
                         metadata:     @config.metadata,
                         retry_policy: @config.retry_policy

  @access_approval_stub.call_rpc :approve_approval_request, request, options: options do |response, operation|
    yield response, operation if block_given?
    return response
  end
rescue ::GRPC::BadStatus => e
  raise ::Google::Cloud::Error.from_error(e)
end
configure() { |config| ... } click to toggle source

Configure the AccessApproval Client instance.

The configuration is set to the derived mode, meaning that values can be changed, but structural changes (adding new fields, etc.) are not allowed. Structural changes should be made on {Client.configure}.

See {::Google::Cloud::AccessApproval::V1::AccessApproval::Client::Configuration} for a description of the configuration fields.

@yield [config] Configure the Client client. @yieldparam config [Client::Configuration]

@return [Client::Configuration]

# File lib/google/cloud/access_approval/v1/access_approval/client.rb, line 141
def configure
  yield @config if block_given?
  @config
end
delete_access_approval_settings(request, options = nil) { |response, operation| ... } click to toggle source

Deletes the settings associated with a project, folder, or organization. This will have the effect of disabling Access Approval for the project, folder, or organization, but only if all ancestors also have Access Approval disabled. If Access Approval is enabled at a higher level of the hierarchy, then Access Approval will still be enabled at this level as the settings are inherited.

@overload delete_access_approval_settings(request, options = nil)

Pass arguments to `delete_access_approval_settings` via a request object, either of type
{::Google::Cloud::AccessApproval::V1::DeleteAccessApprovalSettingsMessage} or an equivalent Hash.

@param request [::Google::Cloud::AccessApproval::V1::DeleteAccessApprovalSettingsMessage, ::Hash]
  A request object representing the call parameters. Required. To specify no
  parameters, or to keep all the default parameter values, pass an empty Hash.
@param options [::Gapic::CallOptions, ::Hash]
  Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.

@overload delete_access_approval_settings(name: nil)

Pass arguments to `delete_access_approval_settings` via keyword arguments. Note that at
least one keyword argument is required. To specify no parameters, or to keep all
the default parameter values, pass an empty Hash as a request object (see above).

@param name [::String]
  Name of the AccessApprovalSettings to delete.

@yield [response, operation] Access the result along with the RPC operation @yieldparam response [::Google::Protobuf::Empty] @yieldparam operation [::GRPC::ActiveCall::Operation]

@return [::Google::Protobuf::Empty]

@raise [::Google::Cloud::Error] if the RPC is aborted.

# File lib/google/cloud/access_approval/v1/access_approval/client.rb, line 685
def delete_access_approval_settings request, options = nil
  raise ::ArgumentError, "request must be provided" if request.nil?

  request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::AccessApproval::V1::DeleteAccessApprovalSettingsMessage

  # Converts hash and nil to an options object
  options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h

  # Customize the options with defaults
  metadata = @config.rpcs.delete_access_approval_settings.metadata.to_h

  # Set x-goog-api-client and x-goog-user-project headers
  metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
    lib_name: @config.lib_name, lib_version: @config.lib_version,
    gapic_version: ::Google::Cloud::AccessApproval::V1::VERSION
  metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id

  header_params = {
    "name" => request.name
  }
  request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
  metadata[:"x-goog-request-params"] ||= request_params_header

  options.apply_defaults timeout:      @config.rpcs.delete_access_approval_settings.timeout,
                         metadata:     metadata,
                         retry_policy: @config.rpcs.delete_access_approval_settings.retry_policy

  options.apply_defaults timeout:      @config.timeout,
                         metadata:     @config.metadata,
                         retry_policy: @config.retry_policy

  @access_approval_stub.call_rpc :delete_access_approval_settings, request, options: options do |response, operation|
    yield response, operation if block_given?
    return response
  end
rescue ::GRPC::BadStatus => e
  raise ::Google::Cloud::Error.from_error(e)
end
dismiss_approval_request(request, options = nil) { |response, operation| ... } click to toggle source

Dismisses a request. Returns the updated ApprovalRequest.

NOTE: This does not deny access to the resource if another request has been made and approved. It is equivalent in effect to ignoring the request altogether.

Returns NOT_FOUND if the request does not exist.

Returns FAILED_PRECONDITION if the request exists but is not in a pending state.

@overload dismiss_approval_request(request, options = nil)

Pass arguments to `dismiss_approval_request` via a request object, either of type
{::Google::Cloud::AccessApproval::V1::DismissApprovalRequestMessage} or an equivalent Hash.

@param request [::Google::Cloud::AccessApproval::V1::DismissApprovalRequestMessage, ::Hash]
  A request object representing the call parameters. Required. To specify no
  parameters, or to keep all the default parameter values, pass an empty Hash.
@param options [::Gapic::CallOptions, ::Hash]
  Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.

@overload dismiss_approval_request(name: nil)

Pass arguments to `dismiss_approval_request` via keyword arguments. Note that at
least one keyword argument is required. To specify no parameters, or to keep all
the default parameter values, pass an empty Hash as a request object (see above).

@param name [::String]
  Name of the ApprovalRequest to dismiss.

@yield [response, operation] Access the result along with the RPC operation @yieldparam response [::Google::Cloud::AccessApproval::V1::ApprovalRequest] @yieldparam operation [::GRPC::ActiveCall::Operation]

@return [::Google::Cloud::AccessApproval::V1::ApprovalRequest]

@raise [::Google::Cloud::Error] if the RPC is aborted.

# File lib/google/cloud/access_approval/v1/access_approval/client.rb, line 464
def dismiss_approval_request request, options = nil
  raise ::ArgumentError, "request must be provided" if request.nil?

  request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::AccessApproval::V1::DismissApprovalRequestMessage

  # Converts hash and nil to an options object
  options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h

  # Customize the options with defaults
  metadata = @config.rpcs.dismiss_approval_request.metadata.to_h

  # Set x-goog-api-client and x-goog-user-project headers
  metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
    lib_name: @config.lib_name, lib_version: @config.lib_version,
    gapic_version: ::Google::Cloud::AccessApproval::V1::VERSION
  metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id

  header_params = {
    "name" => request.name
  }
  request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
  metadata[:"x-goog-request-params"] ||= request_params_header

  options.apply_defaults timeout:      @config.rpcs.dismiss_approval_request.timeout,
                         metadata:     metadata,
                         retry_policy: @config.rpcs.dismiss_approval_request.retry_policy

  options.apply_defaults timeout:      @config.timeout,
                         metadata:     @config.metadata,
                         retry_policy: @config.retry_policy

  @access_approval_stub.call_rpc :dismiss_approval_request, request, options: options do |response, operation|
    yield response, operation if block_given?
    return response
  end
rescue ::GRPC::BadStatus => e
  raise ::Google::Cloud::Error.from_error(e)
end
get_access_approval_settings(request, options = nil) { |response, operation| ... } click to toggle source

Gets the settings associated with a project, folder, or organization.

@overload get_access_approval_settings(request, options = nil)

Pass arguments to `get_access_approval_settings` via a request object, either of type
{::Google::Cloud::AccessApproval::V1::GetAccessApprovalSettingsMessage} or an equivalent Hash.

@param request [::Google::Cloud::AccessApproval::V1::GetAccessApprovalSettingsMessage, ::Hash]
  A request object representing the call parameters. Required. To specify no
  parameters, or to keep all the default parameter values, pass an empty Hash.
@param options [::Gapic::CallOptions, ::Hash]
  Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.

@overload get_access_approval_settings(name: nil)

Pass arguments to `get_access_approval_settings` via keyword arguments. Note that at
least one keyword argument is required. To specify no parameters, or to keep all
the default parameter values, pass an empty Hash as a request object (see above).

@param name [::String]
  Name of the AccessApprovalSettings to retrieve.

@yield [response, operation] Access the result along with the RPC operation @yieldparam response [::Google::Cloud::AccessApproval::V1::AccessApprovalSettings] @yieldparam operation [::GRPC::ActiveCall::Operation]

@return [::Google::Cloud::AccessApproval::V1::AccessApprovalSettings]

@raise [::Google::Cloud::Error] if the RPC is aborted.

# File lib/google/cloud/access_approval/v1/access_approval/client.rb, line 532
def get_access_approval_settings request, options = nil
  raise ::ArgumentError, "request must be provided" if request.nil?

  request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::AccessApproval::V1::GetAccessApprovalSettingsMessage

  # Converts hash and nil to an options object
  options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h

  # Customize the options with defaults
  metadata = @config.rpcs.get_access_approval_settings.metadata.to_h

  # Set x-goog-api-client and x-goog-user-project headers
  metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
    lib_name: @config.lib_name, lib_version: @config.lib_version,
    gapic_version: ::Google::Cloud::AccessApproval::V1::VERSION
  metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id

  header_params = {
    "name" => request.name
  }
  request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
  metadata[:"x-goog-request-params"] ||= request_params_header

  options.apply_defaults timeout:      @config.rpcs.get_access_approval_settings.timeout,
                         metadata:     metadata,
                         retry_policy: @config.rpcs.get_access_approval_settings.retry_policy

  options.apply_defaults timeout:      @config.timeout,
                         metadata:     @config.metadata,
                         retry_policy: @config.retry_policy

  @access_approval_stub.call_rpc :get_access_approval_settings, request, options: options do |response, operation|
    yield response, operation if block_given?
    return response
  end
rescue ::GRPC::BadStatus => e
  raise ::Google::Cloud::Error.from_error(e)
end
get_approval_request(request, options = nil) { |response, operation| ... } click to toggle source

Gets an approval request. Returns NOT_FOUND if the request does not exist.

@overload get_approval_request(request, options = nil)

Pass arguments to `get_approval_request` via a request object, either of type
{::Google::Cloud::AccessApproval::V1::GetApprovalRequestMessage} or an equivalent Hash.

@param request [::Google::Cloud::AccessApproval::V1::GetApprovalRequestMessage, ::Hash]
  A request object representing the call parameters. Required. To specify no
  parameters, or to keep all the default parameter values, pass an empty Hash.
@param options [::Gapic::CallOptions, ::Hash]
  Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.

@overload get_approval_request(name: nil)

Pass arguments to `get_approval_request` via keyword arguments. Note that at
least one keyword argument is required. To specify no parameters, or to keep all
the default parameter values, pass an empty Hash as a request object (see above).

@param name [::String]
  Name of the approval request to retrieve.

@yield [response, operation] Access the result along with the RPC operation @yieldparam response [::Google::Cloud::AccessApproval::V1::ApprovalRequest] @yieldparam operation [::GRPC::ActiveCall::Operation]

@return [::Google::Cloud::AccessApproval::V1::ApprovalRequest]

@raise [::Google::Cloud::Error] if the RPC is aborted.

# File lib/google/cloud/access_approval/v1/access_approval/client.rb, line 314
def get_approval_request request, options = nil
  raise ::ArgumentError, "request must be provided" if request.nil?

  request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::AccessApproval::V1::GetApprovalRequestMessage

  # Converts hash and nil to an options object
  options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h

  # Customize the options with defaults
  metadata = @config.rpcs.get_approval_request.metadata.to_h

  # Set x-goog-api-client and x-goog-user-project headers
  metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
    lib_name: @config.lib_name, lib_version: @config.lib_version,
    gapic_version: ::Google::Cloud::AccessApproval::V1::VERSION
  metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id

  header_params = {
    "name" => request.name
  }
  request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
  metadata[:"x-goog-request-params"] ||= request_params_header

  options.apply_defaults timeout:      @config.rpcs.get_approval_request.timeout,
                         metadata:     metadata,
                         retry_policy: @config.rpcs.get_approval_request.retry_policy

  options.apply_defaults timeout:      @config.timeout,
                         metadata:     @config.metadata,
                         retry_policy: @config.retry_policy

  @access_approval_stub.call_rpc :get_approval_request, request, options: options do |response, operation|
    yield response, operation if block_given?
    return response
  end
rescue ::GRPC::BadStatus => e
  raise ::Google::Cloud::Error.from_error(e)
end
list_approval_requests(request, options = nil) { |response, operation| ... } click to toggle source

Lists approval requests associated with a project, folder, or organization. Approval requests can be filtered by state (pending, active, dismissed). The order is reverse chronological.

@overload list_approval_requests(request, options = nil)

Pass arguments to `list_approval_requests` via a request object, either of type
{::Google::Cloud::AccessApproval::V1::ListApprovalRequestsMessage} or an equivalent Hash.

@param request [::Google::Cloud::AccessApproval::V1::ListApprovalRequestsMessage, ::Hash]
  A request object representing the call parameters. Required. To specify no
  parameters, or to keep all the default parameter values, pass an empty Hash.
@param options [::Gapic::CallOptions, ::Hash]
  Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.

@overload list_approval_requests(parent: nil, filter: nil, page_size: nil, page_token: nil)

Pass arguments to `list_approval_requests` via keyword arguments. Note that at
least one keyword argument is required. To specify no parameters, or to keep all
the default parameter values, pass an empty Hash as a request object (see above).

@param parent [::String]
  The parent resource. This may be "projects/\\{project_id}",
  "folders/\\{folder_id}", or "organizations/\\{organization_id}".
@param filter [::String]
  A filter on the type of approval requests to retrieve. Must be one of the
  following values:

  - [not set]: Requests that are pending or have active approvals.
  - ALL: All requests.
  - PENDING: Only pending requests.
  - ACTIVE: Only active (i.e. currently approved) requests.
  - DISMISSED: Only dismissed (including expired) requests.
@param page_size [::Integer]
  Requested page size.
@param page_token [::String]
  A token identifying the page of results to return.

@yield [response, operation] Access the result along with the RPC operation @yieldparam response [::Gapic::PagedEnumerable<::Google::Cloud::AccessApproval::V1::ApprovalRequest>] @yieldparam operation [::GRPC::ActiveCall::Operation]

@return [::Gapic::PagedEnumerable<::Google::Cloud::AccessApproval::V1::ApprovalRequest>]

@raise [::Google::Cloud::Error] if the RPC is aborted.

# File lib/google/cloud/access_approval/v1/access_approval/client.rb, line 245
def list_approval_requests request, options = nil
  raise ::ArgumentError, "request must be provided" if request.nil?

  request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::AccessApproval::V1::ListApprovalRequestsMessage

  # Converts hash and nil to an options object
  options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h

  # Customize the options with defaults
  metadata = @config.rpcs.list_approval_requests.metadata.to_h

  # Set x-goog-api-client and x-goog-user-project headers
  metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
    lib_name: @config.lib_name, lib_version: @config.lib_version,
    gapic_version: ::Google::Cloud::AccessApproval::V1::VERSION
  metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id

  header_params = {
    "parent" => request.parent
  }
  request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
  metadata[:"x-goog-request-params"] ||= request_params_header

  options.apply_defaults timeout:      @config.rpcs.list_approval_requests.timeout,
                         metadata:     metadata,
                         retry_policy: @config.rpcs.list_approval_requests.retry_policy

  options.apply_defaults timeout:      @config.timeout,
                         metadata:     @config.metadata,
                         retry_policy: @config.retry_policy

  @access_approval_stub.call_rpc :list_approval_requests, request, options: options do |response, operation|
    response = ::Gapic::PagedEnumerable.new @access_approval_stub, :list_approval_requests, request, response, operation, options
    yield response, operation if block_given?
    return response
  end
rescue ::GRPC::BadStatus => e
  raise ::Google::Cloud::Error.from_error(e)
end
update_access_approval_settings(request, options = nil) { |response, operation| ... } click to toggle source

Updates the settings associated with a project, folder, or organization. Settings to update are determined by the value of field_mask.

@overload update_access_approval_settings(request, options = nil)

Pass arguments to `update_access_approval_settings` via a request object, either of type
{::Google::Cloud::AccessApproval::V1::UpdateAccessApprovalSettingsMessage} or an equivalent Hash.

@param request [::Google::Cloud::AccessApproval::V1::UpdateAccessApprovalSettingsMessage, ::Hash]
  A request object representing the call parameters. Required. To specify no
  parameters, or to keep all the default parameter values, pass an empty Hash.
@param options [::Gapic::CallOptions, ::Hash]
  Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.

@overload update_access_approval_settings(settings: nil, update_mask: nil)

Pass arguments to `update_access_approval_settings` via keyword arguments. Note that at
least one keyword argument is required. To specify no parameters, or to keep all
the default parameter values, pass an empty Hash as a request object (see above).

@param settings [::Google::Cloud::AccessApproval::V1::AccessApprovalSettings, ::Hash]
  The new AccessApprovalSettings.
@param update_mask [::Google::Protobuf::FieldMask, ::Hash]
  The update mask applies to the settings. Only the top level fields of
  AccessApprovalSettings (notification_emails & enrolled_services) are
  supported. For each field, if it is included, the currently stored value
  will be entirely overwritten with the value of the field passed in this
  request.

  For the `FieldMask` definition, see
  https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
  If this field is left unset, only the notification_emails field will be
  updated.

@yield [response, operation] Access the result along with the RPC operation @yieldparam response [::Google::Cloud::AccessApproval::V1::AccessApprovalSettings] @yieldparam operation [::GRPC::ActiveCall::Operation]

@return [::Google::Cloud::AccessApproval::V1::AccessApprovalSettings]

@raise [::Google::Cloud::Error] if the RPC is aborted.

# File lib/google/cloud/access_approval/v1/access_approval/client.rb, line 612
def update_access_approval_settings request, options = nil
  raise ::ArgumentError, "request must be provided" if request.nil?

  request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::AccessApproval::V1::UpdateAccessApprovalSettingsMessage

  # Converts hash and nil to an options object
  options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h

  # Customize the options with defaults
  metadata = @config.rpcs.update_access_approval_settings.metadata.to_h

  # Set x-goog-api-client and x-goog-user-project headers
  metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
    lib_name: @config.lib_name, lib_version: @config.lib_version,
    gapic_version: ::Google::Cloud::AccessApproval::V1::VERSION
  metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id

  header_params = {
    "settings.name" => request.settings.name
  }
  request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
  metadata[:"x-goog-request-params"] ||= request_params_header

  options.apply_defaults timeout:      @config.rpcs.update_access_approval_settings.timeout,
                         metadata:     metadata,
                         retry_policy: @config.rpcs.update_access_approval_settings.retry_policy

  options.apply_defaults timeout:      @config.timeout,
                         metadata:     @config.metadata,
                         retry_policy: @config.retry_policy

  @access_approval_stub.call_rpc :update_access_approval_settings, request, options: options do |response, operation|
    yield response, operation if block_given?
    return response
  end
rescue ::GRPC::BadStatus => e
  raise ::Google::Cloud::Error.from_error(e)
end