xref: /aosp_15_r20/external/googleapis/google/chat/v1/contextual_addon.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/widgets.proto";
20*d5c09012SAndroid Build Coastguard Worker
21*d5c09012SAndroid Build Coastguard Workeroption csharp_namespace = "Google.Apps.Chat.V1";
22*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/chat/apiv1/chatpb;chatpb";
23*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true;
24*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "ContextualAddOnProto";
25*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.chat.v1";
26*d5c09012SAndroid Build Coastguard Workeroption php_namespace = "Google\\Apps\\Chat\\V1";
27*d5c09012SAndroid Build Coastguard Workeroption ruby_package = "Google::Apps::Chat::V1";
28*d5c09012SAndroid Build Coastguard Worker
29*d5c09012SAndroid Build Coastguard Worker// The markup for developers to specify the contents of a contextual AddOn.
30*d5c09012SAndroid Build Coastguard Workermessage ContextualAddOnMarkup {
31*d5c09012SAndroid Build Coastguard Worker  // A card is a UI element that can contain UI widgets such as text and
32*d5c09012SAndroid Build Coastguard Worker  // images.
33*d5c09012SAndroid Build Coastguard Worker  message Card {
34*d5c09012SAndroid Build Coastguard Worker    message CardHeader {
35*d5c09012SAndroid Build Coastguard Worker      enum ImageStyle {
36*d5c09012SAndroid Build Coastguard Worker        IMAGE_STYLE_UNSPECIFIED = 0;
37*d5c09012SAndroid Build Coastguard Worker
38*d5c09012SAndroid Build Coastguard Worker        // Square border.
39*d5c09012SAndroid Build Coastguard Worker        IMAGE = 1;
40*d5c09012SAndroid Build Coastguard Worker
41*d5c09012SAndroid Build Coastguard Worker        // Circular border.
42*d5c09012SAndroid Build Coastguard Worker        AVATAR = 2;
43*d5c09012SAndroid Build Coastguard Worker      }
44*d5c09012SAndroid Build Coastguard Worker
45*d5c09012SAndroid Build Coastguard Worker      // The title must be specified. The header has a fixed height: if both a
46*d5c09012SAndroid Build Coastguard Worker      // title and subtitle is specified, each takes up one line. If only the
47*d5c09012SAndroid Build Coastguard Worker      // title is specified, it takes up both lines.
48*d5c09012SAndroid Build Coastguard Worker      string title = 1;
49*d5c09012SAndroid Build Coastguard Worker
50*d5c09012SAndroid Build Coastguard Worker      // The subtitle of the card header.
51*d5c09012SAndroid Build Coastguard Worker      string subtitle = 2;
52*d5c09012SAndroid Build Coastguard Worker
53*d5c09012SAndroid Build Coastguard Worker      // The image's type (for example, square border or circular border).
54*d5c09012SAndroid Build Coastguard Worker      ImageStyle image_style = 3;
55*d5c09012SAndroid Build Coastguard Worker
56*d5c09012SAndroid Build Coastguard Worker      // The URL of the image in the card header.
57*d5c09012SAndroid Build Coastguard Worker      string image_url = 4;
58*d5c09012SAndroid Build Coastguard Worker    }
59*d5c09012SAndroid Build Coastguard Worker
60*d5c09012SAndroid Build Coastguard Worker    // A section contains a collection of widgets that are rendered
61*d5c09012SAndroid Build Coastguard Worker    // (vertically) in the order that they are specified. Across all platforms,
62*d5c09012SAndroid Build Coastguard Worker    // cards have a narrow fixed width, so
63*d5c09012SAndroid Build Coastguard Worker    // there's currently no need for layout properties (for example, float).
64*d5c09012SAndroid Build Coastguard Worker    message Section {
65*d5c09012SAndroid Build Coastguard Worker      // The header of the section. Formatted text is
66*d5c09012SAndroid Build Coastguard Worker      // supported. For more information
67*d5c09012SAndroid Build Coastguard Worker      // about formatting text, see
68*d5c09012SAndroid Build Coastguard Worker      // [Formatting text in Google Chat
69*d5c09012SAndroid Build Coastguard Worker      // apps](https://developers.google.com/workspace/chat/format-messages#card-formatting)
70*d5c09012SAndroid Build Coastguard Worker      // and
71*d5c09012SAndroid Build Coastguard Worker      // [Formatting
72*d5c09012SAndroid Build Coastguard Worker      // text in Google Workspace
73*d5c09012SAndroid Build Coastguard Worker      // Add-ons](https://developers.google.com/apps-script/add-ons/concepts/widgets#text_formatting).
74*d5c09012SAndroid Build Coastguard Worker      string header = 1;
75*d5c09012SAndroid Build Coastguard Worker
76*d5c09012SAndroid Build Coastguard Worker      // A section must contain at least one widget.
77*d5c09012SAndroid Build Coastguard Worker      repeated WidgetMarkup widgets = 2;
78*d5c09012SAndroid Build Coastguard Worker    }
79*d5c09012SAndroid Build Coastguard Worker
80*d5c09012SAndroid Build Coastguard Worker    // A card action is
81*d5c09012SAndroid Build Coastguard Worker    // the action associated with the card. For an invoice card, a
82*d5c09012SAndroid Build Coastguard Worker    // typical action would be: delete invoice, email invoice or open the
83*d5c09012SAndroid Build Coastguard Worker    // invoice in browser.
84*d5c09012SAndroid Build Coastguard Worker    //
85*d5c09012SAndroid Build Coastguard Worker    // Not supported by Google Chat apps.
86*d5c09012SAndroid Build Coastguard Worker    message CardAction {
87*d5c09012SAndroid Build Coastguard Worker      // The label used to be displayed in the action menu item.
88*d5c09012SAndroid Build Coastguard Worker      string action_label = 1;
89*d5c09012SAndroid Build Coastguard Worker
90*d5c09012SAndroid Build Coastguard Worker      // The onclick action for this action item.
91*d5c09012SAndroid Build Coastguard Worker      WidgetMarkup.OnClick on_click = 2;
92*d5c09012SAndroid Build Coastguard Worker    }
93*d5c09012SAndroid Build Coastguard Worker
94*d5c09012SAndroid Build Coastguard Worker    // The header of the card. A header usually contains a title and an image.
95*d5c09012SAndroid Build Coastguard Worker    CardHeader header = 1;
96*d5c09012SAndroid Build Coastguard Worker
97*d5c09012SAndroid Build Coastguard Worker    // Sections are separated by a line divider.
98*d5c09012SAndroid Build Coastguard Worker    repeated Section sections = 2;
99*d5c09012SAndroid Build Coastguard Worker
100*d5c09012SAndroid Build Coastguard Worker    // The actions of this card.
101*d5c09012SAndroid Build Coastguard Worker    repeated CardAction card_actions = 3;
102*d5c09012SAndroid Build Coastguard Worker
103*d5c09012SAndroid Build Coastguard Worker    // Name of the card.
104*d5c09012SAndroid Build Coastguard Worker    string name = 4;
105*d5c09012SAndroid Build Coastguard Worker  }
106*d5c09012SAndroid Build Coastguard Worker}
107