google-apps-chat-v1 0.27.0 → 0.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +0 -1
  3. data/lib/google/apps/chat/v1/chat_service/client.rb +774 -48
  4. data/lib/google/apps/chat/v1/chat_service/credentials.rb +6 -1
  5. data/lib/google/apps/chat/v1/chat_service/paths.rb +18 -1
  6. data/lib/google/apps/chat/v1/chat_service/rest/client.rb +746 -48
  7. data/lib/google/apps/chat/v1/chat_service/rest/service_stub.rb +247 -1
  8. data/lib/google/apps/chat/v1/chat_service/rest.rb +1 -1
  9. data/lib/google/apps/chat/v1/chat_service.rb +1 -1
  10. data/lib/google/apps/chat/v1/rest.rb +1 -1
  11. data/lib/google/apps/chat/v1/version.rb +1 -1
  12. data/lib/google/apps/chat/v1.rb +1 -1
  13. data/lib/google/chat/v1/app_command_metadata_pb.rb +22 -0
  14. data/lib/google/chat/v1/chat_service_pb.rb +2 -1
  15. data/lib/google/chat/v1/chat_service_services_pb.rb +81 -8
  16. data/lib/google/chat/v1/markup_syntax_pb.rb +21 -0
  17. data/lib/google/chat/v1/message_pb.rb +7 -1
  18. data/lib/google/chat/v1/message_pin_pb.rb +28 -0
  19. data/lib/google/chat/v1/space_pb.rb +2 -1
  20. data/lib/google-apps-chat-v1.rb +1 -1
  21. data/proto_docs/google/api/client.rb +1 -1
  22. data/proto_docs/google/api/field_behavior.rb +1 -1
  23. data/proto_docs/google/api/field_info.rb +1 -1
  24. data/proto_docs/google/api/launch_stage.rb +1 -1
  25. data/proto_docs/google/api/resource.rb +1 -1
  26. data/proto_docs/google/apps/card/v1/card.rb +2 -2
  27. data/proto_docs/google/chat/v1/action_status.rb +1 -1
  28. data/proto_docs/google/chat/v1/annotation.rb +6 -6
  29. data/proto_docs/google/chat/v1/app_command_metadata.rb +57 -0
  30. data/proto_docs/google/chat/v1/attachment.rb +1 -1
  31. data/proto_docs/google/chat/v1/contextual_addon.rb +1 -1
  32. data/proto_docs/google/chat/v1/deletion_metadata.rb +1 -1
  33. data/proto_docs/google/chat/v1/event_payload.rb +1 -1
  34. data/proto_docs/google/chat/v1/group.rb +1 -1
  35. data/proto_docs/google/chat/v1/history_state.rb +1 -1
  36. data/proto_docs/google/chat/v1/markup_syntax.rb +47 -0
  37. data/proto_docs/google/chat/v1/matched_url.rb +1 -1
  38. data/proto_docs/google/chat/v1/membership.rb +1 -1
  39. data/proto_docs/google/chat/v1/message.rb +300 -15
  40. data/proto_docs/google/chat/v1/message_pin.rb +106 -0
  41. data/proto_docs/google/chat/v1/reaction.rb +13 -13
  42. data/proto_docs/google/chat/v1/slash_command.rb +1 -1
  43. data/proto_docs/google/chat/v1/space.rb +125 -25
  44. data/proto_docs/google/chat/v1/space_event.rb +1 -1
  45. data/proto_docs/google/chat/v1/space_notification_setting.rb +4 -4
  46. data/proto_docs/google/chat/v1/space_read_state.rb +1 -1
  47. data/proto_docs/google/chat/v1/space_setup.rb +19 -7
  48. data/proto_docs/google/chat/v1/thread_read_state.rb +1 -1
  49. data/proto_docs/google/chat/v1/user.rb +1 -1
  50. data/proto_docs/google/chat/v1/widgets.rb +1 -1
  51. data/proto_docs/google/protobuf/duration.rb +1 -1
  52. data/proto_docs/google/protobuf/empty.rb +1 -1
  53. data/proto_docs/google/protobuf/field_mask.rb +1 -1
  54. data/proto_docs/google/protobuf/timestamp.rb +8 -7
  55. data/proto_docs/google/protobuf/wrappers.rb +1 -1
  56. data/proto_docs/google/rpc/code.rb +1 -1
  57. data/proto_docs/google/type/color.rb +1 -1
  58. metadata +7 -1
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright 2024 Google LLC
3
+ # Copyright 2026 Google LLC
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
6
6
  # you may not use this file except in compliance with the License.
@@ -106,6 +106,11 @@ module Google
106
106
  initial_delay: 1.0, max_delay: 10.0, multiplier: 1.3, retry_codes: [14]
107
107
  }
108
108
 
109
+ default_config.rpcs.search_messages.timeout = 30.0
110
+ default_config.rpcs.search_messages.retry_policy = {
111
+ initial_delay: 1.0, max_delay: 10.0, multiplier: 1.3, retry_codes: [14]
112
+ }
113
+
109
114
  default_config.rpcs.get_attachment.timeout = 30.0
