google-apis-chat_v1 0.12.0 → 0.16.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -54,6 +54,12 @@ module Google
54
54
  class ActionResponse
55
55
  include Google::Apis::Core::Hashable
56
56
 
57
+ # Contains dialog if present as well as the ActionStatus for the request sent
58
+ # from user.
59
+ # Corresponds to the JSON property `dialogAction`
60
+ # @return [Google::Apis::ChatV1::DialogAction]
61
+ attr_accessor :dialog_action
62
+
57
63
  # The type of bot response.
58
64
  # Corresponds to the JSON property `type`
59
65
  # @return [String]
@@ -70,11 +76,43 @@ module Google
70
76
 
71
77
  # Update properties of this object
72
78
  def update!(**args)
79
+ @dialog_action = args[:dialog_action] if args.key?(:dialog_action)
73
80
  @type = args[:type] if args.key?(:type)
74
81
  @url = args[:url] if args.key?(:url)
75
82
  end
76
83
  end
77
84
 
85
+ # ActionStatus represents status of a request from the bot developer's side. In
86
+ # specific, for each request a bot gets, the bot developer will set both fields
87
+ # below in relation to what the response status and message related to status
88
+ # should be.
89
+ class ActionStatus
90
+ include Google::Apis::Core::Hashable
91
+
92
+ # The status code.
93
+ # Corresponds to the JSON property `statusCode`
94
+ # @return [String]
95
+ attr_accessor :status_code
96
+
97
+ # This message will be the corresponding string to the above status_code. If
98
+ # unset, an appropriate generic message based on the status_code will be shown
99
+ # to the user. If this field is set then the message will be surfaced to the
100
+ # user for both successes and errors.
101
+ # Corresponds to the JSON property `userFacingMessage`
102
+ # @return [String]
103
+ attr_accessor :user_facing_message
104
+
105
+ def initialize(**args)
106
+ update!(**args)
107
+ end
108
+
109
+ # Update properties of this object
110
+ def update!(**args)
111
+ @status_code = args[:status_code] if args.key?(:status_code)
112
+ @user_facing_message = args[:user_facing_message] if args.key?(:user_facing_message)
113
+ end
114
+ end
115
+
78
116
  # Annotations associated with the plain-text body of the message. Example plain-
79
117
  # text message body: ``` Hello @FooBot how are you!" ``` The corresponding
80
118
  # annotations metadata: ``` "annotations":[` "type":"USER_MENTION", "startIndex":
@@ -125,7 +163,7 @@ module Google
125
163
  end
126
164
  end
127
165
 
128
- # An attachment in Hangouts Chat.
166
+ # An attachment in Google Chat.
129
167
  class Attachment
130
168
  include Google::Apis::Core::Hashable
131
169
 
@@ -219,10 +257,1571 @@ module Google
219
257
  # @return [Google::Apis::ChatV1::ImageButton]
220
258
  attr_accessor :image_button
221
259
 
