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