# frozen_string_literal: true # Copyright 2024 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # Auto-generated by gapic-generator-ruby. DO NOT EDIT! require "google/cloud/errors" require "google/chat/v1/chat_service_pb" module Google module Apps module Chat module V1 module ChatService ## # Client for the ChatService service. # # Enables developers to build Chat apps and # integrations on Google Chat Platform. # class Client # @private API_VERSION = "" # @private DEFAULT_ENDPOINT_TEMPLATE = "chat.$UNIVERSE_DOMAIN$" include Paths # @private attr_reader :chat_service_stub ## # Configure the ChatService Client class. # # See {::Google::Apps::Chat::V1::ChatService::Client::Configuration} # for a description of the configuration fields. # # @example # # # Modify the configuration for all ChatService clients # ::Google::Apps::Chat::V1::ChatService::Client.configure do |config| # config.timeout = 10.0 # end # # @yield [config] Configure the Client client. # @yieldparam config [Client::Configuration] # # @return [Client::Configuration] # def self.configure @configure ||= begin namespace = ["Google", "Apps", "Chat", "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.create_message.timeout = 30.0 default_config.rpcs.create_message.retry_policy = { initial_delay: 1.0, max_delay: 10.0, multiplier: 1.3, retry_codes: [14] } default_config.rpcs.list_messages.timeout = 30.0 default_config.rpcs.list_messages.retry_policy = { initial_delay: 1.0, max_delay: 10.0, multiplier: 1.3, retry_codes: [14] } default_config.rpcs.list_memberships.timeout = 30.0 default_config.rpcs.list_memberships.retry_policy = { initial_delay: 1.0, max_delay: 10.0, multiplier: 1.3, retry_codes: [14] } default_config.rpcs.get_membership.timeout = 30.0 default_config.rpcs.get_membership.retry_policy = { initial_delay: 1.0, max_delay: 10.0, multiplier: 1.3, retry_codes: [14] } default_config.rpcs.get_message.timeout = 30.0 default_config.rpcs.get_message.retry_policy = { initial_delay: 1.0, max_delay: 10.0, multiplier: 1.3, retry_codes: [14] } default_config.rpcs.update_message.timeout = 30.0 default_config.rpcs.update_message.retry_policy = { initial_delay: 1.0, max_delay: 10.0, multiplier: 1.3, retry_codes: [14] } default_config.rpcs.delete_message.timeout = 30.0 default_config.rpcs.delete_message.retry_policy = { initial_delay: 1.0, max_delay: 10.0, multiplier: 1.3, retry_codes: [14] } default_config.rpcs.get_attachment.timeout = 30.0 default_config.rpcs.get_attachment.retry_policy = { initial_delay: 1.0, max_delay: 10.0, multiplier: 1.3, retry_codes: [14] } default_config.rpcs.upload_attachment.timeout = 30.0 default_config.rpcs.upload_attachment.retry_policy = { initial_delay: 1.0, max_delay: 10.0, multiplier: 1.3, retry_codes: [14] } default_config.rpcs.list_spaces.timeout = 30.0 default_config.rpcs.list_spaces.retry_policy = { initial_delay: 1.0, max_delay: 10.0, multiplier: 1.3, retry_codes: [14] } default_config.rpcs.get_space.timeout = 30.0 default_config.rpcs.get_space.retry_policy = { initial_delay: 1.0, max_delay: 10.0, multiplier: 1.3, retry_codes: [14] } default_config.rpcs.create_space.timeout = 30.0 default_config.rpcs.create_space.retry_policy = { initial_delay: 1.0, max_delay: 10.0, multiplier: 1.3, retry_codes: [14] } default_config.rpcs.set_up_space.timeout = 30.0 default_config.rpcs.set_up_space.retry_policy = { initial_delay: 1.0, max_delay: 10.0, multiplier: 1.3, retry_codes: [14] } default_config.rpcs.update_space.timeout = 30.0 default_config.rpcs.update_space.retry_policy = { initial_delay: 1.0, max_delay: 10.0, multiplier: 1.3, retry_codes: [14] } default_config.rpcs.delete_space.timeout = 30.0 default_config.rpcs.delete_space.retry_policy = { initial_delay: 1.0, max_delay: 10.0, multiplier: 1.3, retry_codes: [14] } default_config.rpcs.complete_import_space.timeout = 30.0 default_config.rpcs.complete_import_space.retry_policy = { initial_delay: 1.0, max_delay: 10.0, multiplier: 1.3, retry_codes: [14] } default_config.rpcs.find_direct_message.timeout = 30.0 default_config.rpcs.find_direct_message.retry_policy = { initial_delay: 1.0, max_delay: 10.0, multiplier: 1.3, retry_codes: [14] } default_config.rpcs.create_membership.timeout = 30.0 default_config.rpcs.create_membership.retry_policy = { initial_delay: 1.0, max_delay: 10.0, multiplier: 1.3, retry_codes: [14] } default_config.rpcs.update_membership.timeout = 30.0 default_config.rpcs.update_membership.retry_policy = { initial_delay: 1.0, max_delay: 10.0, multiplier: 1.3, retry_codes: [14] } default_config.rpcs.delete_membership.timeout = 30.0 default_config.rpcs.delete_membership.retry_policy = { initial_delay: 1.0, max_delay: 10.0, multiplier: 1.3, retry_codes: [14] } default_config.rpcs.create_reaction.timeout = 30.0 default_config.rpcs.create_reaction.retry_policy = { initial_delay: 1.0, max_delay: 10.0, multiplier: 1.3, retry_codes: [14] } default_config.rpcs.list_reactions.timeout = 30.0 default_config.rpcs.list_reactions.retry_policy = { initial_delay: 1.0, max_delay: 10.0, multiplier: 1.3, retry_codes: [14] } default_config.rpcs.delete_reaction.timeout = 30.0 default_config.rpcs.delete_reaction.retry_policy = { initial_delay: 1.0, max_delay: 10.0, multiplier: 1.3, retry_codes: [14] } default_config.rpcs.get_space_read_state.timeout = 30.0 default_config.rpcs.get_space_read_state.retry_policy = { initial_delay: 1.0, max_delay: 10.0, multiplier: 1.3, retry_codes: [14] } default_config.rpcs.update_space_read_state.timeout = 30.0 default_config.rpcs.update_space_read_state.retry_policy = { initial_delay: 1.0, max_delay: 10.0, multiplier: 1.3, retry_codes: [14] } default_config.rpcs.get_thread_read_state.timeout = 30.0 default_config.rpcs.get_thread_read_state.retry_policy = { initial_delay: 1.0, max_delay: 10.0, multiplier: 1.3, retry_codes: [14] } default_config end yield @configure if block_given? @configure end ## # Configure the ChatService 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::Apps::Chat::V1::ChatService::Client::Configuration} # for a description of the configuration fields. # # @yield [config] Configure the Client client. # @yieldparam config [Client::Configuration] # # @return [Client::Configuration] # def configure yield @config if block_given? @config end ## # The effective universe domain # # @return [String] # def universe_domain @chat_service_stub.universe_domain end ## # Create a new ChatService client object. # # @example # # # Create a client using the default configuration # client = ::Google::Apps::Chat::V1::ChatService::Client.new # # # Create a client using a custom configuration # client = ::Google::Apps::Chat::V1::ChatService::Client.new do |config| # config.timeout = 10.0 # end # # @yield [config] Configure the ChatService client. # @yieldparam config [Client::Configuration] # 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/chat/v1/chat_service_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.nil? || (@config.endpoint == Configuration::DEFAULT_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 @chat_service_stub = ::Gapic::ServiceStub.new( ::Google::Apps::Chat::V1::ChatService::Stub, credentials: credentials, endpoint: @config.endpoint, endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, universe_domain: @config.universe_domain, channel_args: @config.channel_args, interceptors: @config.interceptors, channel_pool_config: @config.channel_pool ) end # Service calls ## # Creates a message in a Google Chat space. The maximum message size, # including text and cards, is 32,000 bytes. For an example, see [Send a # message](https://developers.google.com/workspace/chat/create-messages). # # Calling this method requires # [authentication](https://developers.google.com/workspace/chat/authenticate-authorize) # and supports the following authentication types: # # - For text messages, user authentication or app authentication are # supported. # - For card messages, only app authentication is supported. (Only Chat apps # can create card messages.) # # @overload create_message(request, options = nil) # Pass arguments to `create_message` via a request object, either of type # {::Google::Apps::Chat::V1::CreateMessageRequest} or an equivalent Hash. # # @param request [::Google::Apps::Chat::V1::CreateMessageRequest, ::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 create_message(parent: nil, message: nil, thread_key: nil, request_id: nil, message_reply_option: nil, message_id: nil) # Pass arguments to `create_message` 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] # Required. The resource name of the space in which to create a message. # # Format: `spaces/{space}` # @param message [::Google::Apps::Chat::V1::Message, ::Hash] # Required. Message body. # @param thread_key [::String] # Optional. Deprecated: Use # {::Google::Apps::Chat::V1::Thread#thread_key thread.thread_key} instead. ID for the # thread. Supports up to 4000 characters. To start or add to a thread, create # a message and specify a `threadKey` or the # {::Google::Apps::Chat::V1::Thread#name thread.name}. For example usage, see [Start or # reply to a message # thread](https://developers.google.com/workspace/chat/create-messages#create-message-thread). # @param request_id [::String] # Optional. A unique request ID for this message. Specifying an existing # request ID returns the message created with that ID instead of creating a # new message. # @param message_reply_option [::Google::Apps::Chat::V1::CreateMessageRequest::MessageReplyOption] # Optional. Specifies whether a message starts a thread or replies to one. # Only supported in named spaces. # @param message_id [::String] # Optional. A custom ID for a message. Lets Chat apps get, update, or delete # a message without needing to store the system-assigned ID in the message's # resource name (represented in the message `name` field). # # The value for this field must meet the following requirements: # # * Begins with `client-`. For example, `client-custom-name` is a valid # custom ID, but `custom-name` is not. # * Contains up to 63 characters and only lowercase letters, numbers, and # hyphens. # * Is unique within a space. A Chat app can't use the same custom ID for # different messages. # # For details, see [Name a # message](https://developers.google.com/workspace/chat/create-messages#name_a_created_message). # # @yield [response, operation] Access the result along with the RPC operation # @yieldparam response [::Google::Apps::Chat::V1::Message] # @yieldparam operation [::GRPC::ActiveCall::Operation] # # @return [::Google::Apps::Chat::V1::Message] # # @raise [::Google::Cloud::Error] if the RPC is aborted. # # @example Basic example # require "google/apps/chat/v1" # # # Create a client object. The client can be reused for multiple calls. # client = Google::Apps::Chat::V1::ChatService::Client.new # # # Create a request. To set request fields, pass in keyword arguments. # request = Google::Apps::Chat::V1::CreateMessageRequest.new # # # Call the create_message method. # result = client.create_message request # # # The returned object is of type Google::Apps::Chat::V1::Message. # p result # def create_message request, options = nil raise ::ArgumentError, "request must be provided" if request.nil? request = ::Gapic::Protobuf.coerce request, to: ::Google::Apps::Chat::V1::CreateMessageRequest # 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.create_message.metadata.to_h # Set x-goog-api-client, x-goog-user-project and x-goog-api-version 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::Apps::Chat::V1::VERSION metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id header_params = {} if request.parent header_params["parent"] = request.parent end 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.create_message.timeout, metadata: metadata, retry_policy: @config.rpcs.create_message.retry_policy options.apply_defaults timeout: @config.timeout, metadata: @config.metadata, retry_policy: @config.retry_policy @chat_service_stub.call_rpc :create_message, 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 messages in a space that the caller is a member of, including # messages from blocked members and spaces. For an example, see # [List messages](/chat/api/guides/v1/messages/list). # Requires [user # authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). # # @overload list_messages(request, options = nil) # Pass arguments to `list_messages` via a request object, either of type # {::Google::Apps::Chat::V1::ListMessagesRequest} or an equivalent Hash. # # @param request [::Google::Apps::Chat::V1::ListMessagesRequest, ::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_messages(parent: nil, page_size: nil, page_token: nil, filter: nil, order_by: nil, show_deleted: nil) # Pass arguments to `list_messages` 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] # Required. The resource name of the space to list messages from. # # Format: `spaces/{space}` # @param page_size [::Integer] # The maximum number of messages returned. The service might return fewer # messages than this value. # # If unspecified, at most 25 are returned. # # The maximum value is 1000. If you use a value more than 1000, it's # automatically changed to 1000. # # Negative values return an `INVALID_ARGUMENT` error. # @param page_token [::String] # Optional, if resuming from a previous query. # # A page token received from a previous list messages call. Provide this # parameter to retrieve the subsequent page. # # When paginating, all other parameters provided should match the call that # provided the page token. Passing different values to the other parameters # might lead to unexpected results. # @param filter [::String] # A query filter. # # You can filter messages by date (`create_time`) and thread (`thread.name`). # # To filter messages by the date they were created, specify the `create_time` # with a timestamp in [RFC-3339](https://www.rfc-editor.org/rfc/rfc3339) # format and double quotation marks. For example, # `"2023-04-21T11:30:00-04:00"`. You can use the greater than operator `>` to # list messages that were created after a timestamp, or the less than # operator `<` to list messages that were created before a timestamp. To # filter messages within a time interval, use the `AND` operator between two # timestamps. # # To filter by thread, specify the `thread.name`, formatted as # `spaces/{space}/threads/{thread}`. You can only specify one # `thread.name` per query. # # To filter by both thread and date, use the `AND` operator in your query. # # For example, the following queries are valid: # # ``` # create_time > "2012-04-21T11:30:00-04:00" # # create_time > "2012-04-21T11:30:00-04:00" AND # thread.name = spaces/AAAAAAAAAAA/threads/123 # # create_time > "2012-04-21T11:30:00+00:00" AND # # create_time < "2013-01-01T00:00:00+00:00" AND # thread.name = spaces/AAAAAAAAAAA/threads/123 # # thread.name = spaces/AAAAAAAAAAA/threads/123 # ``` # # Invalid queries are rejected by the server with an `INVALID_ARGUMENT` # error. # @param order_by [::String] # Optional, if resuming from a previous query. # # How the list of messages is ordered. Specify a value to order by an # ordering operation. Valid ordering operation values are as follows: # # - `ASC` for ascending. # # - `DESC` for descending. # # The default ordering is `create_time ASC`. # @param show_deleted [::Boolean] # Whether to include deleted messages. Deleted messages include deleted time # and metadata about their deletion, but message content is unavailable. # # @yield [response, operation] Access the result along with the RPC operation # @yieldparam response [::Gapic::PagedEnumerable<::Google::Apps::Chat::V1::Message>] # @yieldparam operation [::GRPC::ActiveCall::Operation] # # @return [::Gapic::PagedEnumerable<::Google::Apps::Chat::V1::Message>] # # @raise [::Google::Cloud::Error] if the RPC is aborted. # # @example Basic example # require "google/apps/chat/v1" # # # Create a client object. The client can be reused for multiple calls. # client = Google::Apps::Chat::V1::ChatService::Client.new # # # Create a request. To set request fields, pass in keyword arguments. # request = Google::Apps::Chat::V1::ListMessagesRequest.new # # # Call the list_messages method. # result = client.list_messages request # # # The returned object is of type Gapic::PagedEnumerable. You can iterate # # over elements, and API calls will be issued to fetch pages as needed. # result.each do |item| # # Each element is of type ::Google::Apps::Chat::V1::Message. # p item # end # def list_messages request, options = nil raise ::ArgumentError, "request must be provided" if request.nil? request = ::Gapic::Protobuf.coerce request, to: ::Google::Apps::Chat::V1::ListMessagesRequest # 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_messages.metadata.to_h # Set x-goog-api-client, x-goog-user-project and x-goog-api-version 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::Apps::Chat::V1::VERSION metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id header_params = {} if request.parent header_params["parent"] = request.parent end 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_messages.timeout, metadata: metadata, retry_policy: @config.rpcs.list_messages.retry_policy options.apply_defaults timeout: @config.timeout, metadata: @config.metadata, retry_policy: @config.retry_policy @chat_service_stub.call_rpc :list_messages, request, options: options do |response, operation| response = ::Gapic::PagedEnumerable.new @chat_service_stub, :list_messages, 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 ## # Lists memberships in a space. For an example, see [List users and Google # Chat apps in a # space](https://developers.google.com/workspace/chat/list-members). Listing # memberships with [app # authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app) # lists memberships in spaces that the Chat app has # access to, but excludes Chat app memberships, # including its own. Listing memberships with # [User # authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user) # lists memberships in spaces that the authenticated user has access to. # # Requires # [authentication](https://developers.google.com/workspace/chat/authenticate-authorize). # Supports # [app # authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app) # and [user # authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). # # @overload list_memberships(request, options = nil) # Pass arguments to `list_memberships` via a request object, either of type # {::Google::Apps::Chat::V1::ListMembershipsRequest} or an equivalent Hash. # # @param request [::Google::Apps::Chat::V1::ListMembershipsRequest, ::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_memberships(parent: nil, page_size: nil, page_token: nil, filter: nil, show_groups: nil, show_invited: nil) # Pass arguments to `list_memberships` 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] # Required. The resource name of the space for which to fetch a membership # list. # # Format: spaces/\\{space} # @param page_size [::Integer] # Optional. The maximum number of memberships to return. The service might # return fewer than this value. # # If unspecified, at most 100 memberships are returned. # # The maximum value is 1000. If you use a value more than 1000, it's # automatically changed to 1000. # # Negative values return an `INVALID_ARGUMENT` error. # @param page_token [::String] # Optional. A page token, received from a previous call to list memberships. # Provide this parameter to retrieve the subsequent page. # # When paginating, all other parameters provided should match the call that # provided the page token. Passing different values to the other parameters # might lead to unexpected results. # @param filter [::String] # Optional. A query filter. # # You can filter memberships by a member's role # ([`role`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.members#membershiprole)) # and type # ([`member.type`](https://developers.google.com/workspace/chat/api/reference/rest/v1/User#type)). # # To filter by role, set `role` to `ROLE_MEMBER` or `ROLE_MANAGER`. # # To filter by type, set `member.type` to `HUMAN` or `BOT`. # # To filter by both role and type, use the `AND` operator. To filter by # either role or type, use the `OR` operator. # # For example, the following queries are valid: # # ``` # role = "ROLE_MANAGER" OR role = "ROLE_MEMBER" # member.type = "HUMAN" AND role = "ROLE_MANAGER" # ``` # # The following queries are invalid: # # ``` # member.type = "HUMAN" AND member.type = "BOT" # role = "ROLE_MANAGER" AND role = "ROLE_MEMBER" # ``` # # # Invalid queries are rejected by the server with an `INVALID_ARGUMENT` # error. # @param show_groups [::Boolean] # Optional. When `true`, also returns memberships associated with a # {::Google::Apps::Chat::V1::Membership#group_member Google Group}, in # addition to other types of memberships. If a # {::Google::Apps::Chat::V1::ListMembershipsRequest#filter filter} is set, # {::Google::Apps::Chat::V1::Membership#group_member Google Group} # memberships that don't match the filter criteria aren't returned. # @param show_invited [::Boolean] # Optional. When `true`, also returns memberships associated with # {::Google::Apps::Chat::V1::Membership::MembershipState::INVITED invited} members, in # addition to other types of memberships. If a # filter is set, # {::Google::Apps::Chat::V1::Membership::MembershipState::INVITED invited} memberships # that don't match the filter criteria aren't returned. # # Currently requires [user # authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). # # @yield [response, operation] Access the result along with the RPC operation # @yieldparam response [::Gapic::PagedEnumerable<::Google::Apps::Chat::V1::Membership>] # @yieldparam operation [::GRPC::ActiveCall::Operation] # # @return [::Gapic::PagedEnumerable<::Google::Apps::Chat::V1::Membership>] # # @raise [::Google::Cloud::Error] if the RPC is aborted. # # @example Basic example # require "google/apps/chat/v1" # # # Create a client object. The client can be reused for multiple calls. # client = Google::Apps::Chat::V1::ChatService::Client.new # # # Create a request. To set request fields, pass in keyword arguments. # request = Google::Apps::Chat::V1::ListMembershipsRequest.new # # # Call the list_memberships method. # result = client.list_memberships request # # # The returned object is of type Gapic::PagedEnumerable. You can iterate # # over elements, and API calls will be issued to fetch pages as needed. # result.each do |item| # # Each element is of type ::Google::Apps::Chat::V1::Membership. # p item # end # def list_memberships request, options = nil raise ::ArgumentError, "request must be provided" if request.nil? request = ::Gapic::Protobuf.coerce request, to: ::Google::Apps::Chat::V1::ListMembershipsRequest # 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_memberships.metadata.to_h # Set x-goog-api-client, x-goog-user-project and x-goog-api-version 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::Apps::Chat::V1::VERSION metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id header_params = {} if request.parent header_params["parent"] = request.parent end 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_memberships.timeout, metadata: metadata, retry_policy: @config.rpcs.list_memberships.retry_policy options.apply_defaults timeout: @config.timeout, metadata: @config.metadata, retry_policy: @config.retry_policy @chat_service_stub.call_rpc :list_memberships, request, options: options do |response, operation| response = ::Gapic::PagedEnumerable.new @chat_service_stub, :list_memberships, 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 ## # Returns details about a membership. For an example, see # [Get details about a user's or Google Chat app's # membership](https://developers.google.com/workspace/chat/get-members). # # Requires # [authentication](https://developers.google.com/workspace/chat/authenticate-authorize). # Supports # [app # authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app) # and [user # authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). # # @overload get_membership(request, options = nil) # Pass arguments to `get_membership` via a request object, either of type # {::Google::Apps::Chat::V1::GetMembershipRequest} or an equivalent Hash. # # @param request [::Google::Apps::Chat::V1::GetMembershipRequest, ::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_membership(name: nil) # Pass arguments to `get_membership` 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] # Required. Resource name of the membership to retrieve. # # To get the app's own membership [by using user # authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user), # you can optionally use `spaces/{space}/members/app`. # # Format: `spaces/{space}/members/{member}` or `spaces/{space}/members/app` # # When [authenticated as a # user](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user), # you can use the user's email as an alias for `{member}`. For example, # `spaces/{space}/members/example@gmail.com` where `example@gmail.com` is the # email of the Google Chat user. # # @yield [response, operation] Access the result along with the RPC operation # @yieldparam response [::Google::Apps::Chat::V1::Membership] # @yieldparam operation [::GRPC::ActiveCall::Operation] # # @return [::Google::Apps::Chat::V1::Membership] # # @raise [::Google::Cloud::Error] if the RPC is aborted. # # @example Basic example # require "google/apps/chat/v1" # # # Create a client object. The client can be reused for multiple calls. # client = Google::Apps::Chat::V1::ChatService::Client.new # # # Create a request. To set request fields, pass in keyword arguments. # request = Google::Apps::Chat::V1::GetMembershipRequest.new # # # Call the get_membership method. # result = client.get_membership request # # # The returned object is of type Google::Apps::Chat::V1::Membership. # p result # def get_membership request, options = nil raise ::ArgumentError, "request must be provided" if request.nil? request = ::Gapic::Protobuf.coerce request, to: ::Google::Apps::Chat::V1::GetMembershipRequest # 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_membership.metadata.to_h # Set x-goog-api-client, x-goog-user-project and x-goog-api-version 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::Apps::Chat::V1::VERSION metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id header_params = {} if request.name header_params["name"] = request.name end 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_membership.timeout, metadata: metadata, retry_policy: @config.rpcs.get_membership.retry_policy options.apply_defaults timeout: @config.timeout, metadata: @config.metadata, retry_policy: @config.retry_policy @chat_service_stub.call_rpc :get_membership, 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 ## # Returns details about a message. # For an example, see [Get details about a # message](https://developers.google.com/workspace/chat/get-messages). # # Requires # [authentication](https://developers.google.com/workspace/chat/authenticate-authorize). # Supports # [app # authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app) # and [user # authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). # # Note: Might return a message from a blocked member or space. # # @overload get_message(request, options = nil) # Pass arguments to `get_message` via a request object, either of type # {::Google::Apps::Chat::V1::GetMessageRequest} or an equivalent Hash. # # @param request [::Google::Apps::Chat::V1::GetMessageRequest, ::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_message(name: nil) # Pass arguments to `get_message` 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] # Required. Resource name of the message. # # Format: `spaces/{space}/messages/{message}` # # If you've set a custom ID for your message, you can use the value from the # `clientAssignedMessageId` field for `{message}`. For details, see [Name a # message] # (https://developers.google.com/workspace/chat/create-messages#name_a_created_message). # # @yield [response, operation] Access the result along with the RPC operation # @yieldparam response [::Google::Apps::Chat::V1::Message] # @yieldparam operation [::GRPC::ActiveCall::Operation] # # @return [::Google::Apps::Chat::V1::Message] # # @raise [::Google::Cloud::Error] if the RPC is aborted. # # @example Basic example # require "google/apps/chat/v1" # # # Create a client object. The client can be reused for multiple calls. # client = Google::Apps::Chat::V1::ChatService::Client.new # # # Create a request. To set request fields, pass in keyword arguments. # request = Google::Apps::Chat::V1::GetMessageRequest.new # # # Call the get_message method. # result = client.get_message request # # # The returned object is of type Google::Apps::Chat::V1::Message. # p result # def get_message request, options = nil raise ::ArgumentError, "request must be provided" if request.nil? request = ::Gapic::Protobuf.coerce request, to: ::Google::Apps::Chat::V1::GetMessageRequest # 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_message.metadata.to_h # Set x-goog-api-client, x-goog-user-project and x-goog-api-version 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::Apps::Chat::V1::VERSION metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id header_params = {} if request.name header_params["name"] = request.name end 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_message.timeout, metadata: metadata, retry_policy: @config.rpcs.get_message.retry_policy options.apply_defaults timeout: @config.timeout, metadata: @config.metadata, retry_policy: @config.retry_policy @chat_service_stub.call_rpc :get_message, 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 ## # Updates a message. There's a difference between the `patch` and `update` # methods. The `patch` # method uses a `patch` request while the `update` method uses a `put` # request. We recommend using the `patch` method. For an example, see # [Update a # message](https://developers.google.com/workspace/chat/update-messages). # # Requires # [authentication](https://developers.google.com/workspace/chat/authenticate-authorize). # Supports # [app # authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app) # and [user # authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). # When using app authentication, requests can only update messages # created by the calling Chat app. # # @overload update_message(request, options = nil) # Pass arguments to `update_message` via a request object, either of type # {::Google::Apps::Chat::V1::UpdateMessageRequest} or an equivalent Hash. # # @param request [::Google::Apps::Chat::V1::UpdateMessageRequest, ::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_message(message: nil, update_mask: nil, allow_missing: nil) # Pass arguments to `update_message` 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 message [::Google::Apps::Chat::V1::Message, ::Hash] # Required. Message with fields updated. # @param update_mask [::Google::Protobuf::FieldMask, ::Hash] # Required. The field paths to update. Separate multiple values with commas # or use `*` to update all field paths. # # Currently supported field paths: # # - `text` # # - `attachment` # # - `cards` (Requires [app # authentication](/chat/api/guides/auth/service-accounts).) # # - `cards_v2` (Requires [app # authentication](/chat/api/guides/auth/service-accounts).) # # - `accessory_widgets` (Requires [app # authentication](/chat/api/guides/auth/service-accounts).) # @param allow_missing [::Boolean] # Optional. If `true` and the message isn't found, a new message is created # and `updateMask` is ignored. The specified message ID must be # [client-assigned](https://developers.google.com/workspace/chat/create-messages#name_a_created_message) # or the request fails. # # @yield [response, operation] Access the result along with the RPC operation # @yieldparam response [::Google::Apps::Chat::V1::Message] # @yieldparam operation [::GRPC::ActiveCall::Operation] # # @return [::Google::Apps::Chat::V1::Message] # # @raise [::Google::Cloud::Error] if the RPC is aborted. # # @example Basic example # require "google/apps/chat/v1" # # # Create a client object. The client can be reused for multiple calls. # client = Google::Apps::Chat::V1::ChatService::Client.new # # # Create a request. To set request fields, pass in keyword arguments. # request = Google::Apps::Chat::V1::UpdateMessageRequest.new # # # Call the update_message method. # result = client.update_message request # # # The returned object is of type Google::Apps::Chat::V1::Message. # p result # def update_message request, options = nil raise ::ArgumentError, "request must be provided" if request.nil? request = ::Gapic::Protobuf.coerce request, to: ::Google::Apps::Chat::V1::UpdateMessageRequest # 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_message.metadata.to_h # Set x-goog-api-client, x-goog-user-project and x-goog-api-version 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::Apps::Chat::V1::VERSION metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id header_params = {} if request.message&.name header_params["message.name"] = request.message.name end 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_message.timeout, metadata: metadata, retry_policy: @config.rpcs.update_message.retry_policy options.apply_defaults timeout: @config.timeout, metadata: @config.metadata, retry_policy: @config.retry_policy @chat_service_stub.call_rpc :update_message, 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 ## # Deletes a message. # For an example, see [Delete a # message](https://developers.google.com/workspace/chat/delete-messages). # # Requires # [authentication](https://developers.google.com/workspace/chat/authenticate-authorize). # Supports # [app # authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app) # and [user # authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). # When using app authentication, requests can only delete messages # created by the calling Chat app. # # @overload delete_message(request, options = nil) # Pass arguments to `delete_message` via a request object, either of type # {::Google::Apps::Chat::V1::DeleteMessageRequest} or an equivalent Hash. # # @param request [::Google::Apps::Chat::V1::DeleteMessageRequest, ::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_message(name: nil, force: nil) # Pass arguments to `delete_message` 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] # Required. Resource name of the message. # # Format: `spaces/{space}/messages/{message}` # # If you've set a custom ID for your message, you can use the value from the # `clientAssignedMessageId` field for `{message}`. For details, see [Name a # message] # (https://developers.google.com/workspace/chat/create-messages#name_a_created_message). # @param force [::Boolean] # When `true`, deleting a message also deletes its threaded replies. When # `false`, if a message has threaded replies, deletion fails. # # Only applies when [authenticating as a # user](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). # Has no effect when [authenticating as a Chat app] # (https://developers.google.com/workspace/chat/authenticate-authorize-chat-app). # # @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. # # @example Basic example # require "google/apps/chat/v1" # # # Create a client object. The client can be reused for multiple calls. # client = Google::Apps::Chat::V1::ChatService::Client.new # # # Create a request. To set request fields, pass in keyword arguments. # request = Google::Apps::Chat::V1::DeleteMessageRequest.new # # # Call the delete_message method. # result = client.delete_message request # # # The returned object is of type Google::Protobuf::Empty. # p result # def delete_message request, options = nil raise ::ArgumentError, "request must be provided" if request.nil? request = ::Gapic::Protobuf.coerce request, to: ::Google::Apps::Chat::V1::DeleteMessageRequest # 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_message.metadata.to_h # Set x-goog-api-client, x-goog-user-project and x-goog-api-version 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::Apps::Chat::V1::VERSION metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id header_params = {} if request.name header_params["name"] = request.name end 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_message.timeout, metadata: metadata, retry_policy: @config.rpcs.delete_message.retry_policy options.apply_defaults timeout: @config.timeout, metadata: @config.metadata, retry_policy: @config.retry_policy @chat_service_stub.call_rpc :delete_message, 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 metadata of a message attachment. The attachment data is fetched # using the [media # API](https://developers.google.com/workspace/chat/api/reference/rest/v1/media/download). # For an example, see # [Get metadata about a message # attachment](https://developers.google.com/workspace/chat/get-media-attachments). # Requires [app # authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app). # # @overload get_attachment(request, options = nil) # Pass arguments to `get_attachment` via a request object, either of type # {::Google::Apps::Chat::V1::GetAttachmentRequest} or an equivalent Hash. # # @param request [::Google::Apps::Chat::V1::GetAttachmentRequest, ::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_attachment(name: nil) # Pass arguments to `get_attachment` 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] # Required. Resource name of the attachment, in the form # `spaces/*/messages/*/attachments/*`. # # @yield [response, operation] Access the result along with the RPC operation # @yieldparam response [::Google::Apps::Chat::V1::Attachment] # @yieldparam operation [::GRPC::ActiveCall::Operation] # # @return [::Google::Apps::Chat::V1::Attachment] # # @raise [::Google::Cloud::Error] if the RPC is aborted. # # @example Basic example # require "google/apps/chat/v1" # # # Create a client object. The client can be reused for multiple calls. # client = Google::Apps::Chat::V1::ChatService::Client.new # # # Create a request. To set request fields, pass in keyword arguments. # request = Google::Apps::Chat::V1::GetAttachmentRequest.new # # # Call the get_attachment method. # result = client.get_attachment request # # # The returned object is of type Google::Apps::Chat::V1::Attachment. # p result # def get_attachment request, options = nil raise ::ArgumentError, "request must be provided" if request.nil? request = ::Gapic::Protobuf.coerce request, to: ::Google::Apps::Chat::V1::GetAttachmentRequest # 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_attachment.metadata.to_h # Set x-goog-api-client, x-goog-user-project and x-goog-api-version 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::Apps::Chat::V1::VERSION metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id header_params = {} if request.name header_params["name"] = request.name end 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_attachment.timeout, metadata: metadata, retry_policy: @config.rpcs.get_attachment.retry_policy options.apply_defaults timeout: @config.timeout, metadata: @config.metadata, retry_policy: @config.retry_policy @chat_service_stub.call_rpc :get_attachment, 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 ## # Uploads an attachment. For an example, see # [Upload media as a file # attachment](https://developers.google.com/workspace/chat/upload-media-attachments). # Requires user # [authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). # # You can upload attachments up to 200 MB. Certain file types aren't # supported. For details, see [File types blocked by Google # Chat](https://support.google.com/chat/answer/7651457?&co=GENIE.Platform%3DDesktop#File%20types%20blocked%20in%20Google%20Chat). # # @overload upload_attachment(request, options = nil) # Pass arguments to `upload_attachment` via a request object, either of type # {::Google::Apps::Chat::V1::UploadAttachmentRequest} or an equivalent Hash. # # @param request [::Google::Apps::Chat::V1::UploadAttachmentRequest, ::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 upload_attachment(parent: nil, filename: nil) # Pass arguments to `upload_attachment` 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] # Required. Resource name of the Chat space in which the attachment is # uploaded. Format "spaces/\\{space}". # @param filename [::String] # Required. The filename of the attachment, including the file extension. # # @yield [response, operation] Access the result along with the RPC operation # @yieldparam response [::Google::Apps::Chat::V1::UploadAttachmentResponse] # @yieldparam operation [::GRPC::ActiveCall::Operation] # # @return [::Google::Apps::Chat::V1::UploadAttachmentResponse] # # @raise [::Google::Cloud::Error] if the RPC is aborted. # # @example Basic example # require "google/apps/chat/v1" # # # Create a client object. The client can be reused for multiple calls. # client = Google::Apps::Chat::V1::ChatService::Client.new # # # Create a request. To set request fields, pass in keyword arguments. # request = Google::Apps::Chat::V1::UploadAttachmentRequest.new # # # Call the upload_attachment method. # result = client.upload_attachment request # # # The returned object is of type Google::Apps::Chat::V1::UploadAttachmentResponse. # p result # def upload_attachment request, options = nil raise ::ArgumentError, "request must be provided" if request.nil? request = ::Gapic::Protobuf.coerce request, to: ::Google::Apps::Chat::V1::UploadAttachmentRequest # 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.upload_attachment.metadata.to_h # Set x-goog-api-client, x-goog-user-project and x-goog-api-version 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::Apps::Chat::V1::VERSION metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id header_params = {} if request.parent header_params["parent"] = request.parent end 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.upload_attachment.timeout, metadata: metadata, retry_policy: @config.rpcs.upload_attachment.retry_policy options.apply_defaults timeout: @config.timeout, metadata: @config.metadata, retry_policy: @config.retry_policy @chat_service_stub.call_rpc :upload_attachment, 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 spaces the caller is a member of. Group chats and DMs aren't listed # until the first message is sent. For an example, see # [List # spaces](https://developers.google.com/workspace/chat/list-spaces). # # Requires # [authentication](https://developers.google.com/workspace/chat/authenticate-authorize). # Supports # [app # authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app) # and [user # authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). # # Lists spaces visible to the caller or authenticated user. Group chats # and DMs aren't listed until the first message is sent. # # @overload list_spaces(request, options = nil) # Pass arguments to `list_spaces` via a request object, either of type # {::Google::Apps::Chat::V1::ListSpacesRequest} or an equivalent Hash. # # @param request [::Google::Apps::Chat::V1::ListSpacesRequest, ::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_spaces(page_size: nil, page_token: nil, filter: nil) # Pass arguments to `list_spaces` 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 page_size [::Integer] # Optional. The maximum number of spaces to return. The service might return # fewer than this value. # # If unspecified, at most 100 spaces are returned. # # The maximum value is 1000. If you use a value more than 1000, it's # automatically changed to 1000. # # Negative values return an `INVALID_ARGUMENT` error. # @param page_token [::String] # Optional. A page token, received from a previous list spaces call. # Provide this parameter to retrieve the subsequent page. # # When paginating, the filter value should match the call that provided the # page token. Passing a different value may lead to unexpected results. # @param filter [::String] # Optional. A query filter. # # You can filter spaces by the space type # ([`space_type`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces#spacetype)). # # To filter by space type, you must specify valid enum value, such as # `SPACE` or `GROUP_CHAT` (the `space_type` can't be # `SPACE_TYPE_UNSPECIFIED`). To query for multiple space types, use the `OR` # operator. # # For example, the following queries are valid: # # ``` # space_type = "SPACE" # spaceType = "GROUP_CHAT" OR spaceType = "DIRECT_MESSAGE" # ``` # # Invalid queries are rejected by the server with an `INVALID_ARGUMENT` # error. # # @yield [response, operation] Access the result along with the RPC operation # @yieldparam response [::Gapic::PagedEnumerable<::Google::Apps::Chat::V1::Space>] # @yieldparam operation [::GRPC::ActiveCall::Operation] # # @return [::Gapic::PagedEnumerable<::Google::Apps::Chat::V1::Space>] # # @raise [::Google::Cloud::Error] if the RPC is aborted. # # @example Basic example # require "google/apps/chat/v1" # # # Create a client object. The client can be reused for multiple calls. # client = Google::Apps::Chat::V1::ChatService::Client.new # # # Create a request. To set request fields, pass in keyword arguments. # request = Google::Apps::Chat::V1::ListSpacesRequest.new # # # Call the list_spaces method. # result = client.list_spaces request # # # The returned object is of type Gapic::PagedEnumerable. You can iterate # # over elements, and API calls will be issued to fetch pages as needed. # result.each do |item| # # Each element is of type ::Google::Apps::Chat::V1::Space. # p item # end # def list_spaces request, options = nil raise ::ArgumentError, "request must be provided" if request.nil? request = ::Gapic::Protobuf.coerce request, to: ::Google::Apps::Chat::V1::ListSpacesRequest # 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_spaces.metadata.to_h # Set x-goog-api-client, x-goog-user-project and x-goog-api-version 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::Apps::Chat::V1::VERSION metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id options.apply_defaults timeout: @config.rpcs.list_spaces.timeout, metadata: metadata, retry_policy: @config.rpcs.list_spaces.retry_policy options.apply_defaults timeout: @config.timeout, metadata: @config.metadata, retry_policy: @config.retry_policy @chat_service_stub.call_rpc :list_spaces, request, options: options do |response, operation| response = ::Gapic::PagedEnumerable.new @chat_service_stub, :list_spaces, 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 ## # Returns details about a space. For an example, see # [Get details about a # space](https://developers.google.com/workspace/chat/get-spaces). # # Requires # [authentication](https://developers.google.com/workspace/chat/authenticate-authorize). # Supports # [app # authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app) # and [user # authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). # # @overload get_space(request, options = nil) # Pass arguments to `get_space` via a request object, either of type # {::Google::Apps::Chat::V1::GetSpaceRequest} or an equivalent Hash. # # @param request [::Google::Apps::Chat::V1::GetSpaceRequest, ::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_space(name: nil) # Pass arguments to `get_space` 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] # Required. Resource name of the space, in the form "spaces/*". # # Format: `spaces/{space}` # # @yield [response, operation] Access the result along with the RPC operation # @yieldparam response [::Google::Apps::Chat::V1::Space] # @yieldparam operation [::GRPC::ActiveCall::Operation] # # @return [::Google::Apps::Chat::V1::Space] # # @raise [::Google::Cloud::Error] if the RPC is aborted. # # @example Basic example # require "google/apps/chat/v1" # # # Create a client object. The client can be reused for multiple calls. # client = Google::Apps::Chat::V1::ChatService::Client.new # # # Create a request. To set request fields, pass in keyword arguments. # request = Google::Apps::Chat::V1::GetSpaceRequest.new # # # Call the get_space method. # result = client.get_space request # # # The returned object is of type Google::Apps::Chat::V1::Space. # p result # def get_space request, options = nil raise ::ArgumentError, "request must be provided" if request.nil? request = ::Gapic::Protobuf.coerce request, to: ::Google::Apps::Chat::V1::GetSpaceRequest # 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_space.metadata.to_h # Set x-goog-api-client, x-goog-user-project and x-goog-api-version 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::Apps::Chat::V1::VERSION metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id header_params = {} if request.name header_params["name"] = request.name end 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_space.timeout, metadata: metadata, retry_policy: @config.rpcs.get_space.retry_policy options.apply_defaults timeout: @config.timeout, metadata: @config.metadata, retry_policy: @config.retry_policy @chat_service_stub.call_rpc :get_space, 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 ## # Creates a named space. Spaces grouped by topics aren't supported. For an # example, see [Create a # space](https://developers.google.com/workspace/chat/create-spaces). # # If you receive the error message `ALREADY_EXISTS` when creating # a space, try a different `displayName`. An existing space within # the Google Workspace organization might already use this display name. # # Requires [user # authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). # # @overload create_space(request, options = nil) # Pass arguments to `create_space` via a request object, either of type # {::Google::Apps::Chat::V1::CreateSpaceRequest} or an equivalent Hash. # # @param request [::Google::Apps::Chat::V1::CreateSpaceRequest, ::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 create_space(space: nil, request_id: nil) # Pass arguments to `create_space` 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 space [::Google::Apps::Chat::V1::Space, ::Hash] # Required. The `displayName` and `spaceType` fields must be populated. Only # `SpaceType.SPACE` is supported. # # If you receive the error message `ALREADY_EXISTS` when creating a space, # try a different `displayName`. An existing space within the Google # Workspace organization might already use this display name. # # The space `name` is assigned on the server so anything specified in this # field will be ignored. # @param request_id [::String] # Optional. A unique identifier for this request. # A random UUID is recommended. # Specifying an existing request ID returns the space created with that ID # instead of creating a new space. # Specifying an existing request ID from the same Chat app with a different # authenticated user returns an error. # # @yield [response, operation] Access the result along with the RPC operation # @yieldparam response [::Google::Apps::Chat::V1::Space] # @yieldparam operation [::GRPC::ActiveCall::Operation] # # @return [::Google::Apps::Chat::V1::Space] # # @raise [::Google::Cloud::Error] if the RPC is aborted. # # @example Basic example # require "google/apps/chat/v1" # # # Create a client object. The client can be reused for multiple calls. # client = Google::Apps::Chat::V1::ChatService::Client.new # # # Create a request. To set request fields, pass in keyword arguments. # request = Google::Apps::Chat::V1::CreateSpaceRequest.new # # # Call the create_space method. # result = client.create_space request # # # The returned object is of type Google::Apps::Chat::V1::Space. # p result # def create_space request, options = nil raise ::ArgumentError, "request must be provided" if request.nil? request = ::Gapic::Protobuf.coerce request, to: ::Google::Apps::Chat::V1::CreateSpaceRequest # 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.create_space.metadata.to_h # Set x-goog-api-client, x-goog-user-project and x-goog-api-version 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::Apps::Chat::V1::VERSION metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id options.apply_defaults timeout: @config.rpcs.create_space.timeout, metadata: metadata, retry_policy: @config.rpcs.create_space.retry_policy options.apply_defaults timeout: @config.timeout, metadata: @config.metadata, retry_policy: @config.retry_policy @chat_service_stub.call_rpc :create_space, 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 ## # Creates a space and adds specified users to it. The calling user is # automatically added to the space, and shouldn't be specified as a # membership in the request. For an example, see # [Set up a space with initial # members](https://developers.google.com/workspace/chat/set-up-spaces). # # To specify the human members to add, add memberships with the appropriate # `membership.member.name`. To add a human user, use `users/{user}`, where # `{user}` can be the email address for the user. For users in the same # Workspace organization `{user}` can also be the `id` for the person from # the People API, or the `id` for the user in the Directory API. For example, # if the People API Person profile ID for `user@example.com` is `123456789`, # you can add the user to the space by setting the `membership.member.name` # to `users/user@example.com` or `users/123456789`. # # To specify the Google groups to add, add memberships with the # appropriate `membership.group_member.name`. To add or invite a Google # group, use `groups/{group}`, where `{group}` is the `id` for the group from # the Cloud Identity Groups API. For example, you can use [Cloud Identity # Groups lookup # API](https://cloud.google.com/identity/docs/reference/rest/v1/groups/lookup) # to retrieve the ID `123456789` for group email `group@example.com`, then # you can add the group to the space by setting the # `membership.group_member.name` to `groups/123456789`. Group email is not # supported, and Google groups can only be added as members in named spaces. # # For a named space or group chat, if the caller blocks, or is blocked # by some members, or doesn't have permission to add some members, then # those members aren't added to the created space. # # To create a direct message (DM) between the calling user and another human # user, specify exactly one membership to represent the human user. If # one user blocks the other, the request fails and the DM isn't created. # # To create a DM between the calling user and the calling app, set # `Space.singleUserBotDm` to `true` and don't specify any memberships. You # can only use this method to set up a DM with the calling app. To add the # calling app as a member of a space or an existing DM between two human # users, see # [Invite or add a user or app to a # space](https://developers.google.com/workspace/chat/create-members). # # If a DM already exists between two users, even when one user blocks the # other at the time a request is made, then the existing DM is returned. # # Spaces with threaded replies aren't supported. If you receive the error # message `ALREADY_EXISTS` when setting up a space, try a different # `displayName`. An existing space within the Google Workspace organization # might already use this display name. # # Requires [user # authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). # # @overload set_up_space(request, options = nil) # Pass arguments to `set_up_space` via a request object, either of type # {::Google::Apps::Chat::V1::SetUpSpaceRequest} or an equivalent Hash. # # @param request [::Google::Apps::Chat::V1::SetUpSpaceRequest, ::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 set_up_space(space: nil, request_id: nil, memberships: nil) # Pass arguments to `set_up_space` 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 space [::Google::Apps::Chat::V1::Space, ::Hash] # Required. The `Space.spaceType` field is required. # # To create a space, set `Space.spaceType` to `SPACE` and set # `Space.displayName`. If you receive the error message `ALREADY_EXISTS` when # setting up a space, try a different `displayName`. An existing space # within the Google Workspace organization might already use this display # name. # # To create a group chat, set `Space.spaceType` to # `GROUP_CHAT`. Don't set `Space.displayName`. # # To create a 1:1 conversation between humans, # set `Space.spaceType` to `DIRECT_MESSAGE` and set # `Space.singleUserBotDm` to `false`. Don't set `Space.displayName` or # `Space.spaceDetails`. # # To create an 1:1 conversation between a human and the calling Chat app, set # `Space.spaceType` to `DIRECT_MESSAGE` and # `Space.singleUserBotDm` to `true`. Don't set `Space.displayName` or # `Space.spaceDetails`. # # If a `DIRECT_MESSAGE` space already exists, that space is returned instead # of creating a new space. # @param request_id [::String] # Optional. A unique identifier for this request. # A random UUID is recommended. # Specifying an existing request ID returns the space created with that ID # instead of creating a new space. # Specifying an existing request ID from the same Chat app with a different # authenticated user returns an error. # @param memberships [::Array<::Google::Apps::Chat::V1::Membership, ::Hash>] # Optional. The Google Chat users or groups to invite to join the space. Omit # the calling user, as they are added automatically. # # The set currently allows up to 20 memberships (in addition to the caller). # # For human membership, the `Membership.member` field must contain a `user` # with `name` populated (format: `users/{user}`) and `type` set to # `User.Type.HUMAN`. You can only add human users when setting up a space # (adding Chat apps is only supported for direct message setup with the # calling app). You can also add members using the user's email as an alias # for \\{user}. For example, the `user.name` can be `users/example@gmail.com`. # To invite Gmail users or users from external Google Workspace domains, # user's email must be used for `{user}`. # # For Google group membership, the `Membership.group_member` field must # contain a `group` with `name` populated (format `groups/{group}`). You # can only add Google groups when setting `Space.spaceType` to `SPACE`. # # Optional when setting `Space.spaceType` to `SPACE`. # # Required when setting `Space.spaceType` to `GROUP_CHAT`, along with at # least two memberships. # # Required when setting `Space.spaceType` to `DIRECT_MESSAGE` with a human # user, along with exactly one membership. # # Must be empty when creating a 1:1 conversation between a human and the # calling Chat app (when setting `Space.spaceType` to # `DIRECT_MESSAGE` and `Space.singleUserBotDm` to `true`). # # @yield [response, operation] Access the result along with the RPC operation # @yieldparam response [::Google::Apps::Chat::V1::Space] # @yieldparam operation [::GRPC::ActiveCall::Operation] # # @return [::Google::Apps::Chat::V1::Space] # # @raise [::Google::Cloud::Error] if the RPC is aborted. # # @example Basic example # require "google/apps/chat/v1" # # # Create a client object. The client can be reused for multiple calls. # client = Google::Apps::Chat::V1::ChatService::Client.new # # # Create a request. To set request fields, pass in keyword arguments. # request = Google::Apps::Chat::V1::SetUpSpaceRequest.new # # # Call the set_up_space method. # result = client.set_up_space request # # # The returned object is of type Google::Apps::Chat::V1::Space. # p result # def set_up_space request, options = nil raise ::ArgumentError, "request must be provided" if request.nil? request = ::Gapic::Protobuf.coerce request, to: ::Google::Apps::Chat::V1::SetUpSpaceRequest # 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.set_up_space.metadata.to_h # Set x-goog-api-client, x-goog-user-project and x-goog-api-version 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::Apps::Chat::V1::VERSION metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id options.apply_defaults timeout: @config.rpcs.set_up_space.timeout, metadata: metadata, retry_policy: @config.rpcs.set_up_space.retry_policy options.apply_defaults timeout: @config.timeout, metadata: @config.metadata, retry_policy: @config.retry_policy @chat_service_stub.call_rpc :set_up_space, 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 ## # Updates a space. For an example, see # [Update a # space](https://developers.google.com/workspace/chat/update-spaces). # # If you're updating the `displayName` field and receive the error message # `ALREADY_EXISTS`, try a different display name.. An existing space within # the Google Workspace organization might already use this display name. # # Requires [user # authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). # # @overload update_space(request, options = nil) # Pass arguments to `update_space` via a request object, either of type # {::Google::Apps::Chat::V1::UpdateSpaceRequest} or an equivalent Hash. # # @param request [::Google::Apps::Chat::V1::UpdateSpaceRequest, ::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_space(space: nil, update_mask: nil) # Pass arguments to `update_space` 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 space [::Google::Apps::Chat::V1::Space, ::Hash] # Required. Space with fields to be updated. `Space.name` must be # populated in the form of `spaces/{space}`. Only fields # specified by `update_mask` are updated. # @param update_mask [::Google::Protobuf::FieldMask, ::Hash] # Required. The updated field paths, comma separated if there are # multiple. # # Currently supported field paths: # # - `display_name` (Only supports changing the display name of a space with # the `SPACE` type, or when also including the `space_type` mask to change a # `GROUP_CHAT` space type to `SPACE`. Trying to update the display name of a # `GROUP_CHAT` or a `DIRECT_MESSAGE` space results in an invalid argument # error. If you receive the error message `ALREADY_EXISTS` when updating the # `displayName`, try a different `displayName`. An existing space within the # Google Workspace organization might already use this display name.) # # - `space_type` (Only supports changing a `GROUP_CHAT` space type to # `SPACE`. Include `display_name` together # with `space_type` in the update mask and ensure that the specified space # has a non-empty display name and the `SPACE` space type. Including the # `space_type` mask and the `SPACE` type in the specified space when updating # the display name is optional if the existing space already has the `SPACE` # type. Trying to update the space type in other ways results in an invalid # argument error). # # - `space_details` # # - `space_history_state` (Supports [turning history on or off for the # space](https://support.google.com/chat/answer/7664687) if [the organization # allows users to change their history # setting](https://support.google.com/a/answer/7664184). # Warning: mutually exclusive with all other field paths.) # # - Developer Preview: `access_settings.audience` (Supports changing the # [access setting](https://support.google.com/chat/answer/11971020) of a # space. If no audience is specified in the access setting, the space's # access setting is updated to restricted. Warning: mutually exclusive with # all other field paths.) # # @yield [response, operation] Access the result along with the RPC operation # @yieldparam response [::Google::Apps::Chat::V1::Space] # @yieldparam operation [::GRPC::ActiveCall::Operation] # # @return [::Google::Apps::Chat::V1::Space] # # @raise [::Google::Cloud::Error] if the RPC is aborted. # # @example Basic example # require "google/apps/chat/v1" # # # Create a client object. The client can be reused for multiple calls. # client = Google::Apps::Chat::V1::ChatService::Client.new # # # Create a request. To set request fields, pass in keyword arguments. # request = Google::Apps::Chat::V1::UpdateSpaceRequest.new # # # Call the update_space method. # result = client.update_space request # # # The returned object is of type Google::Apps::Chat::V1::Space. # p result # def update_space request, options = nil raise ::ArgumentError, "request must be provided" if request.nil? request = ::Gapic::Protobuf.coerce request, to: ::Google::Apps::Chat::V1::UpdateSpaceRequest # 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_space.metadata.to_h # Set x-goog-api-client, x-goog-user-project and x-goog-api-version 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::Apps::Chat::V1::VERSION metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id header_params = {} if request.space&.name header_params["space.name"] = request.space.name end 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_space.timeout, metadata: metadata, retry_policy: @config.rpcs.update_space.retry_policy options.apply_defaults timeout: @config.timeout, metadata: @config.metadata, retry_policy: @config.retry_policy @chat_service_stub.call_rpc :update_space, 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 ## # Deletes a named space. Always performs a cascading delete, which means # that the space's child resources—like messages posted in the space and # memberships in the space—are also deleted. For an example, see # [Delete a # space](https://developers.google.com/workspace/chat/delete-spaces). # Requires [user # authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user) # from a user who has permission to delete the space. # # @overload delete_space(request, options = nil) # Pass arguments to `delete_space` via a request object, either of type # {::Google::Apps::Chat::V1::DeleteSpaceRequest} or an equivalent Hash. # # @param request [::Google::Apps::Chat::V1::DeleteSpaceRequest, ::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_space(name: nil) # Pass arguments to `delete_space` 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] # Required. Resource name of the space to delete. # # Format: `spaces/{space}` # # @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. # # @example Basic example # require "google/apps/chat/v1" # # # Create a client object. The client can be reused for multiple calls. # client = Google::Apps::Chat::V1::ChatService::Client.new # # # Create a request. To set request fields, pass in keyword arguments. # request = Google::Apps::Chat::V1::DeleteSpaceRequest.new # # # Call the delete_space method. # result = client.delete_space request # # # The returned object is of type Google::Protobuf::Empty. # p result # def delete_space request, options = nil raise ::ArgumentError, "request must be provided" if request.nil? request = ::Gapic::Protobuf.coerce request, to: ::Google::Apps::Chat::V1::DeleteSpaceRequest # 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_space.metadata.to_h # Set x-goog-api-client, x-goog-user-project and x-goog-api-version 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::Apps::Chat::V1::VERSION metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id header_params = {} if request.name header_params["name"] = request.name end 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_space.timeout, metadata: metadata, retry_policy: @config.rpcs.delete_space.retry_policy options.apply_defaults timeout: @config.timeout, metadata: @config.metadata, retry_policy: @config.retry_policy @chat_service_stub.call_rpc :delete_space, 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 ## # Completes the # [import process](https://developers.google.com/workspace/chat/import-data) # for the specified space and makes it visible to users. # Requires app authentication and domain-wide delegation. For more # information, see [Authorize Google Chat apps to import # data](https://developers.google.com/workspace/chat/authorize-import). # # @overload complete_import_space(request, options = nil) # Pass arguments to `complete_import_space` via a request object, either of type # {::Google::Apps::Chat::V1::CompleteImportSpaceRequest} or an equivalent Hash. # # @param request [::Google::Apps::Chat::V1::CompleteImportSpaceRequest, ::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 complete_import_space(name: nil) # Pass arguments to `complete_import_space` 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] # Required. Resource name of the import mode space. # # Format: `spaces/{space}` # # @yield [response, operation] Access the result along with the RPC operation # @yieldparam response [::Google::Apps::Chat::V1::CompleteImportSpaceResponse] # @yieldparam operation [::GRPC::ActiveCall::Operation] # # @return [::Google::Apps::Chat::V1::CompleteImportSpaceResponse] # # @raise [::Google::Cloud::Error] if the RPC is aborted. # # @example Basic example # require "google/apps/chat/v1" # # # Create a client object. The client can be reused for multiple calls. # client = Google::Apps::Chat::V1::ChatService::Client.new # # # Create a request. To set request fields, pass in keyword arguments. # request = Google::Apps::Chat::V1::CompleteImportSpaceRequest.new # # # Call the complete_import_space method. # result = client.complete_import_space request # # # The returned object is of type Google::Apps::Chat::V1::CompleteImportSpaceResponse. # p result # def complete_import_space request, options = nil raise ::ArgumentError, "request must be provided" if request.nil? request = ::Gapic::Protobuf.coerce request, to: ::Google::Apps::Chat::V1::CompleteImportSpaceRequest # 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.complete_import_space.metadata.to_h # Set x-goog-api-client, x-goog-user-project and x-goog-api-version 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::Apps::Chat::V1::VERSION metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id header_params = {} if request.name header_params["name"] = request.name end 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.complete_import_space.timeout, metadata: metadata, retry_policy: @config.rpcs.complete_import_space.retry_policy options.apply_defaults timeout: @config.timeout, metadata: @config.metadata, retry_policy: @config.retry_policy @chat_service_stub.call_rpc :complete_import_space, 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 ## # Returns the existing direct message with the specified user. If no direct # message space is found, returns a `404 NOT_FOUND` error. For an example, # see # [Find a direct message](/chat/api/guides/v1/spaces/find-direct-message). # # With [user # authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user), # returns the direct message space between the specified user and the # authenticated user. # # With [app # authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app), # returns the direct message space between the specified user and the calling # Chat app. # # Requires [user # authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user) # or [app # authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app). # # @overload find_direct_message(request, options = nil) # Pass arguments to `find_direct_message` via a request object, either of type # {::Google::Apps::Chat::V1::FindDirectMessageRequest} or an equivalent Hash. # # @param request [::Google::Apps::Chat::V1::FindDirectMessageRequest, ::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 find_direct_message(name: nil) # Pass arguments to `find_direct_message` 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] # Required. Resource name of the user to find direct message with. # # Format: `users/{user}`, where `{user}` is either the `id` for the # [person](https://developers.google.com/people/api/rest/v1/people) from the # People API, or the `id` for the # [user](https://developers.google.com/admin-sdk/directory/reference/rest/v1/users) # in the Directory API. For example, if the People API profile ID is # `123456789`, you can find a direct message with that person by using # `users/123456789` as the `name`. When [authenticated as a # user](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user), # you can use the email as an alias for `{user}`. For example, # `users/example@gmail.com` where `example@gmail.com` is the email of the # Google Chat user. # # @yield [response, operation] Access the result along with the RPC operation # @yieldparam response [::Google::Apps::Chat::V1::Space] # @yieldparam operation [::GRPC::ActiveCall::Operation] # # @return [::Google::Apps::Chat::V1::Space] # # @raise [::Google::Cloud::Error] if the RPC is aborted. # # @example Basic example # require "google/apps/chat/v1" # # # Create a client object. The client can be reused for multiple calls. # client = Google::Apps::Chat::V1::ChatService::Client.new # # # Create a request. To set request fields, pass in keyword arguments. # request = Google::Apps::Chat::V1::FindDirectMessageRequest.new # # # Call the find_direct_message method. # result = client.find_direct_message request # # # The returned object is of type Google::Apps::Chat::V1::Space. # p result # def find_direct_message request, options = nil raise ::ArgumentError, "request must be provided" if request.nil? request = ::Gapic::Protobuf.coerce request, to: ::Google::Apps::Chat::V1::FindDirectMessageRequest # 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.find_direct_message.metadata.to_h # Set x-goog-api-client, x-goog-user-project and x-goog-api-version 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::Apps::Chat::V1::VERSION metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id options.apply_defaults timeout: @config.rpcs.find_direct_message.timeout, metadata: metadata, retry_policy: @config.rpcs.find_direct_message.retry_policy options.apply_defaults timeout: @config.timeout, metadata: @config.metadata, retry_policy: @config.retry_policy @chat_service_stub.call_rpc :find_direct_message, 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 ## # Creates a human membership or app membership for the calling app. Creating # memberships for other apps isn't supported. For an example, see # [Invite or add a user or a Google Chat app to a # space](https://developers.google.com/workspace/chat/create-members). # When creating a membership, if the specified member has their auto-accept # policy turned off, then they're invited, and must accept the space # invitation before joining. Otherwise, creating a membership adds the member # directly to the specified space. Requires [user # authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). # # To specify the member to add, set the `membership.member.name` for the # human or app member, or set the `membership.group_member.name` for the # group member. # # - To add the calling app to a space or a direct message between two human # users, use `users/app`. Unable to add other # apps to the space. # # - To add a human user, use `users/{user}`, where `{user}` can be the email # address for the user. For users in the same Workspace organization `{user}` # can also be the `id` for the person from the People API, or the `id` for # the user in the Directory API. For example, if the People API Person # profile ID for `user@example.com` is `123456789`, you can add the user to # the space by setting the `membership.member.name` to # `users/user@example.com` or `users/123456789`. # # - To add or invite a Google group in a named space, use # `groups/{group}`, where `{group}` is the `id` for the group from the Cloud # Identity Groups API. For example, you can use [Cloud Identity Groups lookup # API](https://cloud.google.com/identity/docs/reference/rest/v1/groups/lookup) # to retrieve the ID `123456789` for group email `group@example.com`, then # you can add or invite the group to a named space by setting the # `membership.group_member.name` to `groups/123456789`. Group email is not # supported, and Google groups can only be added as members in named spaces. # # @overload create_membership(request, options = nil) # Pass arguments to `create_membership` via a request object, either of type # {::Google::Apps::Chat::V1::CreateMembershipRequest} or an equivalent Hash. # # @param request [::Google::Apps::Chat::V1::CreateMembershipRequest, ::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 create_membership(parent: nil, membership: nil) # Pass arguments to `create_membership` 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] # Required. The resource name of the space for which to create the # membership. # # Format: spaces/\\{space} # @param membership [::Google::Apps::Chat::V1::Membership, ::Hash] # Required. The membership relation to create. # The `memberType` field must contain a user with the `user.name` and # `user.type` fields populated. The server will assign a resource name # and overwrite anything specified. # When a Chat app creates a membership relation for a human user, it must use # the `chat.memberships` scope, set `user.type` to `HUMAN`, and set # `user.name` with format `users/{user}`, where `{user}` can be the email # address for the user. For users in the same Workspace organization `{user}` # can also be the `id` of the # [person](https://developers.google.com/people/api/rest/v1/people) from the # People API, or the `id` for the user in the Directory API. For example, if # the People API Person profile ID for `user@example.com` is `123456789`, you # can add the user to the space by setting the `membership.member.name` to # `users/user@example.com` or `users/123456789`. When a Chat app creates a # membership relation for itself, it must use the `chat.memberships.app` # scope, set `user.type` to `BOT`, and set `user.name` to `users/app`. # # @yield [response, operation] Access the result along with the RPC operation # @yieldparam response [::Google::Apps::Chat::V1::Membership] # @yieldparam operation [::GRPC::ActiveCall::Operation] # # @return [::Google::Apps::Chat::V1::Membership] # # @raise [::Google::Cloud::Error] if the RPC is aborted. # # @example Basic example # require "google/apps/chat/v1" # # # Create a client object. The client can be reused for multiple calls. # client = Google::Apps::Chat::V1::ChatService::Client.new # # # Create a request. To set request fields, pass in keyword arguments. # request = Google::Apps::Chat::V1::CreateMembershipRequest.new # # # Call the create_membership method. # result = client.create_membership request # # # The returned object is of type Google::Apps::Chat::V1::Membership. # p result # def create_membership request, options = nil raise ::ArgumentError, "request must be provided" if request.nil? request = ::Gapic::Protobuf.coerce request, to: ::Google::Apps::Chat::V1::CreateMembershipRequest # 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.create_membership.metadata.to_h # Set x-goog-api-client, x-goog-user-project and x-goog-api-version 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::Apps::Chat::V1::VERSION metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id header_params = {} if request.parent header_params["parent"] = request.parent end 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.create_membership.timeout, metadata: metadata, retry_policy: @config.rpcs.create_membership.retry_policy options.apply_defaults timeout: @config.timeout, metadata: @config.metadata, retry_policy: @config.retry_policy @chat_service_stub.call_rpc :create_membership, 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 ## # Updates a membership. For an example, see [Update a user's membership in # a space](https://developers.google.com/workspace/chat/update-members). # # Requires [user # authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). # # @overload update_membership(request, options = nil) # Pass arguments to `update_membership` via a request object, either of type # {::Google::Apps::Chat::V1::UpdateMembershipRequest} or an equivalent Hash. # # @param request [::Google::Apps::Chat::V1::UpdateMembershipRequest, ::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_membership(membership: nil, update_mask: nil) # Pass arguments to `update_membership` 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 membership [::Google::Apps::Chat::V1::Membership, ::Hash] # Required. The membership to update. Only fields specified by `update_mask` # are updated. # @param update_mask [::Google::Protobuf::FieldMask, ::Hash] # Required. The field paths to update. Separate multiple values with commas # or use `*` to update all field paths. # # Currently supported field paths: # # - `role` # # @yield [response, operation] Access the result along with the RPC operation # @yieldparam response [::Google::Apps::Chat::V1::Membership] # @yieldparam operation [::GRPC::ActiveCall::Operation] # # @return [::Google::Apps::Chat::V1::Membership] # # @raise [::Google::Cloud::Error] if the RPC is aborted. # # @example Basic example # require "google/apps/chat/v1" # # # Create a client object. The client can be reused for multiple calls. # client = Google::Apps::Chat::V1::ChatService::Client.new # # # Create a request. To set request fields, pass in keyword arguments. # request = Google::Apps::Chat::V1::UpdateMembershipRequest.new # # # Call the update_membership method. # result = client.update_membership request # # # The returned object is of type Google::Apps::Chat::V1::Membership. # p result # def update_membership request, options = nil raise ::ArgumentError, "request must be provided" if request.nil? request = ::Gapic::Protobuf.coerce request, to: ::Google::Apps::Chat::V1::UpdateMembershipRequest # 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_membership.metadata.to_h # Set x-goog-api-client, x-goog-user-project and x-goog-api-version 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::Apps::Chat::V1::VERSION metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id header_params = {} if request.membership&.name header_params["membership.name"] = request.membership.name end 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_membership.timeout, metadata: metadata, retry_policy: @config.rpcs.update_membership.retry_policy options.apply_defaults timeout: @config.timeout, metadata: @config.metadata, retry_policy: @config.retry_policy @chat_service_stub.call_rpc :update_membership, 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 ## # Deletes a membership. For an example, see # [Remove a user or a Google Chat app from a # space](https://developers.google.com/workspace/chat/delete-members). # # Requires [user # authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). # # @overload delete_membership(request, options = nil) # Pass arguments to `delete_membership` via a request object, either of type # {::Google::Apps::Chat::V1::DeleteMembershipRequest} or an equivalent Hash. # # @param request [::Google::Apps::Chat::V1::DeleteMembershipRequest, ::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_membership(name: nil) # Pass arguments to `delete_membership` 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] # Required. Resource name of the membership to delete. Chat apps can delete # human users' or their own memberships. Chat apps can't delete other apps' # memberships. # # When deleting a human membership, requires the `chat.memberships` scope and # `spaces/{space}/members/{member}` format. You can use the email as an # alias for `{member}`. For example, # `spaces/{space}/members/example@gmail.com` where `example@gmail.com` is the # email of the Google Chat user. # # When deleting an app membership, requires the `chat.memberships.app` scope # and `spaces/{space}/members/app` format. # # Format: `spaces/{space}/members/{member}` or `spaces/{space}/members/app`. # # @yield [response, operation] Access the result along with the RPC operation # @yieldparam response [::Google::Apps::Chat::V1::Membership] # @yieldparam operation [::GRPC::ActiveCall::Operation] # # @return [::Google::Apps::Chat::V1::Membership] # # @raise [::Google::Cloud::Error] if the RPC is aborted. # # @example Basic example # require "google/apps/chat/v1" # # # Create a client object. The client can be reused for multiple calls. # client = Google::Apps::Chat::V1::ChatService::Client.new # # # Create a request. To set request fields, pass in keyword arguments. # request = Google::Apps::Chat::V1::DeleteMembershipRequest.new # # # Call the delete_membership method. # result = client.delete_membership request # # # The returned object is of type Google::Apps::Chat::V1::Membership. # p result # def delete_membership request, options = nil raise ::ArgumentError, "request must be provided" if request.nil? request = ::Gapic::Protobuf.coerce request, to: ::Google::Apps::Chat::V1::DeleteMembershipRequest # 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_membership.metadata.to_h # Set x-goog-api-client, x-goog-user-project and x-goog-api-version 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::Apps::Chat::V1::VERSION metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id header_params = {} if request.name header_params["name"] = request.name end 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_membership.timeout, metadata: metadata, retry_policy: @config.rpcs.delete_membership.retry_policy options.apply_defaults timeout: @config.timeout, metadata: @config.metadata, retry_policy: @config.retry_policy @chat_service_stub.call_rpc :delete_membership, 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 ## # Creates a reaction and adds it to a message. Only unicode emojis are # supported. For an example, see # [Add a reaction to a # message](https://developers.google.com/workspace/chat/create-reactions). # Requires [user # authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). # # @overload create_reaction(request, options = nil) # Pass arguments to `create_reaction` via a request object, either of type # {::Google::Apps::Chat::V1::CreateReactionRequest} or an equivalent Hash. # # @param request [::Google::Apps::Chat::V1::CreateReactionRequest, ::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 create_reaction(parent: nil, reaction: nil) # Pass arguments to `create_reaction` 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] # Required. The message where the reaction is created. # # Format: `spaces/{space}/messages/{message}` # @param reaction [::Google::Apps::Chat::V1::Reaction, ::Hash] # Required. The reaction to create. # # @yield [response, operation] Access the result along with the RPC operation # @yieldparam response [::Google::Apps::Chat::V1::Reaction] # @yieldparam operation [::GRPC::ActiveCall::Operation] # # @return [::Google::Apps::Chat::V1::Reaction] # # @raise [::Google::Cloud::Error] if the RPC is aborted. # # @example Basic example # require "google/apps/chat/v1" # # # Create a client object. The client can be reused for multiple calls. # client = Google::Apps::Chat::V1::ChatService::Client.new # # # Create a request. To set request fields, pass in keyword arguments. # request = Google::Apps::Chat::V1::CreateReactionRequest.new # # # Call the create_reaction method. # result = client.create_reaction request # # # The returned object is of type Google::Apps::Chat::V1::Reaction. # p result # def create_reaction request, options = nil raise ::ArgumentError, "request must be provided" if request.nil? request = ::Gapic::Protobuf.coerce request, to: ::Google::Apps::Chat::V1::CreateReactionRequest # 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.create_reaction.metadata.to_h # Set x-goog-api-client, x-goog-user-project and x-goog-api-version 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::Apps::Chat::V1::VERSION metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id header_params = {} if request.parent header_params["parent"] = request.parent end 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.create_reaction.timeout, metadata: metadata, retry_policy: @config.rpcs.create_reaction.retry_policy options.apply_defaults timeout: @config.timeout, metadata: @config.metadata, retry_policy: @config.retry_policy @chat_service_stub.call_rpc :create_reaction, 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 reactions to a message. For an example, see # [List reactions for a # message](https://developers.google.com/workspace/chat/list-reactions). # Requires [user # authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). # # @overload list_reactions(request, options = nil) # Pass arguments to `list_reactions` via a request object, either of type # {::Google::Apps::Chat::V1::ListReactionsRequest} or an equivalent Hash. # # @param request [::Google::Apps::Chat::V1::ListReactionsRequest, ::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_reactions(parent: nil, page_size: nil, page_token: nil, filter: nil) # Pass arguments to `list_reactions` 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] # Required. The message users reacted to. # # Format: `spaces/{space}/messages/{message}` # @param page_size [::Integer] # Optional. The maximum number of reactions returned. The service can return # fewer reactions than this value. If unspecified, the default value is 25. # The maximum value is 200; values above 200 are changed to 200. # @param page_token [::String] # Optional. (If resuming from a previous query.) # # A page token received from a previous list reactions call. Provide this # to retrieve the subsequent page. # # When paginating, the filter value should match the call that provided the # page token. Passing a different value might lead to unexpected results. # @param filter [::String] # Optional. A query filter. # # You can filter reactions by # [emoji](https://developers.google.com/workspace/chat/api/reference/rest/v1/Emoji) # (either `emoji.unicode` or `emoji.custom_emoji.uid`) and # [user](https://developers.google.com/workspace/chat/api/reference/rest/v1/User) # (`user.name`). # # To filter reactions for multiple emojis or users, join similar fields # with the `OR` operator, such as `emoji.unicode = "🙂" OR emoji.unicode = # "👍"` and `user.name = "users/AAAAAA" OR user.name = "users/BBBBBB"`. # # To filter reactions by emoji and user, use the `AND` operator, such as # `emoji.unicode = "🙂" AND user.name = "users/AAAAAA"`. # # If your query uses both `AND` and `OR`, group them with parentheses. # # For example, the following queries are valid: # # ``` # user.name = "users/\\{user}" # emoji.unicode = "🙂" # emoji.custom_emoji.uid = "\\{uid}" # emoji.unicode = "🙂" OR emoji.unicode = "👍" # emoji.unicode = "🙂" OR emoji.custom_emoji.uid = "\\{uid}" # emoji.unicode = "🙂" AND user.name = "users/\\{user}" # (emoji.unicode = "🙂" OR emoji.custom_emoji.uid = "\\{uid}") # AND user.name = "users/\\{user}" # ``` # # The following queries are invalid: # # ``` # emoji.unicode = "🙂" AND emoji.unicode = "👍" # emoji.unicode = "🙂" AND emoji.custom_emoji.uid = "\\{uid}" # emoji.unicode = "🙂" OR user.name = "users/\\{user}" # emoji.unicode = "🙂" OR emoji.custom_emoji.uid = "\\{uid}" OR # user.name = "users/\\{user}" # emoji.unicode = "🙂" OR emoji.custom_emoji.uid = "\\{uid}" # AND user.name = "users/\\{user}" # ``` # # Invalid queries are rejected by the server with an `INVALID_ARGUMENT` # error. # # @yield [response, operation] Access the result along with the RPC operation # @yieldparam response [::Gapic::PagedEnumerable<::Google::Apps::Chat::V1::Reaction>] # @yieldparam operation [::GRPC::ActiveCall::Operation] # # @return [::Gapic::PagedEnumerable<::Google::Apps::Chat::V1::Reaction>] # # @raise [::Google::Cloud::Error] if the RPC is aborted. # # @example Basic example # require "google/apps/chat/v1" # # # Create a client object. The client can be reused for multiple calls. # client = Google::Apps::Chat::V1::ChatService::Client.new # # # Create a request. To set request fields, pass in keyword arguments. # request = Google::Apps::Chat::V1::ListReactionsRequest.new # # # Call the list_reactions method. # result = client.list_reactions request # # # The returned object is of type Gapic::PagedEnumerable. You can iterate # # over elements, and API calls will be issued to fetch pages as needed. # result.each do |item| # # Each element is of type ::Google::Apps::Chat::V1::Reaction. # p item # end # def list_reactions request, options = nil raise ::ArgumentError, "request must be provided" if request.nil? request = ::Gapic::Protobuf.coerce request, to: ::Google::Apps::Chat::V1::ListReactionsRequest # 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_reactions.metadata.to_h # Set x-goog-api-client, x-goog-user-project and x-goog-api-version 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::Apps::Chat::V1::VERSION metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id header_params = {} if request.parent header_params["parent"] = request.parent end 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_reactions.timeout, metadata: metadata, retry_policy: @config.rpcs.list_reactions.retry_policy options.apply_defaults timeout: @config.timeout, metadata: @config.metadata, retry_policy: @config.retry_policy @chat_service_stub.call_rpc :list_reactions, request, options: options do |response, operation| response = ::Gapic::PagedEnumerable.new @chat_service_stub, :list_reactions, 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 ## # Deletes a reaction to a message. Only unicode emojis are supported. # For an example, see # [Delete a # reaction](https://developers.google.com/workspace/chat/delete-reactions). # Requires [user # authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). # # @overload delete_reaction(request, options = nil) # Pass arguments to `delete_reaction` via a request object, either of type # {::Google::Apps::Chat::V1::DeleteReactionRequest} or an equivalent Hash. # # @param request [::Google::Apps::Chat::V1::DeleteReactionRequest, ::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_reaction(name: nil) # Pass arguments to `delete_reaction` 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] # Required. Name of the reaction to delete. # # Format: `spaces/{space}/messages/{message}/reactions/{reaction}` # # @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. # # @example Basic example # require "google/apps/chat/v1" # # # Create a client object. The client can be reused for multiple calls. # client = Google::Apps::Chat::V1::ChatService::Client.new # # # Create a request. To set request fields, pass in keyword arguments. # request = Google::Apps::Chat::V1::DeleteReactionRequest.new # # # Call the delete_reaction method. # result = client.delete_reaction request # # # The returned object is of type Google::Protobuf::Empty. # p result # def delete_reaction request, options = nil raise ::ArgumentError, "request must be provided" if request.nil? request = ::Gapic::Protobuf.coerce request, to: ::Google::Apps::Chat::V1::DeleteReactionRequest # 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_reaction.metadata.to_h # Set x-goog-api-client, x-goog-user-project and x-goog-api-version 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::Apps::Chat::V1::VERSION metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id header_params = {} if request.name header_params["name"] = request.name end 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_reaction.timeout, metadata: metadata, retry_policy: @config.rpcs.delete_reaction.retry_policy options.apply_defaults timeout: @config.timeout, metadata: @config.metadata, retry_policy: @config.retry_policy @chat_service_stub.call_rpc :delete_reaction, 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 ## # Returns details about a user's read state within a space, used to identify # read and unread messages. For an example, see [Get details about a user's # space read # state](https://developers.google.com/workspace/chat/get-space-read-state). # # Requires [user # authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). # # @overload get_space_read_state(request, options = nil) # Pass arguments to `get_space_read_state` via a request object, either of type # {::Google::Apps::Chat::V1::GetSpaceReadStateRequest} or an equivalent Hash. # # @param request [::Google::Apps::Chat::V1::GetSpaceReadStateRequest, ::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_space_read_state(name: nil) # Pass arguments to `get_space_read_state` 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] # Required. Resource name of the space read state to retrieve. # # Only supports getting read state for the calling user. # # To refer to the calling user, set one of the following: # # - The `me` alias. For example, `users/me/spaces/{space}/spaceReadState`. # # - Their Workspace email address. For example, # `users/user@example.com/spaces/{space}/spaceReadState`. # # - Their user id. For example, # `users/123456789/spaces/{space}/spaceReadState`. # # Format: users/\\{user}/spaces/\\{space}/spaceReadState # # @yield [response, operation] Access the result along with the RPC operation # @yieldparam response [::Google::Apps::Chat::V1::SpaceReadState] # @yieldparam operation [::GRPC::ActiveCall::Operation] # # @return [::Google::Apps::Chat::V1::SpaceReadState] # # @raise [::Google::Cloud::Error] if the RPC is aborted. # # @example Basic example # require "google/apps/chat/v1" # # # Create a client object. The client can be reused for multiple calls. # client = Google::Apps::Chat::V1::ChatService::Client.new # # # Create a request. To set request fields, pass in keyword arguments. # request = Google::Apps::Chat::V1::GetSpaceReadStateRequest.new # # # Call the get_space_read_state method. # result = client.get_space_read_state request # # # The returned object is of type Google::Apps::Chat::V1::SpaceReadState. # p result # def get_space_read_state request, options = nil raise ::ArgumentError, "request must be provided" if request.nil? request = ::Gapic::Protobuf.coerce request, to: ::Google::Apps::Chat::V1::GetSpaceReadStateRequest # 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_space_read_state.metadata.to_h # Set x-goog-api-client, x-goog-user-project and x-goog-api-version 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::Apps::Chat::V1::VERSION metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id header_params = {} if request.name header_params["name"] = request.name end 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_space_read_state.timeout, metadata: metadata, retry_policy: @config.rpcs.get_space_read_state.retry_policy options.apply_defaults timeout: @config.timeout, metadata: @config.metadata, retry_policy: @config.retry_policy @chat_service_stub.call_rpc :get_space_read_state, 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 ## # Updates a user's read state within a space, used to identify read and # unread messages. For an example, see [Update a user's space read # state](https://developers.google.com/workspace/chat/update-space-read-state). # # Requires [user # authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). # # @overload update_space_read_state(request, options = nil) # Pass arguments to `update_space_read_state` via a request object, either of type # {::Google::Apps::Chat::V1::UpdateSpaceReadStateRequest} or an equivalent Hash. # # @param request [::Google::Apps::Chat::V1::UpdateSpaceReadStateRequest, ::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_space_read_state(space_read_state: nil, update_mask: nil) # Pass arguments to `update_space_read_state` 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 space_read_state [::Google::Apps::Chat::V1::SpaceReadState, ::Hash] # Required. The space read state and fields to update. # # Only supports updating read state for the calling user. # # To refer to the calling user, set one of the following: # # - The `me` alias. For example, `users/me/spaces/{space}/spaceReadState`. # # - Their Workspace email address. For example, # `users/user@example.com/spaces/{space}/spaceReadState`. # # - Their user id. For example, # `users/123456789/spaces/{space}/spaceReadState`. # # Format: users/\\{user}/spaces/\\{space}/spaceReadState # @param update_mask [::Google::Protobuf::FieldMask, ::Hash] # Required. The field paths to update. Currently supported field paths: # # - `last_read_time` # # When the `last_read_time` is before the latest message create time, the # space appears as unread in the UI. # # To mark the space as read, set `last_read_time` to any value later (larger) # than the latest message create time. The `last_read_time` is coerced to # match the latest message create time. Note that the space read state only # affects the read state of messages that are visible in the space's # top-level conversation. Replies in threads are unaffected by this # timestamp, and instead rely on the thread read state. # # @yield [response, operation] Access the result along with the RPC operation # @yieldparam response [::Google::Apps::Chat::V1::SpaceReadState] # @yieldparam operation [::GRPC::ActiveCall::Operation] # # @return [::Google::Apps::Chat::V1::SpaceReadState] # # @raise [::Google::Cloud::Error] if the RPC is aborted. # # @example Basic example # require "google/apps/chat/v1" # # # Create a client object. The client can be reused for multiple calls. # client = Google::Apps::Chat::V1::ChatService::Client.new # # # Create a request. To set request fields, pass in keyword arguments. # request = Google::Apps::Chat::V1::UpdateSpaceReadStateRequest.new # # # Call the update_space_read_state method. # result = client.update_space_read_state request # # # The returned object is of type Google::Apps::Chat::V1::SpaceReadState. # p result # def update_space_read_state request, options = nil raise ::ArgumentError, "request must be provided" if request.nil? request = ::Gapic::Protobuf.coerce request, to: ::Google::Apps::Chat::V1::UpdateSpaceReadStateRequest # 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_space_read_state.metadata.to_h # Set x-goog-api-client, x-goog-user-project and x-goog-api-version 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::Apps::Chat::V1::VERSION metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id header_params = {} if request.space_read_state&.name header_params["space_read_state.name"] = request.space_read_state.name end 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_space_read_state.timeout, metadata: metadata, retry_policy: @config.rpcs.update_space_read_state.retry_policy options.apply_defaults timeout: @config.timeout, metadata: @config.metadata, retry_policy: @config.retry_policy @chat_service_stub.call_rpc :update_space_read_state, 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 ## # Returns details about a user's read state within a thread, used to identify # read and unread messages. For an example, see [Get details about a user's # thread read # state](https://developers.google.com/workspace/chat/get-thread-read-state). # # Requires [user # authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). # # @overload get_thread_read_state(request, options = nil) # Pass arguments to `get_thread_read_state` via a request object, either of type # {::Google::Apps::Chat::V1::GetThreadReadStateRequest} or an equivalent Hash. # # @param request [::Google::Apps::Chat::V1::GetThreadReadStateRequest, ::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_thread_read_state(name: nil) # Pass arguments to `get_thread_read_state` 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] # Required. Resource name of the thread read state to retrieve. # # Only supports getting read state for the calling user. # # To refer to the calling user, set one of the following: # # - The `me` alias. For example, # `users/me/spaces/{space}/threads/{thread}/threadReadState`. # # - Their Workspace email address. For example, # `users/user@example.com/spaces/{space}/threads/{thread}/threadReadState`. # # - Their user id. For example, # `users/123456789/spaces/{space}/threads/{thread}/threadReadState`. # # Format: users/\\{user}/spaces/\\{space}/threads/\\{thread}/threadReadState # # @yield [response, operation] Access the result along with the RPC operation # @yieldparam response [::Google::Apps::Chat::V1::ThreadReadState] # @yieldparam operation [::GRPC::ActiveCall::Operation] # # @return [::Google::Apps::Chat::V1::ThreadReadState] # # @raise [::Google::Cloud::Error] if the RPC is aborted. # # @example Basic example # require "google/apps/chat/v1" # # # Create a client object. The client can be reused for multiple calls. # client = Google::Apps::Chat::V1::ChatService::Client.new # # # Create a request. To set request fields, pass in keyword arguments. # request = Google::Apps::Chat::V1::GetThreadReadStateRequest.new # # # Call the get_thread_read_state method. # result = client.get_thread_read_state request # # # The returned object is of type Google::Apps::Chat::V1::ThreadReadState. # p result # def get_thread_read_state request, options = nil raise ::ArgumentError, "request must be provided" if request.nil? request = ::Gapic::Protobuf.coerce request, to: ::Google::Apps::Chat::V1::GetThreadReadStateRequest # 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_thread_read_state.metadata.to_h # Set x-goog-api-client, x-goog-user-project and x-goog-api-version 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::Apps::Chat::V1::VERSION metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id header_params = {} if request.name header_params["name"] = request.name end 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_thread_read_state.timeout, metadata: metadata, retry_policy: @config.rpcs.get_thread_read_state.retry_policy options.apply_defaults timeout: @config.timeout, metadata: @config.metadata, retry_policy: @config.retry_policy @chat_service_stub.call_rpc :get_thread_read_state, 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 ## # Configuration class for the ChatService API. # # This class represents the configuration for ChatService, # providing control over timeouts, retry behavior, logging, transport # parameters, and other low-level controls. Certain parameters can also be # applied individually to specific RPCs. See # {::Google::Apps::Chat::V1::ChatService::Client::Configuration::Rpcs} # for a list of RPCs that can be configured independently. # # Configuration can be applied globally to all clients, or to a single client # on construction. # # @example # # # Modify the global config, setting the timeout for # # create_message to 20 seconds, # # and all remaining timeouts to 10 seconds. # ::Google::Apps::Chat::V1::ChatService::Client.configure do |config| # config.timeout = 10.0 # config.rpcs.create_message.timeout = 20.0 # end # # # Apply the above configuration only to a new client. # client = ::Google::Apps::Chat::V1::ChatService::Client.new do |config| # config.timeout = 10.0 # config.rpcs.create_message.timeout = 20.0 # end # # @!attribute [rw] endpoint # A custom service endpoint, as a hostname or hostname:port. The default is # nil, indicating to use the default endpoint in the current universe domain. # @return [::String,nil] # @!attribute [rw] credentials # Credentials to send with calls. You may provide any of the following types: # * (`String`) The path to a service account key file in JSON format # * (`Hash`) A service account key as a Hash # * (`Google::Auth::Credentials`) A googleauth credentials object # (see the [googleauth docs](https://rubydoc.info/gems/googleauth/Google/Auth/Credentials)) # * (`Signet::OAuth2::Client`) A signet oauth2 client object # (see the [signet docs](https://rubydoc.info/gems/signet/Signet/OAuth2/Client)) # * (`GRPC::Core::Channel`) a gRPC channel with included credentials # * (`GRPC::Core::ChannelCredentials`) a gRPC credentails object # * (`nil`) indicating no credentials # @return [::Object] # @!attribute [rw] scope # The OAuth scopes # @return [::Array<::String>] # @!attribute [rw] lib_name # The library name as recorded in instrumentation and logging # @return [::String] # @!attribute [rw] lib_version # The library version as recorded in instrumentation and logging # @return [::String] # @!attribute [rw] channel_args # Extra parameters passed to the gRPC channel. Note: this is ignored if a # `GRPC::Core::Channel` object is provided as the credential. # @return [::Hash] # @!attribute [rw] interceptors # An array of interceptors that are run before calls are executed. # @return [::Array<::GRPC::ClientInterceptor>] # @!attribute [rw] timeout # The call timeout in seconds. # @return [::Numeric] # @!attribute [rw] metadata # Additional gRPC headers to be sent with the call. # @return [::Hash{::Symbol=>::String}] # @!attribute [rw] retry_policy # 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 [::Hash] # @!attribute [rw] quota_project # A separate project against which to charge quota. # @return [::String] # @!attribute [rw] universe_domain # The universe domain within which to make requests. This determines the # default endpoint URL. The default value of nil uses the environment # universe (usually the default "googleapis.com" universe). # @return [::String,nil] # class Configuration extend ::Gapic::Config # @private # The endpoint specific to the default "googleapis.com" universe. Deprecated. DEFAULT_ENDPOINT = "chat.googleapis.com" config_attr :endpoint, nil, ::String, nil config_attr :credentials, nil do |value| allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Signet::OAuth2::Client, nil] allowed += [::GRPC::Core::Channel, ::GRPC::Core::ChannelCredentials] if defined? ::GRPC allowed.any? { |klass| klass === value } end config_attr :scope, nil, ::String, ::Array, nil config_attr :lib_name, nil, ::String, nil config_attr :lib_version, nil, ::String, nil config_attr(:channel_args, { "grpc.service_config_disable_resolution" => 1 }, ::Hash, nil) config_attr :interceptors, nil, ::Array, nil config_attr :timeout, nil, ::Numeric, nil config_attr :metadata, nil, ::Hash, nil config_attr :retry_policy, nil, ::Hash, ::Proc, nil config_attr :quota_project, nil, ::String, nil config_attr :universe_domain, nil, ::String, nil # @private def initialize parent_config = nil @parent_config = parent_config unless parent_config.nil? yield self if block_given? end ## # Configurations for individual RPCs # @return [Rpcs] # def rpcs @rpcs ||= begin parent_rpcs = nil parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config.respond_to?(:rpcs) Rpcs.new parent_rpcs end end ## # Configuration for the channel pool # @return [::Gapic::ServiceStub::ChannelPool::Configuration] # def channel_pool @channel_pool ||= ::Gapic::ServiceStub::ChannelPool::Configuration.new end ## # Configuration RPC class for the ChatService API. # # Includes fields providing the configuration for each RPC in this service. # Each configuration object is of type `Gapic::Config::Method` and includes # the following configuration fields: # # * `timeout` (*type:* `Numeric`) - The call timeout in seconds # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional gRPC headers # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields # include 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. # class Rpcs ## # RPC-specific configuration for `create_message` # @return [::Gapic::Config::Method] # attr_reader :create_message ## # RPC-specific configuration for `list_messages` # @return [::Gapic::Config::Method] # attr_reader :list_messages ## # RPC-specific configuration for `list_memberships` # @return [::Gapic::Config::Method] # attr_reader :list_memberships ## # RPC-specific configuration for `get_membership` # @return [::Gapic::Config::Method] # attr_reader :get_membership ## # RPC-specific configuration for `get_message` # @return [::Gapic::Config::Method] # attr_reader :get_message ## # RPC-specific configuration for `update_message` # @return [::Gapic::Config::Method] # attr_reader :update_message ## # RPC-specific configuration for `delete_message` # @return [::Gapic::Config::Method] # attr_reader :delete_message ## # RPC-specific configuration for `get_attachment` # @return [::Gapic::Config::Method] # attr_reader :get_attachment ## # RPC-specific configuration for `upload_attachment` # @return [::Gapic::Config::Method] # attr_reader :upload_attachment ## # RPC-specific configuration for `list_spaces` # @return [::Gapic::Config::Method] # attr_reader :list_spaces ## # RPC-specific configuration for `get_space` # @return [::Gapic::Config::Method] # attr_reader :get_space ## # RPC-specific configuration for `create_space` # @return [::Gapic::Config::Method] # attr_reader :create_space ## # RPC-specific configuration for `set_up_space` # @return [::Gapic::Config::Method] # attr_reader :set_up_space ## # RPC-specific configuration for `update_space` # @return [::Gapic::Config::Method] # attr_reader :update_space ## # RPC-specific configuration for `delete_space` # @return [::Gapic::Config::Method] # attr_reader :delete_space ## # RPC-specific configuration for `complete_import_space` # @return [::Gapic::Config::Method] # attr_reader :complete_import_space ## # RPC-specific configuration for `find_direct_message` # @return [::Gapic::Config::Method] # attr_reader :find_direct_message ## # RPC-specific configuration for `create_membership` # @return [::Gapic::Config::Method] # attr_reader :create_membership ## # RPC-specific configuration for `update_membership` # @return [::Gapic::Config::Method] # attr_reader :update_membership ## # RPC-specific configuration for `delete_membership` # @return [::Gapic::Config::Method] # attr_reader :delete_membership ## # RPC-specific configuration for `create_reaction` # @return [::Gapic::Config::Method] # attr_reader :create_reaction ## # RPC-specific configuration for `list_reactions` # @return [::Gapic::Config::Method] # attr_reader :list_reactions ## # RPC-specific configuration for `delete_reaction` # @return [::Gapic::Config::Method] # attr_reader :delete_reaction ## # RPC-specific configuration for `get_space_read_state` # @return [::Gapic::Config::Method] # attr_reader :get_space_read_state ## # RPC-specific configuration for `update_space_read_state` # @return [::Gapic::Config::Method] # attr_reader :update_space_read_state ## # RPC-specific configuration for `get_thread_read_state` # @return [::Gapic::Config::Method] # attr_reader :get_thread_read_state # @private def initialize parent_rpcs = nil create_message_config = parent_rpcs.create_message if parent_rpcs.respond_to? :create_message @create_message = ::Gapic::Config::Method.new create_message_config list_messages_config = parent_rpcs.list_messages if parent_rpcs.respond_to? :list_messages @list_messages = ::Gapic::Config::Method.new list_messages_config list_memberships_config = parent_rpcs.list_memberships if parent_rpcs.respond_to? :list_memberships @list_memberships = ::Gapic::Config::Method.new list_memberships_config get_membership_config = parent_rpcs.get_membership if parent_rpcs.respond_to? :get_membership @get_membership = ::Gapic::Config::Method.new get_membership_config get_message_config = parent_rpcs.get_message if parent_rpcs.respond_to? :get_message @get_message = ::Gapic::Config::Method.new get_message_config update_message_config = parent_rpcs.update_message if parent_rpcs.respond_to? :update_message @update_message = ::Gapic::Config::Method.new update_message_config delete_message_config = parent_rpcs.delete_message if parent_rpcs.respond_to? :delete_message @delete_message = ::Gapic::Config::Method.new delete_message_config get_attachment_config = parent_rpcs.get_attachment if parent_rpcs.respond_to? :get_attachment @get_attachment = ::Gapic::Config::Method.new get_attachment_config upload_attachment_config = parent_rpcs.upload_attachment if parent_rpcs.respond_to? :upload_attachment @upload_attachment = ::Gapic::Config::Method.new upload_attachment_config list_spaces_config = parent_rpcs.list_spaces if parent_rpcs.respond_to? :list_spaces @list_spaces = ::Gapic::Config::Method.new list_spaces_config get_space_config = parent_rpcs.get_space if parent_rpcs.respond_to? :get_space @get_space = ::Gapic::Config::Method.new get_space_config create_space_config = parent_rpcs.create_space if parent_rpcs.respond_to? :create_space @create_space = ::Gapic::Config::Method.new create_space_config set_up_space_config = parent_rpcs.set_up_space if parent_rpcs.respond_to? :set_up_space @set_up_space = ::Gapic::Config::Method.new set_up_space_config update_space_config = parent_rpcs.update_space if parent_rpcs.respond_to? :update_space @update_space = ::Gapic::Config::Method.new update_space_config delete_space_config = parent_rpcs.delete_space if parent_rpcs.respond_to? :delete_space @delete_space = ::Gapic::Config::Method.new delete_space_config complete_import_space_config = parent_rpcs.complete_import_space if parent_rpcs.respond_to? :complete_import_space @complete_import_space = ::Gapic::Config::Method.new complete_import_space_config find_direct_message_config = parent_rpcs.find_direct_message if parent_rpcs.respond_to? :find_direct_message @find_direct_message = ::Gapic::Config::Method.new find_direct_message_config create_membership_config = parent_rpcs.create_membership if parent_rpcs.respond_to? :create_membership @create_membership = ::Gapic::Config::Method.new create_membership_config update_membership_config = parent_rpcs.update_membership if parent_rpcs.respond_to? :update_membership @update_membership = ::Gapic::Config::Method.new update_membership_config delete_membership_config = parent_rpcs.delete_membership if parent_rpcs.respond_to? :delete_membership @delete_membership = ::Gapic::Config::Method.new delete_membership_config create_reaction_config = parent_rpcs.create_reaction if parent_rpcs.respond_to? :create_reaction @create_reaction = ::Gapic::Config::Method.new create_reaction_config list_reactions_config = parent_rpcs.list_reactions if parent_rpcs.respond_to? :list_reactions @list_reactions = ::Gapic::Config::Method.new list_reactions_config delete_reaction_config = parent_rpcs.delete_reaction if parent_rpcs.respond_to? :delete_reaction @delete_reaction = ::Gapic::Config::Method.new delete_reaction_config get_space_read_state_config = parent_rpcs.get_space_read_state if parent_rpcs.respond_to? :get_space_read_state @get_space_read_state = ::Gapic::Config::Method.new get_space_read_state_config update_space_read_state_config = parent_rpcs.update_space_read_state if parent_rpcs.respond_to? :update_space_read_state @update_space_read_state = ::Gapic::Config::Method.new update_space_read_state_config get_thread_read_state_config = parent_rpcs.get_thread_read_state if parent_rpcs.respond_to? :get_thread_read_state @get_thread_read_state = ::Gapic::Config::Method.new get_thread_read_state_config yield self if block_given? end end end end end end end end end