222
- # A button with text and onclick action.
223
- # Corresponds to the JSON property `textButton`
224
- # @return [Google::Apis::ChatV1::TextButton]
225
- attr_accessor :text_button
260
+ # A button with text and onclick action.
261
+ # Corresponds to the JSON property `textButton`
262
+ # @return [Google::Apis::ChatV1::TextButton]
263
+ attr_accessor :text_button
264
+
265
+ def initialize(**args)
266
+ update!(**args)
267
+ end
268
+
269
+ # Update properties of this object
270
+ def update!(**args)
271
+ @image_button = args[:image_button] if args.key?(:image_button)
272
+ @text_button = args[:text_button] if args.key?(:text_button)
273
+ end
274
+ end
275
+
276
+ # A card is a UI element that can contain UI widgets such as texts, images.
277
+ class Card
278
+ include Google::Apis::Core::Hashable
279
+
280
+ # The actions of this card.
281
+ # Corresponds to the JSON property `cardActions`
282
+ # @return [Array<Google::Apis::ChatV1::CardAction>]
283
+ attr_accessor :card_actions
284
+
285
+ # The header of the card. A header usually contains a title and an image.
286
+ # Corresponds to the JSON property `header`
287
+ # @return [Google::Apis::ChatV1::CardHeader]
288
+ attr_accessor :header
289
+
290
+ # Name of the card.
291
+ # Corresponds to the JSON property `name`
292
+ # @return [String]
293
+ attr_accessor :name
294
+
295
+ # Sections are separated by a line divider.
296
+ # Corresponds to the JSON property `sections`
297
+ # @return [Array<Google::Apis::ChatV1::Section>]
298
+ attr_accessor :sections
299
+
300
+ def initialize(**args)
301
+ update!(**args)
302
+ end
303
+
304
+ # Update properties of this object
305
+ def update!(**args)
306
+ @card_actions = args[:card_actions] if args.key?(:card_actions)
307
+ @header = args[:header] if args.key?(:header)
308
+ @name = args[:name] if args.key?(:name)
309
+ @sections = args[:sections] if args.key?(:sections)
310
+ end
311
+ end
312
+
313
+ # A card action is the action associated with the card. For an invoice card, a
314
+ # typical action would be: delete invoice, email invoice or open the invoice in
315
+ # browser.
316
+ class CardAction
317
+ include Google::Apis::Core::Hashable
318
+
319
+ # The label used to be displayed in the action menu item.
320
+ # Corresponds to the JSON property `actionLabel`
321
+ # @return [String]
322
+ attr_accessor :action_label
323
+
324
+ # An onclick action (e.g. open a link).
325
+ # Corresponds to the JSON property `onClick`
326
+ # @return [Google::Apis::ChatV1::OnClick]
327
+ attr_accessor :on_click
328
+
329
+ def initialize(**args)
330
+ update!(**args)
331
+ end
332
+
333
+ # Update properties of this object
334
+ def update!(**args)
335
+ @action_label = args[:action_label] if args.key?(:action_label)
336
+ @on_click = args[:on_click] if args.key?(:on_click)
337
+ end
338
+ end
339
+
340
+ #
341
+ class CardHeader
342
+ include Google::Apis::Core::Hashable
343
+
344
+ # The image's type (e.g. square border or circular border).
345
+ # Corresponds to the JSON property `imageStyle`
346
+ # @return [String]
347
+ attr_accessor :image_style
348
+
349
+ # The URL of the image in the card header.
350
+ # Corresponds to the JSON property `imageUrl`
351
+ # @return [String]
352
+ attr_accessor :image_url
353
+
354
+ # The subtitle of the card header.
355
+ # Corresponds to the JSON property `subtitle`
356
+ # @return [String]
357
+ attr_accessor :subtitle
358
+
359
+ # The title must be specified. The header has a fixed height: if both a title
360
+ # and subtitle is specified, each will take up 1 line. If only the title is
361
+ # specified, it will take up both lines.
362
+ # Corresponds to the JSON property `title`
363
+ # @return [String]
364
+ attr_accessor :title
365
+
366
+ def initialize(**args)
367
+ update!(**args)
368
+ end
369
+
370
+ # Update properties of this object
371
+ def update!(**args)
372
+ @image_style = args[:image_style] if args.key?(:image_style)
373
+ @image_url = args[:image_url] if args.key?(:image_url)
374
+ @subtitle = args[:subtitle] if args.key?(:subtitle)
375
+ @title = args[:title] if args.key?(:title)
376
+ end
377
+ end
378
+
379
+ # Represents a color in the RGBA color space. This representation is designed
380
+ # for simplicity of conversion to/from color representations in various
381
+ # languages over compactness. For example, the fields of this representation can
382
+ # be trivially provided to the constructor of `java.awt.Color` in Java; it can
383
+ # also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha`
384
+ # method in iOS; and, with just a little work, it can be easily formatted into a
385
+ # CSS `rgba()` string in JavaScript. This reference page doesn't carry
386
+ # information about the absolute color space that should be used to interpret
387
+ # the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default,
388
+ # applications should assume the sRGB color space. When color equality needs to
389
+ # be decided, implementations, unless documented otherwise, treat two colors as
390
+ # equal if all their red, green, blue, and alpha values each differ by at most
391
+ # 1e-5. Example (Java): import com.google.type.Color; // ... public static java.
392
+ # awt.Color fromProto(Color protocolor) ` float alpha = protocolor.hasAlpha() ?
393
+ # protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.
394
+ # getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); ` public static
395
+ # Color toProto(java.awt.Color color) ` float red = (float) color.getRed();
396
+ # float green = (float) color.getGreen(); float blue = (float) color.getBlue();
397
+ # float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .
398
+ # setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue /
399
+ # denominator); int alpha = color.getAlpha(); if (alpha != 255) ` result.
400
+ # setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .
401
+ # build()); ` return resultBuilder.build(); ` // ... Example (iOS / Obj-C): // ..
402
+ # . static UIColor* fromProto(Color* protocolor) ` float red = [protocolor red];
403
+ # float green = [protocolor green]; float blue = [protocolor blue]; FloatValue*
404
+ # alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper !=
405
+ # nil) ` alpha = [alpha_wrapper value]; ` return [UIColor colorWithRed:red green:
406
+ # green blue:blue alpha:alpha]; ` static Color* toProto(UIColor* color) `
407
+ # CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&
408
+ # blue alpha:&alpha]) ` return nil; ` Color* result = [[Color alloc] init]; [
409
+ # result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <
410
+ # = 0.9999) ` [result setAlpha:floatWrapperWithValue(alpha)]; ` [result
411
+ # autorelease]; return result; ` // ... Example (JavaScript): // ... var
412
+ # protoToCssColor = function(rgb_color) ` var redFrac = rgb_color.red || 0.0;
413
+ # var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0;
414
+ # var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255);
415
+ # var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) ` return
416
+ # rgbToCssColor(red, green, blue); ` var alphaFrac = rgb_color.alpha.value || 0.
417
+ # 0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',
418
+ # ', alphaFrac, ')'].join(''); `; var rgbToCssColor = function(red, green, blue)
419
+ # ` var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString
420
+ # = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var
421
+ # resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) ` resultBuilder.
422
+ # push('0'); ` resultBuilder.push(hexString); return resultBuilder.join(''); `; /
423
+ # / ...
424
+ class Color
425
+ include Google::Apis::Core::Hashable
426
+
427
+ # The fraction of this color that should be applied to the pixel. That is, the
428
+ # final pixel color is defined by the equation: `pixel color = alpha * (this
429
+ # color) + (1.0 - alpha) * (background color)` This means that a value of 1.0
430
+ # corresponds to a solid color, whereas a value of 0.0 corresponds to a
431
+ # completely transparent color. This uses a wrapper message rather than a simple
432
+ # float scalar so that it is possible to distinguish between a default value and
433
+ # the value being unset. If omitted, this color object is rendered as a solid
434
+ # color (as if the alpha value had been explicitly given a value of 1.0).
435
+ # Corresponds to the JSON property `alpha`
436
+ # @return [Float]
437
+ attr_accessor :alpha
438
+
439
+ # The amount of blue in the color as a value in the interval [0, 1].
440
+ # Corresponds to the JSON property `blue`
441
+ # @return [Float]
442
+ attr_accessor :blue
443
+
444
+ # The amount of green in the color as a value in the interval [0, 1].
445
+ # Corresponds to the JSON property `green`
446
+ # @return [Float]
447
+ attr_accessor :green
448
+
449
+ # The amount of red in the color as a value in the interval [0, 1].
450
+ # Corresponds to the JSON property `red`
451
+ # @return [Float]
452
+ attr_accessor :red
453
+
454
+ def initialize(**args)
455
+ update!(**args)
456
+ end
457
+
458
+ # Update properties of this object
459
+ def update!(**args)
460
+ @alpha = args[:alpha] if args.key?(:alpha)
461
+ @blue = args[:blue] if args.key?(:blue)
462
+ @green = args[:green] if args.key?(:green)
463
+ @red = args[:red] if args.key?(:red)
464
+ end
465
+ end
466
+
467
+ # Next available ID = 8
468
+ class CommonEventObject
469
+ include Google::Apis::Core::Hashable
470
+
471
+ # The keys are the string IDs associated with the widget and the values are
472
+ # inputs with a widget in the card.
473
+ # Corresponds to the JSON property `formInputs`
474
+ # @return [Hash<String,Google::Apis::ChatV1::Inputs>]
475
+ attr_accessor :form_inputs
476
+
477
+ # The hostApp enum which indicates the app the add-on is invoked from
478
+ # Corresponds to the JSON property `hostApp`
479
+ # @return [String]
480
+ attr_accessor :host_app
481
+
482
+ # Name of the invoked function associated with the widget. This field is
483
+ # currently only set for chat.
484
+ # Corresponds to the JSON property `invokedFunction`
485
+ # @return [String]
486
+ attr_accessor :invoked_function
487
+
488
+ # Any additional parameters.
489
+ # Corresponds to the JSON property `parameters`
490
+ # @return [Hash<String,String>]
491
+ attr_accessor :parameters
492
+
493
+ # The platform enum which indicates the platform where the add-on is running.
494
+ # Corresponds to the JSON property `platform`
495
+ # @return [String]
496
+ attr_accessor :platform
497
+
498
+ # The timezone id and offset. The id is the tz database time zones such as "
499
+ # America/Toronto". The user timezone offset, in milliseconds, from Coordinated
500
+ # Universal Time (UTC).
501
+ # Corresponds to the JSON property `timeZone`
502
+ # @return [Google::Apis::ChatV1::TimeZone]
503
+ attr_accessor :time_zone
504
+
505
+ # The full locale.displayName in the format of [ISO 639 language code]-[ISO 3166
506
+ # country/region code] such as "en-US"
507
+ # Corresponds to the JSON property `userLocale`
508
+ # @return [String]
509
+ attr_accessor :user_locale
510
+
511
+ def initialize(**args)
512
+ update!(**args)
513
+ end
514
+
515
+ # Update properties of this object
516
+ def update!(**args)
517
+ @form_inputs = args[:form_inputs] if args.key?(:form_inputs)
518
+ @host_app = args[:host_app] if args.key?(:host_app)
519
+ @invoked_function = args[:invoked_function] if args.key?(:invoked_function)
520
+ @parameters = args[:parameters] if args.key?(:parameters)
521
+ @platform = args[:platform] if args.key?(:platform)
522
+ @time_zone = args[:time_zone] if args.key?(:time_zone)
523
+ @user_locale = args[:user_locale] if args.key?(:user_locale)
524
+ end
525
+ end
526
+
527
+ # Input Parameter for Date Picker widget.
528
+ class DateInput
529
+ include Google::Apis::Core::Hashable
530
+
531
+ #
532
+ # Corresponds to the JSON property `msSinceEpoch`
533
+ # @return [Fixnum]
534
+ attr_accessor :ms_since_epoch
535
+
536
+ def initialize(**args)
537
+ update!(**args)
538
+ end
539
+
540
+ # Update properties of this object
541
+ def update!(**args)
542
+ @ms_since_epoch = args[:ms_since_epoch] if args.key?(:ms_since_epoch)
543
+ end
544
+ end
545
+
546
+ # Input Parameter for Date and Time Picker widget.
547
+ class DateTimeInput
548
+ include Google::Apis::Core::Hashable
549
+
550
+ #
551
+ # Corresponds to the JSON property `hasDate`
552
+ # @return [Boolean]
553
+ attr_accessor :has_date
554
+ alias_method :has_date?, :has_date
555
+
556
+ #
557
+ # Corresponds to the JSON property `hasTime`
558
+ # @return [Boolean]
559
+ attr_accessor :has_time
560
+ alias_method :has_time?, :has_time
561
+
562
+ #
563
+ # Corresponds to the JSON property `msSinceEpoch`
564
+ # @return [Fixnum]
565
+ attr_accessor :ms_since_epoch
566
+
567
+ def initialize(**args)
568
+ update!(**args)
569
+ end
570
+
571
+ # Update properties of this object
572
+ def update!(**args)
573
+ @has_date = args[:has_date] if args.key?(:has_date)
574
+ @has_time = args[:has_time] if args.key?(:has_time)
575
+ @ms_since_epoch = args[:ms_since_epoch] if args.key?(:ms_since_epoch)
576
+ end
577
+ end
578
+
579
+ # Google Chat events.
580
+ class DeprecatedEvent
581
+ include Google::Apis::Core::Hashable
582
+
583
+ # A form action describes the behavior when the form is submitted. For example,
584
+ # an Apps Script can be invoked to handle the form.
585
+ # Corresponds to the JSON property `action`
586
+ # @return [Google::Apis::ChatV1::FormAction]
587
+ attr_accessor :action
588
+
589
+ # Next available ID = 8
590
+ # Corresponds to the JSON property `common`
591
+ # @return [Google::Apis::ChatV1::CommonEventObject]
592
+ attr_accessor :common
593
+
594
+ # The URL the bot should redirect the user to after they have completed an
595
+ # authorization or configuration flow outside of Google Chat. See the [
596
+ # Authorizing access to 3p services guide](/chat/how-tos/auth-3p) for more
597
+ # information.
598
+ # Corresponds to the JSON property `configCompleteRedirectUrl`
599
+ # @return [String]
600
+ attr_accessor :config_complete_redirect_url
601
+
602
+ # The type of dialog event we have received.
603
+ # Corresponds to the JSON property `dialogEventType`
604
+ # @return [String]
605
+ attr_accessor :dialog_event_type
606
+
607
+ # The timestamp indicating when the event was dispatched.
608
+ # Corresponds to the JSON property `eventTime`
609
+ # @return [String]
610
+ attr_accessor :event_time
611
+
612
+ # Whether or not this event is related to dialogs request, submit or cancel.
613
+ # This will be set to true when we want a request/submit/cancel event.
614
+ # Corresponds to the JSON property `isDialogEvent`
615
+ # @return [Boolean]
616
+ attr_accessor :is_dialog_event
617
+ alias_method :is_dialog_event?, :is_dialog_event
618
+
619
+ # A message in Google Chat.
620
+ # Corresponds to the JSON property `message`
621
+ # @return [Google::Apis::ChatV1::Message]
622
+ attr_accessor :message
623
+
624
+ # A space in Google Chat. Spaces are conversations between two or more users or
625
+ # 1:1 messages between a user and a Chat bot.
626
+ # Corresponds to the JSON property `space`
627
+ # @return [Google::Apis::ChatV1::Space]
628
+ attr_accessor :space
629
+
630
+ # The bot-defined key for the thread related to the event. See the thread_key
631
+ # field of the `spaces.message.create` request for more information.
632
+ # Corresponds to the JSON property `threadKey`
633
+ # @return [String]
634
+ attr_accessor :thread_key
635
+
636
+ # A secret value that bots can use to verify if a request is from Google. The
637
+ # token is randomly generated by Google, remains static, and can be obtained
638
+ # from the Google Chat API configuration page in the Cloud Console. Developers
639
+ # can revoke/regenerate it if needed from the same page.
640
+ # Corresponds to the JSON property `token`
641
+ # @return [String]
642
+ attr_accessor :token
643
+
644
+ # The type of the event.
645
+ # Corresponds to the JSON property `type`
646
+ # @return [String]
647
+ attr_accessor :type
648
+
649
+ # A user in Google Chat.
650
+ # Corresponds to the JSON property `user`
651
+ # @return [Google::Apis::ChatV1::User]
652
+ attr_accessor :user
653
+
654
+ def initialize(**args)
655
+ update!(**args)
656
+ end
657
+
658
+ # Update properties of this object
659
+ def update!(**args)
660
+ @action = args[:action] if args.key?(:action)
661
+ @common = args[:common] if args.key?(:common)
662
+ @config_complete_redirect_url = args[:config_complete_redirect_url] if args.key?(:config_complete_redirect_url)
663
+ @dialog_event_type = args[:dialog_event_type] if args.key?(:dialog_event_type)
664
+ @event_time = args[:event_time] if args.key?(:event_time)
665
+ @is_dialog_event = args[:is_dialog_event] if args.key?(:is_dialog_event)
666
+ @message = args[:message] if args.key?(:message)
667
+ @space = args[:space] if args.key?(:space)
668
+ @thread_key = args[:thread_key] if args.key?(:thread_key)
669
+ @token = args[:token] if args.key?(:token)
670
+ @type = args[:type] if args.key?(:type)
671
+ @user = args[:user] if args.key?(:user)
672
+ end
673
+ end
674
+
675
+ # Wrapper around the card body of the dialog.
676
+ class Dialog
677
+ include Google::Apis::Core::Hashable
678
+
679
+ # A card is a UI element that can contain UI widgets such as text and images.
680
+ # For more information, see Cards . For example, the following JSON creates a
681
+ # card that has a header with the name, position, icons, and link for a contact,
682
+ # followed by a section with contact information like email and phone number. ```
683
+ # ` "header": ` "title": "Heba Salam", "subtitle": "Software Engineer", "
684
+ # imageStyle": "ImageStyle.AVATAR", "imageUrl": "https://example.com/heba_salam.
685
+ # png", "imageAltText": "Avatar for Heba Salam" `, "sections" : [ ` "header": "
686
+ # Contact Info", "widgets": [ ` "decorated_text": ` "icon": ` "knownIcon": "
687
+ # EMAIL" `, "content": "heba.salam@example.com" ` `, ` "decoratedText": ` "icon":
688
+ # ` "knownIcon": "PERSON" `, "content": "Online" ` `, ` "decoratedText": ` "
689
+ # icon": ` "knownIcon": "PHONE" `, "content": "+1 (555) 555-1234" ` `, ` "
690
+ # buttons": [ ` "textButton": ` "text": "Share", `, "onClick": ` "openLink": ` "
691
+ # url": "https://example.com/share" ` ` `, ` "textButton": ` "text": "Edit", `, "
692
+ # onClick": ` "action": ` "function": "goToView", "parameters": [ ` "key": "
693
+ # viewType", "value": "EDIT" ` ], "loadIndicator": "LoadIndicator.SPINNER" ` ` `
694
+ # ] ` ], "collapsible": true, "uncollapsibleWidgetsCount": 3 ` ], "cardActions":
695
+ # [ ` "actionLabel": "Send Feedback", "onClick": ` "openLink": ` "url": "https://
696
+ # example.com/feedback" ` ` ` ], "name": "contact-card-K3wB6arF2H9L" ` ```
697
+ # Corresponds to the JSON property `body`
698
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1Card]
699
+ attr_accessor :body
700
+
701
+ def initialize(**args)
702
+ update!(**args)
703
+ end
704
+
705
+ # Update properties of this object
706
+ def update!(**args)
707
+ @body = args[:body] if args.key?(:body)
708
+ end
709
+ end
710
+
711
+ # Contains dialog if present as well as the ActionStatus for the request sent
712
+ # from user.
713
+ class DialogAction
714
+ include Google::Apis::Core::Hashable
715
+
716
+ # ActionStatus represents status of a request from the bot developer's side. In
717
+ # specific, for each request a bot gets, the bot developer will set both fields
718
+ # below in relation to what the response status and message related to status
719
+ # should be.
720
+ # Corresponds to the JSON property `actionStatus`
721
+ # @return [Google::Apis::ChatV1::ActionStatus]
722
+ attr_accessor :action_status
723
+
724
+ # Wrapper around the card body of the dialog.
725
+ # Corresponds to the JSON property `dialog`
726
+ # @return [Google::Apis::ChatV1::Dialog]
727
+ attr_accessor :dialog
728
+
729
+ def initialize(**args)
730
+ update!(**args)
731
+ end
732
+
733
+ # Update properties of this object
734
+ def update!(**args)
735
+ @action_status = args[:action_status] if args.key?(:action_status)
736
+ @dialog = args[:dialog] if args.key?(:dialog)
737
+ end
738
+ end
739
+
740
+ # A reference to the data of a drive attachment.
741
+ class DriveDataRef
742
+ include Google::Apis::Core::Hashable
743
+
744
+ # The id for the drive file, for use with the Drive API.
745
+ # Corresponds to the JSON property `driveFileId`
746
+ # @return [String]
747
+ attr_accessor :drive_file_id
748
+
749
+ def initialize(**args)
750
+ update!(**args)
751
+ end
752
+
753
+ # Update properties of this object
754
+ def update!(**args)
755
+ @drive_file_id = args[:drive_file_id] if args.key?(:drive_file_id)
756
+ end
757
+ end
758
+
759
+ # A generic empty message that you can re-use to avoid defining duplicated empty
760
+ # messages in your APIs. A typical example is to use it as the request or the
761
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
762
+ # protobuf.Empty) returns (google.protobuf.Empty); ` The JSON representation for
763
+ # `Empty` is empty JSON object ````.
764
+ class Empty
765
+ include Google::Apis::Core::Hashable
766
+
767
+ def initialize(**args)
768
+ update!(**args)
769
+ end
770
+
771
+ # Update properties of this object
772
+ def update!(**args)
773
+ end
774
+ end
775
+
776
+ # A form action describes the behavior when the form is submitted. For example,
777
+ # an Apps Script can be invoked to handle the form.
778
+ class FormAction
779
+ include Google::Apis::Core::Hashable
780
+
781
+ # The method name is used to identify which part of the form triggered the form
782
+ # submission. This information is echoed back to the bot as part of the card
783
+ # click event. The same method name can be used for several elements that
784
+ # trigger a common behavior if desired.
785
+ # Corresponds to the JSON property `actionMethodName`
786
+ # @return [String]
787
+ attr_accessor :action_method_name
788
+
789
+ # List of action parameters.
790
+ # Corresponds to the JSON property `parameters`
791
+ # @return [Array<Google::Apis::ChatV1::ActionParameter>]
792
+ attr_accessor :parameters
793
+
794
+ def initialize(**args)
795
+ update!(**args)
796
+ end
797
+
798
+ # Update properties of this object
799
+ def update!(**args)
800
+ @action_method_name = args[:action_method_name] if args.key?(:action_method_name)
801
+ @parameters = args[:parameters] if args.key?(:parameters)
802
+ end
803
+ end
804
+
805
+ # An action that describes the behavior when the form is submitted. For example,
806
+ # an Apps Script can be invoked to handle the form.
807
+ class GoogleAppsCardV1Action
808
+ include Google::Apis::Core::Hashable
809
+
810
+ # Apps Script function to invoke when the containing element is clicked/
811
+ # activated.
812
+ # Corresponds to the JSON property `function`
813
+ # @return [String]
814
+ attr_accessor :function
815
+
816
+ #
817
+ # Corresponds to the JSON property `loadIndicator`
818
+ # @return [String]
819
+ attr_accessor :load_indicator
820
+
821
+ # List of action parameters.
822
+ # Corresponds to the JSON property `parameters`
823
+ # @return [Array<Google::Apis::ChatV1::GoogleAppsCardV1ActionParameter>]
824
+ attr_accessor :parameters
825
+
826
+ # Indicates whether form values persist after the action. The default value is `
827
+ # false`. If `true`, form values remain after the action is triggered. When
828
+ # using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#
829
+ # loadindicator) for actions, `persist_values` = `true`is recommended, as it
830
+ # ensures that any changes made by the user after form or on change actions are
831
+ # sent to the server are not overwritten by the response. If `false`, the form
832
+ # values are cleared when the action is triggered. When `persist_values` is set
833
+ # to `false`, it is strongly recommended that the card use [LoadIndicator.
834
+ # SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator)
835
+ # for all actions, as this locks the UI to ensure no changes are made by the
836
+ # user while the action is being processed.
837
+ # Corresponds to the JSON property `persistValues`
838
+ # @return [Boolean]
839
+ attr_accessor :persist_values
840
+ alias_method :persist_values?, :persist_values
841
+
842
+ def initialize(**args)
843
+ update!(**args)
844
+ end
845
+
846
+ # Update properties of this object
847
+ def update!(**args)
848
+ @function = args[:function] if args.key?(:function)
849
+ @load_indicator = args[:load_indicator] if args.key?(:load_indicator)
850
+ @parameters = args[:parameters] if args.key?(:parameters)
851
+ @persist_values = args[:persist_values] if args.key?(:persist_values)
852
+ end
853
+ end
854
+
855
+ # List of string parameters to supply when the action method is invoked. For
856
+ # example, consider three snooze buttons: snooze now, snooze 1 day, snooze next
857
+ # week. You might use action method = snooze(), passing the snooze type and
858
+ # snooze time in the list of string parameters.
859
+ class GoogleAppsCardV1ActionParameter
860
+ include Google::Apis::Core::Hashable
861
+
862
+ # The name of the parameter for the action script.
863
+ # Corresponds to the JSON property `key`
864
+ # @return [String]
865
+ attr_accessor :key
866
+
867
+ # The value of the parameter.
868
+ # Corresponds to the JSON property `value`
869
+ # @return [String]
870
+ attr_accessor :value
871
+
872
+ def initialize(**args)
873
+ update!(**args)
874
+ end
875
+
876
+ # Update properties of this object
877
+ def update!(**args)
878
+ @key = args[:key] if args.key?(:key)
879
+ @value = args[:value] if args.key?(:value)
880
+ end
881
+ end
882
+
883
+ # Represents the complete border style applied to widgets.
884
+ class GoogleAppsCardV1BorderStyle
885
+ include Google::Apis::Core::Hashable
886
+
887
+ # The corner radius for the border.
888
+ # Corresponds to the JSON property `cornerRadius`
889
+ # @return [Fixnum]
890
+ attr_accessor :corner_radius
891
+
892
+ # Represents a color in the RGBA color space. This representation is designed
893
+ # for simplicity of conversion to/from color representations in various
894
+ # languages over compactness. For example, the fields of this representation can
895
+ # be trivially provided to the constructor of `java.awt.Color` in Java; it can
896
+ # also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha`
897
+ # method in iOS; and, with just a little work, it can be easily formatted into a
898
+ # CSS `rgba()` string in JavaScript. This reference page doesn't carry
899
+ # information about the absolute color space that should be used to interpret
900
+ # the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default,
901
+ # applications should assume the sRGB color space. When color equality needs to
902
+ # be decided, implementations, unless documented otherwise, treat two colors as
903
+ # equal if all their red, green, blue, and alpha values each differ by at most
904
+ # 1e-5. Example (Java): import com.google.type.Color; // ... public static java.
905
+ # awt.Color fromProto(Color protocolor) ` float alpha = protocolor.hasAlpha() ?
906
+ # protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.
907
+ # getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); ` public static
908
+ # Color toProto(java.awt.Color color) ` float red = (float) color.getRed();
909
+ # float green = (float) color.getGreen(); float blue = (float) color.getBlue();
910
+ # float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .
911
+ # setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue /
912
+ # denominator); int alpha = color.getAlpha(); if (alpha != 255) ` result.
913
+ # setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .
914
+ # build()); ` return resultBuilder.build(); ` // ... Example (iOS / Obj-C): // ..
915
+ # . static UIColor* fromProto(Color* protocolor) ` float red = [protocolor red];
916
+ # float green = [protocolor green]; float blue = [protocolor blue]; FloatValue*
917
+ # alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper !=
918
+ # nil) ` alpha = [alpha_wrapper value]; ` return [UIColor colorWithRed:red green:
919
+ # green blue:blue alpha:alpha]; ` static Color* toProto(UIColor* color) `
920
+ # CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&
921
+ # blue alpha:&alpha]) ` return nil; ` Color* result = [[Color alloc] init]; [
922
+ # result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <
923
+ # = 0.9999) ` [result setAlpha:floatWrapperWithValue(alpha)]; ` [result
924
+ # autorelease]; return result; ` // ... Example (JavaScript): // ... var
925
+ # protoToCssColor = function(rgb_color) ` var redFrac = rgb_color.red || 0.0;
926
+ # var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0;
927
+ # var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255);
928
+ # var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) ` return
929
+ # rgbToCssColor(red, green, blue); ` var alphaFrac = rgb_color.alpha.value || 0.
930
+ # 0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',
931
+ # ', alphaFrac, ')'].join(''); `; var rgbToCssColor = function(red, green, blue)
932
+ # ` var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString
933
+ # = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var
934
+ # resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) ` resultBuilder.
935
+ # push('0'); ` resultBuilder.push(hexString); return resultBuilder.join(''); `; /
936
+ # / ...
937
+ # Corresponds to the JSON property `strokeColor`
938
+ # @return [Google::Apis::ChatV1::Color]
939
+ attr_accessor :stroke_color
940
+
941
+ # The border type.
942
+ # Corresponds to the JSON property `type`
943
+ # @return [String]
944
+ attr_accessor :type
945
+
946
+ def initialize(**args)
947
+ update!(**args)
948
+ end
949
+
950
+ # Update properties of this object
951
+ def update!(**args)
952
+ @corner_radius = args[:corner_radius] if args.key?(:corner_radius)
953
+ @stroke_color = args[:stroke_color] if args.key?(:stroke_color)
954
+ @type = args[:type] if args.key?(:type)
955
+ end
956
+ end
957
+
958
+ # A button. Can be a text button or an image button.
959
+ class GoogleAppsCardV1Button
960
+ include Google::Apis::Core::Hashable
961
+
962
+ # The alternative text used for accessibility. Has no effect when an icon is set;
963
+ # use `icon.alt_text` instead.
964
+ # Corresponds to the JSON property `altText`
965
+ # @return [String]
966
+ attr_accessor :alt_text
967
+
968
+ # Represents a color in the RGBA color space. This representation is designed
969
+ # for simplicity of conversion to/from color representations in various
970
+ # languages over compactness. For example, the fields of this representation can
971
+ # be trivially provided to the constructor of `java.awt.Color` in Java; it can
972
+ # also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha`
973
+ # method in iOS; and, with just a little work, it can be easily formatted into a
974
+ # CSS `rgba()` string in JavaScript. This reference page doesn't carry
975
+ # information about the absolute color space that should be used to interpret
976
+ # the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default,
977
+ # applications should assume the sRGB color space. When color equality needs to
978
+ # be decided, implementations, unless documented otherwise, treat two colors as
979
+ # equal if all their red, green, blue, and alpha values each differ by at most
980
+ # 1e-5. Example (Java): import com.google.type.Color; // ... public static java.
981
+ # awt.Color fromProto(Color protocolor) ` float alpha = protocolor.hasAlpha() ?
982
+ # protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.
983
+ # getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); ` public static
984
+ # Color toProto(java.awt.Color color) ` float red = (float) color.getRed();
985
+ # float green = (float) color.getGreen(); float blue = (float) color.getBlue();
986
+ # float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .
987
+ # setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue /
988
+ # denominator); int alpha = color.getAlpha(); if (alpha != 255) ` result.
989
+ # setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .
990
+ # build()); ` return resultBuilder.build(); ` // ... Example (iOS / Obj-C): // ..
991
+ # . static UIColor* fromProto(Color* protocolor) ` float red = [protocolor red];
992
+ # float green = [protocolor green]; float blue = [protocolor blue]; FloatValue*
993
+ # alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper !=
994
+ # nil) ` alpha = [alpha_wrapper value]; ` return [UIColor colorWithRed:red green:
995
+ # green blue:blue alpha:alpha]; ` static Color* toProto(UIColor* color) `
996
+ # CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&
997
+ # blue alpha:&alpha]) ` return nil; ` Color* result = [[Color alloc] init]; [
998
+ # result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <
999
+ # = 0.9999) ` [result setAlpha:floatWrapperWithValue(alpha)]; ` [result
1000
+ # autorelease]; return result; ` // ... Example (JavaScript): // ... var
1001
+ # protoToCssColor = function(rgb_color) ` var redFrac = rgb_color.red || 0.0;
1002
+ # var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0;
1003
+ # var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255);
1004
+ # var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) ` return
1005
+ # rgbToCssColor(red, green, blue); ` var alphaFrac = rgb_color.alpha.value || 0.
1006
+ # 0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',
1007
+ # ', alphaFrac, ')'].join(''); `; var rgbToCssColor = function(red, green, blue)
1008
+ # ` var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString
1009
+ # = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var
1010
+ # resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) ` resultBuilder.
1011
+ # push('0'); ` resultBuilder.push(hexString); return resultBuilder.join(''); `; /
1012
+ # / ...
1013
+ # Corresponds to the JSON property `color`
1014
+ # @return [Google::Apis::ChatV1::Color]
1015
+ attr_accessor :color
1016
+
1017
+ # If true, the button is displayed in a disabled state and doesn't respond to
1018
+ # user actions.
1019
+ # Corresponds to the JSON property `disabled`
1020
+ # @return [Boolean]
1021
+ attr_accessor :disabled
1022
+ alias_method :disabled?, :disabled
1023
+
1024
+ # The icon image.
1025
+ # Corresponds to the JSON property `icon`
1026
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1Icon]
1027
+ attr_accessor :icon
1028
+
1029
+ # The action to perform when the button is clicked.
1030
+ # Corresponds to the JSON property `onClick`
1031
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1OnClick]
1032
+ attr_accessor :on_click
1033
+
1034
+ # The text of the button.
1035
+ # Corresponds to the JSON property `text`
1036
+ # @return [String]
1037
+ attr_accessor :text
1038
+
1039
+ def initialize(**args)
1040
+ update!(**args)
1041
+ end
1042
+
1043
+ # Update properties of this object
1044
+ def update!(**args)
1045
+ @alt_text = args[:alt_text] if args.key?(:alt_text)
1046
+ @color = args[:color] if args.key?(:color)
1047
+ @disabled = args[:disabled] if args.key?(:disabled)
1048
+ @icon = args[:icon] if args.key?(:icon)
1049
+ @on_click = args[:on_click] if args.key?(:on_click)
1050
+ @text = args[:text] if args.key?(:text)
1051
+ end
1052
+ end
1053
+
1054
+ # A list of buttons layed out horizontally.
1055
+ class GoogleAppsCardV1ButtonList
1056
+ include Google::Apis::Core::Hashable
1057
+
1058
+ #
1059
+ # Corresponds to the JSON property `buttons`
1060
+ # @return [Array<Google::Apis::ChatV1::GoogleAppsCardV1Button>]
1061
+ attr_accessor :buttons
1062
+
1063
+ def initialize(**args)
1064
+ update!(**args)
1065
+ end
1066
+
1067
+ # Update properties of this object
1068
+ def update!(**args)
1069
+ @buttons = args[:buttons] if args.key?(:buttons)
1070
+ end
1071
+ end
1072
+
1073
+ # A card is a UI element that can contain UI widgets such as text and images.
1074
+ # For more information, see Cards . For example, the following JSON creates a
1075
+ # card that has a header with the name, position, icons, and link for a contact,
1076
+ # followed by a section with contact information like email and phone number. ```
1077
+ # ` "header": ` "title": "Heba Salam", "subtitle": "Software Engineer", "
1078
+ # imageStyle": "ImageStyle.AVATAR", "imageUrl": "https://example.com/heba_salam.
1079
+ # png", "imageAltText": "Avatar for Heba Salam" `, "sections" : [ ` "header": "
1080
+ # Contact Info", "widgets": [ ` "decorated_text": ` "icon": ` "knownIcon": "
1081
+ # EMAIL" `, "content": "heba.salam@example.com" ` `, ` "decoratedText": ` "icon":
1082
+ # ` "knownIcon": "PERSON" `, "content": "Online" ` `, ` "decoratedText": ` "
1083
+ # icon": ` "knownIcon": "PHONE" `, "content": "+1 (555) 555-1234" ` `, ` "
1084
+ # buttons": [ ` "textButton": ` "text": "Share", `, "onClick": ` "openLink": ` "
1085
+ # url": "https://example.com/share" ` ` `, ` "textButton": ` "text": "Edit", `, "
1086
+ # onClick": ` "action": ` "function": "goToView", "parameters": [ ` "key": "
1087
+ # viewType", "value": "EDIT" ` ], "loadIndicator": "LoadIndicator.SPINNER" ` ` `
1088
+ # ] ` ], "collapsible": true, "uncollapsibleWidgetsCount": 3 ` ], "cardActions":
1089
+ # [ ` "actionLabel": "Send Feedback", "onClick": ` "openLink": ` "url": "https://
1090
+ # example.com/feedback" ` ` ` ], "name": "contact-card-K3wB6arF2H9L" ` ```
1091
+ class GoogleAppsCardV1Card
1092
+ include Google::Apis::Core::Hashable
1093
+
1094
+ # The actions of this card. They are added to a card's generated toolbar menu.
1095
+ # For example, the following JSON constructs a card action menu with Settings
1096
+ # and Send Feedback options: ``` "card_actions": [ ` "actionLabel": "Setting", "
1097
+ # onClick": ` "action": ` "functionName": "goToView", "parameters": [ ` "key": "
1098
+ # viewType", "value": "SETTING" ` ], "loadIndicator": "LoadIndicator.SPINNER" ` `
1099
+ # `, ` "actionLabel": "Send Feedback", "onClick": ` "openLink": ` "url": "https:
1100
+ # //example.com/feedback" ` ` ` ] ```
1101
+ # Corresponds to the JSON property `cardActions`
1102
+ # @return [Array<Google::Apis::ChatV1::GoogleAppsCardV1CardAction>]
1103
+ attr_accessor :card_actions
1104
+
1105
+ # The display style for peekCardHeader.
1106
+ # Corresponds to the JSON property `displayStyle`
1107
+ # @return [String]
1108
+ attr_accessor :display_style
1109
+
1110
+ # A persistent (sticky) footer that is added to the bottom of the card.
1111
+ # Corresponds to the JSON property `fixedFooter`
1112
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1CardFixedFooter]
1113
+ attr_accessor :fixed_footer
1114
+
1115
+ # The header of the card. A header usually contains a title and an image.
1116
+ # Corresponds to the JSON property `header`
1117
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1CardHeader]
1118
+ attr_accessor :header
1119
+
1120
+ # Name of the card, which is used as a identifier for the card in card
1121
+ # navigation.
1122
+ # Corresponds to the JSON property `name`
1123
+ # @return [String]
1124
+ attr_accessor :name
1125
+
1126
+ # When displaying contextual content, the peek card header acts as a placeholder
1127
+ # so that the user can navigate forward between the homepage cards and the
1128
+ # contextual cards.
1129
+ # Corresponds to the JSON property `peekCardHeader`
1130
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1CardHeader]
1131
+ attr_accessor :peek_card_header
1132
+
1133
+ # Sections are separated by a line divider.
1134
+ # Corresponds to the JSON property `sections`
1135
+ # @return [Array<Google::Apis::ChatV1::GoogleAppsCardV1Section>]
1136
+ attr_accessor :sections
1137
+
1138
+ def initialize(**args)
1139
+ update!(**args)
1140
+ end
1141
+
1142
+ # Update properties of this object
1143
+ def update!(**args)
1144
+ @card_actions = args[:card_actions] if args.key?(:card_actions)
1145
+ @display_style = args[:display_style] if args.key?(:display_style)
1146
+ @fixed_footer = args[:fixed_footer] if args.key?(:fixed_footer)
1147
+ @header = args[:header] if args.key?(:header)
1148
+ @name = args[:name] if args.key?(:name)
1149
+ @peek_card_header = args[:peek_card_header] if args.key?(:peek_card_header)
1150
+ @sections = args[:sections] if args.key?(:sections)
1151
+ end
1152
+ end
1153
+
1154
+ # A card action is the action associated with the card. For example, an invoice
1155
+ # card might include actions such as delete invoice, email invoice, or open the
1156
+ # invoice in a browser.
1157
+ class GoogleAppsCardV1CardAction
1158
+ include Google::Apis::Core::Hashable
1159
+
1160
+ # The label that displays as the action menu item.
1161
+ # Corresponds to the JSON property `actionLabel`
1162
+ # @return [String]
1163
+ attr_accessor :action_label
1164
+
1165
+ # The onclick action for this action item.
1166
+ # Corresponds to the JSON property `onClick`
1167
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1OnClick]
1168
+ attr_accessor :on_click
1169
+
1170
+ def initialize(**args)
1171
+ update!(**args)
1172
+ end
1173
+
1174
+ # Update properties of this object
1175
+ def update!(**args)
1176
+ @action_label = args[:action_label] if args.key?(:action_label)
1177
+ @on_click = args[:on_click] if args.key?(:on_click)
1178
+ end
1179
+ end
1180
+
1181
+ # A persistent (sticky) footer that is added to the bottom of the card.
1182
+ class GoogleAppsCardV1CardFixedFooter
1183
+ include Google::Apis::Core::Hashable
1184
+
1185
+ # A button. Can be a text button or an image button.
1186
+ # Corresponds to the JSON property `primaryButton`
1187
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1Button]
1188
+ attr_accessor :primary_button
1189
+
1190
+ # A button. Can be a text button or an image button.
1191
+ # Corresponds to the JSON property `secondaryButton`
1192
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1Button]
1193
+ attr_accessor :secondary_button
1194
+
1195
+ def initialize(**args)
1196
+ update!(**args)
1197
+ end
1198
+
1199
+ # Update properties of this object
1200
+ def update!(**args)
1201
+ @primary_button = args[:primary_button] if args.key?(:primary_button)
1202
+ @secondary_button = args[:secondary_button] if args.key?(:secondary_button)
1203
+ end
1204
+ end
1205
+
1206
+ #
1207
+ class GoogleAppsCardV1CardHeader
1208
+ include Google::Apis::Core::Hashable
1209
+
1210
+ # The alternative text of this image which is used for accessibility.
1211
+ # Corresponds to the JSON property `imageAltText`
1212
+ # @return [String]
1213
+ attr_accessor :image_alt_text
1214
+
1215
+ # The image's type.
1216
+ # Corresponds to the JSON property `imageType`
1217
+ # @return [String]
1218
+ attr_accessor :image_type
1219
+
1220
+ # The URL of the image in the card header.
1221
+ # Corresponds to the JSON property `imageUrl`
1222
+ # @return [String]
1223
+ attr_accessor :image_url
1224
+
1225
+ # The subtitle of the card header.
1226
+ # Corresponds to the JSON property `subtitle`
1227
+ # @return [String]
1228
+ attr_accessor :subtitle
1229
+
1230
+ # The title of the card header. The title must be specified. The header has a
1231
+ # fixed height: if both a title and subtitle are specified, each takes up one
1232
+ # line. If only the title is specified, it takes up both lines.
1233
+ # Corresponds to the JSON property `title`
1234
+ # @return [String]
1235
+ attr_accessor :title
1236
+
1237
+ def initialize(**args)
1238
+ update!(**args)
1239
+ end
1240
+
1241
+ # Update properties of this object
1242
+ def update!(**args)
1243
+ @image_alt_text = args[:image_alt_text] if args.key?(:image_alt_text)
1244
+ @image_type = args[:image_type] if args.key?(:image_type)
1245
+ @image_url = args[:image_url] if args.key?(:image_url)
1246
+ @subtitle = args[:subtitle] if args.key?(:subtitle)
1247
+ @title = args[:title] if args.key?(:title)
1248
+ end
1249
+ end
1250
+
1251
+ # The widget that lets users to specify a date and time.
1252
+ class GoogleAppsCardV1DateTimePicker
1253
+ include Google::Apis::Core::Hashable
1254
+
1255
+ # The label for the field that displays to the user.
1256
+ # Corresponds to the JSON property `label`
1257
+ # @return [String]
1258
+ attr_accessor :label
1259
+
1260
+ # The name of the text input that's used in formInput, and uniquely identifies
1261
+ # this input.
1262
+ # Corresponds to the JSON property `name`
1263
+ # @return [String]
1264
+ attr_accessor :name
1265
+
1266
+ # An action that describes the behavior when the form is submitted. For example,
1267
+ # an Apps Script can be invoked to handle the form.
1268
+ # Corresponds to the JSON property `onChangeAction`
1269
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1Action]
1270
+ attr_accessor :on_change_action
1271
+
1272
+ # The number representing the time zone offset from UTC, in minutes. If set, the
1273
+ # `value_ms_epoch` is displayed in the specified time zone. If not set, it uses
1274
+ # the user's time zone setting on the client side.
1275
+ # Corresponds to the JSON property `timezoneOffsetDate`
1276
+ # @return [Fixnum]
1277
+ attr_accessor :timezone_offset_date
1278
+
1279
+ # The type of the date/time picker.
1280
+ # Corresponds to the JSON property `type`
1281
+ # @return [String]
1282
+ attr_accessor :type
1283
+
1284
+ # The value to display as the default value before user input or previous user
1285
+ # input. It is represented in milliseconds (Epoch time). For `DATE_AND_TIME`
1286
+ # type, the full epoch value is used. For `DATE_ONLY` type, only date of the
1287
+ # epoch time is used. For `TIME_ONLY` type, only time of the epoch time is used.
1288
+ # For example, you can set epoch time to `3 * 60 * 60 * 1000` to represent 3am.
1289
+ # Corresponds to the JSON property `valueMsEpoch`
1290
+ # @return [Fixnum]
1291
+ attr_accessor :value_ms_epoch
1292
+
1293
+ def initialize(**args)
1294
+ update!(**args)
1295
+ end
1296
+
1297
+ # Update properties of this object
1298
+ def update!(**args)
1299
+ @label = args[:label] if args.key?(:label)
1300
+ @name = args[:name] if args.key?(:name)
1301
+ @on_change_action = args[:on_change_action] if args.key?(:on_change_action)
1302
+ @timezone_offset_date = args[:timezone_offset_date] if args.key?(:timezone_offset_date)
1303
+ @type = args[:type] if args.key?(:type)
1304
+ @value_ms_epoch = args[:value_ms_epoch] if args.key?(:value_ms_epoch)
1305
+ end
1306
+ end
1307
+
1308
+ # A widget that displays text with optional decorations such as a label above or
1309
+ # below the text, an icon in front of the text, a selection widget or a button
1310
+ # after the text.
1311
+ class GoogleAppsCardV1DecoratedText
1312
+ include Google::Apis::Core::Hashable
1313
+
1314
+ # The formatted text label that shows below the main text.
1315
+ # Corresponds to the JSON property `bottomLabel`
1316
+ # @return [String]
1317
+ attr_accessor :bottom_label
1318
+
1319
+ # A button. Can be a text button or an image button.
1320
+ # Corresponds to the JSON property `button`
1321
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1Button]
1322
+ attr_accessor :button
1323
+
1324
+ # An icon displayed after the text.
1325
+ # Corresponds to the JSON property `endIcon`
1326
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1Icon]
1327
+ attr_accessor :end_icon
1328
+
1329
+ # Deprecated in favor of start_icon.
1330
+ # Corresponds to the JSON property `icon`
1331
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1Icon]
1332
+ attr_accessor :icon
1333
+
1334
+ # Only the top and bottom label and content region are clickable.
1335
+ # Corresponds to the JSON property `onClick`
1336
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1OnClick]
1337
+ attr_accessor :on_click
1338
+
1339
+ # The icon displayed in front of the text.
1340
+ # Corresponds to the JSON property `startIcon`
1341
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1Icon]
1342
+ attr_accessor :start_icon
1343
+
1344
+ # A switch widget can be clicked to change its state or trigger an action.
1345
+ # Corresponds to the JSON property `switchControl`
1346
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1SwitchControl]
1347
+ attr_accessor :switch_control
1348
+
1349
+ # Required. The main widget formatted text. See Text formatting for details.
1350
+ # Corresponds to the JSON property `text`
1351
+ # @return [String]
1352
+ attr_accessor :text
1353
+
1354
+ # The formatted text label that shows above the main text.
1355
+ # Corresponds to the JSON property `topLabel`
1356
+ # @return [String]
1357
+ attr_accessor :top_label
1358
+
1359
+ # The wrap text setting. If `true`, the text is wrapped and displayed in
1360
+ # multiline. Otherwise, the text is truncated.
1361
+ # Corresponds to the JSON property `wrapText`
1362
+ # @return [Boolean]
1363
+ attr_accessor :wrap_text
1364
+ alias_method :wrap_text?, :wrap_text
1365
+
1366
+ def initialize(**args)
1367
+ update!(**args)
1368
+ end
1369
+
1370
+ # Update properties of this object
1371
+ def update!(**args)
1372
+ @bottom_label = args[:bottom_label] if args.key?(:bottom_label)
1373
+ @button = args[:button] if args.key?(:button)
1374
+ @end_icon = args[:end_icon] if args.key?(:end_icon)
1375
+ @icon = args[:icon] if args.key?(:icon)
1376
+ @on_click = args[:on_click] if args.key?(:on_click)
1377
+ @start_icon = args[:start_icon] if args.key?(:start_icon)
1378
+ @switch_control = args[:switch_control] if args.key?(:switch_control)
1379
+ @text = args[:text] if args.key?(:text)
1380
+ @top_label = args[:top_label] if args.key?(:top_label)
1381
+ @wrap_text = args[:wrap_text] if args.key?(:wrap_text)
1382
+ end
1383
+ end
1384
+
1385
+ # A divider that appears in between widgets.
1386
+ class GoogleAppsCardV1Divider
1387
+ include Google::Apis::Core::Hashable
1388
+
1389
+ def initialize(**args)
1390
+ update!(**args)
1391
+ end
1392
+
1393
+ # Update properties of this object
1394
+ def update!(**args)
1395
+ end
1396
+ end
1397
+
1398
+ # Represents a Grid widget that displays items in a configurable grid layout.
1399
+ class GoogleAppsCardV1Grid
1400
+ include Google::Apis::Core::Hashable
1401
+
1402
+ # Represents the complete border style applied to widgets.
1403
+ # Corresponds to the JSON property `borderStyle`
1404
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1BorderStyle]
1405
+ attr_accessor :border_style
1406
+
1407
+ # The number of columns to display in the grid. A default value is used if this
1408
+ # field isn't specified, and that default value is different depending on where
1409
+ # the grid is shown (dialog versus companion).
1410
+ # Corresponds to the JSON property `columnCount`
1411
+ # @return [Fixnum]
1412
+ attr_accessor :column_count
1413
+
1414
+ # The items to display in the grid.
1415
+ # Corresponds to the JSON property `items`
1416
+ # @return [Array<Google::Apis::ChatV1::GoogleAppsCardV1GridItem>]
1417
+ attr_accessor :items
1418
+
1419
+ # This callback is reused by each individual grid item, but with the item's
1420
+ # identifier and index in the items list added to the callback's parameters.
1421
+ # Corresponds to the JSON property `onClick`
1422
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1OnClick]
1423
+ attr_accessor :on_click
1424
+
1425
+ # The text that displays in the grid header.
1426
+ # Corresponds to the JSON property `title`
1427
+ # @return [String]
1428
+ attr_accessor :title
1429
+
1430
+ def initialize(**args)
1431
+ update!(**args)
1432
+ end
1433
+
1434
+ # Update properties of this object
1435
+ def update!(**args)
1436
+ @border_style = args[:border_style] if args.key?(:border_style)
1437
+ @column_count = args[:column_count] if args.key?(:column_count)
1438
+ @items = args[:items] if args.key?(:items)
1439
+ @on_click = args[:on_click] if args.key?(:on_click)
1440
+ @title = args[:title] if args.key?(:title)
1441
+ end
1442
+ end
1443
+
1444
+ # Represents a single item in the grid layout.
1445
+ class GoogleAppsCardV1GridItem
1446
+ include Google::Apis::Core::Hashable
1447
+
1448
+ # A user-specified identifier for this grid item. This identifier is returned in
1449
+ # the parent Grid's onClick callback parameters.
1450
+ # Corresponds to the JSON property `id`
1451
+ # @return [String]
1452
+ attr_accessor :id
1453
+
1454
+ # The image that displays in the grid item.
1455
+ # Corresponds to the JSON property `image`
1456
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1ImageComponent]
1457
+ attr_accessor :image
1458
+
1459
+ # The layout to use for the grid item.
1460
+ # Corresponds to the JSON property `layout`
1461
+ # @return [String]
1462
+ attr_accessor :layout
1463
+
1464
+ # The grid item's subtitle.
1465
+ # Corresponds to the JSON property `subtitle`
1466
+ # @return [String]
1467
+ attr_accessor :subtitle
1468
+
1469
+ # The horizontal alignment of the grid item's text.
1470
+ # Corresponds to the JSON property `textAlignment`
1471
+ # @return [String]
1472
+ attr_accessor :text_alignment
1473
+
1474
+ # The grid item's title.
1475
+ # Corresponds to the JSON property `title`
1476
+ # @return [String]
1477
+ attr_accessor :title
1478
+
1479
+ def initialize(**args)
1480
+ update!(**args)
1481
+ end
1482
+
1483
+ # Update properties of this object
1484
+ def update!(**args)
1485
+ @id = args[:id] if args.key?(:id)
1486
+ @image = args[:image] if args.key?(:image)
1487
+ @layout = args[:layout] if args.key?(:layout)
1488
+ @subtitle = args[:subtitle] if args.key?(:subtitle)
1489
+ @text_alignment = args[:text_alignment] if args.key?(:text_alignment)
1490
+ @title = args[:title] if args.key?(:title)
1491
+ end
1492
+ end
1493
+
1494
+ #
1495
+ class GoogleAppsCardV1Icon
1496
+ include Google::Apis::Core::Hashable
1497
+
1498
+ # The description of the icon, used for accessibility. The default value is
1499
+ # provided if you don't specify one.
1500
+ # Corresponds to the JSON property `altText`
1501
+ # @return [String]
1502
+ attr_accessor :alt_text
1503
+
1504
+ # The icon specified by a URL.
1505
+ # Corresponds to the JSON property `iconUrl`
1506
+ # @return [String]
1507
+ attr_accessor :icon_url
1508
+
1509
+ # The crop style applied to the image. In some cases, applying a `CIRCLE` crop
1510
+ # causes the image to be drawn larger than a standard icon.
1511
+ # Corresponds to the JSON property `imageType`
1512
+ # @return [String]
1513
+ attr_accessor :image_type
1514
+
1515
+ # The icon specified by the string name of a list of known icons
1516
+ # Corresponds to the JSON property `knownIcon`
1517
+ # @return [String]
1518
+ attr_accessor :known_icon
1519
+
1520
+ def initialize(**args)
1521
+ update!(**args)
1522
+ end
1523
+
1524
+ # Update properties of this object
1525
+ def update!(**args)
1526
+ @alt_text = args[:alt_text] if args.key?(:alt_text)
1527
+ @icon_url = args[:icon_url] if args.key?(:icon_url)
1528
+ @image_type = args[:image_type] if args.key?(:image_type)
1529
+ @known_icon = args[:known_icon] if args.key?(:known_icon)
1530
+ end
1531
+ end
1532
+
1533
+ # An image that is specified by a URL and can have an onClick action.
1534
+ class GoogleAppsCardV1Image
1535
+ include Google::Apis::Core::Hashable
1536
+
1537
+ # The alternative text of this image, used for accessibility.
1538
+ # Corresponds to the JSON property `altText`
1539
+ # @return [String]
1540
+ attr_accessor :alt_text
1541
+
1542
+ # An image URL.
1543
+ # Corresponds to the JSON property `imageUrl`
1544
+ # @return [String]
1545
+ attr_accessor :image_url
1546
+
1547
+ #
1548
+ # Corresponds to the JSON property `onClick`
1549
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1OnClick]
1550
+ attr_accessor :on_click
1551
+
1552
+ def initialize(**args)
1553
+ update!(**args)
1554
+ end
1555
+
1556
+ # Update properties of this object
1557
+ def update!(**args)
1558
+ @alt_text = args[:alt_text] if args.key?(:alt_text)
1559
+ @image_url = args[:image_url] if args.key?(:image_url)
1560
+ @on_click = args[:on_click] if args.key?(:on_click)
1561
+ end
1562
+ end
1563
+
1564
+ #
1565
+ class GoogleAppsCardV1ImageComponent
1566
+ include Google::Apis::Core::Hashable
1567
+
1568
+ # The accessibility label for the image.
1569
+ # Corresponds to the JSON property `altText`
1570
+ # @return [String]
1571
+ attr_accessor :alt_text
1572
+
1573
+ # Represents the complete border style applied to widgets.
1574
+ # Corresponds to the JSON property `borderStyle`
1575
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1BorderStyle]
1576
+ attr_accessor :border_style
1577
+
1578
+ # Represents the crop style applied to an image.
1579
+ # Corresponds to the JSON property `cropStyle`
1580
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1ImageCropStyle]
1581
+ attr_accessor :crop_style
1582
+
1583
+ # The image URL.
1584
+ # Corresponds to the JSON property `imageUri`
1585
+ # @return [String]
1586
+ attr_accessor :image_uri
1587
+
1588
+ def initialize(**args)
1589
+ update!(**args)
1590
+ end
1591
+
1592
+ # Update properties of this object
1593
+ def update!(**args)
1594
+ @alt_text = args[:alt_text] if args.key?(:alt_text)
1595
+ @border_style = args[:border_style] if args.key?(:border_style)
1596
+ @crop_style = args[:crop_style] if args.key?(:crop_style)
1597
+ @image_uri = args[:image_uri] if args.key?(:image_uri)
1598
+ end
1599
+ end
1600
+
1601
+ # Represents the crop style applied to an image.
1602
+ class GoogleAppsCardV1ImageCropStyle
1603
+ include Google::Apis::Core::Hashable
1604
+
1605
+ # The aspect ratio to use if the crop type is `RECTANGLE_CUSTOM`.
1606
+ # Corresponds to the JSON property `aspectRatio`
1607
+ # @return [Float]
1608
+ attr_accessor :aspect_ratio
1609
+
1610
+ # The crop type.
1611
+ # Corresponds to the JSON property `type`
1612
+ # @return [String]
1613
+ attr_accessor :type
1614
+
1615
+ def initialize(**args)
1616
+ update!(**args)
1617
+ end
1618
+
1619
+ # Update properties of this object
1620
+ def update!(**args)
1621
+ @aspect_ratio = args[:aspect_ratio] if args.key?(:aspect_ratio)
1622
+ @type = args[:type] if args.key?(:type)
1623
+ end
1624
+ end
1625
+
1626
+ #
1627
+ class GoogleAppsCardV1OnClick
1628
+ include Google::Apis::Core::Hashable
1629
+
1630
+ # An action that describes the behavior when the form is submitted. For example,
1631
+ # an Apps Script can be invoked to handle the form.
1632
+ # Corresponds to the JSON property `action`
1633
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1Action]
1634
+ attr_accessor :action
1635
+
1636
+ # A card is a UI element that can contain UI widgets such as text and images.
1637
+ # For more information, see Cards . For example, the following JSON creates a
1638
+ # card that has a header with the name, position, icons, and link for a contact,
1639
+ # followed by a section with contact information like email and phone number. ```
1640
+ # ` "header": ` "title": "Heba Salam", "subtitle": "Software Engineer", "
1641
+ # imageStyle": "ImageStyle.AVATAR", "imageUrl": "https://example.com/heba_salam.
1642
+ # png", "imageAltText": "Avatar for Heba Salam" `, "sections" : [ ` "header": "
1643
+ # Contact Info", "widgets": [ ` "decorated_text": ` "icon": ` "knownIcon": "
1644
+ # EMAIL" `, "content": "heba.salam@example.com" ` `, ` "decoratedText": ` "icon":
1645
+ # ` "knownIcon": "PERSON" `, "content": "Online" ` `, ` "decoratedText": ` "
1646
+ # icon": ` "knownIcon": "PHONE" `, "content": "+1 (555) 555-1234" ` `, ` "
1647
+ # buttons": [ ` "textButton": ` "text": "Share", `, "onClick": ` "openLink": ` "
1648
+ # url": "https://example.com/share" ` ` `, ` "textButton": ` "text": "Edit", `, "
1649
+ # onClick": ` "action": ` "function": "goToView", "parameters": [ ` "key": "
1650
+ # viewType", "value": "EDIT" ` ], "loadIndicator": "LoadIndicator.SPINNER" ` ` `
1651
+ # ] ` ], "collapsible": true, "uncollapsibleWidgetsCount": 3 ` ], "cardActions":
1652
+ # [ ` "actionLabel": "Send Feedback", "onClick": ` "openLink": ` "url": "https://
1653
+ # example.com/feedback" ` ` ` ], "name": "contact-card-K3wB6arF2H9L" ` ```
1654
+ # Corresponds to the JSON property `card`
1655
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1Card]
1656
+ attr_accessor :card
1657
+
1658
+ # An action that describes the behavior when the form is submitted. For example,
1659
+ # an Apps Script can be invoked to handle the form.
1660
+ # Corresponds to the JSON property `openDynamicLinkAction`
1661
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1Action]
1662
+ attr_accessor :open_dynamic_link_action
1663
+
1664
+ # If specified, this onClick triggers an open link action.
1665
+ # Corresponds to the JSON property `openLink`
1666
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1OpenLink]
1667
+ attr_accessor :open_link
1668
+
1669
+ def initialize(**args)
1670
+ update!(**args)
1671
+ end
1672
+
1673
+ # Update properties of this object
1674
+ def update!(**args)
1675
+ @action = args[:action] if args.key?(:action)
1676
+ @card = args[:card] if args.key?(:card)
1677
+ @open_dynamic_link_action = args[:open_dynamic_link_action] if args.key?(:open_dynamic_link_action)
1678
+ @open_link = args[:open_link] if args.key?(:open_link)
1679
+ end
1680
+ end
1681
+
1682
+ #
1683
+ class GoogleAppsCardV1OpenLink
1684
+ include Google::Apis::Core::Hashable
1685
+
1686
+ #
1687
+ # Corresponds to the JSON property `onClose`
1688
+ # @return [String]
1689
+ attr_accessor :on_close
1690
+
1691
+ #
1692
+ # Corresponds to the JSON property `openAs`
1693
+ # @return [String]
1694
+ attr_accessor :open_as
1695
+
1696
+ # The URL to open.
1697
+ # Corresponds to the JSON property `url`
1698
+ # @return [String]
1699
+ attr_accessor :url
1700
+
1701
+ def initialize(**args)
1702
+ update!(**args)
1703
+ end
1704
+
1705
+ # Update properties of this object
1706
+ def update!(**args)
1707
+ @on_close = args[:on_close] if args.key?(:on_close)
1708
+ @open_as = args[:open_as] if args.key?(:open_as)
1709
+ @url = args[:url] if args.key?(:url)
1710
+ end
1711
+ end
1712
+
1713
+ # A section contains a collection of widgets that are rendered vertically in the
1714
+ # order that they are specified. Across all platforms, cards have a narrow fixed
1715
+ # width, so there is currently no need for layout properties, for example, float.
1716
+ class GoogleAppsCardV1Section
1717
+ include Google::Apis::Core::Hashable
1718
+
1719
+ # Indicates whether this section is collapsible. If a section is collapsible,
1720
+ # the description must be given.
1721
+ # Corresponds to the JSON property `collapsible`
1722
+ # @return [Boolean]
1723
+ attr_accessor :collapsible
1724
+ alias_method :collapsible?, :collapsible
1725
+
1726
+ # The header of the section. Formatted text is supported.
1727
+ # Corresponds to the JSON property `header`
1728
+ # @return [String]
1729
+ attr_accessor :header
1730
+
1731
+ # The number of uncollapsible widgets. For example, when a section contains five
1732
+ # widgets and the `numUncollapsibleWidget` is set to `2`, the first two widgets
1733
+ # are always shown and the last three are collapsed as default. The `
1734
+ # numUncollapsibleWidget` is taken into account only when collapsible is set to `
1735
+ # true`.
1736
+ # Corresponds to the JSON property `uncollapsibleWidgetsCount`
1737
+ # @return [Fixnum]
1738
+ attr_accessor :uncollapsible_widgets_count
1739
+
1740
+ # A section must contain at least 1 widget.
1741
+ # Corresponds to the JSON property `widgets`
1742
+ # @return [Array<Google::Apis::ChatV1::GoogleAppsCardV1Widget>]
1743
+ attr_accessor :widgets
1744
+
1745
+ def initialize(**args)
1746
+ update!(**args)
1747
+ end
1748
+
1749
+ # Update properties of this object
1750
+ def update!(**args)
1751
+ @collapsible = args[:collapsible] if args.key?(:collapsible)
1752
+ @header = args[:header] if args.key?(:header)
1753
+ @uncollapsible_widgets_count = args[:uncollapsible_widgets_count] if args.key?(:uncollapsible_widgets_count)
1754
+ @widgets = args[:widgets] if args.key?(:widgets)
1755
+ end
1756
+ end
1757
+
1758
+ # A widget that creates a UI item (for example, a drop-down list) with options
1759
+ # for users to select.
1760
+ class GoogleAppsCardV1SelectionInput
1761
+ include Google::Apis::Core::Hashable
1762
+
1763
+ #
1764
+ # Corresponds to the JSON property `items`
1765
+ # @return [Array<Google::Apis::ChatV1::GoogleAppsCardV1SelectionItem>]
1766
+ attr_accessor :items
1767
+
1768
+ # The label displayed ahead of the switch control.
1769
+ # Corresponds to the JSON property `label`
1770
+ # @return [String]
1771
+ attr_accessor :label
1772
+
1773
+ # The name of the text input which is used in formInput.
1774
+ # Corresponds to the JSON property `name`
1775
+ # @return [String]
1776
+ attr_accessor :name
1777
+
1778
+ # An action that describes the behavior when the form is submitted. For example,
1779
+ # an Apps Script can be invoked to handle the form.
1780
+ # Corresponds to the JSON property `onChangeAction`
1781
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1Action]
1782
+ attr_accessor :on_change_action
1783
+
1784
+ #
1785
+ # Corresponds to the JSON property `type`
1786
+ # @return [String]
1787
+ attr_accessor :type
1788
+
1789
+ def initialize(**args)
1790
+ update!(**args)
1791
+ end
1792
+
1793
+ # Update properties of this object
1794
+ def update!(**args)
1795
+ @items = args[:items] if args.key?(:items)
1796
+ @label = args[:label] if args.key?(:label)
1797
+ @name = args[:name] if args.key?(:name)
1798
+ @on_change_action = args[:on_change_action] if args.key?(:on_change_action)
1799
+ @type = args[:type] if args.key?(:type)
1800
+ end
1801
+ end
1802
+
1803
+ # The item in the switch control. A radio button, at most one of the items is
1804
+ # selected.
1805
+ class GoogleAppsCardV1SelectionItem
1806
+ include Google::Apis::Core::Hashable
1807
+
1808
+ # If more than one item is selected for `RADIO_BUTTON` and `DROPDOWN`, the first
1809
+ # selected item is treated as selected and the ones after are ignored.
1810
+ # Corresponds to the JSON property `selected`
1811
+ # @return [Boolean]
1812
+ attr_accessor :selected
1813
+ alias_method :selected?, :selected
1814
+
1815
+ # The text to be displayed.
1816
+ # Corresponds to the JSON property `text`
1817
+ # @return [String]
1818
+ attr_accessor :text
1819
+
1820
+ # The value associated with this item. The client should use this as a form
1821
+ # input value.
1822
+ # Corresponds to the JSON property `value`
1823
+ # @return [String]
1824
+ attr_accessor :value
226
1825
 
