mirror of
https://github.com/googleapis/googleapis.git
synced 2026-08-16 13:00:34 +02:00
278 lines
7.8 KiB
Protocol Buffer
278 lines
7.8 KiB
Protocol Buffer
// Copyright 2025 Google LLC
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
syntax = "proto3";
|
|
|
|
package google.chat.v1;
|
|
|
|
option csharp_namespace = "Google.Apps.Chat.V1";
|
|
option go_package = "cloud.google.com/go/chat/apiv1/chatpb;chatpb";
|
|
option java_multiple_files = true;
|
|
option java_outer_classname = "WidgetsProto";
|
|
option java_package = "com.google.chat.v1";
|
|
option objc_class_prefix = "DYNAPIProto";
|
|
option php_namespace = "Google\\Apps\\Chat\\V1";
|
|
option ruby_package = "Google::Apps::Chat::V1";
|
|
|
|
// A widget is a UI element that presents text and images.
|
|
message WidgetMarkup {
|
|
// A paragraph of text. Formatted text supported. For more information
|
|
// about formatting text, see
|
|
// [Formatting text in Google Chat
|
|
// apps](https://developers.google.com/workspace/chat/format-messages#card-formatting)
|
|
// and
|
|
// [Formatting
|
|
// text in Google Workspace
|
|
// Add-ons](https://developers.google.com/apps-script/add-ons/concepts/widgets#text_formatting).
|
|
message TextParagraph {
|
|
string text = 1;
|
|
}
|
|
|
|
// The set of supported icons.
|
|
enum Icon {
|
|
ICON_UNSPECIFIED = 0;
|
|
|
|
AIRPLANE = 1;
|
|
|
|
BOOKMARK = 26;
|
|
|
|
BUS = 25;
|
|
|
|
CAR = 9;
|
|
|
|
CLOCK = 2;
|
|
|
|
CONFIRMATION_NUMBER_ICON = 12;
|
|
|
|
DOLLAR = 14;
|
|
|
|
DESCRIPTION = 27;
|
|
|
|
EMAIL = 10;
|
|
|
|
EVENT_PERFORMER = 20;
|
|
|
|
EVENT_SEAT = 21;
|
|
|
|
FLIGHT_ARRIVAL = 16;
|
|
|
|
FLIGHT_DEPARTURE = 15;
|
|
|
|
HOTEL = 6;
|
|
|
|
HOTEL_ROOM_TYPE = 17;
|
|
|
|
INVITE = 19;
|
|
|
|
MAP_PIN = 3;
|
|
|
|
MEMBERSHIP = 24;
|
|
|
|
MULTIPLE_PEOPLE = 18;
|
|
|
|
OFFER = 30;
|
|
|
|
PERSON = 11;
|
|
|
|
PHONE = 13;
|
|
|
|
RESTAURANT_ICON = 7;
|
|
|
|
SHOPPING_CART = 8;
|
|
|
|
STAR = 5;
|
|
|
|
STORE = 22;
|
|
|
|
TICKET = 4;
|
|
|
|
TRAIN = 23;
|
|
|
|
VIDEO_CAMERA = 28;
|
|
|
|
VIDEO_PLAY = 29;
|
|
}
|
|
|
|
// A button. Can be a text button or an image button.
|
|
message Button {
|
|
oneof type {
|
|
// A button with text and `onclick` action.
|
|
TextButton text_button = 1;
|
|
|
|
// A button with image and `onclick` action.
|
|
ImageButton image_button = 2;
|
|
}
|
|
}
|
|
|
|
// A button with text and `onclick` action.
|
|
message TextButton {
|
|
// The text of the button.
|
|
string text = 1;
|
|
|
|
// The `onclick` action of the button.
|
|
OnClick on_click = 2;
|
|
}
|
|
|
|
// A UI element contains a key (label) and a value (content). This
|
|
// element can also contain some actions such as `onclick` button.
|
|
message KeyValue {
|
|
// At least one of icons, `top_label` and `bottom_label` must be defined.
|
|
oneof icons {
|
|
// An enum value that's replaced by the Chat API with the
|
|
// corresponding icon image.
|
|
Icon icon = 1;
|
|
|
|
// The icon specified by a URL.
|
|
string icon_url = 2;
|
|
}
|
|
|
|
// The text of the top label. Formatted text supported. For more information
|
|
// about formatting text, see
|
|
// [Formatting text in Google Chat
|
|
// apps](https://developers.google.com/workspace/chat/format-messages#card-formatting)
|
|
// and
|
|
// [Formatting
|
|
// text in Google Workspace
|
|
// Add-ons](https://developers.google.com/apps-script/add-ons/concepts/widgets#text_formatting).
|
|
string top_label = 3;
|
|
|
|
// The text of the content. Formatted text supported and always required.
|
|
// For more information
|
|
// about formatting text, see
|
|
// [Formatting text in Google Chat
|
|
// apps](https://developers.google.com/workspace/chat/format-messages#card-formatting)
|
|
// and
|
|
// [Formatting
|
|
// text in Google Workspace
|
|
// Add-ons](https://developers.google.com/apps-script/add-ons/concepts/widgets#text_formatting).
|
|
string content = 4;
|
|
|
|
// If the content should be multiline.
|
|
bool content_multiline = 9;
|
|
|
|
// The text of the bottom label. Formatted text supported. For more
|
|
// information about formatting text, see [Formatting text in Google Chat
|
|
// apps](https://developers.google.com/workspace/chat/format-messages#card-formatting)
|
|
// and
|
|
// [Formatting
|
|
// text in Google Workspace
|
|
// Add-ons](https://developers.google.com/apps-script/add-ons/concepts/widgets#text_formatting).
|
|
string bottom_label = 5;
|
|
|
|
// The `onclick` action. Only the top label, bottom label, and content
|
|
// region are clickable.
|
|
OnClick on_click = 6;
|
|
|
|
// A control widget. You can set either `button` or `switch_widget`,
|
|
// but not both.
|
|
oneof control {
|
|
// A button that can be clicked to trigger an action.
|
|
Button button = 7;
|
|
}
|
|
}
|
|
|
|
// An image that's specified by a URL and can have an `onclick` action.
|
|
message Image {
|
|
// The URL of the image.
|
|
string image_url = 1;
|
|
|
|
// The `onclick` action.
|
|
OnClick on_click = 2;
|
|
|
|
// The aspect ratio of this image (width and height). This field lets you
|
|
// reserve the right height for the image while waiting for it to load.
|
|
// It's not meant to override the built-in aspect ratio of the image.
|
|
// If unset, the server fills it by prefetching the image.
|
|
double aspect_ratio = 3;
|
|
}
|
|
|
|
// An image button with an `onclick` action.
|
|
message ImageButton {
|
|
// The icon can be specified by an `Icon` `enum` or a URL.
|
|
oneof icons {
|
|
// The icon specified by an `enum` that indices to an icon provided by
|
|
// Chat API.
|
|
Icon icon = 1;
|
|
|
|
// The icon specified by a URL.
|
|
string icon_url = 3;
|
|
}
|
|
|
|
// The `onclick` action.
|
|
OnClick on_click = 2;
|
|
|
|
// The name of this `image_button` that's used for accessibility.
|
|
// Default value is provided if this name isn't specified.
|
|
string name = 4;
|
|
}
|
|
|
|
// An `onclick` action (for example, open a link).
|
|
message OnClick {
|
|
oneof data {
|
|
// A form action is triggered by this `onclick` action if specified.
|
|
FormAction action = 1;
|
|
|
|
// This `onclick` action triggers an open link action if specified.
|
|
OpenLink open_link = 2;
|
|
}
|
|
}
|
|
|
|
// A link that opens a new window.
|
|
message OpenLink {
|
|
// The URL to open.
|
|
string url = 1;
|
|
}
|
|
|
|
// A form action describes the behavior when the form is submitted.
|
|
// For example, you can invoke Apps Script to handle the form.
|
|
message FormAction {
|
|
// List of string parameters to supply when the action method is invoked.
|
|
// For example, consider three snooze buttons: snooze now, snooze one day,
|
|
// snooze next week. You might use `action method = snooze()`, passing the
|
|
// snooze type and snooze time in the list of string parameters.
|
|
message ActionParameter {
|
|
// The name of the parameter for the action script.
|
|
string key = 1;
|
|
|
|
// The value of the parameter.
|
|
string value = 2;
|
|
}
|
|
|
|
// The method name is used to identify which part of the form triggered the
|
|
// form submission. This information is echoed back to the Chat app as part
|
|
// of the card click event. You can use the same method name for several
|
|
// elements that trigger a common behavior.
|
|
string action_method_name = 1;
|
|
|
|
// List of action parameters.
|
|
repeated ActionParameter parameters = 2;
|
|
}
|
|
|
|
// A `WidgetMarkup` can only have one of the following items. You can use
|
|
// multiple `WidgetMarkup` fields to display more items.
|
|
oneof data {
|
|
// Display a text paragraph in this widget.
|
|
TextParagraph text_paragraph = 1;
|
|
|
|
// Display an image in this widget.
|
|
Image image = 2;
|
|
|
|
// Display a key value item in this widget.
|
|
KeyValue key_value = 3;
|
|
}
|
|
|
|
// A list of buttons. Buttons is also `oneof data` and only one of these
|
|
// fields should be set.
|
|
repeated Button buttons = 6;
|
|
}
|