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