227
1826
  def initialize(**args)
228
1827
  update!(**args)
@@ -230,34 +1829,20 @@ module Google
230
1829
 
231
1830
  # Update properties of this object
232
1831
  def update!(**args)
233
- @image_button = args[:image_button] if args.key?(:image_button)
234
- @text_button = args[:text_button] if args.key?(:text_button)
1832
+ @selected = args[:selected] if args.key?(:selected)
1833
+ @text = args[:text] if args.key?(:text)
1834
+ @value = args[:value] if args.key?(:value)
235
1835
  end
236
1836
  end
237
1837
 
238
- # A card is a UI element that can contain UI widgets such as texts, images.
239
- class Card
1838
+ # A suggestion item. Only supports text for now.
1839
+ class GoogleAppsCardV1SuggestionItem
240
1840
  include Google::Apis::Core::Hashable
241
1841
 
242
- # The actions of this card.
243
- # Corresponds to the JSON property `cardActions`
244
- # @return [Array<Google::Apis::ChatV1::CardAction>]
245
- attr_accessor :card_actions
246
-
247
- # The header of the card. A header usually contains a title and an image.
248
- # Corresponds to the JSON property `header`
249
- # @return [Google::Apis::ChatV1::CardHeader]
250
- attr_accessor :header
251
-
252
- # Name of the card.
253
- # Corresponds to the JSON property `name`
1842
+ #
1843
+ # Corresponds to the JSON property `text`
254
1844
  # @return [String]
