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/chat/v1/attachment.proto"; 20*d5c09012SAndroid Build Coastguard Workerimport "google/chat/v1/user.proto"; 21*d5c09012SAndroid Build Coastguard Worker 22*d5c09012SAndroid Build Coastguard Workeroption csharp_namespace = "Google.Apps.Chat.V1"; 23*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/chat/apiv1/chatpb;chatpb"; 24*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true; 25*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "AnnotationProto"; 26*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.chat.v1"; 27*d5c09012SAndroid Build Coastguard Workeroption php_namespace = "Google\\Apps\\Chat\\V1"; 28*d5c09012SAndroid Build Coastguard Workeroption ruby_package = "Google::Apps::Chat::V1"; 29*d5c09012SAndroid Build Coastguard Worker 30*d5c09012SAndroid Build Coastguard Worker// Output only. Annotations associated with the plain-text body of the message. 31*d5c09012SAndroid Build Coastguard Worker// To add basic formatting to a text message, see 32*d5c09012SAndroid Build Coastguard Worker// [Format text 33*d5c09012SAndroid Build Coastguard Worker// messages](https://developers.google.com/workspace/chat/format-messages). 34*d5c09012SAndroid Build Coastguard Worker// 35*d5c09012SAndroid Build Coastguard Worker// Example plain-text message body: 36*d5c09012SAndroid Build Coastguard Worker// ``` 37*d5c09012SAndroid Build Coastguard Worker// Hello @FooBot how are you!" 38*d5c09012SAndroid Build Coastguard Worker// ``` 39*d5c09012SAndroid Build Coastguard Worker// 40*d5c09012SAndroid Build Coastguard Worker// The corresponding annotations metadata: 41*d5c09012SAndroid Build Coastguard Worker// ``` 42*d5c09012SAndroid Build Coastguard Worker// "annotations":[{ 43*d5c09012SAndroid Build Coastguard Worker// "type":"USER_MENTION", 44*d5c09012SAndroid Build Coastguard Worker// "startIndex":6, 45*d5c09012SAndroid Build Coastguard Worker// "length":7, 46*d5c09012SAndroid Build Coastguard Worker// "userMention": { 47*d5c09012SAndroid Build Coastguard Worker// "user": { 48*d5c09012SAndroid Build Coastguard Worker// "name":"users/{user}", 49*d5c09012SAndroid Build Coastguard Worker// "displayName":"FooBot", 50*d5c09012SAndroid Build Coastguard Worker// "avatarUrl":"https://goo.gl/aeDtrS", 51*d5c09012SAndroid Build Coastguard Worker// "type":"BOT" 52*d5c09012SAndroid Build Coastguard Worker// }, 53*d5c09012SAndroid Build Coastguard Worker// "type":"MENTION" 54*d5c09012SAndroid Build Coastguard Worker// } 55*d5c09012SAndroid Build Coastguard Worker// }] 56*d5c09012SAndroid Build Coastguard Worker// ``` 57*d5c09012SAndroid Build Coastguard Workermessage Annotation { 58*d5c09012SAndroid Build Coastguard Worker // The type of this annotation. 59*d5c09012SAndroid Build Coastguard Worker AnnotationType type = 1; 60*d5c09012SAndroid Build Coastguard Worker 61*d5c09012SAndroid Build Coastguard Worker // Start index (0-based, inclusive) in the plain-text message body this 62*d5c09012SAndroid Build Coastguard Worker // annotation corresponds to. 63*d5c09012SAndroid Build Coastguard Worker optional int32 start_index = 2; 64*d5c09012SAndroid Build Coastguard Worker 65*d5c09012SAndroid Build Coastguard Worker // Length of the substring in the plain-text message body this annotation 66*d5c09012SAndroid Build Coastguard Worker // corresponds to. 67*d5c09012SAndroid Build Coastguard Worker int32 length = 3; 68*d5c09012SAndroid Build Coastguard Worker 69*d5c09012SAndroid Build Coastguard Worker // Additional metadata about the annotation. 70*d5c09012SAndroid Build Coastguard Worker oneof metadata { 71*d5c09012SAndroid Build Coastguard Worker // The metadata of user mention. 72*d5c09012SAndroid Build Coastguard Worker UserMentionMetadata user_mention = 4; 73*d5c09012SAndroid Build Coastguard Worker 74*d5c09012SAndroid Build Coastguard Worker // The metadata for a slash command. 75*d5c09012SAndroid Build Coastguard Worker SlashCommandMetadata slash_command = 5; 76*d5c09012SAndroid Build Coastguard Worker 77*d5c09012SAndroid Build Coastguard Worker // The metadata for a rich link. 78*d5c09012SAndroid Build Coastguard Worker RichLinkMetadata rich_link_metadata = 6; 79*d5c09012SAndroid Build Coastguard Worker } 80*d5c09012SAndroid Build Coastguard Worker} 81*d5c09012SAndroid Build Coastguard Worker 82*d5c09012SAndroid Build Coastguard Worker// Annotation metadata for user mentions (@). 83*d5c09012SAndroid Build Coastguard Workermessage UserMentionMetadata { 84*d5c09012SAndroid Build Coastguard Worker enum Type { 85*d5c09012SAndroid Build Coastguard Worker // Default value for the enum. Don't use. 86*d5c09012SAndroid Build Coastguard Worker TYPE_UNSPECIFIED = 0; 87*d5c09012SAndroid Build Coastguard Worker 88*d5c09012SAndroid Build Coastguard Worker // Add user to space. 89*d5c09012SAndroid Build Coastguard Worker ADD = 1; 90*d5c09012SAndroid Build Coastguard Worker 91*d5c09012SAndroid Build Coastguard Worker // Mention user in space. 92*d5c09012SAndroid Build Coastguard Worker MENTION = 2; 93*d5c09012SAndroid Build Coastguard Worker } 94*d5c09012SAndroid Build Coastguard Worker 95*d5c09012SAndroid Build Coastguard Worker // The user mentioned. 96*d5c09012SAndroid Build Coastguard Worker User user = 1; 97*d5c09012SAndroid Build Coastguard Worker 98*d5c09012SAndroid Build Coastguard Worker // The type of user mention. 99*d5c09012SAndroid Build Coastguard Worker Type type = 2; 100*d5c09012SAndroid Build Coastguard Worker} 101*d5c09012SAndroid Build Coastguard Worker 102*d5c09012SAndroid Build Coastguard Worker// Annotation metadata for slash commands (/). 103*d5c09012SAndroid Build Coastguard Workermessage SlashCommandMetadata { 104*d5c09012SAndroid Build Coastguard Worker enum Type { 105*d5c09012SAndroid Build Coastguard Worker // Default value for the enum. Don't use. 106*d5c09012SAndroid Build Coastguard Worker TYPE_UNSPECIFIED = 0; 107*d5c09012SAndroid Build Coastguard Worker 108*d5c09012SAndroid Build Coastguard Worker // Add Chat app to space. 109*d5c09012SAndroid Build Coastguard Worker ADD = 1; 110*d5c09012SAndroid Build Coastguard Worker 111*d5c09012SAndroid Build Coastguard Worker // Invoke slash command in space. 112*d5c09012SAndroid Build Coastguard Worker INVOKE = 2; 113*d5c09012SAndroid Build Coastguard Worker } 114*d5c09012SAndroid Build Coastguard Worker 115*d5c09012SAndroid Build Coastguard Worker // The Chat app whose command was invoked. 116*d5c09012SAndroid Build Coastguard Worker User bot = 1; 117*d5c09012SAndroid Build Coastguard Worker 118*d5c09012SAndroid Build Coastguard Worker // The type of slash command. 119*d5c09012SAndroid Build Coastguard Worker Type type = 2; 120*d5c09012SAndroid Build Coastguard Worker 121*d5c09012SAndroid Build Coastguard Worker // The name of the invoked slash command. 122*d5c09012SAndroid Build Coastguard Worker string command_name = 3; 123*d5c09012SAndroid Build Coastguard Worker 124*d5c09012SAndroid Build Coastguard Worker // The command ID of the invoked slash command. 125*d5c09012SAndroid Build Coastguard Worker int64 command_id = 4; 126*d5c09012SAndroid Build Coastguard Worker 127*d5c09012SAndroid Build Coastguard Worker // Indicates whether the slash command is for a dialog. 128*d5c09012SAndroid Build Coastguard Worker bool triggers_dialog = 5; 129*d5c09012SAndroid Build Coastguard Worker} 130*d5c09012SAndroid Build Coastguard Worker 131*d5c09012SAndroid Build Coastguard Worker// A rich link to a resource. 132*d5c09012SAndroid Build Coastguard Workermessage RichLinkMetadata { 133*d5c09012SAndroid Build Coastguard Worker // The rich link type. More types might be added in the future. 134*d5c09012SAndroid Build Coastguard Worker enum RichLinkType { 135*d5c09012SAndroid Build Coastguard Worker // Default value for the enum. Don't use. 136*d5c09012SAndroid Build Coastguard Worker RICH_LINK_TYPE_UNSPECIFIED = 0; 137*d5c09012SAndroid Build Coastguard Worker 138*d5c09012SAndroid Build Coastguard Worker // A Google Drive rich link type. 139*d5c09012SAndroid Build Coastguard Worker DRIVE_FILE = 1; 140*d5c09012SAndroid Build Coastguard Worker } 141*d5c09012SAndroid Build Coastguard Worker 142*d5c09012SAndroid Build Coastguard Worker // The URI of this link. 143*d5c09012SAndroid Build Coastguard Worker string uri = 1; 144*d5c09012SAndroid Build Coastguard Worker 145*d5c09012SAndroid Build Coastguard Worker // The rich link type. 146*d5c09012SAndroid Build Coastguard Worker RichLinkType rich_link_type = 2; 147*d5c09012SAndroid Build Coastguard Worker 148*d5c09012SAndroid Build Coastguard Worker // Data for the linked resource. 149*d5c09012SAndroid Build Coastguard Worker oneof data { 150*d5c09012SAndroid Build Coastguard Worker // Data for a drive link. 151*d5c09012SAndroid Build Coastguard Worker DriveLinkData drive_link_data = 3; 152*d5c09012SAndroid Build Coastguard Worker } 153*d5c09012SAndroid Build Coastguard Worker} 154*d5c09012SAndroid Build Coastguard Worker 155*d5c09012SAndroid Build Coastguard Worker// Data for Google Drive links. 156*d5c09012SAndroid Build Coastguard Workermessage DriveLinkData { 157*d5c09012SAndroid Build Coastguard Worker // A 158*d5c09012SAndroid Build Coastguard Worker // [DriveDataRef](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages.attachments#drivedataref) 159*d5c09012SAndroid Build Coastguard Worker // which references a Google Drive file. 160*d5c09012SAndroid Build Coastguard Worker DriveDataRef drive_data_ref = 1; 161*d5c09012SAndroid Build Coastguard Worker 162*d5c09012SAndroid Build Coastguard Worker // The mime type of the linked Google Drive resource. 163*d5c09012SAndroid Build Coastguard Worker string mime_type = 2; 164*d5c09012SAndroid Build Coastguard Worker} 165*d5c09012SAndroid Build Coastguard Worker 166*d5c09012SAndroid Build Coastguard Worker// Type of the annotation. 167*d5c09012SAndroid Build Coastguard Workerenum AnnotationType { 168*d5c09012SAndroid Build Coastguard Worker // Default value for the enum. Don't use. 169*d5c09012SAndroid Build Coastguard Worker ANNOTATION_TYPE_UNSPECIFIED = 0; 170*d5c09012SAndroid Build Coastguard Worker 171*d5c09012SAndroid Build Coastguard Worker // A user is mentioned. 172*d5c09012SAndroid Build Coastguard Worker USER_MENTION = 1; 173*d5c09012SAndroid Build Coastguard Worker 174*d5c09012SAndroid Build Coastguard Worker // A slash command is invoked. 175*d5c09012SAndroid Build Coastguard Worker SLASH_COMMAND = 2; 176*d5c09012SAndroid Build Coastguard Worker 177*d5c09012SAndroid Build Coastguard Worker // A rich link annotation. 178*d5c09012SAndroid Build Coastguard Worker RICH_LINK = 3; 179*d5c09012SAndroid Build Coastguard Worker} 180