google-apis-chat_v1 0.12.0 → 0.13.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a116815d94157c4afeb09260fe0bad9c7f27ef0da403392a7a6b4e17b132c060
4
- data.tar.gz: df88a5205f32ada266cf139642bfc5bdd771d965013cb5ff39617d9a7382f18e
3
+ metadata.gz: ee8e4a365005dfeb14cfd92f0c35f859ca26579bac07688a8d122167a896065f
4
+ data.tar.gz: 8f88109afdf090f6a16e790635855b913b1d5571e648842c38902dee275e6ede
5
5
  SHA512:
6
- metadata.gz: ec02c305c95984bfb2b217e168e298edb80f57c20856f219e3151406271fa05e2c7c3fd889d505c62a2bf6a5db2ca7524280bd21503d38480c12fba4b3cb1804
7
- data.tar.gz: 0d2dd98ce63323e8d60cf6f846608866852df7c2e15f78e6370eb035e21b841182f9537addf227e34841b40ca18248221485a28b66770e042d48c1d1687b00f7
6
+ metadata.gz: f3fe415f83ece918369a44c87b95445906f6dfc2e92128b59d5205af8369733161fde079a2ed43a1d963e89fc8cb31f20baf4fdf6751976377ab5e818ec7cce9
7
+ data.tar.gz: ad474523cd0b0449b5fc691424bb46fd5a74a8d272181038536199f4b67933e7c24b50782b03b7c4e0949e25a775eb350e61e316da3ea015d5837e36a00f73a7
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Release history for google-apis-chat_v1
2
2
 
3
+ ### v0.13.0 (2021-07-21)
4
+
5
+ * Regenerated from discovery document revision 20210714
6
+
3
7
  ### v0.12.0 (2021-07-14)
4
8
 
5
9
  * Regenerated from discovery document revision 20210707
@@ -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":
@@ -338,6 +376,94 @@ module Google
338
376
  end
339
377
  end
340
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
+
341
467
  # Google Chat events.
342
468
  class DeprecatedEvent
343
469
  include Google::Apis::Core::Hashable
@@ -413,6 +539,71 @@ module Google
413
539
  end
414
540
  end
415
541
 
542
+ # Wrapper around the card body of the dialog.
543
+ class Dialog
544
+ include Google::Apis::Core::Hashable
545
+
546
+ # A card is a UI element that can contain UI widgets such as text and images.
547
+ # For more information, see Cards . For example, the following JSON creates a
548
+ # card that has a header with the name, position, icons, and link for a contact,
549
+ # followed by a section with contact information like email and phone number. ```
550
+ # ` "header": ` "title": "Heba Salam", "subtitle": "Software Engineer", "
551
+ # imageStyle": "ImageStyle.AVATAR", "imageUrl": "https://example.com/heba_salam.
552
+ # png", "imageAltText": "Avatar for Heba Salam" `, "sections" : [ ` "header": "
553
+ # Contact Info", "widgets": [ ` "decorated_text": ` "icon": ` "knownIcon": "
554
+ # EMAIL" `, "content": "heba.salam@example.com" ` `, ` "decoratedText": ` "icon":
555
+ # ` "knownIcon": "PERSON" `, "content": "Online" ` `, ` "decoratedText": ` "
556
+ # icon": ` "knownIcon": "PHONE" `, "content": "+1 (555) 555-1234" ` `, ` "
557
+ # buttons": [ ` "textButton": ` "text": "Share", `, "onClick": ` "openLink": ` "
558
+ # url": "https://example.com/share" ` ` `, ` "textButton": ` "text": "Edit", `, "
559
+ # onClick": ` "action": ` "function": "goToView", "parameters": [ ` "key": "
560
+ # viewType", "value": "EDIT" ` ], "loadIndicator": "LoadIndicator.SPINNER" ` ` `
561
+ # ] ` ], "collapsible": true, "uncollapsibleWidgetsCount": 3 ` ], "cardActions":
562
+ # [ ` "actionLabel": "Send Feedback", "onClick": ` "openLink": ` "url": "https://
563
+ # example.com/feedback" ` ` ` ], "name": "contact-card-K3wB6arF2H9L" ` ```
564
+ # Corresponds to the JSON property `body`
565
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1Card]
566
+ attr_accessor :body
567
+
568
+ def initialize(**args)
569
+ update!(**args)
570
+ end
571
+
572
+ # Update properties of this object
573
+ def update!(**args)
574
+ @body = args[:body] if args.key?(:body)
575
+ end
576
+ end
577
+
578
+ # Contains dialog if present as well as the ActionStatus for the request sent
579
+ # from user.
580
+ class DialogAction
581
+ include Google::Apis::Core::Hashable
582
+
583
+ # ActionStatus represents status of a request from the bot developer's side. In
584
+ # specific, for each request a bot gets, the bot developer will set both fields
585
+ # below in relation to what the response status and message related to status
586
+ # should be.
587
+ # Corresponds to the JSON property `actionStatus`
588
+ # @return [Google::Apis::ChatV1::ActionStatus]
589
+ attr_accessor :action_status
590
+
591
+ # Wrapper around the card body of the dialog.
592
+ # Corresponds to the JSON property `dialog`
593
+ # @return [Google::Apis::ChatV1::Dialog]
594
+ attr_accessor :dialog
595
+
596
+ def initialize(**args)
597
+ update!(**args)
598
+ end
599
+
600
+ # Update properties of this object
601
+ def update!(**args)
602
+ @action_status = args[:action_status] if args.key?(:action_status)
603
+ @dialog = args[:dialog] if args.key?(:dialog)
604
+ end
605
+ end
606
+
416
607
  # A reference to the data of a drive attachment.
417
608
  class DriveDataRef
418
609
  include Google::Apis::Core::Hashable
@@ -478,6 +669,1286 @@ module Google
478
669
  end
479
670
  end
480
671
 