255
- attr_accessor :name
256
-
257
- # Sections are separated by a line divider.
258
- # Corresponds to the JSON property `sections`
259
- # @return [Array<Google::Apis::ChatV1::Section>]
260
- attr_accessor :sections
1845
+ attr_accessor :text
261
1846
 
262
1847
  def initialize(**args)
263
1848
  update!(**args)
@@ -265,28 +1850,19 @@ module Google
265
1850
 
266
1851
  # Update properties of this object
267
1852
  def update!(**args)
268
- @card_actions = args[:card_actions] if args.key?(:card_actions)
269
- @header = args[:header] if args.key?(:header)
270
- @name = args[:name] if args.key?(:name)
271
- @sections = args[:sections] if args.key?(:sections)
1853
+ @text = args[:text] if args.key?(:text)
272
1854
  end
273
1855
  end
274
1856
 
275
- # A card action is the action associated with the card. For an invoice card, a
276
- # typical action would be: delete invoice, email invoice or open the invoice in
277
- # browser.
278
- class CardAction
1857
+ # A container wrapping elements necessary for showing suggestion items used in
1858
+ # text input autocomplete.
1859
+ class GoogleAppsCardV1Suggestions
279
1860
  include Google::Apis::Core::Hashable
280
1861
 
281
- # The label used to be displayed in the action menu item.
282
- # Corresponds to the JSON property `actionLabel`
283
- # @return [String]
284
- attr_accessor :action_label
285
-
286
- # An onclick action (e.g. open a link).
287
- # Corresponds to the JSON property `onClick`
288
- # @return [Google::Apis::ChatV1::OnClick]
289
- attr_accessor :on_click
1862
+ # A list of suggestions items which will be used in are used in autocomplete.
1863
+ # Corresponds to the JSON property `items`
1864
+ # @return [Array<Google::Apis::ChatV1::GoogleAppsCardV1SuggestionItem>]
1865
+ attr_accessor :items
290
1866
 
