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 API has a collection of {::Google::Cloud::AccessApproval::V1::ApprovalRequest ApprovalRequest} resources, named `approvalRequests/{approval_request_id}`
-
The API has top-level settings per Project/Folder/Organization, named `accessApprovalSettings`
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
@private
Public Class Methods
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
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
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 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
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
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
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
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
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
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