xref: /aosp_15_r20/external/googleapis/google/chat/v1/annotation.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/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