291
1867
  def initialize(**args)
292
1868
  update!(**args)
@@ -294,36 +1870,40 @@ module Google
294
1870
 
295
1871
  # Update properties of this object
296
1872
  def update!(**args)
297
- @action_label = args[:action_label] if args.key?(:action_label)
298
- @on_click = args[:on_click] if args.key?(:on_click)
1873
+ @items = args[:items] if args.key?(:items)
299
1874
  end
300
1875
  end
301
1876
 
302
1877
  #
303
- class CardHeader
1878
+ class GoogleAppsCardV1SwitchControl
304
1879
  include Google::Apis::Core::Hashable
305
1880
 
306
- # The image's type (e.g. square border or circular border).
307
- # Corresponds to the JSON property `imageStyle`
1881
+ # The control type, either switch or checkbox.
1882
+ # Corresponds to the JSON property `controlType`
308
1883
  # @return [String]
309
- attr_accessor :image_style
1884
+ attr_accessor :control_type
310
1885
 
311
- # The URL of the image in the card header.
312
- # Corresponds to the JSON property `imageUrl`
1886
+ # The name of the switch widget that's used in formInput.
1887
+ # Corresponds to the JSON property `name`
313
1888
  # @return [String]
314
- attr_accessor :image_url
1889
+ attr_accessor :name
315
1890
 
