google-api-ruby-client/generated/google-apis-chat_v1/lib/google/apis/chat_v1/classes.rb

3023 lines
122 KiB
Ruby
Raw Permalink Normal View History

# Copyright 2020 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.
require 'date'
require 'google/apis/core/base_service'
require 'google/apis/core/json_representation'
require 'google/apis/core/hashable'
require 'google/apis/errors'
module Google
module Apis
module ChatV1
# List of string parameters to supply when the action method is invoked. For
# example, consider three snooze buttons: snooze now, snooze 1 day, snooze next
# week. You might use action method = snooze(), passing the snooze type and
# snooze time in the list of string parameters.
class ActionParameter
include Google::Apis::Core::Hashable
# The name of the parameter for the action script.
# Corresponds to the JSON property `key`
# @return [String]
attr_accessor :key
# The value of the parameter.
# Corresponds to the JSON property `value`
# @return [String]
attr_accessor :value
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@key = args[:key] if args.key?(:key)
@value = args[:value] if args.key?(:value)
end
end
# Parameters that a Chat app can use to configure how it's response is posted.
class ActionResponse
include Google::Apis::Core::Hashable
# Contains a [dialog](https://developers.google.com/chat/how-tos/dialogs) and
# request status code.
# Corresponds to the JSON property `dialogAction`
# @return [Google::Apis::ChatV1::DialogAction]
attr_accessor :dialog_action
# The type of Chat app response.
# Corresponds to the JSON property `type`
# @return [String]
attr_accessor :type
# URL for users to auth or config. (Only for REQUEST_CONFIG response types.)
# Corresponds to the JSON property `url`
# @return [String]
attr_accessor :url
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@dialog_action = args[:dialog_action] if args.key?(:dialog_action)
@type = args[:type] if args.key?(:type)
@url = args[:url] if args.key?(:url)
end
end
# Represents the status of a request.
class ActionStatus
include Google::Apis::Core::Hashable
# The status code.
# Corresponds to the JSON property `statusCode`
# @return [String]
attr_accessor :status_code
# The message to send users about the status of their request. If unset, a
# generic message based on the `status_code` is sent.
# Corresponds to the JSON property `userFacingMessage`
# @return [String]
attr_accessor :user_facing_message
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@status_code = args[:status_code] if args.key?(:status_code)
@user_facing_message = args[:user_facing_message] if args.key?(:user_facing_message)
end
end
# Annotations associated with the plain-text body of the message. Example plain-
# text message body: ``` Hello @FooBot how are you!" ``` The corresponding
# annotations metadata: ``` "annotations":[` "type":"USER_MENTION", "startIndex":
# 6, "length":7, "userMention": ` "user": ` "name":"users/107946847022116401880",
# "displayName":"FooBot", "avatarUrl":"https://goo.gl/aeDtrS", "type":"BOT" `, "
# type":"MENTION" ` `] ```
class Annotation
include Google::Apis::Core::Hashable
# Length of the substring in the plain-text message body this annotation
# corresponds to.
# Corresponds to the JSON property `length`
# @return [Fixnum]
attr_accessor :length
# Annotation metadata for slash commands (/).
# Corresponds to the JSON property `slashCommand`
# @return [Google::Apis::ChatV1::SlashCommandMetadata]
attr_accessor :slash_command
# Start index (0-based, inclusive) in the plain-text message body this
# annotation corresponds to.
# Corresponds to the JSON property `startIndex`
# @return [Fixnum]
attr_accessor :start_index
# The type of this annotation.
# Corresponds to the JSON property `type`
# @return [String]
attr_accessor :type
# Annotation metadata for user mentions (@).
# Corresponds to the JSON property `userMention`
# @return [Google::Apis::ChatV1::UserMentionMetadata]
attr_accessor :user_mention
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@length = args[:length] if args.key?(:length)
@slash_command = args[:slash_command] if args.key?(:slash_command)
@start_index = args[:start_index] if args.key?(:start_index)
@type = args[:type] if args.key?(:type)
@user_mention = args[:user_mention] if args.key?(:user_mention)
end
end
# An attachment in Google Chat.
class Attachment
include Google::Apis::Core::Hashable
# A reference to the data of an attachment.
# Corresponds to the JSON property `attachmentDataRef`
# @return [Google::Apis::ChatV1::AttachmentDataRef]
attr_accessor :attachment_data_ref
# The original file name for the content, not the full path.
# Corresponds to the JSON property `contentName`
# @return [String]
attr_accessor :content_name
# The content type (MIME type) of the file.
# Corresponds to the JSON property `contentType`
# @return [String]
attr_accessor :content_type
# Output only. The download URL which should be used to allow a human user to
# download the attachment. Chat apps should not use this URL to download
# attachment content.
# Corresponds to the JSON property `downloadUri`
# @return [String]
attr_accessor :download_uri
# A reference to the data of a drive attachment.
# Corresponds to the JSON property `driveDataRef`
# @return [Google::Apis::ChatV1::DriveDataRef]
attr_accessor :drive_data_ref
# Resource name of the attachment, in the form "spaces/*/messages/*/attachments/*
# ".
# Corresponds to the JSON property `name`
# @return [String]
attr_accessor :name
# The source of the attachment.
# Corresponds to the JSON property `source`
# @return [String]
attr_accessor :source
# Output only. The thumbnail URL which should be used to preview the attachment
# to a human user. Chat apps should not use this URL to download attachment
# content.
# Corresponds to the JSON property `thumbnailUri`
# @return [String]
attr_accessor :thumbnail_uri
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@attachment_data_ref = args[:attachment_data_ref] if args.key?(:attachment_data_ref)
@content_name = args[:content_name] if args.key?(:content_name)
@content_type = args[:content_type] if args.key?(:content_type)
@download_uri = args[:download_uri] if args.key?(:download_uri)
@drive_data_ref = args[:drive_data_ref] if args.key?(:drive_data_ref)
@name = args[:name] if args.key?(:name)
@source = args[:source] if args.key?(:source)
@thumbnail_uri = args[:thumbnail_uri] if args.key?(:thumbnail_uri)
end
end
# A reference to the data of an attachment.
class AttachmentDataRef
include Google::Apis::Core::Hashable
# The resource name of the attachment data. This is used with the media API to
# download the attachment data.
# Corresponds to the JSON property `resourceName`
# @return [String]
attr_accessor :resource_name
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@resource_name = args[:resource_name] if args.key?(:resource_name)
end
end
# A button. Can be a text button or an image button.
class Button
include Google::Apis::Core::Hashable
# An image button with an onclick action.
# Corresponds to the JSON property `imageButton`
# @return [Google::Apis::ChatV1::ImageButton]
attr_accessor :image_button
# A button with text and onclick action.
# Corresponds to the JSON property `textButton`
# @return [Google::Apis::ChatV1::TextButton]
attr_accessor :text_button
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@image_button = args[:image_button] if args.key?(:image_button)
@text_button = args[:text_button] if args.key?(:text_button)
end
end
# A card is a UI element that can contain UI widgets such as texts, images.
class Card
include Google::Apis::Core::Hashable
# The actions of this card.
# Corresponds to the JSON property `cardActions`
# @return [Array<Google::Apis::ChatV1::CardAction>]
attr_accessor :card_actions
# The header of the card. A header usually contains a title and an image.
# Corresponds to the JSON property `header`
# @return [Google::Apis::ChatV1::CardHeader]
attr_accessor :header
# Name of the card.
# Corresponds to the JSON property `name`
# @return [String]
attr_accessor :name
# Sections are separated by a line divider.
# Corresponds to the JSON property `sections`
# @return [Array<Google::Apis::ChatV1::Section>]
attr_accessor :sections
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@card_actions = args[:card_actions] if args.key?(:card_actions)
@header = args[:header] if args.key?(:header)
@name = args[:name] if args.key?(:name)
@sections = args[:sections] if args.key?(:sections)
end
end
# A card action is the action associated with the card. For an invoice card, a
# typical action would be: delete invoice, email invoice or open the invoice in
# browser.
class CardAction
include Google::Apis::Core::Hashable
# The label used to be displayed in the action menu item.
# Corresponds to the JSON property `actionLabel`
# @return [String]
attr_accessor :action_label
# An onclick action (e.g. open a link).
# Corresponds to the JSON property `onClick`
# @return [Google::Apis::ChatV1::OnClick]
attr_accessor :on_click
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@action_label = args[:action_label] if args.key?(:action_label)
@on_click = args[:on_click] if args.key?(:on_click)
end
end
#
class CardHeader
include Google::Apis::Core::Hashable
# The image's type (e.g. square border or circular border).
# Corresponds to the JSON property `imageStyle`
# @return [String]
attr_accessor :image_style
# The URL of the image in the card header.
# Corresponds to the JSON property `imageUrl`
# @return [String]
attr_accessor :image_url
# The subtitle of the card header.
# Corresponds to the JSON property `subtitle`
# @return [String]
attr_accessor :subtitle
# The title must be specified. The header has a fixed height: if both a title
# and subtitle is specified, each will take up 1 line. If only the title is
# specified, it will take up both lines.
# Corresponds to the JSON property `title`
# @return [String]
attr_accessor :title
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@image_style = args[:image_style] if args.key?(:image_style)
@image_url = args[:image_url] if args.key?(:image_url)
@subtitle = args[:subtitle] if args.key?(:subtitle)
@title = args[:title] if args.key?(:title)
end
end
# Represents a color in the RGBA color space. This representation is designed
# for simplicity of conversion to/from color representations in various
# languages over compactness. For example, the fields of this representation can
# be trivially provided to the constructor of `java.awt.Color` in Java; it can
# also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha`
# method in iOS; and, with just a little work, it can be easily formatted into a
# CSS `rgba()` string in JavaScript. This reference page doesn't carry
# information about the absolute color space that should be used to interpret
# the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default,
# applications should assume the sRGB color space. When color equality needs to
# be decided, implementations, unless documented otherwise, treat two colors as
# equal if all their red, green, blue, and alpha values each differ by at most
# 1e-5. Example (Java): import com.google.type.Color; // ... public static java.
# awt.Color fromProto(Color protocolor) ` float alpha = protocolor.hasAlpha() ?
# protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.
# getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); ` public static
# Color toProto(java.awt.Color color) ` float red = (float) color.getRed();
# float green = (float) color.getGreen(); float blue = (float) color.getBlue();
# float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .
# setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue /
# denominator); int alpha = color.getAlpha(); if (alpha != 255) ` result.
# setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .
# build()); ` return resultBuilder.build(); ` // ... Example (iOS / Obj-C): // ..
# . static UIColor* fromProto(Color* protocolor) ` float red = [protocolor red];
# float green = [protocolor green]; float blue = [protocolor blue]; FloatValue*
# alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper !=
# nil) ` alpha = [alpha_wrapper value]; ` return [UIColor colorWithRed:red green:
# green blue:blue alpha:alpha]; ` static Color* toProto(UIColor* color) `
# CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&
# blue alpha:&alpha]) ` return nil; ` Color* result = [[Color alloc] init]; [
# result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <
# = 0.9999) ` [result setAlpha:floatWrapperWithValue(alpha)]; ` [result
# autorelease]; return result; ` // ... Example (JavaScript): // ... var
# protoToCssColor = function(rgb_color) ` var redFrac = rgb_color.red || 0.0;
# var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0;
# var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255);
# var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) ` return
# rgbToCssColor(red, green, blue); ` var alphaFrac = rgb_color.alpha.value || 0.
# 0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',
# ', alphaFrac, ')'].join(''); `; var rgbToCssColor = function(red, green, blue)
# ` var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString
# = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var
# resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) ` resultBuilder.
# push('0'); ` resultBuilder.push(hexString); return resultBuilder.join(''); `; /
# / ...
class Color
include Google::Apis::Core::Hashable
# The fraction of this color that should be applied to the pixel. That is, the
# final pixel color is defined by the equation: `pixel color = alpha * (this
# color) + (1.0 - alpha) * (background color)` This means that a value of 1.0
# corresponds to a solid color, whereas a value of 0.0 corresponds to a
# completely transparent color. This uses a wrapper message rather than a simple
# float scalar so that it is possible to distinguish between a default value and
# the value being unset. If omitted, this color object is rendered as a solid
# color (as if the alpha value had been explicitly given a value of 1.0).
# Corresponds to the JSON property `alpha`
# @return [Float]
attr_accessor :alpha
# The amount of blue in the color as a value in the interval [0, 1].
# Corresponds to the JSON property `blue`
# @return [Float]
attr_accessor :blue
# The amount of green in the color as a value in the interval [0, 1].
# Corresponds to the JSON property `green`
# @return [Float]
attr_accessor :green
# The amount of red in the color as a value in the interval [0, 1].
# Corresponds to the JSON property `red`
# @return [Float]
attr_accessor :red
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@alpha = args[:alpha] if args.key?(:alpha)
@blue = args[:blue] if args.key?(:blue)
@green = args[:green] if args.key?(:green)
@red = args[:red] if args.key?(:red)
end
end
# Represents information about the user's client, such as locale, host app, and
# platform. For Chat apps, `CommonEventObject` includes data submitted by users
# interacting with cards, like data entered in [dialogs](https://developers.
# google.com/chat/how-tos/dialogs).
class CommonEventObject
include Google::Apis::Core::Hashable
# A map containing the current values of the widgets in a card. The map keys are
# the string IDs assigned to each widget, and the values represent inputs to the
# widget. Depending on the input data type, a different object represents each
# input: For single-value widgets, `StringInput`. For multi-value widgets, an
# array of `StringInput` objects. For a date-time picker, a `DateTimeInput`. For
# a date-only picker, a `DateInput`. For a time-only picker, a `TimeInput`.
# Corresponds with the data entered by a user on a card in a [dialog](https://
# developers.google.com/chat/how-tos/dialogs).
# Corresponds to the JSON property `formInputs`
# @return [Hash<String,Google::Apis::ChatV1::Inputs>]
attr_accessor :form_inputs
# The hostApp enum which indicates the app the add-on is invoked from. Always `
# CHAT` for Chat apps.
# Corresponds to the JSON property `hostApp`
# @return [String]
attr_accessor :host_app
# Name of the invoked function associated with the widget. Only set for Chat
# apps.
# Corresponds to the JSON property `invokedFunction`
# @return [String]
attr_accessor :invoked_function
# Custom [parameters](/chat/api/reference/rest/v1/cards#ActionParameter) passed
# to the invoked function. Both keys and values must be strings.
# Corresponds to the JSON property `parameters`
# @return [Hash<String,String>]
attr_accessor :parameters
# The platform enum which indicates the platform where the event originates (`
# WEB`, `IOS`, or `ANDROID`). Not supported by Chat apps.
# Corresponds to the JSON property `platform`
# @return [String]
attr_accessor :platform
# The timezone ID and offset from Coordinated Universal Time (UTC). Not
# supported by Chat apps.
# Corresponds to the JSON property `timeZone`
# @return [Google::Apis::ChatV1::TimeZone]
attr_accessor :time_zone
# The full `locale.displayName` in the format of [ISO 639 language code]-[ISO
# 3166 country/region code] such as "en-US". Not supported by Chat apps.
# Corresponds to the JSON property `userLocale`
# @return [String]
attr_accessor :user_locale
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@form_inputs = args[:form_inputs] if args.key?(:form_inputs)
@host_app = args[:host_app] if args.key?(:host_app)
@invoked_function = args[:invoked_function] if args.key?(:invoked_function)
@parameters = args[:parameters] if args.key?(:parameters)
@platform = args[:platform] if args.key?(:platform)
@time_zone = args[:time_zone] if args.key?(:time_zone)
@user_locale = args[:user_locale] if args.key?(:user_locale)
end
end
# Date input values. Not supported by Chat apps.
class DateInput
include Google::Apis::Core::Hashable
# Time since epoch time, in milliseconds.
# Corresponds to the JSON property `msSinceEpoch`
# @return [Fixnum]
attr_accessor :ms_since_epoch
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@ms_since_epoch = args[:ms_since_epoch] if args.key?(:ms_since_epoch)
end
end
# Date and time input values. Not supported by Chat apps.
class DateTimeInput
include Google::Apis::Core::Hashable
# Whether the `datetime` input includes a calendar date.
# Corresponds to the JSON property `hasDate`
# @return [Boolean]
attr_accessor :has_date
alias_method :has_date?, :has_date
# Whether the `datetime` input includes a timestamp.
# Corresponds to the JSON property `hasTime`
# @return [Boolean]
attr_accessor :has_time
alias_method :has_time?, :has_time
# Time since epoch time, in milliseconds.
# Corresponds to the JSON property `msSinceEpoch`
# @return [Fixnum]
attr_accessor :ms_since_epoch
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@has_date = args[:has_date] if args.key?(:has_date)
@has_time = args[:has_time] if args.key?(:has_time)
@ms_since_epoch = args[:ms_since_epoch] if args.key?(:ms_since_epoch)
end
end
# Google Chat events.
class DeprecatedEvent
include Google::Apis::Core::Hashable
# A form action describes the behavior when the form is submitted. For example,
# an Apps Script can be invoked to handle the form.
# Corresponds to the JSON property `action`
# @return [Google::Apis::ChatV1::FormAction]
attr_accessor :action
# Represents information about the user's client, such as locale, host app, and
# platform. For Chat apps, `CommonEventObject` includes data submitted by users
# interacting with cards, like data entered in [dialogs](https://developers.
# google.com/chat/how-tos/dialogs).
# Corresponds to the JSON property `common`
# @return [Google::Apis::ChatV1::CommonEventObject]
attr_accessor :common
# The URL the Chat app should redirect the user to after they have completed an
# authorization or configuration flow outside of Google Chat. See the [
# Authorizing access to 3p services guide](/chat/how-tos/auth-3p) for more
# information.
# Corresponds to the JSON property `configCompleteRedirectUrl`
# @return [String]
attr_accessor :config_complete_redirect_url
# The type of [dialog](https://developers.google.com/chat/how-tos/dialogs) event
# received.
# Corresponds to the JSON property `dialogEventType`
# @return [String]
attr_accessor :dialog_event_type
# The timestamp indicating when the event occurred.
# Corresponds to the JSON property `eventTime`
# @return [String]
attr_accessor :event_time
# True when the event is related to [dialogs](https://developers.google.com/chat/
# how-tos/dialogs).
# Corresponds to the JSON property `isDialogEvent`
# @return [Boolean]
attr_accessor :is_dialog_event
alias_method :is_dialog_event?, :is_dialog_event
# A message in Google Chat.
# Corresponds to the JSON property `message`
# @return [Google::Apis::ChatV1::Message]
attr_accessor :message
# A space in Google Chat. Spaces are conversations between two or more users or
# 1:1 messages between a user and a Chat app.
# Corresponds to the JSON property `space`
# @return [Google::Apis::ChatV1::Space]
attr_accessor :space
# The Chat app-defined key for the thread related to the event. See the
# thread_key field of the `spaces.message.create` request for more information.
# Corresponds to the JSON property `threadKey`
# @return [String]
attr_accessor :thread_key
# A secret value that Chat apps can use to verify if a request is from Google.
# The token is randomly generated by Google, remains static, and can be obtained
# from the Google Chat API configuration page in the Cloud Console. Developers
# can revoke/regenerate it if needed from the same page.
# Corresponds to the JSON property `token`
# @return [String]
attr_accessor :token
# The type of the event.
# Corresponds to the JSON property `type`
# @return [String]
attr_accessor :type
# A user in Google Chat.
# Corresponds to the JSON property `user`
# @return [Google::Apis::ChatV1::User]
attr_accessor :user
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@action = args[:action] if args.key?(:action)
@common = args[:common] if args.key?(:common)
@config_complete_redirect_url = args[:config_complete_redirect_url] if args.key?(:config_complete_redirect_url)
@dialog_event_type = args[:dialog_event_type] if args.key?(:dialog_event_type)
@event_time = args[:event_time] if args.key?(:event_time)
@is_dialog_event = args[:is_dialog_event] if args.key?(:is_dialog_event)
@message = args[:message] if args.key?(:message)
@space = args[:space] if args.key?(:space)
@thread_key = args[:thread_key] if args.key?(:thread_key)
@token = args[:token] if args.key?(:token)
@type = args[:type] if args.key?(:type)
@user = args[:user] if args.key?(:user)
end
end
# Wrapper around the card body of the dialog.
class Dialog
include Google::Apis::Core::Hashable
# A card is a UI element that can contain UI widgets such as text and images.
# For more information, see Cards . For example, the following JSON creates a
# card that has a header with the name, position, icons, and link for a contact,
# followed by a section with contact information like email and phone number. ```
# ` "header": ` "title": "Sasha", "subtitle": "Software Engineer", "imageStyle":
# "ImageStyle.AVATAR", "imageUrl": "https://example.com/sasha.png", "
# imageAltText": "Avatar for Sasha" `, "sections" : [ ` "header": "Contact Info",
# "widgets": [ ` "decorated_text": ` "icon": ` "knownIcon": "EMAIL" `, "content"
# : "sasha@example.com" ` `, ` "decoratedText": ` "icon": ` "knownIcon": "PERSON"
# `, "content": "Online" ` `, ` "decoratedText": ` "icon": ` "knownIcon": "
# PHONE" `, "content": "+1 (555) 555-1234" ` `, ` "buttons": [ ` "textButton": `
# "text": "Share", `, "onClick": ` "openLink": ` "url": "https://example.com/
# share" ` ` `, ` "textButton": ` "text": "Edit", `, "onClick": ` "action": ` "
# function": "goToView", "parameters": [ ` "key": "viewType", "value": "EDIT" ` ]
# , "loadIndicator": "LoadIndicator.SPINNER" ` ` ` ] ` ], "collapsible": true, "
# uncollapsibleWidgetsCount": 3 ` ], "cardActions": [ ` "actionLabel": "Send
# Feedback", "onClick": ` "openLink": ` "url": "https://example.com/feedback" ` `
# ` ], "name": "contact-card-K3wB6arF2H9L" ` ```
# Corresponds to the JSON property `body`
# @return [Google::Apis::ChatV1::GoogleAppsCardV1Card]
attr_accessor :body
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@body = args[:body] if args.key?(:body)
end
end
# Contains a [dialog](https://developers.google.com/chat/how-tos/dialogs) and
# request status code.
class DialogAction
include Google::Apis::Core::Hashable
# Represents the status of a request.
# Corresponds to the JSON property `actionStatus`
# @return [Google::Apis::ChatV1::ActionStatus]
attr_accessor :action_status
# Wrapper around the card body of the dialog.
# Corresponds to the JSON property `dialog`
# @return [Google::Apis::ChatV1::Dialog]
attr_accessor :dialog
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@action_status = args[:action_status] if args.key?(:action_status)
@dialog = args[:dialog] if args.key?(:dialog)
end
end
# A reference to the data of a drive attachment.
class DriveDataRef
include Google::Apis::Core::Hashable
# The id for the drive file, for use with the Drive API.
# Corresponds to the JSON property `driveFileId`
# @return [String]
attr_accessor :drive_file_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@drive_file_id = args[:drive_file_id] if args.key?(:drive_file_id)
end
end
# JSON payload of error messages. If the Cloud Logging API is enabled, these
# error messages are logged to [Google Cloud Logging](https://cloud.google.com/
# logging/docs).
class DynamiteIntegrationLogEntry
include Google::Apis::Core::Hashable
# The deployment that caused the error. For Chat bots built in Apps Script, this
# is the deployment ID defined by Apps Script.
# Corresponds to the JSON property `deployment`
# @return [String]
attr_accessor :deployment
# The unencrypted `callback_method` name that was running when the error was
# encountered.
# Corresponds to the JSON property `deploymentFunction`
# @return [String]
attr_accessor :deployment_function
# The `Status` type defines a logical error model that is suitable for different
# programming environments, including REST APIs and RPC APIs. It is used by [
# gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
# data: error code, error message, and error details. You can find out more
# about this error model and how to work with it in the [API Design Guide](https:
# //cloud.google.com/apis/design/errors).
# Corresponds to the JSON property `error`
# @return [Google::Apis::ChatV1::Status]
attr_accessor :error
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@deployment = args[:deployment] if args.key?(:deployment)
@deployment_function = args[:deployment_function] if args.key?(:deployment_function)
@error = args[:error] if args.key?(:error)
end
end
# A generic empty message that you can re-use to avoid defining duplicated empty
# messages in your APIs. A typical example is to use it as the request or the
# response type of an API method. For instance: service Foo ` rpc Bar(google.
# protobuf.Empty) returns (google.protobuf.Empty); `
class Empty
include Google::Apis::Core::Hashable
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
end
end
# A form action describes the behavior when the form is submitted. For example,
# an Apps Script can be invoked to handle the form.
class FormAction
include Google::Apis::Core::Hashable
# 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. The same method name can be used for several elements that
# trigger a common behavior if desired.
# Corresponds to the JSON property `actionMethodName`
# @return [String]
attr_accessor :action_method_name
# List of action parameters.
# Corresponds to the JSON property `parameters`
# @return [Array<Google::Apis::ChatV1::ActionParameter>]
attr_accessor :parameters
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@action_method_name = args[:action_method_name] if args.key?(:action_method_name)
@parameters = args[:parameters] if args.key?(:parameters)
end
end
# An action that describes the behavior when the form is submitted. For example,
# an Apps Script can be invoked to handle the form.
class GoogleAppsCardV1Action
include Google::Apis::Core::Hashable
# Apps Script function to invoke when the containing element is clicked/
# activated.
# Corresponds to the JSON property `function`
# @return [String]
attr_accessor :function
# Specifies the loading indicator that the action displays while making the call
# to the action.
# Corresponds to the JSON property `loadIndicator`
# @return [String]
attr_accessor :load_indicator
# List of action parameters.
# Corresponds to the JSON property `parameters`
# @return [Array<Google::Apis::ChatV1::GoogleAppsCardV1ActionParameter>]
attr_accessor :parameters
# Indicates whether form values persist after the action. The default value is `
# false`. If `true`, form values remain after the action is triggered. When
# using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#
# loadindicator) for actions, `persist_values` = `true`is recommended, as it
# ensures that any changes made by the user after form or on change actions are
# sent to the server are not overwritten by the response. If `false`, the form
# values are cleared when the action is triggered. When `persist_values` is set
# to `false`, it is strongly recommended that the card use [LoadIndicator.
# SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator)
# for all actions, as this locks the UI to ensure no changes are made by the
# user while the action is being processed.
# Corresponds to the JSON property `persistValues`
# @return [Boolean]
attr_accessor :persist_values
alias_method :persist_values?, :persist_values
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@function = args[:function] if args.key?(:function)
@load_indicator = args[:load_indicator] if args.key?(:load_indicator)
@parameters = args[:parameters] if args.key?(:parameters)
@persist_values = args[:persist_values] if args.key?(:persist_values)
end
end
# List of string parameters to supply when the action method is invoked. For
# example, consider three snooze buttons: snooze now, snooze 1 day, snooze next
# week. You might use action method = snooze(), passing the snooze type and
# snooze time in the list of string parameters.
class GoogleAppsCardV1ActionParameter
include Google::Apis::Core::Hashable
# The name of the parameter for the action script.
# Corresponds to the JSON property `key`
# @return [String]
attr_accessor :key
# The value of the parameter.
# Corresponds to the JSON property `value`
# @return [String]
attr_accessor :value
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@key = args[:key] if args.key?(:key)
@value = args[:value] if args.key?(:value)
end
end
# Represents the complete border style applied to widgets.
class GoogleAppsCardV1BorderStyle
include Google::Apis::Core::Hashable
# The corner radius for the border.
# Corresponds to the JSON property `cornerRadius`
# @return [Fixnum]
attr_accessor :corner_radius
# Represents a color in the RGBA color space. This representation is designed
# for simplicity of conversion to/from color representations in various
# languages over compactness. For example, the fields of this representation can
# be trivially provided to the constructor of `java.awt.Color` in Java; it can
# also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha`
# method in iOS; and, with just a little work, it can be easily formatted into a
# CSS `rgba()` string in JavaScript. This reference page doesn't carry
# information about the absolute color space that should be used to interpret
# the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default,
# applications should assume the sRGB color space. When color equality needs to
# be decided, implementations, unless documented otherwise, treat two colors as
# equal if all their red, green, blue, and alpha values each differ by at most
# 1e-5. Example (Java): import com.google.type.Color; // ... public static java.
# awt.Color fromProto(Color protocolor) ` float alpha = protocolor.hasAlpha() ?
# protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.
# getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); ` public static
# Color toProto(java.awt.Color color) ` float red = (float) color.getRed();
# float green = (float) color.getGreen(); float blue = (float) color.getBlue();
# float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .
# setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue /
# denominator); int alpha = color.getAlpha(); if (alpha != 255) ` result.
# setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .
# build()); ` return resultBuilder.build(); ` // ... Example (iOS / Obj-C): // ..
# . static UIColor* fromProto(Color* protocolor) ` float red = [protocolor red];
# float green = [protocolor green]; float blue = [protocolor blue]; FloatValue*
# alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper !=
# nil) ` alpha = [alpha_wrapper value]; ` return [UIColor colorWithRed:red green:
# green blue:blue alpha:alpha]; ` static Color* toProto(UIColor* color) `
# CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&
# blue alpha:&alpha]) ` return nil; ` Color* result = [[Color alloc] init]; [
# result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <
# = 0.9999) ` [result setAlpha:floatWrapperWithValue(alpha)]; ` [result
# autorelease]; return result; ` // ... Example (JavaScript): // ... var
# protoToCssColor = function(rgb_color) ` var redFrac = rgb_color.red || 0.0;
# var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0;
# var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255);
# var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) ` return
# rgbToCssColor(red, green, blue); ` var alphaFrac = rgb_color.alpha.value || 0.
# 0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',
# ', alphaFrac, ')'].join(''); `; var rgbToCssColor = function(red, green, blue)
# ` var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString
# = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var
# resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) ` resultBuilder.
# push('0'); ` resultBuilder.push(hexString); return resultBuilder.join(''); `; /
# / ...
# Corresponds to the JSON property `strokeColor`
# @return [Google::Apis::ChatV1::Color]
attr_accessor :stroke_color
# The border type.
# Corresponds to the JSON property `type`
# @return [String]
attr_accessor :type
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@corner_radius = args[:corner_radius] if args.key?(:corner_radius)
@stroke_color = args[:stroke_color] if args.key?(:stroke_color)
@type = args[:type] if args.key?(:type)
end
end
# A button. Can be a text button or an image button.
class GoogleAppsCardV1Button
include Google::Apis::Core::Hashable
# The alternative text used for accessibility. Has no effect when an icon is set;
# use `icon.alt_text` instead.
# Corresponds to the JSON property `altText`
# @return [String]
attr_accessor :alt_text
# Represents a color in the RGBA color space. This representation is designed
# for simplicity of conversion to/from color representations in various
# languages over compactness. For example, the fields of this representation can
# be trivially provided to the constructor of `java.awt.Color` in Java; it can
# also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha`
# method in iOS; and, with just a little work, it can be easily formatted into a
# CSS `rgba()` string in JavaScript. This reference page doesn't carry
# information about the absolute color space that should be used to interpret
# the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default,
# applications should assume the sRGB color space. When color equality needs to
# be decided, implementations, unless documented otherwise, treat two colors as
# equal if all their red, green, blue, and alpha values each differ by at most
# 1e-5. Example (Java): import com.google.type.Color; // ... public static java.
# awt.Color fromProto(Color protocolor) ` float alpha = protocolor.hasAlpha() ?
# protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.
# getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); ` public static
# Color toProto(java.awt.Color color) ` float red = (float) color.getRed();
# float green = (float) color.getGreen(); float blue = (float) color.getBlue();
# float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .
# setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue /
# denominator); int alpha = color.getAlpha(); if (alpha != 255) ` result.
# setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .
# build()); ` return resultBuilder.build(); ` // ... Example (iOS / Obj-C): // ..
# . static UIColor* fromProto(Color* protocolor) ` float red = [protocolor red];
# float green = [protocolor green]; float blue = [protocolor blue]; FloatValue*
# alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper !=
# nil) ` alpha = [alpha_wrapper value]; ` return [UIColor colorWithRed:red green:
# green blue:blue alpha:alpha]; ` static Color* toProto(UIColor* color) `
# CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&
# blue alpha:&alpha]) ` return nil; ` Color* result = [[Color alloc] init]; [
# result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <
# = 0.9999) ` [result setAlpha:floatWrapperWithValue(alpha)]; ` [result
# autorelease]; return result; ` // ... Example (JavaScript): // ... var
# protoToCssColor = function(rgb_color) ` var redFrac = rgb_color.red || 0.0;
# var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0;
# var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255);
# var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) ` return
# rgbToCssColor(red, green, blue); ` var alphaFrac = rgb_color.alpha.value || 0.
# 0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',
# ', alphaFrac, ')'].join(''); `; var rgbToCssColor = function(red, green, blue)
# ` var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString
# = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var
# resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) ` resultBuilder.
# push('0'); ` resultBuilder.push(hexString); return resultBuilder.join(''); `; /
# / ...
# Corresponds to the JSON property `color`
# @return [Google::Apis::ChatV1::Color]
attr_accessor :color
# If `true`, the button is displayed in a disabled state and doesn't respond to
# user actions.
# Corresponds to the JSON property `disabled`
# @return [Boolean]
attr_accessor :disabled
alias_method :disabled?, :disabled
# The icon image.
# Corresponds to the JSON property `icon`
# @return [Google::Apis::ChatV1::GoogleAppsCardV1Icon]
attr_accessor :icon
# Represents the response to an `onClick` event.
# Corresponds to the JSON property `onClick`
# @return [Google::Apis::ChatV1::GoogleAppsCardV1OnClick]
attr_accessor :on_click
# The text of the button.
# Corresponds to the JSON property `text`
# @return [String]
attr_accessor :text
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@alt_text = args[:alt_text] if args.key?(:alt_text)
@color = args[:color] if args.key?(:color)
@disabled = args[:disabled] if args.key?(:disabled)
@icon = args[:icon] if args.key?(:icon)
@on_click = args[:on_click] if args.key?(:on_click)
@text = args[:text] if args.key?(:text)
end
end
# A list of buttons layed out horizontally.
class GoogleAppsCardV1ButtonList
include Google::Apis::Core::Hashable
# An array of buttons.
# Corresponds to the JSON property `buttons`
# @return [Array<Google::Apis::ChatV1::GoogleAppsCardV1Button>]
attr_accessor :buttons
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@buttons = args[:buttons] if args.key?(:buttons)
end
end
# A card is a UI element that can contain UI widgets such as text and images.
# For more information, see Cards . For example, the following JSON creates a
# card that has a header with the name, position, icons, and link for a contact,
# followed by a section with contact information like email and phone number. ```
# ` "header": ` "title": "Sasha", "subtitle": "Software Engineer", "imageStyle":
# "ImageStyle.AVATAR", "imageUrl": "https://example.com/sasha.png", "
# imageAltText": "Avatar for Sasha" `, "sections" : [ ` "header": "Contact Info",
# "widgets": [ ` "decorated_text": ` "icon": ` "knownIcon": "EMAIL" `, "content"
# : "sasha@example.com" ` `, ` "decoratedText": ` "icon": ` "knownIcon": "PERSON"
# `, "content": "Online" ` `, ` "decoratedText": ` "icon": ` "knownIcon": "
# PHONE" `, "content": "+1 (555) 555-1234" ` `, ` "buttons": [ ` "textButton": `
# "text": "Share", `, "onClick": ` "openLink": ` "url": "https://example.com/
# share" ` ` `, ` "textButton": ` "text": "Edit", `, "onClick": ` "action": ` "
# function": "goToView", "parameters": [ ` "key": "viewType", "value": "EDIT" ` ]
# , "loadIndicator": "LoadIndicator.SPINNER" ` ` ` ] ` ], "collapsible": true, "
# uncollapsibleWidgetsCount": 3 ` ], "cardActions": [ ` "actionLabel": "Send
# Feedback", "onClick": ` "openLink": ` "url": "https://example.com/feedback" ` `
# ` ], "name": "contact-card-K3wB6arF2H9L" ` ```
class GoogleAppsCardV1Card
include Google::Apis::Core::Hashable
# The card's actions. Actions are added to the card's generated toolbar menu.
# For example, the following JSON constructs a card action menu with Settings
# and Send Feedback options: ``` "card_actions": [ ` "actionLabel": "Settings", "
# onClick": ` "action": ` "functionName": "goToView", "parameters": [ ` "key": "
# viewType", "value": "SETTING" ` ], "loadIndicator": "LoadIndicator.SPINNER" ` `
# `, ` "actionLabel": "Send Feedback", "onClick": ` "openLink": ` "url": "https:
# //example.com/feedback" ` ` ` ] ```
# Corresponds to the JSON property `cardActions`
# @return [Array<Google::Apis::ChatV1::GoogleAppsCardV1CardAction>]
attr_accessor :card_actions
# The display style for `peekCardHeader`.
# Corresponds to the JSON property `displayStyle`
# @return [String]
attr_accessor :display_style
# A persistent (sticky) footer that is added to the bottom of the card.
# Corresponds to the JSON property `fixedFooter`
# @return [Google::Apis::ChatV1::GoogleAppsCardV1CardFixedFooter]
attr_accessor :fixed_footer
# Represents a card header.
# Corresponds to the JSON property `header`
# @return [Google::Apis::ChatV1::GoogleAppsCardV1CardHeader]
attr_accessor :header
# Name of the card. Used as a card identifier in card navigation.
# Corresponds to the JSON property `name`
# @return [String]
attr_accessor :name
# Represents a card header.
# Corresponds to the JSON property `peekCardHeader`
# @return [Google::Apis::ChatV1::GoogleAppsCardV1CardHeader]
attr_accessor :peek_card_header
# Sections are separated by a line divider.
# Corresponds to the JSON property `sections`
# @return [Array<Google::Apis::ChatV1::GoogleAppsCardV1Section>]
attr_accessor :sections
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@card_actions = args[:card_actions] if args.key?(:card_actions)
@display_style = args[:display_style] if args.key?(:display_style)
@fixed_footer = args[:fixed_footer] if args.key?(:fixed_footer)
@header = args[:header] if args.key?(:header)
@name = args[:name] if args.key?(:name)
@peek_card_header = args[:peek_card_header] if args.key?(:peek_card_header)
@sections = args[:sections] if args.key?(:sections)
end
end
# A card action is the action associated with the card. For example, an invoice
# card might include actions such as delete invoice, email invoice, or open the
# invoice in a browser.
class GoogleAppsCardV1CardAction
include Google::Apis::Core::Hashable
# The label that displays as the action menu item.
# Corresponds to the JSON property `actionLabel`
# @return [String]
attr_accessor :action_label
# Represents the response to an `onClick` event.
# Corresponds to the JSON property `onClick`
# @return [Google::Apis::ChatV1::GoogleAppsCardV1OnClick]
attr_accessor :on_click
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@action_label = args[:action_label] if args.key?(:action_label)
@on_click = args[:on_click] if args.key?(:on_click)
end
end
# A persistent (sticky) footer that is added to the bottom of the card.
class GoogleAppsCardV1CardFixedFooter
include Google::Apis::Core::Hashable
# A button. Can be a text button or an image button.
# Corresponds to the JSON property `primaryButton`
# @return [Google::Apis::ChatV1::GoogleAppsCardV1Button]
attr_accessor :primary_button
# A button. Can be a text button or an image button.
# Corresponds to the JSON property `secondaryButton`
# @return [Google::Apis::ChatV1::GoogleAppsCardV1Button]
attr_accessor :secondary_button
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@primary_button = args[:primary_button] if args.key?(:primary_button)
@secondary_button = args[:secondary_button] if args.key?(:secondary_button)
end
end
# Represents a card header.
class GoogleAppsCardV1CardHeader
include Google::Apis::Core::Hashable
# The alternative text of this image which is used for accessibility.
# Corresponds to the JSON property `imageAltText`
# @return [String]
attr_accessor :image_alt_text
# The image's type.
# Corresponds to the JSON property `imageType`
# @return [String]
attr_accessor :image_type
# The URL of the image in the card header.
# Corresponds to the JSON property `imageUrl`
# @return [String]
attr_accessor :image_url
# The subtitle of the card header.
# Corresponds to the JSON property `subtitle`
# @return [String]
attr_accessor :subtitle
# Required. The title of the card header. The header has a fixed height: if both
# a title and subtitle are specified, each takes up one line. If only the title
# is specified, it takes up both lines.
# Corresponds to the JSON property `title`
# @return [String]
attr_accessor :title
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@image_alt_text = args[:image_alt_text] if args.key?(:image_alt_text)
@image_type = args[:image_type] if args.key?(:image_type)
@image_url = args[:image_url] if args.key?(:image_url)
@subtitle = args[:subtitle] if args.key?(:subtitle)
@title = args[:title] if args.key?(:title)
end
end
# The widget that lets users to specify a date and time. Not supported by Google
# Chat apps.
class GoogleAppsCardV1DateTimePicker
include Google::Apis::Core::Hashable
# The label for the field that displays to the user.
# Corresponds to the JSON property `label`
# @return [String]
attr_accessor :label
# The name of the text input that's used in `formInput`, and uniquely identifies
# this input.
# Corresponds to the JSON property `name`
# @return [String]
attr_accessor :name
# An action that describes the behavior when the form is submitted. For example,
# an Apps Script can be invoked to handle the form.
# Corresponds to the JSON property `onChangeAction`
# @return [Google::Apis::ChatV1::GoogleAppsCardV1Action]
attr_accessor :on_change_action
# The number representing the time zone offset from UTC, in minutes. If set, the
# `value_ms_epoch` is displayed in the specified time zone. If not set, it uses
# the user's time zone setting on the client side.
# Corresponds to the JSON property `timezoneOffsetDate`
# @return [Fixnum]
attr_accessor :timezone_offset_date
# The type of the date/time picker.
# Corresponds to the JSON property `type`
# @return [String]
attr_accessor :type
# The value to display as the default value before user input or previous user
# input. It is represented in milliseconds (Epoch time). For `DATE_AND_TIME`
# type, the full epoch value is used. For `DATE_ONLY` type, only date of the
# epoch time is used. For `TIME_ONLY` type, only time of the epoch time is used.
# For example, you can set epoch time to `3 * 60 * 60 * 1000` to represent 3am.
# Corresponds to the JSON property `valueMsEpoch`
# @return [Fixnum]
attr_accessor :value_ms_epoch
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@label = args[:label] if args.key?(:label)
@name = args[:name] if args.key?(:name)
@on_change_action = args[:on_change_action] if args.key?(:on_change_action)
@timezone_offset_date = args[:timezone_offset_date] if args.key?(:timezone_offset_date)
@type = args[:type] if args.key?(:type)
@value_ms_epoch = args[:value_ms_epoch] if args.key?(:value_ms_epoch)
end
end
# A widget that displays text with optional decorations such as a label above or
# below the text, an icon in front of the text, a selection widget or a button
# after the text.
class GoogleAppsCardV1DecoratedText
include Google::Apis::Core::Hashable
# The formatted text label that shows below the main text.
# Corresponds to the JSON property `bottomLabel`
# @return [String]
attr_accessor :bottom_label
# A button. Can be a text button or an image button.
# Corresponds to the JSON property `button`
# @return [Google::Apis::ChatV1::GoogleAppsCardV1Button]
attr_accessor :button
# An icon displayed after the text.
# Corresponds to the JSON property `endIcon`
# @return [Google::Apis::ChatV1::GoogleAppsCardV1Icon]
attr_accessor :end_icon
# Deprecated in favor of start_icon.
# Corresponds to the JSON property `icon`
# @return [Google::Apis::ChatV1::GoogleAppsCardV1Icon]
attr_accessor :icon
# Represents the response to an `onClick` event.
# Corresponds to the JSON property `onClick`
# @return [Google::Apis::ChatV1::GoogleAppsCardV1OnClick]
attr_accessor :on_click
# The icon displayed in front of the text.
# Corresponds to the JSON property `startIcon`
# @return [Google::Apis::ChatV1::GoogleAppsCardV1Icon]
attr_accessor :start_icon
# Either a toggle-style switch or a checkbox.
# Corresponds to the JSON property `switchControl`
# @return [Google::Apis::ChatV1::GoogleAppsCardV1SwitchControl]
attr_accessor :switch_control
# Required. The main widget formatted text. See Text formatting for details.
# Corresponds to the JSON property `text`
# @return [String]
attr_accessor :text
# The formatted text label that shows above the main text.
# Corresponds to the JSON property `topLabel`
# @return [String]
attr_accessor :top_label
# The wrap text setting. If `true`, the text is wrapped and displayed in
# multiline. Otherwise, the text is truncated.
# Corresponds to the JSON property `wrapText`
# @return [Boolean]
attr_accessor :wrap_text
alias_method :wrap_text?, :wrap_text
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@bottom_label = args[:bottom_label] if args.key?(:bottom_label)
@button = args[:button] if args.key?(:button)
@end_icon = args[:end_icon] if args.key?(:end_icon)
@icon = args[:icon] if args.key?(:icon)
@on_click = args[:on_click] if args.key?(:on_click)
@start_icon = args[:start_icon] if args.key?(:start_icon)
@switch_control = args[:switch_control] if args.key?(:switch_control)
@text = args[:text] if args.key?(:text)
@top_label = args[:top_label] if args.key?(:top_label)
@wrap_text = args[:wrap_text] if args.key?(:wrap_text)
end
end
# A divider that appears in between widgets.
class GoogleAppsCardV1Divider
include Google::Apis::Core::Hashable
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
end
end
# Represents a Grid widget that displays items in a configurable grid layout.
class GoogleAppsCardV1Grid
include Google::Apis::Core::Hashable
# Represents the complete border style applied to widgets.
# Corresponds to the JSON property `borderStyle`
# @return [Google::Apis::ChatV1::GoogleAppsCardV1BorderStyle]
attr_accessor :border_style
# The number of columns to display in the grid. A default value is used if this
# field isn't specified, and that default value is different depending on where
# the grid is shown (dialog versus companion).
# Corresponds to the JSON property `columnCount`
# @return [Fixnum]
attr_accessor :column_count
# The items to display in the grid.
# Corresponds to the JSON property `items`
# @return [Array<Google::Apis::ChatV1::GoogleAppsCardV1GridItem>]
attr_accessor :items
# Represents the response to an `onClick` event.
# Corresponds to the JSON property `onClick`
# @return [Google::Apis::ChatV1::GoogleAppsCardV1OnClick]
attr_accessor :on_click
# The text that displays in the grid header.
# Corresponds to the JSON property `title`
# @return [String]
attr_accessor :title
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@border_style = args[:border_style] if args.key?(:border_style)
@column_count = args[:column_count] if args.key?(:column_count)
@items = args[:items] if args.key?(:items)
@on_click = args[:on_click] if args.key?(:on_click)
@title = args[:title] if args.key?(:title)
end
end
# Represents a single item in the grid layout.
class GoogleAppsCardV1GridItem
include Google::Apis::Core::Hashable
# A user-specified identifier for this grid item. This identifier is returned in
# the parent Grid's onClick callback parameters.
# Corresponds to the JSON property `id`
# @return [String]
attr_accessor :id
# Represents an image.
# Corresponds to the JSON property `image`
# @return [Google::Apis::ChatV1::GoogleAppsCardV1ImageComponent]
attr_accessor :image
# The layout to use for the grid item.
# Corresponds to the JSON property `layout`
# @return [String]
attr_accessor :layout
# The grid item's subtitle.
# Corresponds to the JSON property `subtitle`
# @return [String]
attr_accessor :subtitle
# The horizontal alignment of the grid item's text.
# Corresponds to the JSON property `textAlignment`
# @return [String]
attr_accessor :text_alignment
# The grid item's title.
# Corresponds to the JSON property `title`
# @return [String]
attr_accessor :title
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@id = args[:id] if args.key?(:id)
@image = args[:image] if args.key?(:image)
@layout = args[:layout] if args.key?(:layout)
@subtitle = args[:subtitle] if args.key?(:subtitle)
@text_alignment = args[:text_alignment] if args.key?(:text_alignment)
@title = args[:title] if args.key?(:title)
end
end
#
class GoogleAppsCardV1Icon
include Google::Apis::Core::Hashable
# The description of the icon, used for accessibility. The default value is
# provided if you don't specify one.
# Corresponds to the JSON property `altText`
# @return [String]
attr_accessor :alt_text
# The icon specified by a URL.
# Corresponds to the JSON property `iconUrl`
# @return [String]
attr_accessor :icon_url
# The crop style applied to the image. In some cases, applying a `CIRCLE` crop
# causes the image to be drawn larger than a standard icon.
# Corresponds to the JSON property `imageType`
# @return [String]
attr_accessor :image_type
# The icon specified by the string name of a list of known icons.
# Corresponds to the JSON property `knownIcon`
# @return [String]
attr_accessor :known_icon
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@alt_text = args[:alt_text] if args.key?(:alt_text)
@icon_url = args[:icon_url] if args.key?(:icon_url)
@image_type = args[:image_type] if args.key?(:image_type)
@known_icon = args[:known_icon] if args.key?(:known_icon)
end
end
# An image that is specified by a URL and can have an `onClick` action.
class GoogleAppsCardV1Image
include Google::Apis::Core::Hashable
# The alternative text of this image, used for accessibility.
# Corresponds to the JSON property `altText`
# @return [String]
attr_accessor :alt_text
# An image URL.
# Corresponds to the JSON property `imageUrl`
# @return [String]
attr_accessor :image_url
# Represents the response to an `onClick` event.
# Corresponds to the JSON property `onClick`
# @return [Google::Apis::ChatV1::GoogleAppsCardV1OnClick]
attr_accessor :on_click
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@alt_text = args[:alt_text] if args.key?(:alt_text)
@image_url = args[:image_url] if args.key?(:image_url)
@on_click = args[:on_click] if args.key?(:on_click)
end
end
# Represents an image.
class GoogleAppsCardV1ImageComponent
include Google::Apis::Core::Hashable
# The accessibility label for the image.
# Corresponds to the JSON property `altText`
# @return [String]
attr_accessor :alt_text
# Represents the complete border style applied to widgets.
# Corresponds to the JSON property `borderStyle`
# @return [Google::Apis::ChatV1::GoogleAppsCardV1BorderStyle]
attr_accessor :border_style
# Represents the crop style applied to an image.
# Corresponds to the JSON property `cropStyle`
# @return [Google::Apis::ChatV1::GoogleAppsCardV1ImageCropStyle]
attr_accessor :crop_style
# The image URL.
# Corresponds to the JSON property `imageUri`
# @return [String]
attr_accessor :image_uri
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@alt_text = args[:alt_text] if args.key?(:alt_text)
@border_style = args[:border_style] if args.key?(:border_style)
@crop_style = args[:crop_style] if args.key?(:crop_style)
@image_uri = args[:image_uri] if args.key?(:image_uri)
end
end
# Represents the crop style applied to an image.
class GoogleAppsCardV1ImageCropStyle
include Google::Apis::Core::Hashable
# The aspect ratio to use if the crop type is `RECTANGLE_CUSTOM`.
# Corresponds to the JSON property `aspectRatio`
# @return [Float]
attr_accessor :aspect_ratio
# The crop type.
# Corresponds to the JSON property `type`
# @return [String]
attr_accessor :type
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@aspect_ratio = args[:aspect_ratio] if args.key?(:aspect_ratio)
@type = args[:type] if args.key?(:type)
end
end
# Represents the response to an `onClick` event.
class GoogleAppsCardV1OnClick
include Google::Apis::Core::Hashable
# An action that describes the behavior when the form is submitted. For example,
# an Apps Script can be invoked to handle the form.
# Corresponds to the JSON property `action`
# @return [Google::Apis::ChatV1::GoogleAppsCardV1Action]
attr_accessor :action
# A card is a UI element that can contain UI widgets such as text and images.
# For more information, see Cards . For example, the following JSON creates a
# card that has a header with the name, position, icons, and link for a contact,
# followed by a section with contact information like email and phone number. ```
# ` "header": ` "title": "Sasha", "subtitle": "Software Engineer", "imageStyle":
# "ImageStyle.AVATAR", "imageUrl": "https://example.com/sasha.png", "
# imageAltText": "Avatar for Sasha" `, "sections" : [ ` "header": "Contact Info",
# "widgets": [ ` "decorated_text": ` "icon": ` "knownIcon": "EMAIL" `, "content"
# : "sasha@example.com" ` `, ` "decoratedText": ` "icon": ` "knownIcon": "PERSON"
# `, "content": "Online" ` `, ` "decoratedText": ` "icon": ` "knownIcon": "
# PHONE" `, "content": "+1 (555) 555-1234" ` `, ` "buttons": [ ` "textButton": `
# "text": "Share", `, "onClick": ` "openLink": ` "url": "https://example.com/
# share" ` ` `, ` "textButton": ` "text": "Edit", `, "onClick": ` "action": ` "
# function": "goToView", "parameters": [ ` "key": "viewType", "value": "EDIT" ` ]
# , "loadIndicator": "LoadIndicator.SPINNER" ` ` ` ] ` ], "collapsible": true, "
# uncollapsibleWidgetsCount": 3 ` ], "cardActions": [ ` "actionLabel": "Send
# Feedback", "onClick": ` "openLink": ` "url": "https://example.com/feedback" ` `
# ` ], "name": "contact-card-K3wB6arF2H9L" ` ```
# Corresponds to the JSON property `card`
# @return [Google::Apis::ChatV1::GoogleAppsCardV1Card]
attr_accessor :card
# An action that describes the behavior when the form is submitted. For example,
# an Apps Script can be invoked to handle the form.
# Corresponds to the JSON property `openDynamicLinkAction`
# @return [Google::Apis::ChatV1::GoogleAppsCardV1Action]
attr_accessor :open_dynamic_link_action
# Represents an `onClick` event that opens a hyperlink.
# Corresponds to the JSON property `openLink`
# @return [Google::Apis::ChatV1::GoogleAppsCardV1OpenLink]
attr_accessor :open_link
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@action = args[:action] if args.key?(:action)
@card = args[:card] if args.key?(:card)
@open_dynamic_link_action = args[:open_dynamic_link_action] if args.key?(:open_dynamic_link_action)
@open_link = args[:open_link] if args.key?(:open_link)
end
end
# Represents an `onClick` event that opens a hyperlink.
class GoogleAppsCardV1OpenLink
include Google::Apis::Core::Hashable
# Whether the client forgets about a link after opening it, or observes it until
# the window closes. Not supported by Chat apps.
# Corresponds to the JSON property `onClose`
# @return [String]
attr_accessor :on_close
# How to open a link. Not supported by Chat apps.
# Corresponds to the JSON property `openAs`
# @return [String]
attr_accessor :open_as
# The URL to open.
# Corresponds to the JSON property `url`
# @return [String]
attr_accessor :url
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@on_close = args[:on_close] if args.key?(:on_close)
@open_as = args[:open_as] if args.key?(:open_as)
@url = args[:url] if args.key?(:url)
end
end
# A section contains a collection of widgets that are rendered vertically in the
# order that they are specified. Across all platforms, cards have a narrow fixed
# width, so there is currently no need for layout properties, for example, float.
class GoogleAppsCardV1Section
include Google::Apis::Core::Hashable
# Indicates whether this section is collapsible. If a section is collapsible,
# the description must be given.
# Corresponds to the JSON property `collapsible`
# @return [Boolean]
attr_accessor :collapsible
alias_method :collapsible?, :collapsible
# The header of the section. Formatted text is supported.
# Corresponds to the JSON property `header`
# @return [String]
attr_accessor :header
# The number of uncollapsible widgets. For example, when a section contains five
# widgets and the `uncollapsibleWidgetsCount` is set to `2`, the first two
# widgets are always shown and the last three are collapsed as default. The `
# uncollapsibleWidgetsCount` is taken into account only when `collapsible` is `
# true`.
# Corresponds to the JSON property `uncollapsibleWidgetsCount`
# @return [Fixnum]
attr_accessor :uncollapsible_widgets_count
# A section must contain at least 1 widget.
# Corresponds to the JSON property `widgets`
# @return [Array<Google::Apis::ChatV1::GoogleAppsCardV1Widget>]
attr_accessor :widgets
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@collapsible = args[:collapsible] if args.key?(:collapsible)
@header = args[:header] if args.key?(:header)
@uncollapsible_widgets_count = args[:uncollapsible_widgets_count] if args.key?(:uncollapsible_widgets_count)
@widgets = args[:widgets] if args.key?(:widgets)
end
end
# A widget that creates a UI item with options for users to select. For example,
# a dropdown menu.
class GoogleAppsCardV1SelectionInput
include Google::Apis::Core::Hashable
# An array of the selected items.
# Corresponds to the JSON property `items`
# @return [Array<Google::Apis::ChatV1::GoogleAppsCardV1SelectionItem>]
attr_accessor :items
# The label displayed ahead of the switch control.
# Corresponds to the JSON property `label`
# @return [String]
attr_accessor :label
# The name of the text input which is used in `formInput`.
# Corresponds to the JSON property `name`
# @return [String]
attr_accessor :name
# An action that describes the behavior when the form is submitted. For example,
# an Apps Script can be invoked to handle the form.
# Corresponds to the JSON property `onChangeAction`
# @return [Google::Apis::ChatV1::GoogleAppsCardV1Action]
attr_accessor :on_change_action
# The type of the selection.
# Corresponds to the JSON property `type`
# @return [String]
attr_accessor :type
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@items = args[:items] if args.key?(:items)
@label = args[:label] if args.key?(:label)
@name = args[:name] if args.key?(:name)
@on_change_action = args[:on_change_action] if args.key?(:on_change_action)
@type = args[:type] if args.key?(:type)
end
end
# A selectable item in the switch control.
class GoogleAppsCardV1SelectionItem
include Google::Apis::Core::Hashable
# If more than one item is selected for `RADIO_BUTTON` and `DROPDOWN`, the first
# selected item is treated as selected and the ones after are ignored.
# Corresponds to the JSON property `selected`
# @return [Boolean]
attr_accessor :selected
alias_method :selected?, :selected
# The text to be displayed.
# Corresponds to the JSON property `text`
# @return [String]
attr_accessor :text
# The value associated with this item. The client should use this as a form
# input value.
# Corresponds to the JSON property `value`
# @return [String]
attr_accessor :value
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@selected = args[:selected] if args.key?(:selected)
@text = args[:text] if args.key?(:text)
@value = args[:value] if args.key?(:value)
end
end
# A suggestion item.
class GoogleAppsCardV1SuggestionItem
include Google::Apis::Core::Hashable
# The suggested autocomplete result.
# Corresponds to the JSON property `text`
# @return [String]
attr_accessor :text
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@text = args[:text] if args.key?(:text)
end
end
# A container wrapping elements necessary for showing suggestion items used in
# text input autocomplete.
class GoogleAppsCardV1Suggestions
include Google::Apis::Core::Hashable
# A list of suggestions used for autocomplete recommendations.
# Corresponds to the JSON property `items`
# @return [Array<Google::Apis::ChatV1::GoogleAppsCardV1SuggestionItem>]
attr_accessor :items
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@items = args[:items] if args.key?(:items)
end
end
# Either a toggle-style switch or a checkbox.
class GoogleAppsCardV1SwitchControl
include Google::Apis::Core::Hashable
# The control type, either switch or checkbox.
# Corresponds to the JSON property `controlType`
# @return [String]
attr_accessor :control_type
# The name of the switch widget that's used in `formInput`.
# Corresponds to the JSON property `name`
# @return [String]
attr_accessor :name
# An action that describes the behavior when the form is submitted. For example,
# an Apps Script can be invoked to handle the form.
# Corresponds to the JSON property `onChangeAction`
# @return [Google::Apis::ChatV1::GoogleAppsCardV1Action]
attr_accessor :on_change_action
# If the switch is selected.
# Corresponds to the JSON property `selected`
# @return [Boolean]
attr_accessor :selected
alias_method :selected?, :selected
# The value is what is passed back in the callback.
# Corresponds to the JSON property `value`
# @return [String]
attr_accessor :value
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@control_type = args[:control_type] if args.key?(:control_type)
@name = args[:name] if args.key?(:name)
@on_change_action = args[:on_change_action] if args.key?(:on_change_action)
@selected = args[:selected] if args.key?(:selected)
@value = args[:value] if args.key?(:value)
end
end
# A text input is a UI item where users can input text. A text input can also
# have an onChange action and suggestions.
class GoogleAppsCardV1TextInput
include Google::Apis::Core::Hashable
# An action that describes the behavior when the form is submitted. For example,
# an Apps Script can be invoked to handle the form.
# Corresponds to the JSON property `autoCompleteAction`
# @return [Google::Apis::ChatV1::GoogleAppsCardV1Action]
attr_accessor :auto_complete_action
# The hint text.
# Corresponds to the JSON property `hintText`
# @return [String]
attr_accessor :hint_text
# A container wrapping elements necessary for showing suggestion items used in
# text input autocomplete.
# Corresponds to the JSON property `initialSuggestions`
# @return [Google::Apis::ChatV1::GoogleAppsCardV1Suggestions]
attr_accessor :initial_suggestions
# At least one of label and hintText must be specified.
# Corresponds to the JSON property `label`
# @return [String]
attr_accessor :label
# The name of the text input which is used in `formInput`.
# Corresponds to the JSON property `name`
# @return [String]
attr_accessor :name
# An action that describes the behavior when the form is submitted. For example,
# an Apps Script can be invoked to handle the form.
# Corresponds to the JSON property `onChangeAction`
# @return [Google::Apis::ChatV1::GoogleAppsCardV1Action]
attr_accessor :on_change_action
# The style of the text, for example, a single line or multiple lines.
# Corresponds to the JSON property `type`
# @return [String]
attr_accessor :type
# The default value when there is no input from the user.
# Corresponds to the JSON property `value`
# @return [String]
attr_accessor :value
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@auto_complete_action = args[:auto_complete_action] if args.key?(:auto_complete_action)
@hint_text = args[:hint_text] if args.key?(:hint_text)
@initial_suggestions = args[:initial_suggestions] if args.key?(:initial_suggestions)
@label = args[:label] if args.key?(:label)
@name = args[:name] if args.key?(:name)
@on_change_action = args[:on_change_action] if args.key?(:on_change_action)
@type = args[:type] if args.key?(:type)
@value = args[:value] if args.key?(:value)
end
end
# A paragraph of text that supports formatting. See [Text formatting](workspace/
# add-ons/concepts/widgets#text_formatting") for details.
class GoogleAppsCardV1TextParagraph
include Google::Apis::Core::Hashable
# The text that's shown in the widget.
# Corresponds to the JSON property `text`
# @return [String]
attr_accessor :text
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@text = args[:text] if args.key?(:text)
end
end
# A widget is a UI element that presents texts, images, etc.
class GoogleAppsCardV1Widget
include Google::Apis::Core::Hashable
# A list of buttons layed out horizontally.
# Corresponds to the JSON property `buttonList`
# @return [Google::Apis::ChatV1::GoogleAppsCardV1ButtonList]
attr_accessor :button_list
# The widget that lets users to specify a date and time. Not supported by Google
# Chat apps.
# Corresponds to the JSON property `dateTimePicker`
# @return [Google::Apis::ChatV1::GoogleAppsCardV1DateTimePicker]
attr_accessor :date_time_picker
# A widget that displays text with optional decorations such as a label above or
# below the text, an icon in front of the text, a selection widget or a button
# after the text.
# Corresponds to the JSON property `decoratedText`
# @return [Google::Apis::ChatV1::GoogleAppsCardV1DecoratedText]
attr_accessor :decorated_text
# A divider that appears in between widgets.
# Corresponds to the JSON property `divider`
# @return [Google::Apis::ChatV1::GoogleAppsCardV1Divider]
attr_accessor :divider
# Represents a Grid widget that displays items in a configurable grid layout.
# Corresponds to the JSON property `grid`
# @return [Google::Apis::ChatV1::GoogleAppsCardV1Grid]
attr_accessor :grid
# The horizontal alignment of this widget.
# Corresponds to the JSON property `horizontalAlignment`
# @return [String]
attr_accessor :horizontal_alignment
# An image that is specified by a URL and can have an `onClick` action.
# Corresponds to the JSON property `image`
# @return [Google::Apis::ChatV1::GoogleAppsCardV1Image]
attr_accessor :image
# A widget that creates a UI item with options for users to select. For example,
# a dropdown menu.
# Corresponds to the JSON property `selectionInput`
# @return [Google::Apis::ChatV1::GoogleAppsCardV1SelectionInput]
attr_accessor :selection_input
# A text input is a UI item where users can input text. A text input can also
# have an onChange action and suggestions.
# Corresponds to the JSON property `textInput`
# @return [Google::Apis::ChatV1::GoogleAppsCardV1TextInput]
attr_accessor :text_input
# A paragraph of text that supports formatting. See [Text formatting](workspace/
# add-ons/concepts/widgets#text_formatting") for details.
# Corresponds to the JSON property `textParagraph`
# @return [Google::Apis::ChatV1::GoogleAppsCardV1TextParagraph]
attr_accessor :text_paragraph
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@button_list = args[:button_list] if args.key?(:button_list)
@date_time_picker = args[:date_time_picker] if args.key?(:date_time_picker)
@decorated_text = args[:decorated_text] if args.key?(:decorated_text)
@divider = args[:divider] if args.key?(:divider)
@grid = args[:grid] if args.key?(:grid)
@horizontal_alignment = args[:horizontal_alignment] if args.key?(:horizontal_alignment)
@image = args[:image] if args.key?(:image)
@selection_input = args[:selection_input] if args.key?(:selection_input)
@text_input = args[:text_input] if args.key?(:text_input)
@text_paragraph = args[:text_paragraph] if args.key?(:text_paragraph)
end
end
# An image that is specified by a URL and can have an onclick action.
class Image
include Google::Apis::Core::Hashable
# The aspect ratio of this image (width/height). This field allows clients to
# reserve the right height for the image while waiting for it to load. It's not
# meant to override the native aspect ratio of the image. If unset, the server
# fills it by prefetching the image.
# Corresponds to the JSON property `aspectRatio`
# @return [Float]
attr_accessor :aspect_ratio
# The URL of the image.
# Corresponds to the JSON property `imageUrl`
# @return [String]
attr_accessor :image_url
# An onclick action (e.g. open a link).
# Corresponds to the JSON property `onClick`
# @return [Google::Apis::ChatV1::OnClick]
attr_accessor :on_click
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@aspect_ratio = args[:aspect_ratio] if args.key?(:aspect_ratio)
@image_url = args[:image_url] if args.key?(:image_url)
@on_click = args[:on_click] if args.key?(:on_click)
end
end
# An image button with an onclick action.
class ImageButton
include Google::Apis::Core::Hashable
# The icon specified by an enum that indices to an icon provided by Chat API.
# Corresponds to the JSON property `icon`
# @return [String]
attr_accessor :icon
# The icon specified by a URL.
# Corresponds to the JSON property `iconUrl`
# @return [String]
attr_accessor :icon_url
# The name of this image_button which will be used for accessibility. Default
# value will be provided if developers don't specify.
# Corresponds to the JSON property `name`
# @return [String]
attr_accessor :name
# An onclick action (e.g. open a link).
# Corresponds to the JSON property `onClick`
# @return [Google::Apis::ChatV1::OnClick]
attr_accessor :on_click
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@icon = args[:icon] if args.key?(:icon)
@icon_url = args[:icon_url] if args.key?(:icon_url)
@name = args[:name] if args.key?(:name)
@on_click = args[:on_click] if args.key?(:on_click)
end
end
# Types of data inputs for widgets. Users enter data with these inputs.
class Inputs
include Google::Apis::Core::Hashable
# Date input values. Not supported by Chat apps.
# Corresponds to the JSON property `dateInput`
# @return [Google::Apis::ChatV1::DateInput]
attr_accessor :date_input
# Date and time input values. Not supported by Chat apps.
# Corresponds to the JSON property `dateTimeInput`
# @return [Google::Apis::ChatV1::DateTimeInput]
attr_accessor :date_time_input
# Input parameter for regular widgets. For single-valued widgets, it is a single
# value list. For multi-valued widgets, such as checkbox, all the values are
# presented.
# Corresponds to the JSON property `stringInputs`
# @return [Google::Apis::ChatV1::StringInputs]
attr_accessor :string_inputs
# Time input values. Not supported by Chat apps.
# Corresponds to the JSON property `timeInput`
# @return [Google::Apis::ChatV1::TimeInput]
attr_accessor :time_input
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@date_input = args[:date_input] if args.key?(:date_input)
@date_time_input = args[:date_time_input] if args.key?(:date_time_input)
@string_inputs = args[:string_inputs] if args.key?(:string_inputs)
@time_input = args[:time_input] if args.key?(:time_input)
end
end
# A UI element contains a key (label) and a value (content). And this element
# may also contain some actions such as onclick button.
class KeyValue
include Google::Apis::Core::Hashable
# The text of the bottom label. Formatted text supported.
# Corresponds to the JSON property `bottomLabel`
# @return [String]
attr_accessor :bottom_label
# A button. Can be a text button or an image button.
# Corresponds to the JSON property `button`
# @return [Google::Apis::ChatV1::Button]
attr_accessor :button
# The text of the content. Formatted text supported and always required.
# Corresponds to the JSON property `content`
# @return [String]
attr_accessor :content
# If the content should be multiline.
# Corresponds to the JSON property `contentMultiline`
# @return [Boolean]
attr_accessor :content_multiline
alias_method :content_multiline?, :content_multiline
# An enum value that will be replaced by the Chat API with the corresponding
# icon image.
# Corresponds to the JSON property `icon`
# @return [String]
attr_accessor :icon
# The icon specified by a URL.
# Corresponds to the JSON property `iconUrl`
# @return [String]
attr_accessor :icon_url
# An onclick action (e.g. open a link).
# Corresponds to the JSON property `onClick`
# @return [Google::Apis::ChatV1::OnClick]
attr_accessor :on_click
# The text of the top label. Formatted text supported.
# Corresponds to the JSON property `topLabel`
# @return [String]
attr_accessor :top_label
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@bottom_label = args[:bottom_label] if args.key?(:bottom_label)
@button = args[:button] if args.key?(:button)
@content = args[:content] if args.key?(:content)
@content_multiline = args[:content_multiline] if args.key?(:content_multiline)
@icon = args[:icon] if args.key?(:icon)
@icon_url = args[:icon_url] if args.key?(:icon_url)
@on_click = args[:on_click] if args.key?(:on_click)
@top_label = args[:top_label] if args.key?(:top_label)
end
end
#
class ListMembershipsResponse
include Google::Apis::Core::Hashable
# List of memberships in the requested (or first) page.
# Corresponds to the JSON property `memberships`
# @return [Array<Google::Apis::ChatV1::Membership>]
attr_accessor :memberships
# Continuation token to retrieve the next page of results. It will be empty for
# the last page of results.
# Corresponds to the JSON property `nextPageToken`
# @return [String]
attr_accessor :next_page_token
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@memberships = args[:memberships] if args.key?(:memberships)
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
end
end
#
class ListSpacesResponse
include Google::Apis::Core::Hashable
# Continuation token to retrieve the next page of results. It will be empty for
# the last page of results. Tokens expire in an hour. An error is thrown if an
# expired token is passed.
# Corresponds to the JSON property `nextPageToken`
# @return [String]
attr_accessor :next_page_token
# List of spaces in the requested (or first) page.
# Corresponds to the JSON property `spaces`
# @return [Array<Google::Apis::ChatV1::Space>]
attr_accessor :spaces
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
@spaces = args[:spaces] if args.key?(:spaces)
end
end
# A matched url in a Chat message. Chat apps can unfurl matched URLs. For more
# information, refer to [Unfurl links](/chat/how-tos/link-unfurling).
class MatchedUrl
include Google::Apis::Core::Hashable
# The url that was matched.
# Corresponds to the JSON property `url`
# @return [String]
attr_accessor :url
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@url = args[:url] if args.key?(:url)
end
end
# Media resource.
class Media
include Google::Apis::Core::Hashable
# Name of the media resource.
# Corresponds to the JSON property `resourceName`
# @return [String]
attr_accessor :resource_name
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@resource_name = args[:resource_name] if args.key?(:resource_name)
end
end
# Represents a membership relation in Google Chat.
class Membership
include Google::Apis::Core::Hashable
# Output only. The creation time of the membership a.k.a. the time at which the
# member joined the space, if applicable.
# Corresponds to the JSON property `createTime`
# @return [String]
attr_accessor :create_time
# A user in Google Chat.
# Corresponds to the JSON property `member`
# @return [Google::Apis::ChatV1::User]
attr_accessor :member
#
# Corresponds to the JSON property `name`
# @return [String]
attr_accessor :name
# Output only. State of the membership.
# Corresponds to the JSON property `state`
# @return [String]
attr_accessor :state
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@create_time = args[:create_time] if args.key?(:create_time)
@member = args[:member] if args.key?(:member)
@name = args[:name] if args.key?(:name)
@state = args[:state] if args.key?(:state)
end
end
# A message in Google Chat.
class Message
include Google::Apis::Core::Hashable
# Parameters that a Chat app can use to configure how it's response is posted.
# Corresponds to the JSON property `actionResponse`
# @return [Google::Apis::ChatV1::ActionResponse]
attr_accessor :action_response
# Output only. Annotations associated with the text in this message.
# Corresponds to the JSON property `annotations`
# @return [Array<Google::Apis::ChatV1::Annotation>]
attr_accessor :annotations
# Plain-text body of the message with all Chat app mentions stripped out.
# Corresponds to the JSON property `argumentText`
# @return [String]
attr_accessor :argument_text
# User uploaded attachment.
# Corresponds to the JSON property `attachment`
# @return [Array<Google::Apis::ChatV1::Attachment>]
attr_accessor :attachment
# Rich, formatted and interactive cards that can be used to display UI elements
# such as: formatted texts, buttons, clickable images. Cards are normally
# displayed below the plain-text body of the message.
# Corresponds to the JSON property `cards`
# @return [Array<Google::Apis::ChatV1::Card>]
attr_accessor :cards
# Output only. The time at which the message was created in Google Chat server.
# Corresponds to the JSON property `createTime`
# @return [String]
attr_accessor :create_time
# A plain-text description of the message's cards, used when the actual cards
# cannot be displayed (e.g. mobile notifications).
# Corresponds to the JSON property `fallbackText`
# @return [String]
attr_accessor :fallback_text
# Output only. The time at which the message was last updated in Google Chat
# server. If the message was never updated, this field will be same as
# create_time.
# Corresponds to the JSON property `lastUpdateTime`
# @return [String]
attr_accessor :last_update_time
# A matched url in a Chat message. Chat apps can unfurl matched URLs. For more
# information, refer to [Unfurl links](/chat/how-tos/link-unfurling).
# Corresponds to the JSON property `matchedUrl`
# @return [Google::Apis::ChatV1::MatchedUrl]
attr_accessor :matched_url
# Resource name in the form `spaces/*/messages/*`. Example: `spaces/AAAAAAAAAAA/
# messages/BBBBBBBBBBB.BBBBBBBBBBB`
# Corresponds to the JSON property `name`
# @return [String]
attr_accessor :name
# A user in Google Chat.
# Corresponds to the JSON property `sender`
# @return [Google::Apis::ChatV1::User]
attr_accessor :sender
# A [slash command](https://developers.google.com/chat/how-tos/slash-commands)
# in Google Chat.
# Corresponds to the JSON property `slashCommand`
# @return [Google::Apis::ChatV1::SlashCommand]
attr_accessor :slash_command
# A space in Google Chat. Spaces are conversations between two or more users or
# 1:1 messages between a user and a Chat app.
# Corresponds to the JSON property `space`
# @return [Google::Apis::ChatV1::Space]
attr_accessor :space
# Plain-text body of the message. The first link to an image, video, web page,
# or other preview-able item generates a preview chip.
# Corresponds to the JSON property `text`
# @return [String]
attr_accessor :text
# A thread in Google Chat.
# Corresponds to the JSON property `thread`
# @return [Google::Apis::ChatV1::Thread]
attr_accessor :thread
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@action_response = args[:action_response] if args.key?(:action_response)
@annotations = args[:annotations] if args.key?(:annotations)
@argument_text = args[:argument_text] if args.key?(:argument_text)
@attachment = args[:attachment] if args.key?(:attachment)
@cards = args[:cards] if args.key?(:cards)
@create_time = args[:create_time] if args.key?(:create_time)
@fallback_text = args[:fallback_text] if args.key?(:fallback_text)
@last_update_time = args[:last_update_time] if args.key?(:last_update_time)
@matched_url = args[:matched_url] if args.key?(:matched_url)
@name = args[:name] if args.key?(:name)
@sender = args[:sender] if args.key?(:sender)
@slash_command = args[:slash_command] if args.key?(:slash_command)
@space = args[:space] if args.key?(:space)
@text = args[:text] if args.key?(:text)
@thread = args[:thread] if args.key?(:thread)
end
end
# An onclick action (e.g. open a link).
class OnClick
include Google::Apis::Core::Hashable
# A form action describes the behavior when the form is submitted. For example,
# an Apps Script can be invoked to handle the form.
# Corresponds to the JSON property `action`
# @return [Google::Apis::ChatV1::FormAction]
attr_accessor :action
# A link that opens a new window.
# Corresponds to the JSON property `openLink`
# @return [Google::Apis::ChatV1::OpenLink]
attr_accessor :open_link
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@action = args[:action] if args.key?(:action)
@open_link = args[:open_link] if args.key?(:open_link)
end
end
# A link that opens a new window.
class OpenLink
include Google::Apis::Core::Hashable
# The URL to open.
# Corresponds to the JSON property `url`
# @return [String]
attr_accessor :url
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@url = args[:url] if args.key?(:url)
end
end
# A section contains a collection of widgets that are rendered (vertically) in
# the order that they are specified. Across all platforms, cards have a narrow
# fixed width, so there is currently no need for layout properties (e.g. float).
class Section
include Google::Apis::Core::Hashable
# The header of the section, text formatted supported.
# Corresponds to the JSON property `header`
# @return [String]
attr_accessor :header
# A section must contain at least 1 widget.
# Corresponds to the JSON property `widgets`
# @return [Array<Google::Apis::ChatV1::WidgetMarkup>]
attr_accessor :widgets
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@header = args[:header] if args.key?(:header)
@widgets = args[:widgets] if args.key?(:widgets)
end
end
# A [slash command](https://developers.google.com/chat/how-tos/slash-commands)
# in Google Chat.
class SlashCommand
include Google::Apis::Core::Hashable
# The id of the slash command invoked.
# Corresponds to the JSON property `commandId`
# @return [Fixnum]
attr_accessor :command_id
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@command_id = args[:command_id] if args.key?(:command_id)
end
end
# Annotation metadata for slash commands (/).
class SlashCommandMetadata
include Google::Apis::Core::Hashable
# A user in Google Chat.
# Corresponds to the JSON property `bot`
# @return [Google::Apis::ChatV1::User]
attr_accessor :bot
# The command id of the invoked slash command.
# Corresponds to the JSON property `commandId`
# @return [Fixnum]
attr_accessor :command_id
# The name of the invoked slash command.
# Corresponds to the JSON property `commandName`
# @return [String]
attr_accessor :command_name
# Indicating whether the slash command is for a dialog.
# Corresponds to the JSON property `triggersDialog`
# @return [Boolean]
attr_accessor :triggers_dialog
alias_method :triggers_dialog?, :triggers_dialog
# The type of slash command.
# Corresponds to the JSON property `type`
# @return [String]
attr_accessor :type
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@bot = args[:bot] if args.key?(:bot)
@command_id = args[:command_id] if args.key?(:command_id)
@command_name = args[:command_name] if args.key?(:command_name)
@triggers_dialog = args[:triggers_dialog] if args.key?(:triggers_dialog)
@type = args[:type] if args.key?(:type)
end
end
# A space in Google Chat. Spaces are conversations between two or more users or
# 1:1 messages between a user and a Chat app.
class Space
include Google::Apis::Core::Hashable
# The space's display name. For direct messages between humans, this field might
# be empty.
# Corresponds to the JSON property `displayName`
# @return [String]
attr_accessor :display_name
# Optional. Resource name of the space, in the form "spaces/*". Example: spaces/
# AAAAAAAAAAAA
# Corresponds to the JSON property `name`
# @return [String]
attr_accessor :name
# Output only. Whether the space is a DM between a Chat app and a single human.
# Corresponds to the JSON property `singleUserBotDm`
# @return [Boolean]
attr_accessor :single_user_bot_dm
alias_method :single_user_bot_dm?, :single_user_bot_dm
# Output only. Whether the messages are threaded in this space.
# Corresponds to the JSON property `threaded`
# @return [Boolean]
attr_accessor :threaded
alias_method :threaded?, :threaded
# Deprecated. Use `single_user_bot_dm` instead. Output only. The type of a space.
# Corresponds to the JSON property `type`
# @return [String]
attr_accessor :type
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@display_name = args[:display_name] if args.key?(:display_name)
@name = args[:name] if args.key?(:name)
@single_user_bot_dm = args[:single_user_bot_dm] if args.key?(:single_user_bot_dm)
@threaded = args[:threaded] if args.key?(:threaded)
@type = args[:type] if args.key?(:type)
end
end
# The `Status` type defines a logical error model that is suitable for different
# programming environments, including REST APIs and RPC APIs. It is used by [
# gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
# data: error code, error message, and error details. You can find out more
# about this error model and how to work with it in the [API Design Guide](https:
# //cloud.google.com/apis/design/errors).
class Status
include Google::Apis::Core::Hashable
# The status code, which should be an enum value of google.rpc.Code.
# Corresponds to the JSON property `code`
# @return [Fixnum]
attr_accessor :code
# A list of messages that carry the error details. There is a common set of
# message types for APIs to use.
# Corresponds to the JSON property `details`
# @return [Array<Hash<String,Object>>]
attr_accessor :details
# A developer-facing error message, which should be in English. Any user-facing
# error message should be localized and sent in the google.rpc.Status.details
# field, or localized by the client.
# Corresponds to the JSON property `message`
# @return [String]
attr_accessor :message
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@code = args[:code] if args.key?(:code)
@details = args[:details] if args.key?(:details)
@message = args[:message] if args.key?(:message)
end
end
# Input parameter for regular widgets. For single-valued widgets, it is a single
# value list. For multi-valued widgets, such as checkbox, all the values are
# presented.
class StringInputs
include Google::Apis::Core::Hashable
# An array of strings entered by the user.
# Corresponds to the JSON property `value`
# @return [Array<String>]
attr_accessor :value
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@value = args[:value] if args.key?(:value)
end
end
# A button with text and onclick action.
class TextButton
include Google::Apis::Core::Hashable
# An onclick action (e.g. open a link).
# Corresponds to the JSON property `onClick`
# @return [Google::Apis::ChatV1::OnClick]
attr_accessor :on_click
# The text of the button.
# Corresponds to the JSON property `text`
# @return [String]
attr_accessor :text
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@on_click = args[:on_click] if args.key?(:on_click)
@text = args[:text] if args.key?(:text)
end
end
# A paragraph of text. Formatted text supported.
class TextParagraph
include Google::Apis::Core::Hashable
#
# Corresponds to the JSON property `text`
# @return [String]
attr_accessor :text
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@text = args[:text] if args.key?(:text)
end
end
# A thread in Google Chat.
class Thread
include Google::Apis::Core::Hashable
# Resource name, in the form "spaces/*/threads/*". Example: spaces/AAAAAAAAAAA/
# threads/TTTTTTTTTTT
# Corresponds to the JSON property `name`
# @return [String]
attr_accessor :name
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@name = args[:name] if args.key?(:name)
end
end
# Time input values. Not supported by Chat apps.
class TimeInput
include Google::Apis::Core::Hashable
# The hour on a 24-hour clock.
# Corresponds to the JSON property `hours`
# @return [Fixnum]
attr_accessor :hours
# The number of minutes past the hour. Valid values are 0 to 59.
# Corresponds to the JSON property `minutes`
# @return [Fixnum]
attr_accessor :minutes
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@hours = args[:hours] if args.key?(:hours)
@minutes = args[:minutes] if args.key?(:minutes)
end
end
# The timezone ID and offset from Coordinated Universal Time (UTC). Not
# supported by Chat apps.
class TimeZone
include Google::Apis::Core::Hashable
# The [IANA TZ](https://www.iana.org/time-zones) time zone database code, such
# as "America/Toronto".
# Corresponds to the JSON property `id`
# @return [String]
attr_accessor :id
# The user timezone offset, in milliseconds, from Coordinated Universal Time (
# UTC).
# Corresponds to the JSON property `offset`
# @return [Fixnum]
attr_accessor :offset
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@id = args[:id] if args.key?(:id)
@offset = args[:offset] if args.key?(:offset)
end
end
# A user in Google Chat.
class User
include Google::Apis::Core::Hashable
# The user's display name.
# Corresponds to the JSON property `displayName`
# @return [String]
attr_accessor :display_name
# Unique identifier of the user's Google Workspace domain.
# Corresponds to the JSON property `domainId`
# @return [String]
attr_accessor :domain_id
# When `true`, the user is deleted or their profile is not visible.
# Corresponds to the JSON property `isAnonymous`
# @return [Boolean]
attr_accessor :is_anonymous
alias_method :is_anonymous?, :is_anonymous
# Resource name for a Google Chat user. Represents a [person](https://developers.
# google.com/people/api/rest/v1/people#Person) in the People API or a [user](
# https://developers.google.com/admin-sdk/directory/reference/rest/v1/users) in
# the Admin SDK Directory API. Formatted as: `users/`user``
# Corresponds to the JSON property `name`
# @return [String]
attr_accessor :name
# User type.
# Corresponds to the JSON property `type`
# @return [String]
attr_accessor :type
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@display_name = args[:display_name] if args.key?(:display_name)
@domain_id = args[:domain_id] if args.key?(:domain_id)
@is_anonymous = args[:is_anonymous] if args.key?(:is_anonymous)
@name = args[:name] if args.key?(:name)
@type = args[:type] if args.key?(:type)
end
end
# Annotation metadata for user mentions (@).
class UserMentionMetadata
include Google::Apis::Core::Hashable
# The type of user mention.
# Corresponds to the JSON property `type`
# @return [String]
attr_accessor :type
# A user in Google Chat.
# Corresponds to the JSON property `user`
# @return [Google::Apis::ChatV1::User]
attr_accessor :user
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@type = args[:type] if args.key?(:type)
@user = args[:user] if args.key?(:user)
end
end
# A widget is a UI element that presents texts, images, etc.
class WidgetMarkup
include Google::Apis::Core::Hashable
# A list of buttons. Buttons is also oneof data and only one of these fields
# should be set.
# Corresponds to the JSON property `buttons`
# @return [Array<Google::Apis::ChatV1::Button>]
attr_accessor :buttons
# An image that is specified by a URL and can have an onclick action.
# Corresponds to the JSON property `image`
# @return [Google::Apis::ChatV1::Image]
attr_accessor :image
# A UI element contains a key (label) and a value (content). And this element
# may also contain some actions such as onclick button.
# Corresponds to the JSON property `keyValue`
# @return [Google::Apis::ChatV1::KeyValue]
attr_accessor :key_value
# A paragraph of text. Formatted text supported.
# Corresponds to the JSON property `textParagraph`
# @return [Google::Apis::ChatV1::TextParagraph]
attr_accessor :text_paragraph
def initialize(**args)
update!(**args)
end
# Update properties of this object
def update!(**args)
@buttons = args[:buttons] if args.key?(:buttons)
@image = args[:image] if args.key?(:image)
@key_value = args[:key_value] if args.key?(:key_value)
@text_paragraph = args[:text_paragraph] if args.key?(:text_paragraph)
end
end
end
end
end