672
+ # An action that describes the behavior when the form is submitted. For example,
673
+ # an Apps Script can be invoked to handle the form.
674
+ class GoogleAppsCardV1Action
675
+ include Google::Apis::Core::Hashable
676
+
677
+ # Apps Script function to invoke when the containing element is clicked/
678
+ # activated.
679
+ # Corresponds to the JSON property `function`
680
+ # @return [String]
681
+ attr_accessor :function
682
+
683
+ #
684
+ # Corresponds to the JSON property `loadIndicator`
685
+ # @return [String]
686
+ attr_accessor :load_indicator
687
+
688
+ # List of action parameters.
689
+ # Corresponds to the JSON property `parameters`
690
+ # @return [Array<Google::Apis::ChatV1::GoogleAppsCardV1ActionParameter>]
691
+ attr_accessor :parameters
692
+
693
+ # Indicates whether form values persist after the action. The default value is `
694
+ # false`. If `true`, form values remain after the action is triggered. When
695
+ # using [LoadIndicator.NONE](workspace/add-ons/reference/rpc/google.apps.card.v1#
696
+ # loadindicator) for actions, `persist_values` = `true`is recommended, as it
697
+ # ensures that any changes made by the user after form or on change actions are
698
+ # sent to the server are not overwritten by the response. If `false`, the form
699
+ # values are cleared when the action is triggered. When `persist_values` is set
700
+ # to `false`, it is strongly recommended that the card use [LoadIndicator.
701
+ # SPINNER](workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator)
702
+ # for all actions, as this locks the UI to ensure no changes are made by the
703
+ # user while the action is being processed.
704
+ # Corresponds to the JSON property `persistValues`
705
+ # @return [Boolean]
706
+ attr_accessor :persist_values
707
+ alias_method :persist_values?, :persist_values
708
+
709
+ def initialize(**args)
710
+ update!(**args)
711
+ end
712
+
713
+ # Update properties of this object
714
+ def update!(**args)
715
+ @function = args[:function] if args.key?(:function)
716
+ @load_indicator = args[:load_indicator] if args.key?(:load_indicator)
717
+ @parameters = args[:parameters] if args.key?(:parameters)
718
+ @persist_values = args[:persist_values] if args.key?(:persist_values)
719
+ end
720
+ end
721
+
722
+ # List of string parameters to supply when the action method is invoked. For
723
+ # example, consider three snooze buttons: snooze now, snooze 1 day, snooze next
724
+ # week. You might use action method = snooze(), passing the snooze type and
725
+ # snooze time in the list of string parameters.
726
+ class GoogleAppsCardV1ActionParameter
727
+ include Google::Apis::Core::Hashable
728
+
729
+ # The name of the parameter for the action script.
730
+ # Corresponds to the JSON property `key`
731
+ # @return [String]
732
+ attr_accessor :key
733
+
734
+ # The value of the parameter.
735
+ # Corresponds to the JSON property `value`
736
+ # @return [String]
737
+ attr_accessor :value
738
+
739
+ def initialize(**args)
740
+ update!(**args)
741
+ end
742
+
743
+ # Update properties of this object
744
+ def update!(**args)
745
+ @key = args[:key] if args.key?(:key)
746
+ @value = args[:value] if args.key?(:value)
747
+ end
748
+ end
749
+
750
+ # Represents the complete border style applied to widgets.
751
+ class GoogleAppsCardV1BorderStyle
752
+ include Google::Apis::Core::Hashable
753
+
754
+ # The corner radius for the border.
755
+ # Corresponds to the JSON property `cornerRadius`
756
+ # @return [Fixnum]
757
+ attr_accessor :corner_radius
758
+
759
+ # Represents a color in the RGBA color space. This representation is designed
760
+ # for simplicity of conversion to/from color representations in various
761
+ # languages over compactness. For example, the fields of this representation can
762
+ # be trivially provided to the constructor of `java.awt.Color` in Java; it can
763
+ # also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha`
764
+ # method in iOS; and, with just a little work, it can be easily formatted into a
765
+ # CSS `rgba()` string in JavaScript. This reference page doesn't carry
766
+ # information about the absolute color space that should be used to interpret
767
+ # the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default,
768
+ # applications should assume the sRGB color space. When color equality needs to
769
+ # be decided, implementations, unless documented otherwise, treat two colors as
770
+ # equal if all their red, green, blue, and alpha values each differ by at most
771
+ # 1e-5. Example (Java): import com.google.type.Color; // ... public static java.
772
+ # awt.Color fromProto(Color protocolor) ` float alpha = protocolor.hasAlpha() ?
773
+ # protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.
774
+ # getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); ` public static
775
+ # Color toProto(java.awt.Color color) ` float red = (float) color.getRed();
776
+ # float green = (float) color.getGreen(); float blue = (float) color.getBlue();
777
+ # float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .
778
+ # setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue /
779
+ # denominator); int alpha = color.getAlpha(); if (alpha != 255) ` result.
780
+ # setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .
781
+ # build()); ` return resultBuilder.build(); ` // ... Example (iOS / Obj-C): // ..
782
+ # . static UIColor* fromProto(Color* protocolor) ` float red = [protocolor red];
783
+ # float green = [protocolor green]; float blue = [protocolor blue]; FloatValue*
784
+ # alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper !=
785
+ # nil) ` alpha = [alpha_wrapper value]; ` return [UIColor colorWithRed:red green:
786
+ # green blue:blue alpha:alpha]; ` static Color* toProto(UIColor* color) `
787
+ # CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&
788
+ # blue alpha:&alpha]) ` return nil; ` Color* result = [[Color alloc] init]; [
789
+ # result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <
790
+ # = 0.9999) ` [result setAlpha:floatWrapperWithValue(alpha)]; ` [result
791
+ # autorelease]; return result; ` // ... Example (JavaScript): // ... var
792
+ # protoToCssColor = function(rgb_color) ` var redFrac = rgb_color.red || 0.0;
793
+ # var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0;
794
+ # var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255);
795
+ # var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) ` return
796
+ # rgbToCssColor(red, green, blue); ` var alphaFrac = rgb_color.alpha.value || 0.
797
+ # 0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',
798
+ # ', alphaFrac, ')'].join(''); `; var rgbToCssColor = function(red, green, blue)
799
+ # ` var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString
800
+ # = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var
801
+ # resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) ` resultBuilder.
802
+ # push('0'); ` resultBuilder.push(hexString); return resultBuilder.join(''); `; /
803
+ # / ...
804
+ # Corresponds to the JSON property `strokeColor`
805
+ # @return [Google::Apis::ChatV1::Color]
806
+ attr_accessor :stroke_color
807
+
808
+ # The border type.
809
+ # Corresponds to the JSON property `type`
810
+ # @return [String]
811
+ attr_accessor :type
812
+
813
+ def initialize(**args)
814
+ update!(**args)
815
+ end
816
+
817
+ # Update properties of this object
818
+ def update!(**args)
819
+ @corner_radius = args[:corner_radius] if args.key?(:corner_radius)
820
+ @stroke_color = args[:stroke_color] if args.key?(:stroke_color)
821
+ @type = args[:type] if args.key?(:type)
822
+ end
823
+ end
824
+
825
+ # A button. Can be a text button or an image button.
826
+ class GoogleAppsCardV1Button
827
+ include Google::Apis::Core::Hashable
828
+
829
+ # The alternative text used for accessibility. Has no effect when an icon is set;
830
+ # use `icon.alt_text` instead.
831
+ # Corresponds to the JSON property `altText`
832
+ # @return [String]
833
+ attr_accessor :alt_text
834
+
835
+ # Represents a color in the RGBA color space. This representation is designed
836
+ # for simplicity of conversion to/from color representations in various
837
+ # languages over compactness. For example, the fields of this representation can
838
+ # be trivially provided to the constructor of `java.awt.Color` in Java; it can
839
+ # also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha`
840
+ # method in iOS; and, with just a little work, it can be easily formatted into a
841
+ # CSS `rgba()` string in JavaScript. This reference page doesn't carry
842
+ # information about the absolute color space that should be used to interpret
843
+ # the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, etc.). By default,
844
+ # applications should assume the sRGB color space. When color equality needs to
845
+ # be decided, implementations, unless documented otherwise, treat two colors as
846
+ # equal if all their red, green, blue, and alpha values each differ by at most
847
+ # 1e-5. Example (Java): import com.google.type.Color; // ... public static java.
848
+ # awt.Color fromProto(Color protocolor) ` float alpha = protocolor.hasAlpha() ?
849
+ # protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.
850
+ # getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); ` public static
851
+ # Color toProto(java.awt.Color color) ` float red = (float) color.getRed();
852
+ # float green = (float) color.getGreen(); float blue = (float) color.getBlue();
853
+ # float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .
854
+ # setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue /
855
+ # denominator); int alpha = color.getAlpha(); if (alpha != 255) ` result.
856
+ # setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .
857
+ # build()); ` return resultBuilder.build(); ` // ... Example (iOS / Obj-C): // ..
858
+ # . static UIColor* fromProto(Color* protocolor) ` float red = [protocolor red];
859
+ # float green = [protocolor green]; float blue = [protocolor blue]; FloatValue*
860
+ # alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper !=
861
+ # nil) ` alpha = [alpha_wrapper value]; ` return [UIColor colorWithRed:red green:
862
+ # green blue:blue alpha:alpha]; ` static Color* toProto(UIColor* color) `
863
+ # CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&
864
+ # blue alpha:&alpha]) ` return nil; ` Color* result = [[Color alloc] init]; [
865
+ # result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <
866
+ # = 0.9999) ` [result setAlpha:floatWrapperWithValue(alpha)]; ` [result
867
+ # autorelease]; return result; ` // ... Example (JavaScript): // ... var
868
+ # protoToCssColor = function(rgb_color) ` var redFrac = rgb_color.red || 0.0;
869
+ # var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0;
870
+ # var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255);
871
+ # var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) ` return
872
+ # rgbToCssColor(red, green, blue); ` var alphaFrac = rgb_color.alpha.value || 0.
873
+ # 0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',
874
+ # ', alphaFrac, ')'].join(''); `; var rgbToCssColor = function(red, green, blue)
875
+ # ` var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString
876
+ # = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var
877
+ # resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) ` resultBuilder.
878
+ # push('0'); ` resultBuilder.push(hexString); return resultBuilder.join(''); `; /
879
+ # / ...
880
+ # Corresponds to the JSON property `color`
881
+ # @return [Google::Apis::ChatV1::Color]
882
+ attr_accessor :color
883
+
884
+ # If true, the button is displayed in a disabled state and doesn't respond to
885
+ # user actions.
886
+ # Corresponds to the JSON property `disabled`
887
+ # @return [Boolean]
888
+ attr_accessor :disabled
889
+ alias_method :disabled?, :disabled
890
+
891
+ # The icon image.
892
+ # Corresponds to the JSON property `icon`
893
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1Icon]
894
+ attr_accessor :icon
895
+
896
+ # The action to perform when the button is clicked.
897
+ # Corresponds to the JSON property `onClick`
898
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1OnClick]
899
+ attr_accessor :on_click
900
+
901
+ # The text of the button.
902
+ # Corresponds to the JSON property `text`
903
+ # @return [String]
904
+ attr_accessor :text
905
+
906
+ def initialize(**args)
907
+ update!(**args)
908
+ end
909
+
910
+ # Update properties of this object
911
+ def update!(**args)
912
+ @alt_text = args[:alt_text] if args.key?(:alt_text)
913
+ @color = args[:color] if args.key?(:color)
914
+ @disabled = args[:disabled] if args.key?(:disabled)
915
+ @icon = args[:icon] if args.key?(:icon)
916
+ @on_click = args[:on_click] if args.key?(:on_click)
917
+ @text = args[:text] if args.key?(:text)
918
+ end
919
+ end
920
+
921
+ # A list of buttons layed out horizontally.
922
+ class GoogleAppsCardV1ButtonList
923
+ include Google::Apis::Core::Hashable
924
+
925
+ #
926
+ # Corresponds to the JSON property `buttons`
927
+ # @return [Array<Google::Apis::ChatV1::GoogleAppsCardV1Button>]
928
+ attr_accessor :buttons
929
+
930
+ def initialize(**args)
931
+ update!(**args)
932
+ end
933
+
934
+ # Update properties of this object
935
+ def update!(**args)
936
+ @buttons = args[:buttons] if args.key?(:buttons)
937
+ end
938
+ end
939
+
940
+ # A card is a UI element that can contain UI widgets such as text and images.
941
+ # For more information, see Cards . For example, the following JSON creates a
942
+ # card that has a header with the name, position, icons, and link for a contact,
943
+ # followed by a section with contact information like email and phone number. ```
944
+ # ` "header": ` "title": "Heba Salam", "subtitle": "Software Engineer", "
945
+ # imageStyle": "ImageStyle.AVATAR", "imageUrl": "https://example.com/heba_salam.
946
+ # png", "imageAltText": "Avatar for Heba Salam" `, "sections" : [ ` "header": "
947
+ # Contact Info", "widgets": [ ` "decorated_text": ` "icon": ` "knownIcon": "
948
+ # EMAIL" `, "content": "heba.salam@example.com" ` `, ` "decoratedText": ` "icon":
949
+ # ` "knownIcon": "PERSON" `, "content": "Online" ` `, ` "decoratedText": ` "
950
+ # icon": ` "knownIcon": "PHONE" `, "content": "+1 (555) 555-1234" ` `, ` "
951
+ # buttons": [ ` "textButton": ` "text": "Share", `, "onClick": ` "openLink": ` "
952
+ # url": "https://example.com/share" ` ` `, ` "textButton": ` "text": "Edit", `, "
953
+ # onClick": ` "action": ` "function": "goToView", "parameters": [ ` "key": "
954
+ # viewType", "value": "EDIT" ` ], "loadIndicator": "LoadIndicator.SPINNER" ` ` `
955
+ # ] ` ], "collapsible": true, "uncollapsibleWidgetsCount": 3 ` ], "cardActions":
956
+ # [ ` "actionLabel": "Send Feedback", "onClick": ` "openLink": ` "url": "https://
957
+ # example.com/feedback" ` ` ` ], "name": "contact-card-K3wB6arF2H9L" ` ```
958
+ class GoogleAppsCardV1Card
959
+ include Google::Apis::Core::Hashable
960
+
961
+ # The actions of this card. They are added to a card's generated toolbar menu.
962
+ # For example, the following JSON constructs a card action menu with Settings
963
+ # and Send Feedback options: ``` "card_actions": [ ` "actionLabel": "Setting", "
964
+ # onClick": ` "action": ` "functionName": "goToView", "parameters": [ ` "key": "
965
+ # viewType", "value": "SETTING" ` ], "loadIndicator": "LoadIndicator.SPINNER" ` `
966
+ # `, ` "actionLabel": "Send Feedback", "onClick": ` "openLink": ` "url": "https:
967
+ # //example.com/feedback" ` ` ` ] ```
968
+ # Corresponds to the JSON property `cardActions`
969
+ # @return [Array<Google::Apis::ChatV1::GoogleAppsCardV1CardAction>]
970
+ attr_accessor :card_actions
971
+
972
+ # The display style for peekCardHeader.
973
+ # Corresponds to the JSON property `displayStyle`
974
+ # @return [String]
975
+ attr_accessor :display_style
976
+
977
+ # A persistent (sticky) footer that is added to the bottom of the card.
978
+ # Corresponds to the JSON property `fixedFooter`
979
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1CardFixedFooter]
980
+ attr_accessor :fixed_footer
981
+
982
+ # The header of the card. A header usually contains a title and an image.
983
+ # Corresponds to the JSON property `header`
984
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1CardHeader]
985
+ attr_accessor :header
986
+
987
+ # Name of the card, which is used as a identifier for the card in card
988
+ # navigation.
989
+ # Corresponds to the JSON property `name`
990
+ # @return [String]
991
+ attr_accessor :name
992
+
993
+ # When displaying contextual content, the peek card header acts as a placeholder
994
+ # so that the user can navigate forward between the homepage cards and the
995
+ # contextual cards.
996
+ # Corresponds to the JSON property `peekCardHeader`
997
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1CardHeader]
998
+ attr_accessor :peek_card_header
999
+
1000
+ # Sections are separated by a line divider.
1001
+ # Corresponds to the JSON property `sections`
1002
+ # @return [Array<Google::Apis::ChatV1::GoogleAppsCardV1Section>]
1003
+ attr_accessor :sections
1004
+
1005
+ def initialize(**args)
1006
+ update!(**args)
1007
+ end
1008
+
1009
+ # Update properties of this object
1010
+ def update!(**args)
1011
+ @card_actions = args[:card_actions] if args.key?(:card_actions)
1012
+ @display_style = args[:display_style] if args.key?(:display_style)
1013
+ @fixed_footer = args[:fixed_footer] if args.key?(:fixed_footer)
1014
+ @header = args[:header] if args.key?(:header)
1015
+ @name = args[:name] if args.key?(:name)
1016
+ @peek_card_header = args[:peek_card_header] if args.key?(:peek_card_header)
1017
+ @sections = args[:sections] if args.key?(:sections)
1018
+ end
1019
+ end
1020
+
1021
+ # A card action is the action associated with the card. For example, an invoice
1022
+ # card might include actions such as delete invoice, email invoice, or open the
1023
+ # invoice in a browser.
1024
+ class GoogleAppsCardV1CardAction
1025
+ include Google::Apis::Core::Hashable
1026
+
1027
+ # The label that displays as the action menu item.
1028
+ # Corresponds to the JSON property `actionLabel`
1029
+ # @return [String]
1030
+ attr_accessor :action_label
1031
+
1032
+ # The onclick action for this action item.
1033
+ # Corresponds to the JSON property `onClick`
1034
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1OnClick]
1035
+ attr_accessor :on_click
1036
+
1037
+ def initialize(**args)
1038
+ update!(**args)
1039
+ end
1040
+
1041
+ # Update properties of this object
1042
+ def update!(**args)
1043
+ @action_label = args[:action_label] if args.key?(:action_label)
1044
+ @on_click = args[:on_click] if args.key?(:on_click)
1045
+ end
1046
+ end
1047
+
1048
+ # A persistent (sticky) footer that is added to the bottom of the card.
1049
+ class GoogleAppsCardV1CardFixedFooter
1050
+ include Google::Apis::Core::Hashable
1051
+
1052
+ # A button. Can be a text button or an image button.
1053
+ # Corresponds to the JSON property `primaryButton`
1054
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1Button]
1055
+ attr_accessor :primary_button
1056
+
1057
+ # A button. Can be a text button or an image button.
1058
+ # Corresponds to the JSON property `secondaryButton`
1059
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1Button]
1060
+ attr_accessor :secondary_button
1061
+
1062
+ def initialize(**args)
1063
+ update!(**args)
1064
+ end
1065
+
1066
+ # Update properties of this object
1067
+ def update!(**args)
1068
+ @primary_button = args[:primary_button] if args.key?(:primary_button)
1069
+ @secondary_button = args[:secondary_button] if args.key?(:secondary_button)
1070
+ end
1071
+ end
1072
+
1073
+ #
1074
+ class GoogleAppsCardV1CardHeader
1075
+ include Google::Apis::Core::Hashable
1076
+
1077
+ # The alternative text of this image which is used for accessibility.
1078
+ # Corresponds to the JSON property `imageAltText`
1079
+ # @return [String]
1080
+ attr_accessor :image_alt_text
1081
+
1082
+ # The image's type.
1083
+ # Corresponds to the JSON property `imageType`
1084
+ # @return [String]
1085
+ attr_accessor :image_type
1086
+
1087
+ # The URL of the image in the card header.
1088
+ # Corresponds to the JSON property `imageUrl`
1089
+ # @return [String]
1090
+ attr_accessor :image_url
1091
+
1092
+ # The subtitle of the card header.
1093
+ # Corresponds to the JSON property `subtitle`
1094
+ # @return [String]
1095
+ attr_accessor :subtitle
1096
+
1097
+ # The title of the card header. The title must be specified. The header has a
1098
+ # fixed height: if both a title and subtitle are specified, each takes up one
1099
+ # line. If only the title is specified, it takes up both lines.
1100
+ # Corresponds to the JSON property `title`
1101
+ # @return [String]
1102
+ attr_accessor :title
1103
+
1104
+ def initialize(**args)
1105
+ update!(**args)
1106
+ end
1107
+
1108
+ # Update properties of this object
1109
+ def update!(**args)
1110
+ @image_alt_text = args[:image_alt_text] if args.key?(:image_alt_text)
1111
+ @image_type = args[:image_type] if args.key?(:image_type)
1112
+ @image_url = args[:image_url] if args.key?(:image_url)
1113
+ @subtitle = args[:subtitle] if args.key?(:subtitle)
1114
+ @title = args[:title] if args.key?(:title)
1115
+ end
1116
+ end
1117
+
1118
+ # The widget that lets users to specify a date and time.
1119
+ class GoogleAppsCardV1DateTimePicker
1120
+ include Google::Apis::Core::Hashable
1121
+
1122
+ # The label for the field that displays to the user.
1123
+ # Corresponds to the JSON property `label`
1124
+ # @return [String]
1125
+ attr_accessor :label
1126
+
1127
+ # The name of the text input that's used in formInput, and uniquely identifies
1128
+ # this input.
1129
+ # Corresponds to the JSON property `name`
1130
+ # @return [String]
1131
+ attr_accessor :name
1132
+
1133
+ # An action that describes the behavior when the form is submitted. For example,
1134
+ # an Apps Script can be invoked to handle the form.
1135
+ # Corresponds to the JSON property `onChangeAction`
1136
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1Action]
1137
+ attr_accessor :on_change_action
1138
+
1139
+ # The number representing the time zone offset from UTC, in minutes. If set, the
1140
+ # `value_ms_epoch` is displayed in the specified time zone. If not set, it uses
1141
+ # the user's time zone setting on the client side.
1142
+ # Corresponds to the JSON property `timezoneOffsetDate`
1143
+ # @return [Fixnum]
1144
+ attr_accessor :timezone_offset_date
1145
+
1146
+ # The type of the date/time picker.
1147
+ # Corresponds to the JSON property `type`
1148
+ # @return [String]
1149
+ attr_accessor :type
1150
+
1151
+ # The value to display as the default value before user input or previous user
1152
+ # input. It is represented in milliseconds (Epoch time). For `DATE_AND_TIME`
1153
+ # type, the full epoch value is used. For `DATE_ONLY` type, only date of the
1154
+ # epoch time is used. For `TIME_ONLY` type, only time of the epoch time is used.
1155
+ # For example, you can set epoch time to `3 * 60 * 60 * 1000` to represent 3am.
1156
+ # Corresponds to the JSON property `valueMsEpoch`
1157
+ # @return [Fixnum]
1158
+ attr_accessor :value_ms_epoch
1159
+
1160
+ def initialize(**args)
1161
+ update!(**args)
1162
+ end
1163
+
1164
+ # Update properties of this object
1165
+ def update!(**args)
1166
+ @label = args[:label] if args.key?(:label)
1167
+ @name = args[:name] if args.key?(:name)
1168
+ @on_change_action = args[:on_change_action] if args.key?(:on_change_action)
1169
+ @timezone_offset_date = args[:timezone_offset_date] if args.key?(:timezone_offset_date)
1170
+ @type = args[:type] if args.key?(:type)
1171
+ @value_ms_epoch = args[:value_ms_epoch] if args.key?(:value_ms_epoch)
1172
+ end
1173
+ end
1174
+
1175
+ # A widget that displays text with optional decorations such as a label above or
1176
+ # below the text, an icon in front of the text, a selection widget or a button
1177
+ # after the text.
1178
+ class GoogleAppsCardV1DecoratedText
1179
+ include Google::Apis::Core::Hashable
1180
+
1181
+ # The formatted text label that shows below the main text.
1182
+ # Corresponds to the JSON property `bottomLabel`
1183
+ # @return [String]
1184
+ attr_accessor :bottom_label
1185
+
1186
+ # A button. Can be a text button or an image button.
1187
+ # Corresponds to the JSON property `button`
1188
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1Button]
1189
+ attr_accessor :button
1190
+
1191
+ # An icon displayed after the text.
1192
+ # Corresponds to the JSON property `endIcon`
1193
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1Icon]
1194
+ attr_accessor :end_icon
1195
+
1196
+ # Deprecated in favor of start_icon.
1197
+ # Corresponds to the JSON property `icon`
1198
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1Icon]
1199
+ attr_accessor :icon
1200
+
1201
+ # Only the top and bottom label and content region are clickable.
1202
+ # Corresponds to the JSON property `onClick`
1203
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1OnClick]
1204
+ attr_accessor :on_click
1205
+
1206
+ # The icon displayed in front of the text.
1207
+ # Corresponds to the JSON property `startIcon`
1208
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1Icon]
1209
+ attr_accessor :start_icon
1210
+
1211
+ # A switch widget can be clicked to change its state or trigger an action.
1212
+ # Corresponds to the JSON property `switchControl`
1213
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1SwitchControl]
1214
+ attr_accessor :switch_control
1215
+
1216
+ # Required. The main widget formatted text. See Text formatting for details.
1217
+ # Corresponds to the JSON property `text`
1218
+ # @return [String]
1219
+ attr_accessor :text
1220
+
1221
+ # The formatted text label that shows above the main text.
1222
+ # Corresponds to the JSON property `topLabel`
1223
+ # @return [String]
1224
+ attr_accessor :top_label
1225
+
1226
+ # The wrap text setting. If `true`, the text is wrapped and displayed in
1227
+ # multiline. Otherwise, the text is truncated.
1228
+ # Corresponds to the JSON property `wrapText`
1229
+ # @return [Boolean]
1230
+ attr_accessor :wrap_text
1231
+ alias_method :wrap_text?, :wrap_text
1232
+
1233
+ def initialize(**args)
1234
+ update!(**args)
1235
+ end
1236
+
1237
+ # Update properties of this object
1238
+ def update!(**args)
1239
+ @bottom_label = args[:bottom_label] if args.key?(:bottom_label)
1240
+ @button = args[:button] if args.key?(:button)
1241
+ @end_icon = args[:end_icon] if args.key?(:end_icon)
1242
+ @icon = args[:icon] if args.key?(:icon)
1243
+ @on_click = args[:on_click] if args.key?(:on_click)
1244
+ @start_icon = args[:start_icon] if args.key?(:start_icon)
1245
+ @switch_control = args[:switch_control] if args.key?(:switch_control)
1246
+ @text = args[:text] if args.key?(:text)
1247
+ @top_label = args[:top_label] if args.key?(:top_label)
1248
+ @wrap_text = args[:wrap_text] if args.key?(:wrap_text)
1249
+ end
1250
+ end
1251
+
1252
+ # A divider that appears in between widgets.
1253
+ class GoogleAppsCardV1Divider
1254
+ include Google::Apis::Core::Hashable
1255
+
1256
+ def initialize(**args)
1257
+ update!(**args)
1258
+ end
1259
+
1260
+ # Update properties of this object
1261
+ def update!(**args)
1262
+ end
1263
+ end
1264
+
1265
+ # Represents a Grid widget that displays items in a configurable grid layout.
1266
+ class GoogleAppsCardV1Grid
1267
+ include Google::Apis::Core::Hashable
1268
+
1269
+ # Represents the complete border style applied to widgets.
1270
+ # Corresponds to the JSON property `borderStyle`
1271
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1BorderStyle]
1272
+ attr_accessor :border_style
1273
+
1274
+ # The number of columns to display in the grid. A default value is used if this
1275
+ # field isn't specified, and that default value is different depending on where
1276
+ # the grid is shown (dialog versus companion).
1277
+ # Corresponds to the JSON property `columnCount`
1278
+ # @return [Fixnum]
1279
+ attr_accessor :column_count
1280
+
1281
+ # The items to display in the grid.
1282
+ # Corresponds to the JSON property `items`
1283
+ # @return [Array<Google::Apis::ChatV1::GoogleAppsCardV1GridItem>]
1284
+ attr_accessor :items
1285
+
1286
+ # This callback is reused by each individual grid item, but with the item's
1287
+ # identifier and index in the items list added to the callback's parameters.
1288
+ # Corresponds to the JSON property `onClick`
1289
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1OnClick]
1290
+ attr_accessor :on_click
1291
+
1292
+ # The text that displays in the grid header.
1293
+ # Corresponds to the JSON property `title`
1294
+ # @return [String]
1295
+ attr_accessor :title
1296
+
1297
+ def initialize(**args)
1298
+ update!(**args)
1299
+ end
1300
+
1301
+ # Update properties of this object
1302
+ def update!(**args)
1303
+ @border_style = args[:border_style] if args.key?(:border_style)
1304
+ @column_count = args[:column_count] if args.key?(:column_count)
1305
+ @items = args[:items] if args.key?(:items)
1306
+ @on_click = args[:on_click] if args.key?(:on_click)
1307
+ @title = args[:title] if args.key?(:title)
1308
+ end
1309
+ end
1310
+
1311
+ # Represents a single item in the grid layout.
1312
+ class GoogleAppsCardV1GridItem
1313
+ include Google::Apis::Core::Hashable
1314
+
1315
+ # A user-specified identifier for this grid item. This identifier is returned in
1316
+ # the parent Grid's onClick callback parameters.
1317
+ # Corresponds to the JSON property `id`
1318
+ # @return [String]
1319
+ attr_accessor :id
1320
+
1321
+ # The image that displays in the grid item.
1322
+ # Corresponds to the JSON property `image`
1323
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1ImageComponent]
1324
+ attr_accessor :image
1325
+
1326
+ # The layout to use for the grid item.
1327
+ # Corresponds to the JSON property `layout`
1328
+ # @return [String]
1329
+ attr_accessor :layout
1330
+
1331
+ # The grid item's subtitle.
1332
+ # Corresponds to the JSON property `subtitle`
1333
+ # @return [String]
1334
+ attr_accessor :subtitle
1335
+
1336
+ # The horizontal alignment of the grid item's text.
1337
+ # Corresponds to the JSON property `textAlignment`
1338
+ # @return [String]
1339
+ attr_accessor :text_alignment
1340
+
1341
+ # The grid item's title.
1342
+ # Corresponds to the JSON property `title`
1343
+ # @return [String]
1344
+ attr_accessor :title
1345
+
1346
+ def initialize(**args)
1347
+ update!(**args)
1348
+ end
1349
+
1350
+ # Update properties of this object
1351
+ def update!(**args)
1352
+ @id = args[:id] if args.key?(:id)
1353
+ @image = args[:image] if args.key?(:image)
1354
+ @layout = args[:layout] if args.key?(:layout)
1355
+ @subtitle = args[:subtitle] if args.key?(:subtitle)
1356
+ @text_alignment = args[:text_alignment] if args.key?(:text_alignment)
1357
+ @title = args[:title] if args.key?(:title)
1358
+ end
1359
+ end
1360
+
1361
+ #
1362
+ class GoogleAppsCardV1Icon
1363
+ include Google::Apis::Core::Hashable
1364
+
1365
+ # The description of the icon, used for accessibility. The default value is
1366
+ # provided if you don't specify one.
1367
+ # Corresponds to the JSON property `altText`
1368
+ # @return [String]
1369
+ attr_accessor :alt_text
1370
+
1371
+ # The icon specified by a URL.
1372
+ # Corresponds to the JSON property `iconUrl`
1373
+ # @return [String]
1374
+ attr_accessor :icon_url
1375
+
1376
+ # The crop style applied to the image. In some cases, applying a `CIRCLE` crop
1377
+ # causes the image to be drawn larger than a standard icon.
1378
+ # Corresponds to the JSON property `imageType`
1379
+ # @return [String]
1380
+ attr_accessor :image_type
1381
+
1382
+ # The icon specified by the string name of a list of known icons
1383
+ # Corresponds to the JSON property `knownIcon`
1384
+ # @return [String]
1385
+ attr_accessor :known_icon
1386
+
1387
+ def initialize(**args)
1388
+ update!(**args)
1389
+ end
1390
+
1391
+ # Update properties of this object
1392
+ def update!(**args)
1393
+ @alt_text = args[:alt_text] if args.key?(:alt_text)
1394
+ @icon_url = args[:icon_url] if args.key?(:icon_url)
1395
+ @image_type = args[:image_type] if args.key?(:image_type)
1396
+ @known_icon = args[:known_icon] if args.key?(:known_icon)
1397
+ end
1398
+ end
1399
+
1400
+ # An image that is specified by a URL and can have an onClick action.
1401
+ class GoogleAppsCardV1Image
1402
+ include Google::Apis::Core::Hashable
1403
+
1404
+ # The alternative text of this image, used for accessibility.
1405
+ # Corresponds to the JSON property `altText`
1406
+ # @return [String]
1407
+ attr_accessor :alt_text
1408
+
1409
+ # An image URL.
1410
+ # Corresponds to the JSON property `imageUrl`
1411
+ # @return [String]
1412
+ attr_accessor :image_url
1413
+
1414
+ #
1415
+ # Corresponds to the JSON property `onClick`
1416
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1OnClick]
1417
+ attr_accessor :on_click
1418
+
1419
+ def initialize(**args)
1420
+ update!(**args)
1421
+ end
1422
+
1423
+ # Update properties of this object
1424
+ def update!(**args)
1425
+ @alt_text = args[:alt_text] if args.key?(:alt_text)
1426
+ @image_url = args[:image_url] if args.key?(:image_url)
1427
+ @on_click = args[:on_click] if args.key?(:on_click)
1428
+ end
1429
+ end
1430
+
1431
+ #
1432
+ class GoogleAppsCardV1ImageComponent
1433
+ include Google::Apis::Core::Hashable
1434
+
1435
+ # The accessibility label for the image.
1436
+ # Corresponds to the JSON property `altText`
1437
+ # @return [String]
1438
+ attr_accessor :alt_text
1439
+
1440
+ # Represents the complete border style applied to widgets.
1441
+ # Corresponds to the JSON property `borderStyle`
1442
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1BorderStyle]
1443
+ attr_accessor :border_style
1444
+
1445
+ # Represents the crop style applied to an image.
1446
+ # Corresponds to the JSON property `cropStyle`
1447
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1ImageCropStyle]
1448
+ attr_accessor :crop_style
1449
+
1450
+ # The image URL.
1451
+ # Corresponds to the JSON property `imageUri`
1452
+ # @return [String]
1453
+ attr_accessor :image_uri
1454
+
1455
+ def initialize(**args)
1456
+ update!(**args)
1457
+ end
1458
+
1459
+ # Update properties of this object
1460
+ def update!(**args)
1461
+ @alt_text = args[:alt_text] if args.key?(:alt_text)
1462
+ @border_style = args[:border_style] if args.key?(:border_style)
1463
+ @crop_style = args[:crop_style] if args.key?(:crop_style)
1464
+ @image_uri = args[:image_uri] if args.key?(:image_uri)
1465
+ end
1466
+ end
1467
+
1468
+ # Represents the crop style applied to an image.
1469
+ class GoogleAppsCardV1ImageCropStyle
1470
+ include Google::Apis::Core::Hashable
1471
+
1472
+ # The aspect ratio to use if the crop type is `RECTANGLE_CUSTOM`.
1473
+ # Corresponds to the JSON property `aspectRatio`
1474
+ # @return [Float]
1475
+ attr_accessor :aspect_ratio
1476
+
1477
+ # The crop type.
1478
+ # Corresponds to the JSON property `type`
1479
+ # @return [String]
1480
+ attr_accessor :type
1481
+
1482
+ def initialize(**args)
1483
+ update!(**args)
1484
+ end
1485
+
1486
+ # Update properties of this object
1487
+ def update!(**args)
1488
+ @aspect_ratio = args[:aspect_ratio] if args.key?(:aspect_ratio)
1489
+ @type = args[:type] if args.key?(:type)
1490
+ end
1491
+ end
1492
+
1493
+ #
1494
+ class GoogleAppsCardV1OnClick
1495
+ include Google::Apis::Core::Hashable
1496
+
1497
+ # An action that describes the behavior when the form is submitted. For example,
1498
+ # an Apps Script can be invoked to handle the form.
1499
+ # Corresponds to the JSON property `action`
1500
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1Action]
1501
+ attr_accessor :action
1502
+
1503
+ # A card is a UI element that can contain UI widgets such as text and images.
1504
+ # For more information, see Cards . For example, the following JSON creates a
1505
+ # card that has a header with the name, position, icons, and link for a contact,
1506
+ # followed by a section with contact information like email and phone number. ```
1507
+ # ` "header": ` "title": "Heba Salam", "subtitle": "Software Engineer", "
1508
+ # imageStyle": "ImageStyle.AVATAR", "imageUrl": "https://example.com/heba_salam.
1509
+ # png", "imageAltText": "Avatar for Heba Salam" `, "sections" : [ ` "header": "
1510
+ # Contact Info", "widgets": [ ` "decorated_text": ` "icon": ` "knownIcon": "
1511
+ # EMAIL" `, "content": "heba.salam@example.com" ` `, ` "decoratedText": ` "icon":
1512
+ # ` "knownIcon": "PERSON" `, "content": "Online" ` `, ` "decoratedText": ` "
1513
+ # icon": ` "knownIcon": "PHONE" `, "content": "+1 (555) 555-1234" ` `, ` "
1514
+ # buttons": [ ` "textButton": ` "text": "Share", `, "onClick": ` "openLink": ` "
1515
+ # url": "https://example.com/share" ` ` `, ` "textButton": ` "text": "Edit", `, "
1516
+ # onClick": ` "action": ` "function": "goToView", "parameters": [ ` "key": "
1517
+ # viewType", "value": "EDIT" ` ], "loadIndicator": "LoadIndicator.SPINNER" ` ` `
1518
+ # ] ` ], "collapsible": true, "uncollapsibleWidgetsCount": 3 ` ], "cardActions":
1519
+ # [ ` "actionLabel": "Send Feedback", "onClick": ` "openLink": ` "url": "https://
1520
+ # example.com/feedback" ` ` ` ], "name": "contact-card-K3wB6arF2H9L" ` ```
1521
+ # Corresponds to the JSON property `card`
1522
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1Card]
1523
+ attr_accessor :card
1524
+
1525
+ # An action that describes the behavior when the form is submitted. For example,
1526
+ # an Apps Script can be invoked to handle the form.
1527
+ # Corresponds to the JSON property `openDynamicLinkAction`
1528
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1Action]
1529
+ attr_accessor :open_dynamic_link_action
1530
+
1531
+ # If specified, this onClick triggers an open link action.
1532
+ # Corresponds to the JSON property `openLink`
1533
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1OpenLink]
1534
+ attr_accessor :open_link
1535
+
1536
+ def initialize(**args)
1537
+ update!(**args)
1538
+ end
1539
+
1540
+ # Update properties of this object
1541
+ def update!(**args)
1542
+ @action = args[:action] if args.key?(:action)
1543
+ @card = args[:card] if args.key?(:card)
1544
+ @open_dynamic_link_action = args[:open_dynamic_link_action] if args.key?(:open_dynamic_link_action)
1545
+ @open_link = args[:open_link] if args.key?(:open_link)
1546
+ end
1547
+ end
1548
+
1549
+ #
1550
+ class GoogleAppsCardV1OpenLink
1551
+ include Google::Apis::Core::Hashable
1552
+
1553
+ #
1554
+ # Corresponds to the JSON property `onClose`
1555
+ # @return [String]
1556
+ attr_accessor :on_close
1557
+
1558
+ #
1559
+ # Corresponds to the JSON property `openAs`
1560
+ # @return [String]
1561
+ attr_accessor :open_as
1562
+
1563
+ # The URL to open.
1564
+ # Corresponds to the JSON property `url`
1565
+ # @return [String]
1566
+ attr_accessor :url
1567
+
1568
+ def initialize(**args)
1569
+ update!(**args)
1570
+ end
1571
+
1572
+ # Update properties of this object
1573
+ def update!(**args)
1574
+ @on_close = args[:on_close] if args.key?(:on_close)
1575
+ @open_as = args[:open_as] if args.key?(:open_as)
1576
+ @url = args[:url] if args.key?(:url)
1577
+ end
1578
+ end
1579
+
1580
+ # A section contains a collection of widgets that are rendered vertically in the
1581
+ # order that they are specified. Across all platforms, cards have a narrow fixed
1582
+ # width, so there is currently no need for layout properties, for example, float.
1583
+ class GoogleAppsCardV1Section
1584
+ include Google::Apis::Core::Hashable
1585
+
1586
+ # Indicates whether this section is collapsible. If a section is collapsible,
1587
+ # the description must be given.
1588
+ # Corresponds to the JSON property `collapsible`
1589
+ # @return [Boolean]
1590
+ attr_accessor :collapsible
1591
+ alias_method :collapsible?, :collapsible
1592
+
1593
+ # The header of the section. Formatted text is supported.
1594
+ # Corresponds to the JSON property `header`
1595
+ # @return [String]
1596
+ attr_accessor :header
1597
+
1598
+ # The number of uncollapsible widgets. For example, when a section contains five
1599
+ # widgets and the `numUncollapsibleWidget` is set to `2`, the first two widgets
1600
+ # are always shown and the last three are collapsed as default. The `
1601
+ # numUncollapsibleWidget` is taken into account only when collapsible is set to `
1602
+ # true`.
1603
+ # Corresponds to the JSON property `uncollapsibleWidgetsCount`
1604
+ # @return [Fixnum]
1605
+ attr_accessor :uncollapsible_widgets_count
1606
+
1607
+ # A section must contain at least 1 widget.
1608
+ # Corresponds to the JSON property `widgets`
1609
+ # @return [Array<Google::Apis::ChatV1::GoogleAppsCardV1Widget>]
1610
+ attr_accessor :widgets
1611
+
1612
+ def initialize(**args)
1613
+ update!(**args)
1614
+ end
1615
+
1616
+ # Update properties of this object
1617
+ def update!(**args)
1618
+ @collapsible = args[:collapsible] if args.key?(:collapsible)
1619
+ @header = args[:header] if args.key?(:header)
1620
+ @uncollapsible_widgets_count = args[:uncollapsible_widgets_count] if args.key?(:uncollapsible_widgets_count)
1621
+ @widgets = args[:widgets] if args.key?(:widgets)
1622
+ end
1623
+ end
1624
+
1625
+ # A widget that creates a UI item (for example, a drop-down list) with options
1626
+ # for users to select.
1627
+ class GoogleAppsCardV1SelectionInput
1628
+ include Google::Apis::Core::Hashable
1629
+
1630
+ #
1631
+ # Corresponds to the JSON property `items`
1632
+ # @return [Array<Google::Apis::ChatV1::GoogleAppsCardV1SelectionItem>]
1633
+ attr_accessor :items
1634
+
1635
+ # The label displayed ahead of the switch control.
1636
+ # Corresponds to the JSON property `label`
1637
+ # @return [String]
1638
+ attr_accessor :label
1639
+
1640
+ # The name of the text input which is used in formInput.
1641
+ # Corresponds to the JSON property `name`
1642
+ # @return [String]
1643
+ attr_accessor :name
1644
+
1645
+ # An action that describes the behavior when the form is submitted. For example,
1646
+ # an Apps Script can be invoked to handle the form.
1647
+ # Corresponds to the JSON property `onChangeAction`
1648
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1Action]
1649
+ attr_accessor :on_change_action
1650
+
1651
+ #
1652
+ # Corresponds to the JSON property `type`
1653
+ # @return [String]
1654
+ attr_accessor :type
1655
+
1656
+ def initialize(**args)
1657
+ update!(**args)
1658
+ end
1659
+
1660
+ # Update properties of this object
1661
+ def update!(**args)
1662
+ @items = args[:items] if args.key?(:items)
1663
+ @label = args[:label] if args.key?(:label)
1664
+ @name = args[:name] if args.key?(:name)
1665
+ @on_change_action = args[:on_change_action] if args.key?(:on_change_action)
1666
+ @type = args[:type] if args.key?(:type)
1667
+ end
1668
+ end
1669
+
1670
+ # The item in the switch control. A radio button, at most one of the items is
1671
+ # selected.
1672
+ class GoogleAppsCardV1SelectionItem
1673
+ include Google::Apis::Core::Hashable
1674
+
1675
+ # If more than one item is selected for `RADIO_BUTTON` and `DROPDOWN`, the first
1676
+ # selected item is treated as selected and the ones after are ignored.
1677
+ # Corresponds to the JSON property `selected`
1678
+ # @return [Boolean]
1679
+ attr_accessor :selected
1680
+ alias_method :selected?, :selected
1681
+
1682
+ # The text to be displayed.
1683
+ # Corresponds to the JSON property `text`
1684
+ # @return [String]
1685
+ attr_accessor :text
1686
+
1687
+ # The value associated with this item. The client should use this as a form
1688
+ # input value.
1689
+ # Corresponds to the JSON property `value`
1690
+ # @return [String]
1691
+ attr_accessor :value
1692
+
1693
+ def initialize(**args)
1694
+ update!(**args)
1695
+ end
1696
+
1697
+ # Update properties of this object
1698
+ def update!(**args)
1699
+ @selected = args[:selected] if args.key?(:selected)
1700
+ @text = args[:text] if args.key?(:text)
1701
+ @value = args[:value] if args.key?(:value)
1702
+ end
1703
+ end
1704
+
1705
+ # A suggestion item. Only supports text for now.
1706
+ class GoogleAppsCardV1SuggestionItem
1707
+ include Google::Apis::Core::Hashable
1708
+
1709
+ #
1710
+ # Corresponds to the JSON property `text`
1711
+ # @return [String]
1712
+ attr_accessor :text
1713
+
1714
+ def initialize(**args)
1715
+ update!(**args)
1716
+ end
1717
+
1718
+ # Update properties of this object
1719
+ def update!(**args)
1720
+ @text = args[:text] if args.key?(:text)
1721
+ end
1722
+ end
1723
+
1724
+ # A container wrapping elements necessary for showing suggestion items used in
1725
+ # text input autocomplete.
1726
+ class GoogleAppsCardV1Suggestions
1727
+ include Google::Apis::Core::Hashable
1728
+
1729
+ # A list of suggestions items which will be used in are used in autocomplete.
1730
+ # Corresponds to the JSON property `items`
1731
+ # @return [Array<Google::Apis::ChatV1::GoogleAppsCardV1SuggestionItem>]
1732
+ attr_accessor :items
1733
+
1734
+ def initialize(**args)
1735
+ update!(**args)
1736
+ end
1737
+
1738
+ # Update properties of this object
1739
+ def update!(**args)
1740
+ @items = args[:items] if args.key?(:items)
1741
+ end
1742
+ end
1743
+
1744
+ #
1745
+ class GoogleAppsCardV1SwitchControl
1746
+ include Google::Apis::Core::Hashable
1747
+
1748
+ # The control type, either switch or checkbox.
1749
+ # Corresponds to the JSON property `controlType`
1750
+ # @return [String]
1751
+ attr_accessor :control_type
1752
+
1753
+ # The name of the switch widget that's used in formInput.
1754
+ # Corresponds to the JSON property `name`
1755
+ # @return [String]
1756
+ attr_accessor :name
1757
+
1758
+ # An action that describes the behavior when the form is submitted. For example,
1759
+ # an Apps Script can be invoked to handle the form.
1760
+ # Corresponds to the JSON property `onChangeAction`
1761
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1Action]
1762
+ attr_accessor :on_change_action
1763
+
1764
+ # If the switch is selected.
1765
+ # Corresponds to the JSON property `selected`
1766
+ # @return [Boolean]
1767
+ attr_accessor :selected
1768
+ alias_method :selected?, :selected
1769
+
1770
+ # The value is what is passed back in the callback.
1771
+ # Corresponds to the JSON property `value`
1772
+ # @return [String]
1773
+ attr_accessor :value
1774
+
1775
+ def initialize(**args)
1776
+ update!(**args)
1777
+ end
1778
+
1779
+ # Update properties of this object
1780
+ def update!(**args)
1781
+ @control_type = args[:control_type] if args.key?(:control_type)
1782
+ @name = args[:name] if args.key?(:name)
1783
+ @on_change_action = args[:on_change_action] if args.key?(:on_change_action)
1784
+ @selected = args[:selected] if args.key?(:selected)
1785
+ @value = args[:value] if args.key?(:value)
1786
+ end
1787
+ end
1788
+
1789
+ # A text input is a UI item where users can input text. A text input can also
1790
+ # have an onChange action and suggestions.
1791
+ class GoogleAppsCardV1TextInput
1792
+ include Google::Apis::Core::Hashable
1793
+
1794
+ # An action that describes the behavior when the form is submitted. For example,
1795
+ # an Apps Script can be invoked to handle the form.
1796
+ # Corresponds to the JSON property `autoCompleteAction`
1797
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1Action]
1798
+ attr_accessor :auto_complete_action
1799
+
1800
+ # The hint text.
1801
+ # Corresponds to the JSON property `hintText`
1802
+ # @return [String]
1803
+ attr_accessor :hint_text
1804
+
1805
+ # A container wrapping elements necessary for showing suggestion items used in
1806
+ # text input autocomplete.
1807
+ # Corresponds to the JSON property `initialSuggestions`
1808
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1Suggestions]
1809
+ attr_accessor :initial_suggestions
1810
+
1811
+ # At least one of label and hintText must be specified.
1812
+ # Corresponds to the JSON property `label`
1813
+ # @return [String]
1814
+ attr_accessor :label
1815
+
1816
+ # The name of the text input which is used in formInput.
1817
+ # Corresponds to the JSON property `name`
1818
+ # @return [String]
1819
+ attr_accessor :name
1820
+
1821
+ # An action that describes the behavior when the form is submitted. For example,
1822
+ # an Apps Script can be invoked to handle the form.
1823
+ # Corresponds to the JSON property `onChangeAction`
1824
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1Action]
1825
+ attr_accessor :on_change_action
1826
+
1827
+ # The style of the text, for example, a single line or multiple lines.
1828
+ # Corresponds to the JSON property `type`
1829
+ # @return [String]
1830
+ attr_accessor :type
1831
+
1832
+ # The default value when there is no input from the user.
1833
+ # Corresponds to the JSON property `value`
1834
+ # @return [String]
1835
+ attr_accessor :value
1836
+
1837
+ def initialize(**args)
1838
+ update!(**args)
1839
+ end
1840
+
1841
+ # Update properties of this object
1842
+ def update!(**args)
1843
+ @auto_complete_action = args[:auto_complete_action] if args.key?(:auto_complete_action)
1844
+ @hint_text = args[:hint_text] if args.key?(:hint_text)
1845
+ @initial_suggestions = args[:initial_suggestions] if args.key?(:initial_suggestions)
1846
+ @label = args[:label] if args.key?(:label)
1847
+ @name = args[:name] if args.key?(:name)
1848
+ @on_change_action = args[:on_change_action] if args.key?(:on_change_action)
1849
+ @type = args[:type] if args.key?(:type)
1850
+ @value = args[:value] if args.key?(:value)
1851
+ end
1852
+ end
1853
+
1854
+ # A paragraph of text that supports formatting. See [Text formatting](workspace/
1855
+ # add-ons/concepts/widgets#text_formatting") for details.
1856
+ class GoogleAppsCardV1TextParagraph
1857
+ include Google::Apis::Core::Hashable
1858
+
1859
+ # The text that's shown in the widget.
1860
+ # Corresponds to the JSON property `text`
1861
+ # @return [String]
1862
+ attr_accessor :text
1863
+
1864
+ def initialize(**args)
1865
+ update!(**args)
1866
+ end
1867
+
1868
+ # Update properties of this object
1869
+ def update!(**args)
1870
+ @text = args[:text] if args.key?(:text)
1871
+ end
1872
+ end
1873
+
1874
+ # A widget is a UI element that presents texts, images, etc.
1875
+ class GoogleAppsCardV1Widget
1876
+ include Google::Apis::Core::Hashable
1877
+
1878
+ # A list of buttons layed out horizontally.
1879
+ # Corresponds to the JSON property `buttonList`
1880
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1ButtonList]
1881
+ attr_accessor :button_list
1882
+
1883
+ # The widget that lets users to specify a date and time.
1884
+ # Corresponds to the JSON property `dateTimePicker`
1885
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1DateTimePicker]
1886
+ attr_accessor :date_time_picker
1887
+
1888
+ # A widget that displays text with optional decorations such as a label above or
1889
+ # below the text, an icon in front of the text, a selection widget or a button
1890
+ # after the text.
1891
+ # Corresponds to the JSON property `decoratedText`
1892
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1DecoratedText]
1893
+ attr_accessor :decorated_text
1894
+
1895
+ # A divider that appears in between widgets.
1896
+ # Corresponds to the JSON property `divider`
1897
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1Divider]
1898
+ attr_accessor :divider
1899
+
1900
+ # Represents a Grid widget that displays items in a configurable grid layout.
1901
+ # Corresponds to the JSON property `grid`
1902
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1Grid]
1903
+ attr_accessor :grid
1904
+
1905
+ # The horizontal alignment of this widget.
1906
+ # Corresponds to the JSON property `horizontalAlignment`
1907
+ # @return [String]
1908
+ attr_accessor :horizontal_alignment
1909
+
1910
+ # An image that is specified by a URL and can have an onClick action.
1911
+ # Corresponds to the JSON property `image`
1912
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1Image]
1913
+ attr_accessor :image
1914
+
1915
+ # A widget that creates a UI item (for example, a drop-down list) with options
1916
+ # for users to select.
1917
+ # Corresponds to the JSON property `selectionInput`
1918
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1SelectionInput]
1919
+ attr_accessor :selection_input
1920
+
1921
+ # A text input is a UI item where users can input text. A text input can also
1922
+ # have an onChange action and suggestions.
1923
+ # Corresponds to the JSON property `textInput`
1924
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1TextInput]
1925
+ attr_accessor :text_input
1926
+
1927
+ # A paragraph of text that supports formatting. See [Text formatting](workspace/
1928
+ # add-ons/concepts/widgets#text_formatting") for details.
1929
+ # Corresponds to the JSON property `textParagraph`
1930
+ # @return [Google::Apis::ChatV1::GoogleAppsCardV1TextParagraph]
1931
+ attr_accessor :text_paragraph
1932
+
1933
+ def initialize(**args)
1934
+ update!(**args)
1935
+ end
1936
+
1937
+ # Update properties of this object
1938
+ def update!(**args)
1939
+ @button_list = args[:button_list] if args.key?(:button_list)
1940
+ @date_time_picker = args[:date_time_picker] if args.key?(:date_time_picker)
1941
+ @decorated_text = args[:decorated_text] if args.key?(:decorated_text)
1942
+ @divider = args[:divider] if args.key?(:divider)
1943
+ @grid = args[:grid] if args.key?(:grid)
1944
+ @horizontal_alignment = args[:horizontal_alignment] if args.key?(:horizontal_alignment)
1945
+ @image = args[:image] if args.key?(:image)
1946
+ @selection_input = args[:selection_input] if args.key?(:selection_input)
1947
+ @text_input = args[:text_input] if args.key?(:text_input)
1948
+ @text_paragraph = args[:text_paragraph] if args.key?(:text_paragraph)
1949
+ end
1950
+ end
1951
+
481
1952
  # An image that is specified by a URL and can have an onclick action.
482
1953
  class Image
483
1954
  include Google::Apis::Core::Hashable