316
- # The subtitle of the card header.
317
- # Corresponds to the JSON property `subtitle`
318
- # @return [String]
319
- attr_accessor :subtitle
1891
+ # An action that describes the behavior when the form is submitted. For example,
1892
+ # an Apps Script can be invoked to handle the form.
1893
+ # Corresponds to the JSON property `onChangeAction`
1894
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1Action]
1895
+ attr_accessor :on_change_action
320
1896
 
321
- # The title must be specified. The header has a fixed height: if both a title
322
- # and subtitle is specified, each will take up 1 line. If only the title is
323
- # specified, it will take up both lines.
324
- # Corresponds to the JSON property `title`
1897
+ # If the switch is selected.
1898
+ # Corresponds to the JSON property `selected`
1899
+ # @return [Boolean]
1900
+ attr_accessor :selected
1901
+ alias_method :selected?, :selected
1902
+
1903
+ # The value is what is passed back in the callback.
1904
+ # Corresponds to the JSON property `value`
325
1905
  # @return [String]
326
- attr_accessor :title
1906
+ attr_accessor :value
327
1907
 
328
1908
  def initialize(**args)
329
1909
  update!(**args)
@@ -331,69 +1911,61 @@ module Google
331
1911
 
332
1912
  # Update properties of this object
333
1913
  def update!(**args)
