xref: /aosp_15_r20/external/googleapis/google/chat/v1/reaction.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
1*d5c09012SAndroid Build Coastguard Worker// Copyright 2023 Google LLC
2*d5c09012SAndroid Build Coastguard Worker//
3*d5c09012SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*d5c09012SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*d5c09012SAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*d5c09012SAndroid Build Coastguard Worker//
7*d5c09012SAndroid Build Coastguard Worker//     http://www.apache.org/licenses/LICENSE-2.0
8*d5c09012SAndroid Build Coastguard Worker//
9*d5c09012SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*d5c09012SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*d5c09012SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*d5c09012SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*d5c09012SAndroid Build Coastguard Worker// limitations under the License.
14*d5c09012SAndroid Build Coastguard Worker
15*d5c09012SAndroid Build Coastguard Workersyntax = "proto3";
16*d5c09012SAndroid Build Coastguard Worker
17*d5c09012SAndroid Build Coastguard Workerpackage google.chat.v1;
18*d5c09012SAndroid Build Coastguard Worker
19*d5c09012SAndroid Build Coastguard Workerimport "google/api/field_behavior.proto";
20*d5c09012SAndroid Build Coastguard Workerimport "google/api/resource.proto";
21*d5c09012SAndroid Build Coastguard Workerimport "google/chat/v1/user.proto";
22*d5c09012SAndroid Build Coastguard Worker
23*d5c09012SAndroid Build Coastguard Workeroption csharp_namespace = "Google.Apps.Chat.V1";
24*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/chat/apiv1/chatpb;chatpb";
25*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true;
26*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "ReactionProto";
27*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.chat.v1";
28*d5c09012SAndroid Build Coastguard Workeroption php_namespace = "Google\\Apps\\Chat\\V1";
29*d5c09012SAndroid Build Coastguard Workeroption ruby_package = "Google::Apps::Chat::V1";
30*d5c09012SAndroid Build Coastguard Worker
31*d5c09012SAndroid Build Coastguard Worker// A reaction to a message.
32*d5c09012SAndroid Build Coastguard Workermessage Reaction {
33*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
34*d5c09012SAndroid Build Coastguard Worker    type: "chat.googleapis.com/Reaction"
35*d5c09012SAndroid Build Coastguard Worker    pattern: "spaces/{space}/messages/{message}/reactions/{reaction}"
36*d5c09012SAndroid Build Coastguard Worker  };
37*d5c09012SAndroid Build Coastguard Worker
38*d5c09012SAndroid Build Coastguard Worker  // The resource name of the reaction.
39*d5c09012SAndroid Build Coastguard Worker  //
40*d5c09012SAndroid Build Coastguard Worker  // Format: `spaces/{space}/messages/{message}/reactions/{reaction}`
41*d5c09012SAndroid Build Coastguard Worker  string name = 1;
42*d5c09012SAndroid Build Coastguard Worker
43*d5c09012SAndroid Build Coastguard Worker  // Output only. The user who created the reaction.
44*d5c09012SAndroid Build Coastguard Worker  User user = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
45*d5c09012SAndroid Build Coastguard Worker
46*d5c09012SAndroid Build Coastguard Worker  // The emoji used in the reaction.
47*d5c09012SAndroid Build Coastguard Worker  Emoji emoji = 3;
48*d5c09012SAndroid Build Coastguard Worker}
49*d5c09012SAndroid Build Coastguard Worker
50*d5c09012SAndroid Build Coastguard Worker// An emoji that is used as a reaction to a message.
51*d5c09012SAndroid Build Coastguard Workermessage Emoji {
52*d5c09012SAndroid Build Coastguard Worker  // The content of the emoji.
53*d5c09012SAndroid Build Coastguard Worker  oneof content {
54*d5c09012SAndroid Build Coastguard Worker    // A basic emoji represented by a unicode string.
55*d5c09012SAndroid Build Coastguard Worker    string unicode = 1;
56*d5c09012SAndroid Build Coastguard Worker
57*d5c09012SAndroid Build Coastguard Worker    // Output only. A custom emoji.
58*d5c09012SAndroid Build Coastguard Worker    CustomEmoji custom_emoji = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
59*d5c09012SAndroid Build Coastguard Worker  }
60*d5c09012SAndroid Build Coastguard Worker}
61*d5c09012SAndroid Build Coastguard Worker
62*d5c09012SAndroid Build Coastguard Worker// Represents a custom emoji.
63*d5c09012SAndroid Build Coastguard Workermessage CustomEmoji {
64*d5c09012SAndroid Build Coastguard Worker  // Unique key for the custom emoji resource.
65*d5c09012SAndroid Build Coastguard Worker  string uid = 1;
66*d5c09012SAndroid Build Coastguard Worker}
67*d5c09012SAndroid Build Coastguard Worker
68*d5c09012SAndroid Build Coastguard Worker// The number of people who reacted to a message with a specific emoji.
69*d5c09012SAndroid Build Coastguard Workermessage EmojiReactionSummary {
70*d5c09012SAndroid Build Coastguard Worker  // Emoji associated with the reactions.
71*d5c09012SAndroid Build Coastguard Worker  Emoji emoji = 1;
72*d5c09012SAndroid Build Coastguard Worker
73*d5c09012SAndroid Build Coastguard Worker  // The total number of reactions using the associated emoji.
74*d5c09012SAndroid Build Coastguard Worker  optional int32 reaction_count = 2;
75*d5c09012SAndroid Build Coastguard Worker}
76*d5c09012SAndroid Build Coastguard Worker
77*d5c09012SAndroid Build Coastguard Worker// Creates a reaction to a message.
78*d5c09012SAndroid Build Coastguard Workermessage CreateReactionRequest {
79*d5c09012SAndroid Build Coastguard Worker  // Required. The message where the reaction is created.
80*d5c09012SAndroid Build Coastguard Worker  //
81*d5c09012SAndroid Build Coastguard Worker  // Format: `spaces/{space}/messages/{message}`
82*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
83*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
84*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
85*d5c09012SAndroid Build Coastguard Worker      child_type: "chat.googleapis.com/Reaction"
86*d5c09012SAndroid Build Coastguard Worker    }
87*d5c09012SAndroid Build Coastguard Worker  ];
88*d5c09012SAndroid Build Coastguard Worker
89*d5c09012SAndroid Build Coastguard Worker  // Required. The reaction to create.
90*d5c09012SAndroid Build Coastguard Worker  Reaction reaction = 2 [(google.api.field_behavior) = REQUIRED];
91*d5c09012SAndroid Build Coastguard Worker}
92*d5c09012SAndroid Build Coastguard Worker
93*d5c09012SAndroid Build Coastguard Worker// Lists reactions to a message.
94*d5c09012SAndroid Build Coastguard Workermessage ListReactionsRequest {
95*d5c09012SAndroid Build Coastguard Worker  // Required. The message users reacted to.
96*d5c09012SAndroid Build Coastguard Worker  //
97*d5c09012SAndroid Build Coastguard Worker  // Format: `spaces/{space}/messages/{message}`
98*d5c09012SAndroid Build Coastguard Worker  string parent = 1 [
99*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
100*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = {
101*d5c09012SAndroid Build Coastguard Worker      child_type: "chat.googleapis.com/Reaction"
102*d5c09012SAndroid Build Coastguard Worker    }
103*d5c09012SAndroid Build Coastguard Worker  ];
104*d5c09012SAndroid Build Coastguard Worker
105*d5c09012SAndroid Build Coastguard Worker  // Optional. The maximum number of reactions returned. The service can return
106*d5c09012SAndroid Build Coastguard Worker  // fewer reactions than this value. If unspecified, the default value is 25.
107*d5c09012SAndroid Build Coastguard Worker  // The maximum value is 200; values above 200 are changed to 200.
108*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
109*d5c09012SAndroid Build Coastguard Worker
110*d5c09012SAndroid Build Coastguard Worker  // Optional. (If resuming from a previous query.)
111*d5c09012SAndroid Build Coastguard Worker  //
112*d5c09012SAndroid Build Coastguard Worker  // A page token received from a previous list reactions call. Provide this
113*d5c09012SAndroid Build Coastguard Worker  // to retrieve the subsequent page.
114*d5c09012SAndroid Build Coastguard Worker  //
115*d5c09012SAndroid Build Coastguard Worker  // When paginating, the filter value should match the call that provided the
116*d5c09012SAndroid Build Coastguard Worker  // page token. Passing a different value might lead to unexpected results.
117*d5c09012SAndroid Build Coastguard Worker  string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
118*d5c09012SAndroid Build Coastguard Worker
119*d5c09012SAndroid Build Coastguard Worker  // Optional. A query filter.
120*d5c09012SAndroid Build Coastguard Worker  //
121*d5c09012SAndroid Build Coastguard Worker  // You can filter reactions by
122*d5c09012SAndroid Build Coastguard Worker  // [emoji](https://developers.google.com/workspace/chat/api/reference/rest/v1/Emoji)
123*d5c09012SAndroid Build Coastguard Worker  // (either `emoji.unicode` or `emoji.custom_emoji.uid`) and
124*d5c09012SAndroid Build Coastguard Worker  // [user](https://developers.google.com/workspace/chat/api/reference/rest/v1/User)
125*d5c09012SAndroid Build Coastguard Worker  // (`user.name`).
126*d5c09012SAndroid Build Coastguard Worker  //
127*d5c09012SAndroid Build Coastguard Worker  // To filter reactions for multiple emojis or users, join similar fields
128*d5c09012SAndroid Build Coastguard Worker  // with the `OR` operator, such as `emoji.unicode = "��" OR emoji.unicode =
129*d5c09012SAndroid Build Coastguard Worker  // "��"` and `user.name = "users/AAAAAA" OR user.name = "users/BBBBBB"`.
130*d5c09012SAndroid Build Coastguard Worker  //
131*d5c09012SAndroid Build Coastguard Worker  // To filter reactions by emoji and user, use the `AND` operator, such as
132*d5c09012SAndroid Build Coastguard Worker  // `emoji.unicode = "��" AND user.name = "users/AAAAAA"`.
133*d5c09012SAndroid Build Coastguard Worker  //
134*d5c09012SAndroid Build Coastguard Worker  // If your query uses both `AND` and `OR`, group them with parentheses.
135*d5c09012SAndroid Build Coastguard Worker  //
136*d5c09012SAndroid Build Coastguard Worker  // For example, the following queries are valid:
137*d5c09012SAndroid Build Coastguard Worker  //
138*d5c09012SAndroid Build Coastguard Worker  // ```
139*d5c09012SAndroid Build Coastguard Worker  // user.name = "users/{user}"
140*d5c09012SAndroid Build Coastguard Worker  // emoji.unicode = "��"
141*d5c09012SAndroid Build Coastguard Worker  // emoji.custom_emoji.uid = "{uid}"
142*d5c09012SAndroid Build Coastguard Worker  // emoji.unicode = "��" OR emoji.unicode = "��"
143*d5c09012SAndroid Build Coastguard Worker  // emoji.unicode = "��" OR emoji.custom_emoji.uid = "{uid}"
144*d5c09012SAndroid Build Coastguard Worker  // emoji.unicode = "��" AND user.name = "users/{user}"
145*d5c09012SAndroid Build Coastguard Worker  // (emoji.unicode = "��" OR emoji.custom_emoji.uid = "{uid}")
146*d5c09012SAndroid Build Coastguard Worker  // AND user.name = "users/{user}"
147*d5c09012SAndroid Build Coastguard Worker  // ```
148*d5c09012SAndroid Build Coastguard Worker  //
149*d5c09012SAndroid Build Coastguard Worker  // The following queries are invalid:
150*d5c09012SAndroid Build Coastguard Worker  //
151*d5c09012SAndroid Build Coastguard Worker  // ```
152*d5c09012SAndroid Build Coastguard Worker  // emoji.unicode = "��" AND emoji.unicode = "��"
153*d5c09012SAndroid Build Coastguard Worker  // emoji.unicode = "��" AND emoji.custom_emoji.uid = "{uid}"
154*d5c09012SAndroid Build Coastguard Worker  // emoji.unicode = "��" OR user.name = "users/{user}"
155*d5c09012SAndroid Build Coastguard Worker  // emoji.unicode = "��" OR emoji.custom_emoji.uid = "{uid}" OR
156*d5c09012SAndroid Build Coastguard Worker  // user.name = "users/{user}"
157*d5c09012SAndroid Build Coastguard Worker  // emoji.unicode = "��" OR emoji.custom_emoji.uid = "{uid}"
158*d5c09012SAndroid Build Coastguard Worker  // AND user.name = "users/{user}"
159*d5c09012SAndroid Build Coastguard Worker  // ```
160*d5c09012SAndroid Build Coastguard Worker  //
161*d5c09012SAndroid Build Coastguard Worker  // Invalid queries are rejected by the server with an `INVALID_ARGUMENT`
162*d5c09012SAndroid Build Coastguard Worker  // error.
163*d5c09012SAndroid Build Coastguard Worker  string filter = 4 [(google.api.field_behavior) = OPTIONAL];
164*d5c09012SAndroid Build Coastguard Worker}
165*d5c09012SAndroid Build Coastguard Worker
166*d5c09012SAndroid Build Coastguard Worker// Response to a list reactions request.
167*d5c09012SAndroid Build Coastguard Workermessage ListReactionsResponse {
168*d5c09012SAndroid Build Coastguard Worker  // List of reactions in the requested (or first) page.
169*d5c09012SAndroid Build Coastguard Worker  repeated Reaction reactions = 1;
170*d5c09012SAndroid Build Coastguard Worker
171*d5c09012SAndroid Build Coastguard Worker  // Continuation token to retrieve the next page of results. It's empty
172*d5c09012SAndroid Build Coastguard Worker  // for the last page of results.
173*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
174*d5c09012SAndroid Build Coastguard Worker}
175*d5c09012SAndroid Build Coastguard Worker
176*d5c09012SAndroid Build Coastguard Worker// Deletes a reaction to a message.
177*d5c09012SAndroid Build Coastguard Workermessage DeleteReactionRequest {
178*d5c09012SAndroid Build Coastguard Worker  // Required. Name of the reaction to delete.
179*d5c09012SAndroid Build Coastguard Worker  //
180*d5c09012SAndroid Build Coastguard Worker  // Format: `spaces/{space}/messages/{message}/reactions/{reaction}`
181*d5c09012SAndroid Build Coastguard Worker  string name = 1 [
182*d5c09012SAndroid Build Coastguard Worker    (google.api.field_behavior) = REQUIRED,
183*d5c09012SAndroid Build Coastguard Worker    (google.api.resource_reference) = { type: "chat.googleapis.com/Reaction" }
184*d5c09012SAndroid Build Coastguard Worker  ];
185*d5c09012SAndroid Build Coastguard Worker}
186