filter property

String? filter
getter/setter pair

A search query.

The query can specify one or more search keywords, which are used to filter the results, You can also filter the results using the following message fields: - create_time: Accepts a timestamp in [RFC-3339](https://www.rfc-editor.org/rfc/rfc3339) format and the supported comparison operators are: < and >=. - sender.name: The resource name of the sender (users/{user}). Only supports =. You can use the e-mail as an alias for {user}. For example, users/example@gmail.com, where example@gmail.com is the e-mail of the Google Chat user. - space.name: The resource name of the space where the message is posted. (spaces/{space}). Only supports =. If this filter is not set, the search is performed across all direct messages and spaces the user has access to as a space member. - space.display_name: Supports the operator : (has) and filters spaces based on a partial match of their display name. Results are limited to the top five space matches. For example, space.display_name:Project searches for messages in the top five spaces that contain the word "Project" in their display names. - attachment: Supports the operator :* (has any) to check for the presence of attachments. If attachment:* is specified, only messages that have at least one attachment are returned. - annotations.user_mentions.user.name: The resource name of the mentioned user (users/{user}). Only supports : (has). For example: annotations.user_mentions.user.name:"users/1234567890" returns only messages that contain a mention to the specified user. Alternatively, the alias me can be used to filter for messages that mention the caller user, for example: annotations.user_mentions.user.name:users/me. You can also use the e-mail as an alias for {user}, for example, users/example@gmail.com. For advanced filtering, the following functions are also available: - has_link(): Returns only messages that have at least one hyperlink in the message text. - is_unread(): Filters out messages that have been read by the calling user. Using the space.display_name filter requires that the calling credentials include one of the following authorization scopes:

  • https://www.googleapis.com/auth/chat.spaces.readonly - https://www.googleapis.com/auth/chat.spaces Using the is_unread() filter requires that the calling credentials include one of the following authorization scopes:
  • https://www.googleapis.com/auth/chat.users.readstate.readonly - https://www.googleapis.com/auth/chat.users.readstate Across different fields, only AND operators are supported. A valid example is sender.name = "users/1234567890" AND is_unread(). The word AND is optional and is implied if omitted. For example, sender.name = "users/1234567890" is_unread() is valid and is equivalent to the previous example. An invalid example is sender.name = "users/1234567890" OR is_unread() because OR is not supported between different fields. Among the same field: - create_time supports only AND, and can only be used to represent an interval, such as create_time >= "2022-01-01T00:00:00+00:00" AND create_time < "2023-01-01T00:00:00+00:00". - sender.name supports only the OR operator, for example: sender.name = "users/1234567890" OR sender.name = "users/0987654321". - space.name supports only the OR operator, for example: space.name = "spaces/ABCDEFGH" OR space.name = "spaces/QWERTYUI". - space.display_name supports the operators AND and OR, but not a mix of both. For example: space.display_name:Project AND space.display_name:Tasks returns messages that are in spaces with display names containing both Project and Tasks, whereas space.display_name:Project OR space.display_name:Tasks returns messages that are in spaces with display names containing either Project or Tasks or both. - annotations.user_mentions.user.name supports the operators AND and OR, but not a mix of both. For example: annotations.user_mentions.user.name:"users/1234567890" AND annotations.user_mentions.user.name:"users/0987654321" returns only messages that mentions both users, whereas annotations.user_mentions.user.name:"users/1234567890" OR annotations.user_mentions.user.name:"users/0987654321" returns messages that mention either user or both. Parentheses are required to disambiguate operator precedence when combining AND and OR operators in the same query. For example: (sender.name="users/me" OR sender.name="users/123456") AND is_unread(). Otherwise, parentheses are optional. The following example queries are valid: "Pending reports" AND create_time >= "2023-01-01T00:00:00Z" sender.name = "users/example@gmail.com" annotations.user_mentions.user.name:"users/0987654321" attachment:* AND space.name = "spaces/ABCDEFGH" tasks AND is_unread() AND sender.name = "users/1234567890" "things to do" "urgent" (sender.name = "users/1234567890") AND (create_time < "2023-05-01T00:00:00Z") tasks AND space.name = "spaces/ABCDEFGH" AND has_link() "project one" is_unread() space.display_name:Project tasks The maximum query length is 1,000 characters. Invalid queries are rejected by the server with an INVALID_ARGUMENT error.

Required.

Implementation

core.String? filter;