334
- @image_style = args[:image_style] if args.key?(:image_style)
335
- @image_url = args[:image_url] if args.key?(:image_url)
336
- @subtitle = args[:subtitle] if args.key?(:subtitle)
337
- @title = args[:title] if args.key?(:title)
1914
+ @control_type = args[:control_type] if args.key?(:control_type)
1915
+ @name = args[:name] if args.key?(:name)
1916
+ @on_change_action = args[:on_change_action] if args.key?(:on_change_action)
1917
+ @selected = args[:selected] if args.key?(:selected)
1918
+ @value = args[:value] if args.key?(:value)
338
1919
  end
339
1920
  end
340
1921
 
341
- # Google Chat events.
342
- class DeprecatedEvent
1922
+ # A text input is a UI item where users can input text. A text input can also
1923
+ # have an onChange action and suggestions.
1924
+ class GoogleAppsCardV1TextInput
343
1925
  include Google::Apis::Core::Hashable
344
1926
 
345
- # A form action describes the behavior when the form is submitted. For example,
1927
+ # An action that describes the behavior when the form is submitted. For example,
346
1928
  # an Apps Script can be invoked to handle the form.
347
- # Corresponds to the JSON property `action`
348
- # @return [Google::Apis::ChatV1::FormAction]
349
- attr_accessor :action
350
-
351
- # The URL the bot should redirect the user to after they have completed an
352
- # authorization or configuration flow outside of Google Chat. See the [
353
- # Authorizing access to 3p services guide](/chat/how-tos/auth-3p) for more
354
- # information.
355
- # Corresponds to the JSON property `configCompleteRedirectUrl`
356
- # @return [String]
357
- attr_accessor :config_complete_redirect_url
1929
+ # Corresponds to the JSON property `autoCompleteAction`
1930
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1Action]
1931
+ attr_accessor :auto_complete_action
358
1932
 
359
- # The timestamp indicating when the event was dispatched.
360
- # Corresponds to the JSON property `eventTime`
1933
+ # The hint text.
1934
+ # Corresponds to the JSON property `hintText`
361
1935
  # @return [String]
362
- attr_accessor :event_time
363
-
364
- # A message in Hangouts Chat.
365
- # Corresponds to the JSON property `message`
366
- # @return [Google::Apis::ChatV1::Message]
367
- attr_accessor :message
1936
+ attr_accessor :hint_text
368
1937
 
369
- # A room or DM in Hangouts Chat.
370
- # Corresponds to the JSON property `space`
371
- # @return [Google::Apis::ChatV1::Space]
372
- attr_accessor :space
1938
+ # A container wrapping elements necessary for showing suggestion items used in
1939
+ # text input autocomplete.
1940
+ # Corresponds to the JSON property `initialSuggestions`
1941
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1Suggestions]
1942
+ attr_accessor :initial_suggestions
373
1943
 
374
- # The bot-defined key for the thread related to the event. See the thread_key
375
- # field of the `spaces.message.create` request for more information.
376
- # Corresponds to the JSON property `threadKey`
1944
+ # At least one of label and hintText must be specified.
1945
+ # Corresponds to the JSON property `label`
377
1946
  # @return [String]
378
- attr_accessor :thread_key
1947
+ attr_accessor :label
379
1948
 
380
- # A secret value that bots can use to verify if a request is from Google. The
381
- # token is randomly generated by Google, remains static, and can be obtained
382
- # from the Google Chat API configuration page in the Cloud Console. Developers
383
- # can revoke/regenerate it if needed from the same page.
384
- # Corresponds to the JSON property `token`
1949
+ # The name of the text input which is used in formInput.
1950
+ # Corresponds to the JSON property `name`
385
1951
  # @return [String]
386
- attr_accessor :token
1952
+ attr_accessor :name
387
1953
 
388
- # The type of the event.
1954
+ # An action that describes the behavior when the form is submitted. For example,
1955
+ # an Apps Script can be invoked to handle the form.
1956
+ # Corresponds to the JSON property `onChangeAction`
1957
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1Action]
1958
+ attr_accessor :on_change_action
1959
+
1960
+ # The style of the text, for example, a single line or multiple lines.
389
1961
  # Corresponds to the JSON property `type`
390
1962
  # @return [String]
391
1963
  attr_accessor :type
392
1964
 
393
- # A user in Google Chat.
394
- # Corresponds to the JSON property `user`
395
- # @return [Google::Apis::ChatV1::User]
396
- attr_accessor :user
1965
+ # The default value when there is no input from the user.
1966
+ # Corresponds to the JSON property `value`
1967
+ # @return [String]
1968
+ attr_accessor :value
397
1969
 
398
1970
  def initialize(**args)
399
1971
  update!(**args)
@@ -401,26 +1973,26 @@ module Google
401
1973
 
402
1974
  # Update properties of this object
403
1975
  def update!(**args)
404
- @action = args[:action] if args.key?(:action)
405
- @config_complete_redirect_url = args[:config_complete_redirect_url] if args.key?(:config_complete_redirect_url)
406
- @event_time = args[:event_time] if args.key?(:event_time)
407
- @message = args[:message] if args.key?(:message)
408
- @space = args[:space] if args.key?(:space)
409
- @thread_key = args[:thread_key] if args.key?(:thread_key)
410
- @token = args[:token] if args.key?(:token)
1976
+ @auto_complete_action = args[:auto_complete_action] if args.key?(:auto_complete_action)
1977
+ @hint_text = args[:hint_text] if args.key?(:hint_text)
1978
+ @initial_suggestions = args[:initial_suggestions] if args.key?(:initial_suggestions)
1979
+ @label = args[:label] if args.key?(:label)
1980
+ @name = args[:name] if args.key?(:name)
1981
+ @on_change_action = args[:on_change_action] if args.key?(:on_change_action)
411
1982
  @type = args[:type] if args.key?(:type)
412
- @user = args[:user] if args.key?(:user)
1983
+ @value = args[:value] if args.key?(:value)
413
1984
  end
414
1985
  end
415
1986
 
416
- # A reference to the data of a drive attachment.
417
- class DriveDataRef
1987
+ # A paragraph of text that supports formatting. See [Text formatting](workspace/
1988
+ # add-ons/concepts/widgets#text_formatting") for details.
1989
+ class GoogleAppsCardV1TextParagraph
418
1990
  include Google::Apis::Core::Hashable
419
1991
 
420
- # The id for the drive file, for use with the Drive API.
421
- # Corresponds to the JSON property `driveFileId`
1992
+ # The text that's shown in the widget.
1993
+ # Corresponds to the JSON property `text`
422
1994
  # @return [String]
423
- attr_accessor :drive_file_id
1995
+ attr_accessor :text
424
1996
 
425
1997
  def initialize(**args)
426
1998
  update!(**args)
@@ -428,44 +2000,68 @@ module Google
428
2000
 
429
2001
  # Update properties of this object
430
2002
  def update!(**args)
431
- @drive_file_id = args[:drive_file_id] if args.key?(:drive_file_id)
2003
+ @text = args[:text] if args.key?(:text)
432
2004
  end
433
2005
  end
434
2006
 
435
- # A generic empty message that you can re-use to avoid defining duplicated empty
436
- # messages in your APIs. A typical example is to use it as the request or the
437
- # response type of an API method. For instance: service Foo ` rpc Bar(google.
438
- # protobuf.Empty) returns (google.protobuf.Empty); ` The JSON representation for
439
- # `Empty` is empty JSON object ````.
440
- class Empty
2007
+ # A widget is a UI element that presents texts, images, etc.
2008
+ class GoogleAppsCardV1Widget
441
2009
  include Google::Apis::Core::Hashable
442
2010
 
443
- def initialize(**args)
444
- update!(**args)
445
- end
2011
+ # A list of buttons layed out horizontally.
2012
+ # Corresponds to the JSON property `buttonList`
2013
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1ButtonList]
2014
+ attr_accessor :button_list
2015
+
2016
+ # The widget that lets users to specify a date and time.
2017
+ # Corresponds to the JSON property `dateTimePicker`
2018
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1DateTimePicker]
2019
+ attr_accessor :date_time_picker
2020
+
2021
+ # A widget that displays text with optional decorations such as a label above or
2022
+ # below the text, an icon in front of the text, a selection widget or a button
2023
+ # after the text.
2024
+ # Corresponds to the JSON property `decoratedText`
2025
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1DecoratedText]
2026
+ attr_accessor :decorated_text
2027
+
2028
+ # A divider that appears in between widgets.
2029
+ # Corresponds to the JSON property `divider`
2030
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1Divider]
2031
+ attr_accessor :divider
2032
+
2033
+ # Represents a Grid widget that displays items in a configurable grid layout.
2034
+ # Corresponds to the JSON property `grid`
2035
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1Grid]
2036
+ attr_accessor :grid
2037
+
2038
+ # The horizontal alignment of this widget.
2039
+ # Corresponds to the JSON property `horizontalAlignment`
2040
+ # @return [String]
2041
+ attr_accessor :horizontal_alignment
446
2042
 
447
- # Update properties of this object
448
- def update!(**args)
449
- end
450
- end
2043
+ # An image that is specified by a URL and can have an onClick action.
2044
+ # Corresponds to the JSON property `image`
2045
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1Image]
2046
+ attr_accessor :image
451
2047
 