110
115
  default_config.rpcs.get_attachment.retry_policy = {
111
116
  initial_delay: 1.0, max_delay: 10.0, multiplier: 1.3, retry_codes: [14]
@@ -500,9 +505,24 @@ module Google
500
505
  # reply to a message
501
506
  # thread](https://developers.google.com/workspace/chat/create-messages#create-message-thread).
502
507
  # @param request_id [::String]
503
- # Optional. A unique request ID for this message. Specifying an existing
504
- # request ID returns the message created with that ID instead of creating a
505
- # new message.
508
+ # Optional. A unique ID for this request. A random UUID is recommended.
509
+ # Specifying a request ID makes the request idempotent, which ensures that
510
+ # multiple identical requests with the same request ID result in only a
511
+ # single message being created. Subsequent requests with the same request
512
+ # ID return the existing message and do not update the message, even if the
513
+ # requested details differ from the current state.
514
+ #
515
+ # To use this field effectively:
516
+ #
517
+ # - Ensure that subsequent requests are identical and use the same
518
+ # authentication credentials as the original request.
519
+ # - If a message was already created with the provided request ID, the
520
+ # request returns that message. Note that the returned message might not be
521
+ # fully populated; the API echoes the message in your request with the
522
+ # system-assigned resource names populated. To retrieve the latest metadata
523
+ # for the message, call `GetMessage`.
524
+ # - Reusing an existing request ID with a different authenticated user
525
+ # results in an error.
506
526
  # @param message_reply_option [::Google::Apps::Chat::V1::CreateMessageRequest::MessageReplyOption]
507
527
  # Optional. Specifies whether a message starts a thread or replies to one.
508
528
  # Only supported in named spaces.
@@ -637,7 +657,7 @@ module Google
637
657
  # @param options [::Gapic::CallOptions, ::Hash]
638
658
  # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
639
659
  #
640
- # @overload list_messages(parent: nil, page_size: nil, page_token: nil, filter: nil, order_by: nil, show_deleted: nil)
660
+ # @overload list_messages(parent: nil, page_size: nil, page_token: nil, filter: nil, order_by: nil, show_deleted: nil, markup_syntax: nil)
641
661
  # Pass arguments to `list_messages` via keyword arguments. Note that at
642
662
  # least one keyword argument is required. To specify no parameters, or to keep all
643
663
  # the default parameter values, pass an empty Hash as a request object (see above).
@@ -714,6 +734,9 @@ module Google
714
734
  # Optional. Whether to include deleted messages. Deleted messages include
715
735
  # deleted time and metadata about their deletion, but message content is
716
736
  # unavailable.
737
+ # @param markup_syntax [::Google::Apps::Chat::V1::MarkupSyntax]
738
+ # Optional. Specifies the desired output syntax for the Chat message
739
+ # `formatted_text` field.
717
740
  #
718
741
  # @yield [response, operation] Access the result along with the RPC operation
719
742
  # @yieldparam response [::Gapic::PagedEnumerable<::Google::Apps::Chat::V1::Message>]
@@ -1168,7 +1191,7 @@ module Google
1168
1191
  # @param options [::Gapic::CallOptions, ::Hash]
1169
1192
  # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
1170
1193
  #
1171
- # @overload get_message(name: nil)
1194
+ # @overload get_message(name: nil, markup_syntax: nil)
1172
1195
  # Pass arguments to `get_message` via keyword arguments. Note that at
1173
1196
  # least one keyword argument is required. To specify no parameters, or to keep all
1174
1197
  # the default parameter values, pass an empty Hash as a request object (see above).
@@ -1182,6 +1205,9 @@ module Google
1182
1205
  # `clientAssignedMessageId` field for `{message}`. For details, see [Name a
1183
1206
  # message]
1184
1207
  # (https://developers.google.com/workspace/chat/create-messages#name_a_created_message).
1208
+ # @param markup_syntax [::Google::Apps::Chat::V1::MarkupSyntax]
1209
+ # Optional. Specifies the desired output syntax for the Chat message
1210
+ # `formatted_text` field.
1185
1211
  #
1186
1212
  # @yield [response, operation] Access the result along with the RPC operation
1187
1213
  # @yieldparam response [::Google::Apps::Chat::V1::Message]
@@ -1500,6 +1526,295 @@ module Google
1500
1526
  raise ::Google::Cloud::Error.from_error(e)
1501
1527
  end
1502
1528
 
1529
+ ##
1530
+ # Searches for messages in Google Chat that the calling user has access to.
1531
+ # Returns a list of messages matching the search criteria.
1532
+ #
1533
+ # To search across all spaces the user has access to, set `parent` to
1534
+ # `spaces/-`. Using any other value for `parent` results in an
1535
+ # `INVALID_ARGUMENT` error. The returned messages have their `name` field
1536
+ # populated with the full resource name, which includes the specific `space`
1537
+ # in which the message resides.
1538
+ #
1539
+ # This API doesn't return all message types. The types of messages listed
1540
+ # below aren't included in the response. Use
1541
+ # {::Google::Apps::Chat::V1::ChatService::Client#list_messages ListMessages} to list all
1542
+ # messages.
1543
+ #
1544
+ # - Private Messages that are visible to the authenticated user.
1545
+ # - Messages posted by Chat apps in spaces or group chats.
1546
+ # - Messages in a Chat app DM.
1547
+ # - Messages from blocked users.
1548
+ # - Messages in spaces that the caller has muted.
1549
+ #
1550
+ # Requires [user
1551
+ # authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user)
1552
+ # with one of the following [authorization
1553
+ # scopes](https://developers.google.com/workspace/chat/authenticate-authorize#chat-api-scopes):
1554
+ #
1555
+ # - `https://www.googleapis.com/auth/chat.messages.readonly`
1556
+ # - `https://www.googleapis.com/auth/chat.messages`
1557
+ #
1558
+ # @overload search_messages(request, options = nil)
1559
+ # Pass arguments to `search_messages` via a request object, either of type
1560
+ # {::Google::Apps::Chat::V1::SearchMessagesRequest} or an equivalent Hash.
1561
+ #
1562
+ # @param request [::Google::Apps::Chat::V1::SearchMessagesRequest, ::Hash]
1563
+ # A request object representing the call parameters. Required. To specify no
1564
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
1565
+ # @param options [::Gapic::CallOptions, ::Hash]
1566
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
1567
+ #
1568
+ # @overload search_messages(parent: nil, filter: nil, page_size: nil, page_token: nil, order_by: nil, markup_syntax: nil, view: nil)
1569
+ # Pass arguments to `search_messages` via keyword arguments. Note that at
1570
+ # least one keyword argument is required. To specify no parameters, or to keep all
1571
+ # the default parameter values, pass an empty Hash as a request object (see above).
1572
+ #
1573
+ # @param parent [::String]
1574
+ # Required. The resource name of the space to search within.
1575
+ #
1576
+ # To search across all spaces the user has access to, set this field to
1577
+ # `spaces/-`. Using any other value for `parent` results in an
1578
+ # `INVALID_ARGUMENT` error.
1579
+ #
1580
+ # To limit the search to one or more spaces, use `space.name` or
1581
+ # `space.display_name` in the `filter`.
1582
+ # @param filter [::String]
1583
+ # Required. A search query.
1584
+ #
1585
+ # The query can specify one or more search keywords, which are used to filter
1586
+ # the results,
1587
+ #
1588
+ # You can also filter the results using the following message fields:
1589
+ #
1590
+ # - `create_time`: Accepts a timestamp in
1591
+ # [RFC-3339](https://www.rfc-editor.org/rfc/rfc3339) format and the
1592
+ # supported comparison operators are: `<` and `>=`.
1593
+ # - `sender.name`: The resource name of the sender (`users/{user}`). Only
1594
+ # supports `=`. You can use the e-mail as an alias for `{user}`. For
1595
+ # example, `users/example@gmail.com`, where `example@gmail.com` is the
1596
+ # e-mail of the Google Chat user.
1597
+ # - `space.name`: The resource name of the space where the message is posted.
1598
+ # (`spaces/{space}`). Only supports `=`. If this filter is not set, the
1599
+ # search is performed across all direct messages and spaces the user has
1600
+ # access to as a space member.
1601
+ # - `space.display_name`: Supports the operator `:` (has) and filters spaces
1602
+ # based on a partial match of their display name. Results are limited to
1603
+ # the top five space matches. For example, `space.display_name:Project`
1604
+ # searches for messages in the top five spaces that contain the word
1605
+ # "Project" in their display names.
1606
+ # - `space.space_type`: The type of the space. Only supports `=`. For
1607
+ # example, `space.space_type="DIRECT_MESSAGE"` returns only messages from
1608
+ # direct messages. The possible values are `DIRECT_MESSAGE`, `GROUP_CHAT`,
1609
+ # and `SPACE`.
1610
+ # - `attachment`: Supports the operator `:*` (has any) to check for the
1611
+ # presence of attachments. If `attachment:*` is specified, only messages
1612
+ # that have at least one attachment are returned.
1613
+ # - `annotations.user_mentions.user.name`: The resource name of the mentioned
1614
+ # user (`users/{user}`). Only supports `:` (has). For example:
1615
+ # `annotations.user_mentions.user.name:"users/1234567890"` returns only
1616
+ # messages that contain a mention to the specified user. Alternatively, the
1617
+ # alias `me` can be used to filter for messages that mention the caller
1618
+ # user, for example: `annotations.user_mentions.user.name:users/me`. You
1619
+ # can also use the e-mail as an alias for `{user}`, for example,
1620
+ # `users/example@gmail.com`.
1621
+ #
1622
+ # For advanced filtering, the following functions are also available:
1623
+ #
1624
+ # - `has_link()`: Returns only messages that have at least one hyperlink in
1625
+ # the message text.
1626
+ # - `is_unread()`: Filters out messages that have been read by the calling
1627
+ # user.
1628
+ #
1629
+ # Using the `space.display_name` or the `space.space_type` filters requires
1630
+ # that the calling credentials include one of the following [authorization
1631
+ # scopes](https://developers.google.com/workspace/chat/authenticate-authorize#chat-api-scopes):
1632
+ #
1633
+ # - `https://www.googleapis.com/auth/chat.spaces.readonly`
1634
+ # - `https://www.googleapis.com/auth/chat.spaces`
1635
+ #
1636
+ # Using the `is_unread()` filter requires that the calling credentials
1637
+ # include one of the following [authorization
1638
+ # scopes](https://developers.google.com/workspace/chat/authenticate-authorize#chat-api-scopes):
1639
+ #
1640
+ # - `https://www.googleapis.com/auth/chat.users.readstate.readonly`
1641
+ # - `https://www.googleapis.com/auth/chat.users.readstate`
1642
+ #
1643
+ #
1644
+ # Across different fields, only `AND` operators are supported. A valid
1645
+ # example is `sender.name = "users/1234567890" AND is_unread()`. The word
1646
+ # `AND` is optional and is implied if omitted. For example, `sender.name =
1647
+ # "users/1234567890" is_unread()` is valid and is equivalent to the previous
1648
+ # example. An invalid example is `sender.name = "users/1234567890" OR
1649
+ # is_unread()` because `OR` is not supported between different fields.
1650
+ #
1651
+ # Among the same field:
1652
+ #
1653
+ # - `create_time` supports only `AND`, and can only be used to represent
1654
+ # an interval, such as `create_time >= "2022-01-01T00:00:00+00:00" AND
1655
+ # create_time < "2023-01-01T00:00:00+00:00"`.
1656
+ # - `sender.name` supports only the `OR` operator, for example:
1657
+ # `sender.name = "users/1234567890" OR sender.name = "users/0987654321"`.
1658
+ # - `space.name` supports only the `OR` operator, for example:
1659
+ # `space.name = "spaces/ABCDEFGH" OR space.name = "spaces/QWERTYUI"`.
1660
+ # - `space.display_name` supports the operators `AND` and `OR`, but not a
1661
+ # mix of both. For example:
1662
+ # `space.display_name:Project AND space.display_name:Tasks` returns
1663
+ # messages that are in spaces with display names containing both `Project`
1664
+ # and `Tasks`, whereas
1665
+ # `space.display_name:Project OR space.display_name:Tasks` returns messages
1666
+ # that are in spaces with display names containing either `Project` or
1667
+ # `Tasks` or both.
1668
+ # - `space.space_type` supports only the `OR` operator, for example:
1669
+ # `space.space_type = "DIRECT_MESSAGE" OR space.space_type = "GROUP_CHAT"`.
1670
+ # - `annotations.user_mentions.user.name` supports the operators `AND` and
1671
+ # `OR`, but not a mix of both. For example:
1672
+ # `annotations.user_mentions.user.name:"users/1234567890" AND
1673
+ # annotations.user_mentions.user.name:"users/0987654321"` returns only
1674
+ # messages that mentions both users, whereas
1675
+ # `annotations.user_mentions.user.name:"users/1234567890" OR
1676
+ # annotations.user_mentions.user.name:"users/0987654321"` returns messages
1677
+ # that mention either user or both.
1678
+ #
1679
+ # Parentheses are required to disambiguate operator precedence when combining
1680
+ # `AND` and `OR` operators in the same query. For example:
1681
+ # `(sender.name="users/me" OR sender.name="users/123456") AND is_unread()`.
1682
+ # Otherwise, parentheses are optional.
1683
+ #
1684
+ # The following example queries are valid:
1685
+ #
1686
+ # ```
1687
+ # "Pending reports" AND create_time >= "2023-01-01T00:00:00Z"
1688
+ #
1689
+ # sender.name = "users/example@gmail.com"
1690
+ #
1691
+ # annotations.user_mentions.user.name:"users/0987654321"
1692
+ #
1693
+ # attachment:* AND space.name = "spaces/ABCDEFGH"
1694
+ #
1695
+ # tasks AND is_unread() AND sender.name = "users/1234567890"
1696
+ #
1697
+ # "things to do" "urgent"
1698
+ #
1699
+ # (sender.name = "users/1234567890")
1700
+ # AND (create_time < "2023-05-01T00:00:00Z")
1701
+ #
1702
+ # tasks AND space.name = "spaces/ABCDEFGH" AND has_link()
1703
+ #
1704
+ # "project one" is_unread()
1705
+ #
1706
+ # space.display_name:Project tasks
1707
+ # ```
1708
+ #
1709
+ # The maximum query length is 1,000 characters.
1710
+ #
1711
+ # Invalid queries are rejected by the server with an `INVALID_ARGUMENT`
1712
+ # error.
1713
+ # @param page_size [::Integer]
1714
+ # Optional. The maximum number of results to return. The service may return
1715
+ # fewer than this value.
1716
+ #
1717
+ # If unspecified, at most 25 are returned.
1718
+ #
1719
+ # The maximum value is 100. If you use a value more than 100, it's
1720
+ # automatically changed to 100.
1721
+ # @param page_token [::String]
1722
+ # Optional. A token, received from the previous search messages call. Provide
1723
+ # this parameter to retrieve the subsequent page.
1724
+ #
1725
+ # When paginating, all other parameters provided should match the call that
1726
+ # provided the page token. Passing different values to the other parameters
1727
+ # might lead to unexpected results.
1728
+ # @param order_by [::String]
1729
+ # Optional. How the results list is ordered.
1730
+ #
1731
+ # Supported attributes to order by are:
1732
+ #
1733
+ # - `create_time`: Sorts the results by the time of the message creation.
1734
+ # Default value.
1735
+ # - `relevance`: Sorts the results by relevance.
1736
+ # [Developer Preview](https://developers.google.com/workspace/preview).
1737
+ #
1738
+ # The default ordering is `create_time desc`. Only a single order per query
1739
+ # (`create_time` or `relevance`) is supported. Only descending order (`desc`)
1740
+ # is supported, and it must be specified after the order attribute.
1741
+ # @param markup_syntax [::Google::Apps::Chat::V1::MarkupSyntax]
1742
+ # Optional. Specifies the desired output syntax for the Chat message
1743
+ # `formatted_text` field.
1744
+ # @param view [::Google::Apps::Chat::V1::SearchMessagesRequest::SearchMessagesView]
1745
+ # Optional. Specifies what kind of search results view to return. The default
1746
+ # is `SEARCH_MESSAGES_VIEW_BASIC`.
1747
+ #
1748
+ # @yield [response, operation] Access the result along with the RPC operation
1749
+ # @yieldparam response [::Gapic::PagedEnumerable<::Google::Apps::Chat::V1::SearchMessageResult>]
1750
+ # @yieldparam operation [::GRPC::ActiveCall::Operation]
1751
+ #
1752
+ # @return [::Gapic::PagedEnumerable<::Google::Apps::Chat::V1::SearchMessageResult>]
1753
+ #
1754
+ # @raise [::Google::Cloud::Error] if the RPC is aborted.
1755
+ #
1756
+ # @example Basic example
1757
+ # require "google/apps/chat/v1"
1758
+ #
1759
+ # # Create a client object. The client can be reused for multiple calls.
1760
+ # client = Google::Apps::Chat::V1::ChatService::Client.new
1761
+ #
1762
+ # # Create a request. To set request fields, pass in keyword arguments.
1763
+ # request = Google::Apps::Chat::V1::SearchMessagesRequest.new
1764
+ #
1765
+ # # Call the search_messages method.
1766
+ # result = client.search_messages request
1767
+ #
1768
+ # # The returned object is of type Gapic::PagedEnumerable. You can iterate
1769
+ # # over elements, and API calls will be issued to fetch pages as needed.
1770
+ # result.each do |item|
1771
+ # # Each element is of type ::Google::Apps::Chat::V1::SearchMessageResult.
1772
+ # p item
1773
+ # end
1774
+ #
1775
+ def search_messages request, options = nil
1776
+ raise ::ArgumentError, "request must be provided" if request.nil?
1777
+
1778
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Apps::Chat::V1::SearchMessagesRequest
1779
+
1780
+ # Converts hash and nil to an options object
1781
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
1782
+
1783
+ # Customize the options with defaults
1784
+ metadata = @config.rpcs.search_messages.metadata.to_h
1785
+
1786
+ # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers
1787
+ metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
1788
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
1789
+ gapic_version: ::Google::Apps::Chat::V1::VERSION
1790
+ metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty?
1791
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
1792
+
1793
+ header_params = {}
1794
+ if request.parent
1795
+ header_params["parent"] = request.parent
1796
+ end
1797
+
1798
+ request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
1799
+ metadata[:"x-goog-request-params"] ||= request_params_header
1800
+
1801
+ options.apply_defaults timeout: @config.rpcs.search_messages.timeout,
1802
+ metadata: metadata,
1803
+ retry_policy: @config.rpcs.search_messages.retry_policy
1804
+
1805
+ options.apply_defaults timeout: @config.timeout,
1806
+ metadata: @config.metadata,
1807
+ retry_policy: @config.retry_policy
1808
+
1809
+ @chat_service_stub.call_rpc :search_messages, request, options: options do |response, operation|
1810
+ response = ::Gapic::PagedEnumerable.new @chat_service_stub, :search_messages, request, response, operation, options
1811
+ yield response, operation if block_given?
1812
+ throw :response, response
1813
+ end
1814
+ rescue ::GRPC::BadStatus => e
1815
+ raise ::Google::Cloud::Error.from_error(e)
1816
+ end
1817
+
1503
1818
  ##
1504
1819
  # Gets the metadata of a message attachment. The attachment data is fetched
1505
1820
  # using the [media
@@ -1840,19 +2155,30 @@ module Google
1840
2155
  end
1841
2156
 
1842
2157
  ##
1843
- # Returns a list of spaces in a Google Workspace organization based on an
1844
- # administrator's search. In the request, set `use_admin_access` to `true`.
1845
- # For an example, see [Search for and manage
2158
+ # Returns a list of spaces in a Google Workspace organization. For an
2159
+ # example, see [Search for and manage
1846
2160
  # spaces](https://developers.google.com/workspace/chat/search-manage-admin).
1847
2161
  #
1848
- # Requires [user
2162
+ # When `use_admin_access` is set to `false`, the results are limited to
2163
+ # spaces where the calling user is a joined member. To search with
2164
+ # administrator privileges, set `use_admin_access` to `true`.
2165
+ #
2166
+ # Supports the following types of
2167
+ # [authentication](https://developers.google.com/workspace/chat/authenticate-authorize):
2168
+ #
2169
+ # - [User
2170
+ # authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user)
2171
+ # with one of the following authorization scopes:
2172
+ # - `https://www.googleapis.com/auth/chat.spaces.readonly`
2173
+ # - `https://www.googleapis.com/auth/chat.spaces`
2174
+ #
2175
+ # - [User
1849
2176
  # authentication with administrator
1850
2177
  # privileges](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user#admin-privileges)
1851
2178
  # and one of the following [authorization
1852
2179
  # scopes](https://developers.google.com/workspace/chat/authenticate-authorize#chat-api-scopes):
1853
- #
1854
- # - `https://www.googleapis.com/auth/chat.admin.spaces.readonly`
1855
- # - `https://www.googleapis.com/auth/chat.admin.spaces`
2180
+ # - `https://www.googleapis.com/auth/chat.admin.spaces.readonly`
2181
+ # - `https://www.googleapis.com/auth/chat.admin.spaces`
1856
2182
  #
1857
2183
  # @overload search_spaces(request, options = nil)
1858
2184
  # Pass arguments to `search_spaces` via a request object, either of type
@@ -1880,17 +2206,15 @@ module Google
1880
2206
  # Requires either the `chat.admin.spaces.readonly` or `chat.admin.spaces`
1881
2207
  # [OAuth 2.0
1882
2208
  # scope](https://developers.google.com/workspace/chat/authenticate-authorize#chat-api-scopes).
1883
- #
1884
- # This method currently only supports admin access, thus only `true` is
1885
- # accepted for this field.
1886
2209
  # @param page_size [::Integer]
1887
2210
  # The maximum number of spaces to return. The service may return fewer than
1888
2211
  # this value.
1889
2212
  #
1890
2213
  # If unspecified, at most 100 spaces are returned.
1891
2214
  #
1892
- # The maximum value is 1000. If you use a value more than 1000, it's
1893
- # automatically changed to 1000.
2215
+ # The maximum value is 1000 when `useAdminAccess` is set to `true`.
2216
+ # Otherwise, the maximum value is 100. If you use a value more than the
2217
+ # maximum value, it's automatically changed to the maximum value.
1894
2218
  # @param page_token [::String]
1895
2219
  # A token, received from the previous search spaces call. Provide this
1896
2220
  # parameter to retrieve the subsequent page.
@@ -1901,7 +2225,8 @@ module Google
1901
2225
  # @param query [::String]
1902
2226
  # Required. A search query.
1903
2227
  #
1904
- # You can search by using the following parameters:
2228
+ # You can search by using the following parameters when `useAdminAccess`
2229
+ # is set to `true`:
1905
2230
  #
1906
2231
  # - `create_time`
1907
2232
  # - `customer`
@@ -1911,18 +2236,27 @@ module Google
1911
2236
  # - `space_history_state`
1912
2237
  # - `space_type`
1913
2238
  #
2239
+ # When `useAdminAccess` is set to `false`:
2240
+ #
2241
+ # - `display_name`
2242
+ # - `external_user_allowed`
2243
+ # - `space_type`
2244
+ #
1914
2245
  # `create_time` and `last_active_time` accept a timestamp in
1915
2246
  # [RFC-3339](https://www.rfc-editor.org/rfc/rfc3339) format and the supported
1916
2247
  # comparison operators are: `=`, `<`, `>`, `<=`, `>=`.
1917
2248
  #
1918
- # `customer` is required and is used to indicate which customer
1919
- # to fetch spaces from. `customers/my_customer` is the only supported value.
2249
+ # `customer` is required when `useAdminAccess` is set to `true`, and is
2250
+ # used to indicate which customer to fetch spaces from.
2251
+ # `customers/my_customer` is the only supported value.
1920
2252
  #
1921
2253
  # `display_name` only accepts the `HAS` (`:`) operator. The text to
1922
2254
  # match is first tokenized into tokens and each token is prefix-matched
1923
2255
  # case-insensitively and independently as a substring anywhere in the space's
1924
2256
  # `display_name`. For example, `Fun Eve` matches `Fun event` or `The
1925
- # evening was fun`, but not `notFun event` or `even`.
2257
+ # evening was fun`, but not `notFun event` or `even`. When `useAdminAccess`
2258
+ # is set to `false`, `display_name` is required to retrieve meaningful
2259
+ # results. Otherwise, the default behavior is to return an empty response.
1926
2260
  #
1927
2261
  # `external_user_allowed` accepts either `true` or `false`.
1928
2262
  #
@@ -1945,7 +2279,8 @@ module Google
1945
2279
  # < "2022-01-01T00:00:00+00:00" AND last_active_time >
1946
2280
  # "2023-01-01T00:00:00+00:00"`.
1947
2281
  #
1948
- # The following example queries are valid:
2282
+ # The following example queries are valid when `useAdminAccess` is set to
2283
+ # `true`:
1949
2284
  #
1950
2285
  # ```
1951
2286
  # customer = "customers/my_customer" AND space_type = "SPACE"
@@ -1967,6 +2302,26 @@ module Google
1967
2302
  # "2020-01-01T00:00:00+00:00") AND (external_user_allowed = "true") AND
1968
2303
  # (space_history_state = "HISTORY_ON" OR space_history_state = "HISTORY_OFF")
1969
2304
  # ```
2305
+ #
2306
+ # The following example queries are valid when `useAdminAccess` is set to
2307
+ # `false`:
2308
+ #
2309
+ # ```
2310
+ # display_name:"Hello World" AND space_type = "SPACE"
2311
+ #
2312
+ # (display_name:"Hello" OR display_name:"Fun") AND space_type = "SPACE"
2313
+ #
2314
+ # (external_user_allowed = "true" AND space_type = "SPACE") // Returns an
2315
+ # empty response.
2316
+ #
2317
+ # (external_user_allowed = "true" AND display_name:"Hello" AND space_type =
2318
+ # "SPACE")
2319
+ # ```
2320
+ #
2321
+ # The maximum query length is 1,000 characters.
2322
+ #
2323
+ # Invalid queries are rejected by the server with an `INVALID_ARGUMENT`
2324
+ # error.
1970
2325
  # @param order_by [::String]
1971
2326
  # Optional. How the list of spaces is ordered.
1972
2327
  #
@@ -1978,13 +2333,17 @@ module Google
1978
2333
  # any topic of this space.
1979
2334
  # - `create_time` — Denotes the time of the space creation.
1980
2335
  #
2336
+ # When `useAdminAccess` is `false`, only `create_time` and `relevance` are
2337
+ # supported for ordering. Only `DESC` is supported for these fields in
2338
+ # non-admin searches.
2339
+ #
1981
2340
  # Valid ordering operation values are:
1982
2341
  #
1983
2342
  # - `ASC` for ascending. Default value.
1984
2343
  #
1985
2344
  # - `DESC` for descending.
1986
2345
  #
1987
- # The supported syntax are:
2346
+ # The supported syntax are when `useAdminAccess` is set to `true`:
1988
2347
  #
1989
2348
  # - `membership_count.joined_direct_human_user_count DESC`
1990
2349
  # - `membership_count.joined_direct_human_user_count ASC`
@@ -1993,6 +2352,12 @@ module Google
1993
2352
  # - `create_time DESC`
1994
2353
  # - `create_time ASC`
1995
2354
  #
2355
+ # When `useAdminAccess` is set to `false`:
2356
+ #
2357
+ # - `create_time DESC`
2358
+ # - `relevance DESC`
2359
+ # [Developer Preview](https://developers.google.com/workspace/preview).
2360
+ #
1996
2361
  # @yield [response, operation] Access the result along with the RPC operation
1997
2362
  # @yieldparam response [::Gapic::PagedEnumerable<::Google::Apps::Chat::V1::Space>]
1998
2363
  # @yieldparam operation [::GRPC::ActiveCall::Operation]
@@ -2255,12 +2620,24 @@ module Google
2255
2620
  # The space `name` is assigned on the server so anything specified in this
2256
2621
  # field will be ignored.
2257
2622
  # @param request_id [::String]
2258
- # Optional. A unique identifier for this request.
2259
- # A random UUID is recommended.
2260
- # Specifying an existing request ID returns the space created with that ID
2261
- # instead of creating a new space.
2262
- # Specifying an existing request ID from the same Chat app with a different
2263
- # authenticated user returns an error.
2623
+ # Optional. A unique ID for this request. A random UUID is recommended.
2624
+ # Specifying a request ID makes the request idempotent, which ensures that
2625
+ # multiple identical requests with the same request ID result in only a
2626
+ # single space being created. Subsequent requests with the same request ID
2627
+ # return the existing space and do not update the space, even if the
2628
+ # requested details differ from the current state.
2629
+ #
2630
+ # To use this field effectively:
2631
+ #
2632
+ # - Ensure that subsequent requests are identical and use the same
2633
+ # authentication credentials as the original request.
2634
+ # - If a space was already created with the provided request ID, the request
2635
+ # returns that space. Note that the returned space might not be fully
2636
+ # populated; the API echoes the space in your request with the
2637
+ # system-assigned resource name populated. To retrieve the latest metadata
2638
+ # for the space, call `GetSpace`.
2639
+ # - Reusing an existing request ID with a different authenticated user
2640
+ # results in an error.
2264
2641
  #
2265
2642
  # @yield [response, operation] Access the result along with the RPC operation
2266
2643
  # @yieldparam response [::Google::Apps::Chat::V1::Space]
@@ -2417,12 +2794,24 @@ module Google
2417
2794
  # If a `DIRECT_MESSAGE` space already exists, that space is returned instead
2418
2795
  # of creating a new space.
2419
2796
  # @param request_id [::String]
2420
- # Optional. A unique identifier for this request.
2421
- # A random UUID is recommended.
2422
- # Specifying an existing request ID returns the space created with that ID
2423
- # instead of creating a new space.
2424
- # Specifying an existing request ID from the same Chat app with a different
2425
- # authenticated user returns an error.
2797
+ # Optional. A unique ID for this request. A random UUID is recommended.
2798
+ # Specifying a request ID makes the request idempotent, which ensures that
2799
+ # multiple identical requests with the same request ID result in only a
2800
+ # single space being created. Subsequent requests with the same request ID
2801
+ # return the existing space and do not update the space, even if the
2802
+ # requested details differ from the current state.
2803
+ #
2804
+ # To use this field effectively:
2805
+ #
2806
+ # - Ensure that subsequent requests are identical and use the same
2807
+ # authentication credentials as the original request.
2808
+ # - If a space was already created with the provided request ID, the request
2809
+ # returns that space. Note that the returned space might not be fully
2810
+ # populated; the API echoes the space in your request with the
2811
+ # system-assigned resource name populated. To retrieve the latest metadata
2812
+ # for the space, call `GetSpace`.
2813
+ # - Reusing an existing request ID with a different authenticated user
2814
+ # results in an error.
2426
2815
  # @param memberships [::Array<::Google::Apps::Chat::V1::Membership, ::Hash>]
2427
2816
  # Optional. The Google Chat users or groups to invite to join the space. Omit
2428
2817
  # the calling user, as they are added automatically.
@@ -2630,6 +3019,7 @@ module Google
2630
3019
  #
2631
3020
  # - `access_settings.access_permission_settings.discoverSpaceSetting`
2632
3021
  # - `access_settings.access_permission_settings.joinSpaceSetting`
3022
+ # - `access_settings.access_permission_settings.viewSpaceMembershipSetting`
2633
3023
  #
2634
3024
  # `permission_settings`: Supports changing the
2635
3025
  # [permission settings](https://support.google.com/chat/answer/13340792)
@@ -2646,6 +3036,7 @@ module Google
2646
3036
  # - `permission_settings.manageApps`
2647
3037
  # - `permission_settings.manageWebhooks`
2648
3038
  # - `permission_settings.replyMessages`
3039
+ # - `permission_settings.viewSpaceMembership`
2649
3040
  # @param use_admin_access [::Boolean]
2650
3041
  # Optional. When `true`, the method runs using the user's Google Workspace
2651
3042
  # administrator privileges.
@@ -3827,26 +4218,26 @@ module Google
3827
4218
  # For example, the following queries are valid:
3828
4219
  #
3829
4220
  # ```
3830
- # user.name = "users/\\{user}"
4221
+ # user.name = "users/{user}"
3831
4222
  # emoji.unicode = "🙂"
3832
- # emoji.custom_emoji.uid = "\\{uid}"
4223
+ # emoji.custom_emoji.uid = "{uid}"
3833
4224
  # emoji.unicode = "🙂" OR emoji.unicode = "👍"
3834
- # emoji.unicode = "🙂" OR emoji.custom_emoji.uid = "\\{uid}"
3835
- # emoji.unicode = "🙂" AND user.name = "users/\\{user}"
3836
- # (emoji.unicode = "🙂" OR emoji.custom_emoji.uid = "\\{uid}")
3837
- # AND user.name = "users/\\{user}"
4225
+ # emoji.unicode = "🙂" OR emoji.custom_emoji.uid = "{uid}"
4226
+ # emoji.unicode = "🙂" AND user.name = "users/{user}"
4227
+ # (emoji.unicode = "🙂" OR emoji.custom_emoji.uid = "{uid}")
4228
+ # AND user.name = "users/{user}"
3838
4229
  # ```
3839
4230
  #
3840
4231
  # The following queries are invalid:
3841
4232
  #
3842
4233
  # ```
3843
4234
  # emoji.unicode = "🙂" AND emoji.unicode = "👍"
3844
- # emoji.unicode = "🙂" AND emoji.custom_emoji.uid = "\\{uid}"
3845
- # emoji.unicode = "🙂" OR user.name = "users/\\{user}"
3846
- # emoji.unicode = "🙂" OR emoji.custom_emoji.uid = "\\{uid}" OR
3847
- # user.name = "users/\\{user}"
3848
- # emoji.unicode = "🙂" OR emoji.custom_emoji.uid = "\\{uid}"
3849
- # AND user.name = "users/\\{user}"
4235
+ # emoji.unicode = "🙂" AND emoji.custom_emoji.uid = "{uid}"
4236
+ # emoji.unicode = "🙂" OR user.name = "users/{user}"
4237
+ # emoji.unicode = "🙂" OR emoji.custom_emoji.uid = "{uid}" OR
4238
+ # user.name = "users/{user}"
4239
+ # emoji.unicode = "🙂" OR emoji.custom_emoji.uid = "{uid}"
4240
+ # AND user.name = "users/{user}"
3850
4241
  # ```
3851
4242
  #
3852
4243
  # Invalid queries are rejected with an `INVALID_ARGUMENT` error.
@@ -4019,6 +4410,313 @@ module Google
4019
4410
  raise ::Google::Cloud::Error.from_error(e)
4020
4411
  end
4021
4412
 
4413
+ ##
4414
+ # Lists message pins in a space. Users can pin important messages in spaces
4415
+ # for easy access. For more information, see [Pin or unpin a conversation in
4416
+ # Google Chat](https://support.google.com/chat/answer/15622437).
4417
+ #
4418
+ # Requires [user
4419
+ # authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user)
4420
+ # with one of the following [authorization
4421
+ # scopes](https://developers.google.com/workspace/chat/authenticate-authorize#chat-api-scopes):
4422
+ #
4423
+ # - `https://www.googleapis.com/auth/chat.spaces.pins.readonly`
4424
+ # - `https://www.googleapis.com/auth/chat.spaces.pins`
4425
+ # - `https://www.googleapis.com/auth/chat.spaces.readonly`
4426
+ # - `https://www.googleapis.com/auth/chat.spaces`
4427
+ #
4428
+ # @overload list_message_pins(request, options = nil)
4429
+ # Pass arguments to `list_message_pins` via a request object, either of type
4430
+ # {::Google::Apps::Chat::V1::ListMessagePinsRequest} or an equivalent Hash.
4431
+ #
4432
+ # @param request [::Google::Apps::Chat::V1::ListMessagePinsRequest, ::Hash]
4433
+ # A request object representing the call parameters. Required. To specify no
4434
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
4435
+ # @param options [::Gapic::CallOptions, ::Hash]
4436
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
4437
+ #
4438
+ # @overload list_message_pins(parent: nil, page_size: nil, page_token: nil)
4439
+ # Pass arguments to `list_message_pins` via keyword arguments. Note that at
4440
+ # least one keyword argument is required. To specify no parameters, or to keep all
4441
+ # the default parameter values, pass an empty Hash as a request object (see above).
4442
+ #
4443
+ # @param parent [::String]
4444
+ # Required. The parent space which owns the collection of pinned items
4445
+ # Format: `spaces/{space}`
4446
+ # @param page_size [::Integer]
4447
+ # Optional. The maximum number of message pins returned. The service might
4448
+ # return fewer messages than this value. The maximum value is 100. If you use
4449
+ # a value more than 100, it's automatically changed to 100. If unspecified,
4450
+ # at most 100 message pins will be returned. Negative values return an
4451
+ # `INVALID_ARGUMENT` error.
4452
+ # @param page_token [::String]
4453
+ # Optional. A page token received from a previous list message pins call.
4454
+ # Provide this parameter to retrieve the subsequent page.
4455
+ #
4456
+ # When paginating, all other parameters provided should match the call that
4457
+ # provided the page token. Passing different values to the other parameters
4458
+ # might lead to unexpected results.
4459
+ #
4460
+ # @yield [response, operation] Access the result along with the RPC operation
4461
+ # @yieldparam response [::Gapic::PagedEnumerable<::Google::Apps::Chat::V1::MessagePin>]
4462
+ # @yieldparam operation [::GRPC::ActiveCall::Operation]
4463
+ #
4464
+ # @return [::Gapic::PagedEnumerable<::Google::Apps::Chat::V1::MessagePin>]
4465
+ #
4466
+ # @raise [::Google::Cloud::Error] if the RPC is aborted.
4467
+ #
4468
+ # @example Basic example
4469
+ # require "google/apps/chat/v1"
4470
+ #
4471
+ # # Create a client object. The client can be reused for multiple calls.
4472
+ # client = Google::Apps::Chat::V1::ChatService::Client.new
4473
+ #
4474
+ # # Create a request. To set request fields, pass in keyword arguments.
4475
+ # request = Google::Apps::Chat::V1::ListMessagePinsRequest.new
4476
+ #
4477
+ # # Call the list_message_pins method.
4478
+ # result = client.list_message_pins request
4479
+ #
4480
+ # # The returned object is of type Gapic::PagedEnumerable. You can iterate
4481
+ # # over elements, and API calls will be issued to fetch pages as needed.
4482
+ # result.each do |item|
4483
+ # # Each element is of type ::Google::Apps::Chat::V1::MessagePin.
4484
+ # p item
4485
+ # end
4486
+ #
4487
+ def list_message_pins request, options = nil
4488
+ raise ::ArgumentError, "request must be provided" if request.nil?
4489
+
4490
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Apps::Chat::V1::ListMessagePinsRequest
4491
+
4492
+ # Converts hash and nil to an options object
4493
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
4494
+
4495
+ # Customize the options with defaults
4496
+ metadata = @config.rpcs.list_message_pins.metadata.to_h
4497
+
4498
+ # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers
4499
+ metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
4500
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
4501
+ gapic_version: ::Google::Apps::Chat::V1::VERSION
4502
+ metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty?
4503
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
4504
+
4505
+ header_params = {}
4506
+ if request.parent
4507
+ header_params["parent"] = request.parent
4508
+ end
4509
+
4510
+ request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
4511
+ metadata[:"x-goog-request-params"] ||= request_params_header
4512
+
4513
+ options.apply_defaults timeout: @config.rpcs.list_message_pins.timeout,
4514
+ metadata: metadata,
4515
+ retry_policy: @config.rpcs.list_message_pins.retry_policy
4516
+
4517
+ options.apply_defaults timeout: @config.timeout,
4518
+ metadata: @config.metadata,
4519
+ retry_policy: @config.retry_policy
4520
+
4521
+ @chat_service_stub.call_rpc :list_message_pins, request, options: options do |response, operation|
4522
+ response = ::Gapic::PagedEnumerable.new @chat_service_stub, :list_message_pins, request, response, operation, options
4523
+ yield response, operation if block_given?
4524
+ throw :response, response
4525
+ end
4526
+ rescue ::GRPC::BadStatus => e
4527
+ raise ::Google::Cloud::Error.from_error(e)
4528
+ end
4529
+
4530
+ ##
4531
+ # Creates a message pin.
4532
+ #
4533
+ # Requires [user
4534
+ # authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user)
4535
+ # with one of the following [authorization
4536
+ # scopes](https://developers.google.com/workspace/chat/authenticate-authorize#chat-api-scopes):
4537
+ #
4538
+ # - `https://www.googleapis.com/auth/chat.spaces.pins`
4539
+ # - `https://www.googleapis.com/auth/chat.spaces`
4540
+ #
4541
+ # @overload create_message_pin(request, options = nil)
4542
+ # Pass arguments to `create_message_pin` via a request object, either of type
4543
+ # {::Google::Apps::Chat::V1::CreateMessagePinRequest} or an equivalent Hash.
4544
+ #
4545
+ # @param request [::Google::Apps::Chat::V1::CreateMessagePinRequest, ::Hash]
4546
+ # A request object representing the call parameters. Required. To specify no
4547
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
4548
+ # @param options [::Gapic::CallOptions, ::Hash]
4549
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
4550
+ #
4551
+ # @overload create_message_pin(parent: nil, message_pin: nil)
4552
+ # Pass arguments to `create_message_pin` via keyword arguments. Note that at
4553
+ # least one keyword argument is required. To specify no parameters, or to keep all
4554
+ # the default parameter values, pass an empty Hash as a request object (see above).
4555
+ #
4556
+ # @param parent [::String]
4557
+ # Required. The parent space in which to create the message pin.
4558
+ # Format: spaces/\\{space}
4559
+ # @param message_pin [::Google::Apps::Chat::V1::MessagePin, ::Hash]
4560
+ # Required. The MessagePin to create.
4561
+ #
4562
+ # @yield [response, operation] Access the result along with the RPC operation
4563
+ # @yieldparam response [::Google::Apps::Chat::V1::MessagePin]
4564
+ # @yieldparam operation [::GRPC::ActiveCall::Operation]
4565
+ #
4566
+ # @return [::Google::Apps::Chat::V1::MessagePin]
4567
+ #
4568
+ # @raise [::Google::Cloud::Error] if the RPC is aborted.
4569
+ #
4570
+ # @example Basic example
4571
+ # require "google/apps/chat/v1"
4572
+ #
4573
+ # # Create a client object. The client can be reused for multiple calls.
4574
+ # client = Google::Apps::Chat::V1::ChatService::Client.new
4575
+ #
4576
+ # # Create a request. To set request fields, pass in keyword arguments.
4577
+ # request = Google::Apps::Chat::V1::CreateMessagePinRequest.new
4578
+ #
4579
+ # # Call the create_message_pin method.
4580
+ # result = client.create_message_pin request
4581
+ #
4582
+ # # The returned object is of type Google::Apps::Chat::V1::MessagePin.
4583
+ # p result
4584
+ #
4585
+ def create_message_pin request, options = nil
4586
+ raise ::ArgumentError, "request must be provided" if request.nil?
4587
+
4588
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Apps::Chat::V1::CreateMessagePinRequest
4589
+
4590
+ # Converts hash and nil to an options object
4591
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
4592
+
4593
+ # Customize the options with defaults
4594
+ metadata = @config.rpcs.create_message_pin.metadata.to_h
4595
+
4596
+ # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers
4597
+ metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
4598
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
4599
+ gapic_version: ::Google::Apps::Chat::V1::VERSION
4600
+ metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty?
4601
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
4602
+
4603
+ header_params = {}
4604
+ if request.parent
4605
+ header_params["parent"] = request.parent
4606
+ end
4607
+
4608
+ request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
4609
+ metadata[:"x-goog-request-params"] ||= request_params_header
4610
+
4611
+ options.apply_defaults timeout: @config.rpcs.create_message_pin.timeout,
4612
+ metadata: metadata,
4613
+ retry_policy: @config.rpcs.create_message_pin.retry_policy
4614
+
4615
+ options.apply_defaults timeout: @config.timeout,
4616
+ metadata: @config.metadata,
4617
+ retry_policy: @config.retry_policy
4618
+
4619
+ @chat_service_stub.call_rpc :create_message_pin, request, options: options do |response, operation|
4620
+ yield response, operation if block_given?
4621
+ end
4622
+ rescue ::GRPC::BadStatus => e
4623
+ raise ::Google::Cloud::Error.from_error(e)
4624
+ end
4625
+
4626
+ ##
4627
+ # Deletes a message pin.
4628
+ #
4629
+ # Requires [user
4630
+ # authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user)
4631
+ # with one of the following [authorization
4632
+ # scopes](https://developers.google.com/workspace/chat/authenticate-authorize#chat-api-scopes):
4633
+ #
4634
+ # - `https://www.googleapis.com/auth/chat.spaces.pins`
4635
+ # - `https://www.googleapis.com/auth/chat.spaces`
4636
+ #
4637
+ # @overload delete_message_pin(request, options = nil)
4638
+ # Pass arguments to `delete_message_pin` via a request object, either of type
4639
+ # {::Google::Apps::Chat::V1::DeleteMessagePinRequest} or an equivalent Hash.
4640
+ #
4641
+ # @param request [::Google::Apps::Chat::V1::DeleteMessagePinRequest, ::Hash]
4642
+ # A request object representing the call parameters. Required. To specify no
4643
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
4644
+ # @param options [::Gapic::CallOptions, ::Hash]
4645
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
4646
+ #
4647
+ # @overload delete_message_pin(name: nil)
4648
+ # Pass arguments to `delete_message_pin` via keyword arguments. Note that at
4649
+ # least one keyword argument is required. To specify no parameters, or to keep all
4650
+ # the default parameter values, pass an empty Hash as a request object (see above).
4651
+ #
4652
+ # @param name [::String]
4653
+ # Required. The resource name of the message pin to remove.
4654
+ # Format: spaces/\\{space}/messagePins/\\{message_pin}
4655
+ #
4656
+ # @yield [response, operation] Access the result along with the RPC operation
4657
+ # @yieldparam response [::Google::Protobuf::Empty]
4658
+ # @yieldparam operation [::GRPC::ActiveCall::Operation]
4659
+ #
4660
+ # @return [::Google::Protobuf::Empty]
4661
+ #
4662
+ # @raise [::Google::Cloud::Error] if the RPC is aborted.
4663
+ #
4664
+ # @example Basic example
4665
+ # require "google/apps/chat/v1"
4666
+ #
4667
+ # # Create a client object. The client can be reused for multiple calls.
4668
+ # client = Google::Apps::Chat::V1::ChatService::Client.new
4669
+ #
4670
+ # # Create a request. To set request fields, pass in keyword arguments.
4671
+ # request = Google::Apps::Chat::V1::DeleteMessagePinRequest.new
4672
+ #
4673
+ # # Call the delete_message_pin method.
4674
+ # result = client.delete_message_pin request
4675
+ #
4676
+ # # The returned object is of type Google::Protobuf::Empty.
4677
+ # p result
4678
+ #
4679
+ def delete_message_pin request, options = nil
4680
+ raise ::ArgumentError, "request must be provided" if request.nil?
4681
+
4682
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Apps::Chat::V1::DeleteMessagePinRequest
4683
+
4684
+ # Converts hash and nil to an options object
4685
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
4686
+
4687
+ # Customize the options with defaults
4688
+ metadata = @config.rpcs.delete_message_pin.metadata.to_h
4689
+
4690
+ # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers
4691
+ metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
4692
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
4693
+ gapic_version: ::Google::Apps::Chat::V1::VERSION
4694
+ metadata[:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty?
4695
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
4696
+
4697
+ header_params = {}
4698
+ if request.name
4699
+ header_params["name"] = request.name
4700
+ end
4701
+
4702
+ request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
4703
+ metadata[:"x-goog-request-params"] ||= request_params_header
4704
+
4705
+ options.apply_defaults timeout: @config.rpcs.delete_message_pin.timeout,
4706
+ metadata: metadata,
4707
+ retry_policy: @config.rpcs.delete_message_pin.retry_policy
4708
+
4709
+ options.apply_defaults timeout: @config.timeout,
4710
+ metadata: @config.metadata,
4711
+ retry_policy: @config.retry_policy
4712
+
4713
+ @chat_service_stub.call_rpc :delete_message_pin, request, options: options do |response, operation|
4714
+ yield response, operation if block_given?
4715
+ end
4716
+ rescue ::GRPC::BadStatus => e
4717
+ raise ::Google::Cloud::Error.from_error(e)
4718
+ end
4719
+
4022
4720
  ##
4023
4721
  # Creates a custom emoji.
4024
4722
  #
@@ -6855,6 +7553,11 @@ module Google
6855
7553
  #
6856
7554
  attr_reader :delete_message
6857
7555
  ##
7556
+ # RPC-specific configuration for `search_messages`
7557
+ # @return [::Gapic::Config::Method]
7558
+ #
7559
+ attr_reader :search_messages
7560
+ ##
6858
7561
  # RPC-specific configuration for `get_attachment`
6859
7562
  # @return [::Gapic::Config::Method]
6860
7563
  #
@@ -6945,6 +7648,21 @@ module Google
6945
7648
  #
6946
7649
  attr_reader :delete_reaction
6947
7650
  ##
7651
+ # RPC-specific configuration for `list_message_pins`
7652
+ # @return [::Gapic::Config::Method]
7653
+ #
7654
+ attr_reader :list_message_pins
7655
+ ##
7656
+ # RPC-specific configuration for `create_message_pin`
7657
+ # @return [::Gapic::Config::Method]
7658
+ #
7659
+ attr_reader :create_message_pin
7660
+ ##
7661
+ # RPC-specific configuration for `delete_message_pin`
7662
+ # @return [::Gapic::Config::Method]
7663
+ #
7664
+ attr_reader :delete_message_pin
7665
+ ##
6948
7666
  # RPC-specific configuration for `create_custom_emoji`
6949
7667
  # @return [::Gapic::Config::Method]
6950
7668
  #
@@ -7076,6 +7794,8 @@ module Google
7076
7794
  @update_message = ::Gapic::Config::Method.new update_message_config
7077
7795
  delete_message_config = parent_rpcs.delete_message if parent_rpcs.respond_to? :delete_message
7078
7796
  @delete_message = ::Gapic::Config::Method.new delete_message_config
7797
+ search_messages_config = parent_rpcs.search_messages if parent_rpcs.respond_to? :search_messages
7798
+ @search_messages = ::Gapic::Config::Method.new search_messages_config
7079
7799
  get_attachment_config = parent_rpcs.get_attachment if parent_rpcs.respond_to? :get_attachment
7080
7800
  @get_attachment = ::Gapic::Config::Method.new get_attachment_config
7081
7801
  upload_attachment_config = parent_rpcs.upload_attachment if parent_rpcs.respond_to? :upload_attachment
@@ -7112,6 +7832,12 @@ module Google
7112
7832
  @list_reactions = ::Gapic::Config::Method.new list_reactions_config
7113
7833
  delete_reaction_config = parent_rpcs.delete_reaction if parent_rpcs.respond_to? :delete_reaction
7114
7834
  @delete_reaction = ::Gapic::Config::Method.new delete_reaction_config
7835
+ list_message_pins_config = parent_rpcs.list_message_pins if parent_rpcs.respond_to? :list_message_pins
7836
+ @list_message_pins = ::Gapic::Config::Method.new list_message_pins_config
7837
+ create_message_pin_config = parent_rpcs.create_message_pin if parent_rpcs.respond_to? :create_message_pin
7838
+ @create_message_pin = ::Gapic::Config::Method.new create_message_pin_config
7839
+ delete_message_pin_config = parent_rpcs.delete_message_pin if parent_rpcs.respond_to? :delete_message_pin
7840
+ @delete_message_pin = ::Gapic::Config::Method.new delete_message_pin_config
7115
7841
  create_custom_emoji_config = parent_rpcs.create_custom_emoji if parent_rpcs.respond_to? :create_custom_emoji
7116
7842
  @create_custom_emoji = ::Gapic::Config::Method.new create_custom_emoji_config
7117
7843
  get_custom_emoji_config = parent_rpcs.get_custom_emoji if parent_rpcs.respond_to? :get_custom_emoji