452
- # A form action describes the behavior when the form is submitted. For example,
453
- # an Apps Script can be invoked to handle the form.
454
- class FormAction
455
- include Google::Apis::Core::Hashable
2048
+ # A widget that creates a UI item (for example, a drop-down list) with options
2049
+ # for users to select.
2050
+ # Corresponds to the JSON property `selectionInput`
2051
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1SelectionInput]
2052
+ attr_accessor :selection_input
456
2053
 
457
- # The method name is used to identify which part of the form triggered the form
458
- # submission. This information is echoed back to the bot as part of the card
459
- # click event. The same method name can be used for several elements that
460
- # trigger a common behavior if desired.
461
- # Corresponds to the JSON property `actionMethodName`
462
- # @return [String]
463
- attr_accessor :action_method_name
2054
+ # A text input is a UI item where users can input text. A text input can also
2055
+ # have an onChange action and suggestions.
2056
+ # Corresponds to the JSON property `textInput`
2057
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1TextInput]
2058
+ attr_accessor :text_input
464
2059
 
465
- # List of action parameters.
466
- # Corresponds to the JSON property `parameters`
467
- # @return [Array<Google::Apis::ChatV1::ActionParameter>]
468
- attr_accessor :parameters
2060
+ # A paragraph of text that supports formatting. See [Text formatting](workspace/
2061
+ # add-ons/concepts/widgets#text_formatting") for details.
2062
+ # Corresponds to the JSON property `textParagraph`
2063
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1TextParagraph]
2064
+ attr_accessor :text_paragraph
469
2065
 
470
2066
  def initialize(**args)
471
2067
  update!(**args)
@@ -473,8 +2069,16 @@ module Google
473
2069
 
474
2070
  # Update properties of this object
475
2071
  def update!(**args)
476
- @action_method_name = args[:action_method_name] if args.key?(:action_method_name)
477
- @parameters = args[:parameters] if args.key?(:parameters)
2072
+ @button_list = args[:button_list] if args.key?(:button_list)
2073
+ @date_time_picker = args[:date_time_picker] if args.key?(:date_time_picker)
2074
+ @decorated_text = args[:decorated_text] if args.key?(:decorated_text)
2075
+ @divider = args[:divider] if args.key?(:divider)
2076
+ @grid = args[:grid] if args.key?(:grid)
2077
+ @horizontal_alignment = args[:horizontal_alignment] if args.key?(:horizontal_alignment)
2078
+ @image = args[:image] if args.key?(:image)
2079
+ @selection_input = args[:selection_input] if args.key?(:selection_input)
2080
+ @text_input = args[:text_input] if args.key?(:text_input)
2081
+ @text_paragraph = args[:text_paragraph] if args.key?(:text_paragraph)
478
2082
  end
479
2083
  end
480
2084
 
@@ -550,6 +2154,45 @@ module Google
550
2154
  end
551
2155
  end
552
2156
 
2157
+ # The inputs with widgets.
2158
+ class Inputs
2159
+ include Google::Apis::Core::Hashable
2160
+
2161
+ # Input Parameter for Date Picker widget.
2162
+ # Corresponds to the JSON property `dateInput`
2163
+ # @return [Google::Apis::ChatV1::DateInput]
2164
+ attr_accessor :date_input
2165
+
2166
+ # Input Parameter for Date and Time Picker widget.
2167
+ # Corresponds to the JSON property `dateTimeInput`
2168
+ # @return [Google::Apis::ChatV1::DateTimeInput]
2169
+ attr_accessor :date_time_input
2170
+
2171
+ # Input parameter for regular widgets. For single-valued widgets, it will be a
2172
+ # single value list; for multi-valued widgets, such as checkbox, all the values
2173
+ # are presented.
2174
+ # Corresponds to the JSON property `stringInputs`
2175
+ # @return [Google::Apis::ChatV1::StringInputs]
2176
+ attr_accessor :string_inputs
2177
+
2178
+ # Input Parameter for Time Picker widget.
2179
+ # Corresponds to the JSON property `timeInput`
2180
+ # @return [Google::Apis::ChatV1::TimeInput]
2181
+ attr_accessor :time_input
2182
+
2183
+ def initialize(**args)
2184
+ update!(**args)
2185
+ end
2186
+
2187
+ # Update properties of this object
2188
+ def update!(**args)
2189
+ @date_input = args[:date_input] if args.key?(:date_input)
2190
+ @date_time_input = args[:date_time_input] if args.key?(:date_time_input)
2191
+ @string_inputs = args[:string_inputs] if args.key?(:string_inputs)
2192
+ @time_input = args[:time_input] if args.key?(:time_input)
2193
+ end
2194
+ end
2195
+
553
2196
  # A UI element contains a key (label) and a value (content). And this element
554
2197
  # may also contain some actions such as onclick button.
555
2198
  class KeyValue
@@ -686,7 +2329,7 @@ module Google
686
2329
  end
687
2330
  end
688
2331
 
689
- # Represents a membership relation in Hangouts Chat.
2332
+ # Represents a membership relation in Google Chat.
690
2333
  class Membership
691
2334
  include Google::Apis::Core::Hashable
692
2335
 
@@ -724,7 +2367,7 @@ module Google
724
2367
  end
725
2368
  end
726
2369
 
727
- # A message in Hangouts Chat.
2370
+ # A message in Google Chat.
728
2371
  class Message
729
2372
  include Google::Apis::Core::Hashable
730
2373
 
@@ -755,7 +2398,7 @@ module Google
755
2398
  # @return [Array<Google::Apis::ChatV1::Card>]
756
2399
  attr_accessor :cards
757
2400
 
758
- # Output only. The time at which the message was created in Hangouts Chat server.
2401
+ # Output only. The time at which the message was created in Google Chat server.
759
2402
  # Corresponds to the JSON property `createTime`
760
2403
  # @return [String]
761
2404
  attr_accessor :create_time
@@ -766,7 +2409,15 @@ module Google
766
2409
  # @return [String]
767
2410
  attr_accessor :fallback_text
768
2411
 
769
- #
2412
+ # Output only. The time at which the message was last updated in Google Chat
2413
+ # server. If the message was never updated, this field will be same as
2414
+ # create_time.
2415
+ # Corresponds to the JSON property `lastUpdateTime`
2416
+ # @return [String]
2417
+ attr_accessor :last_update_time
2418
+
2419
+ # Resource name in the form `spaces/*/messages/*`. Example: `spaces/AAAAMpdlehY/
2420
+ # messages/UMxbHmzDlr4.UMxbHmzDlr4`
770
2421
  # Corresponds to the JSON property `name`
771
2422
  # @return [String]
772
2423
  attr_accessor :name
@@ -788,7 +2439,8 @@ module Google
788
2439
  # @return [Google::Apis::ChatV1::SlashCommand]
789
2440
  attr_accessor :slash_command
790
2441
 
791
- # A room or DM in Hangouts Chat.
2442
+ # A space in Google Chat. Spaces are conversations between two or more users or
2443
+ # 1:1 messages between a user and a Chat bot.
792
2444
  # Corresponds to the JSON property `space`
793
2445
  # @return [Google::Apis::ChatV1::Space]
794
2446
  attr_accessor :space
@@ -798,7 +2450,7 @@ module Google
798
2450
  # @return [String]
799
2451
  attr_accessor :text
800
2452
 
801
- # A thread in Hangouts Chat.
2453
+ # A thread in Google Chat.
802
2454
  # Corresponds to the JSON property `thread`
803
2455
  # @return [Google::Apis::ChatV1::Thread]
804
2456
  attr_accessor :thread
@@ -816,6 +2468,7 @@ module Google
816
2468
  @cards = args[:cards] if args.key?(:cards)
817
2469
  @create_time = args[:create_time] if args.key?(:create_time)
818
2470
  @fallback_text = args[:fallback_text] if args.key?(:fallback_text)
2471
+ @last_update_time = args[:last_update_time] if args.key?(:last_update_time)
819
2472
  @name = args[:name] if args.key?(:name)
820
2473
  @preview_text = args[:preview_text] if args.key?(:preview_text)
821
2474
  @sender = args[:sender] if args.key?(:sender)
@@ -961,18 +2614,19 @@ module Google
961
2614
  end
962
2615
  end
963
2616
 
964
- # A room or DM in Hangouts Chat.
2617
+ # A space in Google Chat. Spaces are conversations between two or more users or
2618
+ # 1:1 messages between a user and a Chat bot.
965
2619
  class Space
966
2620
  include Google::Apis::Core::Hashable
967
2621
 
968
- # Output only. The display name (only if the space is a room). Please note that
969
- # this field might not be populated in direct messages between humans.
2622
+ # Output only. The display name (only if the space is of type `ROOM`). Please
2623
+ # note that this field might not be populated in direct messages between humans.
970
2624
  # Corresponds to the JSON property `displayName`
971
2625
  # @return [String]
972
2626
  attr_accessor :display_name
973
2627
 
974
2628
  # Resource name of the space, in the form "spaces/*". Example: spaces/
975
- # AAAAMpdlehYs
2629
+ # AAAAAAAAAAAA
976
2630
  # Corresponds to the JSON property `name`
977
2631
  # @return [String]
978
2632
  attr_accessor :name
@@ -1009,6 +2663,27 @@ module Google
1009
2663
  end
1010
2664
  end
1011
2665
 
2666
+ # Input parameter for regular widgets. For single-valued widgets, it will be a
2667
+ # single value list; for multi-valued widgets, such as checkbox, all the values
2668
+ # are presented.
2669
+ class StringInputs
2670
+ include Google::Apis::Core::Hashable
2671
+
2672
+ #
2673
+ # Corresponds to the JSON property `value`
2674
+ # @return [Array<String>]
2675
+ attr_accessor :value
2676
+
2677
+ def initialize(**args)
2678
+ update!(**args)
2679
+ end
2680
+
2681
+ # Update properties of this object
2682
+ def update!(**args)
2683
+ @value = args[:value] if args.key?(:value)
2684
+ end
2685
+ end
2686
+
1012
2687
  # A button with text and onclick action.
1013
2688
  class TextButton
1014
2689
  include Google::Apis::Core::Hashable
@@ -1053,7 +2728,7 @@ module Google
1053
2728
  end
1054
2729
  end
1055
2730
 
1056
- # A thread in Hangouts Chat.
2731
+ # A thread in Google Chat.
1057
2732
  class Thread
1058
2733
  include Google::Apis::Core::Hashable
1059
2734
 
@@ -1073,6 +2748,58 @@ module Google
1073
2748
  end
1074
2749
  end
1075
2750
 
2751
+ # Input Parameter for Time Picker widget.
2752
+ class TimeInput
2753
+ include Google::Apis::Core::Hashable
2754
+
2755
+ #
2756
+ # Corresponds to the JSON property `hours`
2757
+ # @return [Fixnum]
2758
+ attr_accessor :hours
2759
+
2760
+ #
2761
+ # Corresponds to the JSON property `minutes`
2762
+ # @return [Fixnum]
2763
+ attr_accessor :minutes
2764
+
2765
+ def initialize(**args)
2766
+ update!(**args)
2767
+ end
2768
+
2769
+ # Update properties of this object
2770
+ def update!(**args)
2771
+ @hours = args[:hours] if args.key?(:hours)
2772
+ @minutes = args[:minutes] if args.key?(:minutes)
2773
+ end
2774
+ end
2775
+
2776
+ # The timezone id and offset. The id is the tz database time zones such as "
2777
+ # America/Toronto". The user timezone offset, in milliseconds, from Coordinated
2778
+ # Universal Time (UTC).
2779
+ class TimeZone
2780
+ include Google::Apis::Core::Hashable
2781
+
2782
+ #
2783
+ # Corresponds to the JSON property `id`
2784
+ # @return [String]
2785
+ attr_accessor :id
2786
+
2787
+ #
2788
+ # Corresponds to the JSON property `offset`
2789
+ # @return [Fixnum]
2790
+ attr_accessor :offset
2791
+
2792
+ def initialize(**args)
2793
+ update!(**args)
2794
+ end
2795
+
2796
+ # Update properties of this object
2797
+ def update!(**args)
2798
+ @id = args[:id] if args.key?(:id)
2799
+ @offset = args[:offset] if args.key?(:offset)
2800
+ end
2801
+ end
2802
+
1076
2803
  # A user in Google Chat.
1077
2804
  class User
1078
2805
  include Google::Apis::Core::Hashable