chore: update docs/dyn (#1106)

diff --git a/docs/dyn/chat_v1.spaces.messages.html b/docs/dyn/chat_v1.spaces.messages.html
index 6491084..ca70998 100644
--- a/docs/dyn/chat_v1.spaces.messages.html
+++ b/docs/dyn/chat_v1.spaces.messages.html
@@ -110,243 +110,243 @@
     The object takes the form of:
 
 { # A message in Hangouts Chat.
-    "createTime": "A String", # Output only. The time at which the message was created in Hangouts Chat server.
-    "name": "A String", # Resource name, in the form "spaces/*/messages/*". Example: spaces/AAAAMpdlehY/messages/UMxbHmzDlr4.UMxbHmzDlr4
-    "space": { # A room or DM in Hangouts Chat. # The space the message belongs to.
-      "displayName": "A String", # Output only. The display name (only if the space is a room). Please note that this field might not be populated in direct messages between humans.
-      "type": "A String", # Output only. The type of a space. This is deprecated. Use `single_user_bot_dm` instead.
-      "name": "A String", # Resource name of the space, in the form "spaces/*". Example: spaces/AAAAMpdlehYs
-      "threaded": True or False, # Whether the messages are threaded in this space.
-      "singleUserBotDm": True or False, # Whether the space is a DM between a bot and a single human.
-    },
-    "cards": [ # Rich, formatted and interactive cards that can be used to display UI elements such as: formatted texts, buttons, clickable images. Cards are normally displayed below the plain-text body of the message.
-      { # A card is a UI element that can contain UI widgets such as texts, images.
-        "sections": [ # Sections are separated by a line divider.
-          { # A section contains a collection of widgets that are rendered (vertically) in the order that they are specified. Across all platforms, cards have a narrow fixed width, so there is currently no need for layout properties (e.g. float).
-            "widgets": [ # A section must contain at least 1 widget.
-              { # A widget is a UI element that presents texts, images, etc.
-                "buttons": [ # A list of buttons. Buttons is also oneof data and only one of these fields should be set.
-                  { # A button. Can be a text button or an image button.
-                    "textButton": { # A button with text and onclick action. # A button with text and onclick action.
-                      "text": "A String", # The text of the button.
-                      "onClick": { # An onclick action (e.g. open a link). # The onclick action of the button.
-                        "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified.
-                          "url": "A String", # The URL to open.
-                        },
-                        "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-                          "parameters": [ # List of action parameters.
-                            { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
-                              "value": "A String", # The value of the parameter.
-                              "key": "A String", # The name of the parameter for the action script.
-                            },
-                          ],
-                          "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
-                        },
+  "cards": [ # Rich, formatted and interactive cards that can be used to display UI elements such as: formatted texts, buttons, clickable images. Cards are normally displayed below the plain-text body of the message.
+    { # A card is a UI element that can contain UI widgets such as texts, images.
+      "name": "A String", # Name of the card.
+      "header": { # The header of the card. A header usually contains a title and an image.
+        "title": "A String", # The title must be specified. The header has a fixed height: if both a title and subtitle is specified, each will take up 1 line. If only the title is specified, it will take up both lines.
+        "imageUrl": "A String", # The URL of the image in the card header.
+        "subtitle": "A String", # The subtitle of the card header.
+        "imageStyle": "A String", # The image's type (e.g. square border or circular border).
+      },
+      "sections": [ # Sections are separated by a line divider.
+        { # A section contains a collection of widgets that are rendered (vertically) in the order that they are specified. Across all platforms, cards have a narrow fixed width, so there is currently no need for layout properties (e.g. float).
+          "widgets": [ # A section must contain at least 1 widget.
+            { # A widget is a UI element that presents texts, images, etc.
+              "textParagraph": { # A paragraph of text. Formatted text supported. # Display a text paragraph in this widget.
+                "text": "A String",
+              },
+              "keyValue": { # A UI element contains a key (label) and a value (content). And this element may also contain some actions such as onclick button. # Display a key value item in this widget.
+                "contentMultiline": True or False, # If the content should be multiline.
+                "icon": "A String", # An enum value that will be replaced by the Chat API with the corresponding icon image.
+                "content": "A String", # The text of the content. Formatted text supported and always required.
+                "topLabel": "A String", # The text of the top label. Formatted text supported.
+                "bottomLabel": "A String", # The text of the bottom label. Formatted text supported.
+                "button": { # A button. Can be a text button or an image button. # A button that can be clicked to trigger an action.
+                  "textButton": { # A button with text and onclick action. # A button with text and onclick action.
+                    "text": "A String", # The text of the button.
+                    "onClick": { # An onclick action (e.g. open a link). # The onclick action of the button.
+                      "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
+                        "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
+                        "parameters": [ # List of action parameters.
+                          { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                            "key": "A String", # The name of the parameter for the action script.
+                            "value": "A String", # The value of the parameter.
+                          },
+                        ],
                       },
-                    },
-                    "imageButton": { # An image button with an onclick action. # A button with image and onclick action.
-                      "icon": "A String", # The icon specified by an enum that indices to an icon provided by Chat API.
-                      "onClick": { # An onclick action (e.g. open a link). # The onclick action.
-                        "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified.
-                          "url": "A String", # The URL to open.
-                        },
-                        "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-                          "parameters": [ # List of action parameters.
-                            { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
-                              "value": "A String", # The value of the parameter.
-                              "key": "A String", # The name of the parameter for the action script.
-                            },
-                          ],
-                          "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
-                        },
+                      "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified.
+                        "url": "A String", # The URL to open.
                       },
-                      "iconUrl": "A String", # The icon specified by a URL.
-                      "name": "A String", # The name of this image_button which will be used for accessibility. Default value will be provided if developers don't specify.
                     },
                   },
-                ],
-                "keyValue": { # A UI element contains a key (label) and a value (content). And this element may also contain some actions such as onclick button. # Display a key value item in this widget.
-                  "icon": "A String", # An enum value that will be replaced by the Chat API with the corresponding icon image.
-                  "topLabel": "A String", # The text of the top label. Formatted text supported.
-                  "contentMultiline": True or False, # If the content should be multiline.
-                  "content": "A String", # The text of the content. Formatted text supported and always required.
-                  "button": { # A button. Can be a text button or an image button. # A button that can be clicked to trigger an action.
-                    "textButton": { # A button with text and onclick action. # A button with text and onclick action.
-                      "text": "A String", # The text of the button.
-                      "onClick": { # An onclick action (e.g. open a link). # The onclick action of the button.
-                        "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified.
-                          "url": "A String", # The URL to open.
-                        },
-                        "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-                          "parameters": [ # List of action parameters.
-                            { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
-                              "value": "A String", # The value of the parameter.
-                              "key": "A String", # The name of the parameter for the action script.
-                            },
-                          ],
-                          "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
-                        },
+                  "imageButton": { # An image button with an onclick action. # A button with image and onclick action.
+                    "onClick": { # An onclick action (e.g. open a link). # The onclick action.
+                      "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
+                        "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
+                        "parameters": [ # List of action parameters.
+                          { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                            "key": "A String", # The name of the parameter for the action script.
+                            "value": "A String", # The value of the parameter.
+                          },
+                        ],
+                      },
+                      "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified.
+                        "url": "A String", # The URL to open.
                       },
                     },
-                    "imageButton": { # An image button with an onclick action. # A button with image and onclick action.
-                      "icon": "A String", # The icon specified by an enum that indices to an icon provided by Chat API.
-                      "onClick": { # An onclick action (e.g. open a link). # The onclick action.
-                        "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified.
-                          "url": "A String", # The URL to open.
-                        },
-                        "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-                          "parameters": [ # List of action parameters.
-                            { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
-                              "value": "A String", # The value of the parameter.
-                              "key": "A String", # The name of the parameter for the action script.
-                            },
-                          ],
-                          "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
-                        },
-                      },
-                      "iconUrl": "A String", # The icon specified by a URL.
-                      "name": "A String", # The name of this image_button which will be used for accessibility. Default value will be provided if developers don't specify.
-                    },
+                    "name": "A String", # The name of this image_button which will be used for accessibility. Default value will be provided if developers don't specify.
+                    "iconUrl": "A String", # The icon specified by a URL.
+                    "icon": "A String", # The icon specified by an enum that indices to an icon provided by Chat API.
                   },
-                  "onClick": { # An onclick action (e.g. open a link). # The onclick action. Only the top label, bottom label and content region are clickable.
-                    "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified.
-                      "url": "A String", # The URL to open.
-                    },
-                    "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-                      "parameters": [ # List of action parameters.
-                        { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
-                          "value": "A String", # The value of the parameter.
-                          "key": "A String", # The name of the parameter for the action script.
-                        },
-                      ],
-                      "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
-                    },
-                  },
-                  "bottomLabel": "A String", # The text of the bottom label. Formatted text supported.
-                  "iconUrl": "A String", # The icon specified by a URL.
                 },
-                "image": { # An image that is specified by a URL and can have an onclick action. # Display an image in this widget.
-                  "onClick": { # An onclick action (e.g. open a link). # The onclick action.
-                    "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified.
-                      "url": "A String", # The URL to open.
-                    },
-                    "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-                      "parameters": [ # List of action parameters.
-                        { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
-                          "value": "A String", # The value of the parameter.
-                          "key": "A String", # The name of the parameter for the action script.
-                        },
-                      ],
-                      "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
-                    },
+                "iconUrl": "A String", # The icon specified by a URL.
+                "onClick": { # An onclick action (e.g. open a link). # The onclick action. Only the top label, bottom label and content region are clickable.
+                  "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
+                    "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
+                    "parameters": [ # List of action parameters.
+                      { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                        "key": "A String", # The name of the parameter for the action script.
+                        "value": "A String", # The value of the parameter.
+                      },
+                    ],
                   },
-                  "imageUrl": "A String", # The URL of the image.
-                  "aspectRatio": 3.14, # The aspect ratio of this image (width/height). This field allows clients to reserve the right height for the image while waiting for it to load. It's not meant to override the native aspect ratio of the image. If unset, the server fills it by prefetching the image.
-                },
-                "textParagraph": { # A paragraph of text. Formatted text supported. # Display a text paragraph in this widget.
-                  "text": "A String",
+                  "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified.
+                    "url": "A String", # The URL to open.
+                  },
                 },
               },
-            ],
-            "header": "A String", # The header of the section, text formatted supported.
-          },
-        ],
-        "header": { # The header of the card. A header usually contains a title and an image.
-          "imageUrl": "A String", # The URL of the image in the card header.
-          "imageStyle": "A String", # The image's type (e.g. square border or circular border).
-          "subtitle": "A String", # The subtitle of the card header.
-          "title": "A String", # The title must be specified. The header has a fixed height: if both a title and subtitle is specified, each will take up 1 line. If only the title is specified, it will take up both lines.
-        },
-        "name": "A String", # Name of the card.
-        "cardActions": [ # The actions of this card.
-          { # A card action is the action associated with the card. For an invoice card, a typical action would be: delete invoice, email invoice or open the invoice in browser.
-            "actionLabel": "A String", # The label used to be displayed in the action menu item.
-            "onClick": { # An onclick action (e.g. open a link). # The onclick action for this action item.
-              "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified.
-                "url": "A String", # The URL to open.
-              },
-              "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-                "parameters": [ # List of action parameters.
-                  { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
-                    "value": "A String", # The value of the parameter.
-                    "key": "A String", # The name of the parameter for the action script.
+              "buttons": [ # A list of buttons. Buttons is also oneof data and only one of these fields should be set.
+                { # A button. Can be a text button or an image button.
+                  "textButton": { # A button with text and onclick action. # A button with text and onclick action.
+                    "text": "A String", # The text of the button.
+                    "onClick": { # An onclick action (e.g. open a link). # The onclick action of the button.
+                      "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
+                        "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
+                        "parameters": [ # List of action parameters.
+                          { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                            "key": "A String", # The name of the parameter for the action script.
+                            "value": "A String", # The value of the parameter.
+                          },
+                        ],
+                      },
+                      "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified.
+                        "url": "A String", # The URL to open.
+                      },
+                    },
                   },
-                ],
-                "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
+                  "imageButton": { # An image button with an onclick action. # A button with image and onclick action.
+                    "onClick": { # An onclick action (e.g. open a link). # The onclick action.
+                      "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
+                        "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
+                        "parameters": [ # List of action parameters.
+                          { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                            "key": "A String", # The name of the parameter for the action script.
+                            "value": "A String", # The value of the parameter.
+                          },
+                        ],
+                      },
+                      "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified.
+                        "url": "A String", # The URL to open.
+                      },
+                    },
+                    "name": "A String", # The name of this image_button which will be used for accessibility. Default value will be provided if developers don't specify.
+                    "iconUrl": "A String", # The icon specified by a URL.
+                    "icon": "A String", # The icon specified by an enum that indices to an icon provided by Chat API.
+                  },
+                },
+              ],
+              "image": { # An image that is specified by a URL and can have an onclick action. # Display an image in this widget.
+                "imageUrl": "A String", # The URL of the image.
+                "onClick": { # An onclick action (e.g. open a link). # The onclick action.
+                  "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
+                    "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
+                    "parameters": [ # List of action parameters.
+                      { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                        "key": "A String", # The name of the parameter for the action script.
+                        "value": "A String", # The value of the parameter.
+                      },
+                    ],
+                  },
+                  "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified.
+                    "url": "A String", # The URL to open.
+                  },
+                },
+                "aspectRatio": 3.14, # The aspect ratio of this image (width/height). This field allows clients to reserve the right height for the image while waiting for it to load. It's not meant to override the native aspect ratio of the image. If unset, the server fills it by prefetching the image.
               },
             },
-          },
-        ],
-      },
-    ],
-    "sender": { # A user in Hangouts Chat. # The user who created the message.
-      "displayName": "A String", # The user's display name.
-      "isAnonymous": True or False, # True when the user is deleted or the user's proifle is not visible.
-      "name": "A String", # Resource name, in the format "users/*".
-      "type": "A String", # User type.
-      "domainId": "A String", # Obfuscated domain information.
-    },
-    "text": "A String", # Plain-text body of the message.
-    "fallbackText": "A String", # A plain-text description of the message's cards, used when the actual cards cannot be displayed (e.g. mobile notifications).
-    "annotations": [ # Output only. Annotations associated with the text in this message.
-      { # Annotations associated with the plain-text body of the message. Example plain-text message body: ``` Hello @FooBot how are you!" ``` The corresponding annotations metadata: ``` "annotations":[{ "type":"USER_MENTION", "startIndex":6, "length":7, "userMention": { "user": { "name":"users/107946847022116401880", "displayName":"FooBot", "avatarUrl":"https://goo.gl/aeDtrS", "type":"BOT" }, "type":"MENTION" } }] ```
-        "length": 42, # Length of the substring in the plain-text message body this annotation corresponds to.
-        "slashCommand": { # Annotation metadata for slash commands (/). # The metadata for a slash command.
-          "triggersDialog": True or False, # Indicating whether the slash command is for a dialog.
-          "commandId": "A String", # The command id of the invoked slash command.
-          "commandName": "A String", # The name of the invoked slash command.
-          "type": "A String", # The type of slash command.
-          "bot": { # A user in Hangouts Chat. # The bot whose command was invoked.
-            "displayName": "A String", # The user's display name.
-            "isAnonymous": True or False, # True when the user is deleted or the user's proifle is not visible.
-            "name": "A String", # Resource name, in the format "users/*".
-            "type": "A String", # User type.
-            "domainId": "A String", # Obfuscated domain information.
+          ],
+          "header": "A String", # The header of the section, text formatted supported.
+        },
+      ],
+      "cardActions": [ # The actions of this card.
+        { # A card action is the action associated with the card. For an invoice card, a typical action would be: delete invoice, email invoice or open the invoice in browser.
+          "actionLabel": "A String", # The label used to be displayed in the action menu item.
+          "onClick": { # An onclick action (e.g. open a link). # The onclick action for this action item.
+            "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
+              "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
+              "parameters": [ # List of action parameters.
+                { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                  "key": "A String", # The name of the parameter for the action script.
+                  "value": "A String", # The value of the parameter.
+                },
+              ],
+            },
+            "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified.
+              "url": "A String", # The URL to open.
+            },
           },
         },
-        "userMention": { # Annotation metadata for user mentions (@). # The metadata of user mention.
-          "type": "A String", # The type of user mention.
-          "user": { # A user in Hangouts Chat. # The user mentioned.
-            "displayName": "A String", # The user's display name.
-            "isAnonymous": True or False, # True when the user is deleted or the user's proifle is not visible.
-            "name": "A String", # Resource name, in the format "users/*".
-            "type": "A String", # User type.
-            "domainId": "A String", # Obfuscated domain information.
-          },
+      ],
+    },
+  ],
+  "annotations": [ # Output only. Annotations associated with the text in this message.
+    { # Annotations associated with the plain-text body of the message. Example plain-text message body: ``` Hello @FooBot how are you!" ``` The corresponding annotations metadata: ``` "annotations":[{ "type":"USER_MENTION", "startIndex":6, "length":7, "userMention": { "user": { "name":"users/107946847022116401880", "displayName":"FooBot", "avatarUrl":"https://goo.gl/aeDtrS", "type":"BOT" }, "type":"MENTION" } }] ```
+      "type": "A String", # The type of this annotation.
+      "slashCommand": { # Annotation metadata for slash commands (/). # The metadata for a slash command.
+        "type": "A String", # The type of slash command.
+        "bot": { # A user in Hangouts Chat. # The bot whose command was invoked.
+          "displayName": "A String", # The user's display name.
+          "type": "A String", # User type.
+          "name": "A String", # Resource name, in the format "users/*".
+          "domainId": "A String", # Obfuscated domain information.
+          "isAnonymous": True or False, # True when the user is deleted or the user's proifle is not visible.
         },
-        "type": "A String", # The type of this annotation.
-        "startIndex": 42, # Start index (0-based, inclusive) in the plain-text message body this annotation corresponds to.
+        "triggersDialog": True or False, # Indicating whether the slash command is for a dialog.
+        "commandId": "A String", # The command id of the invoked slash command.
+        "commandName": "A String", # The name of the invoked slash command.
       },
-    ],
-    "thread": { # A thread in Hangouts Chat. # The thread the message belongs to.
-      "name": "A String", # Resource name, in the form "spaces/*/threads/*". Example: spaces/AAAAMpdlehY/threads/UMxbHmzDlr4
-    },
-    "attachment": [ # User uploaded attachment.
-      { # An attachment in Hangouts Chat.
-        "source": "A String", # The source of the attachment.
-        "thumbnailUri": "A String", # Output only. The thumbnail URL which should be used to preview the attachment to a human user. Bots should not use this URL to download attachment content.
-        "contentType": "A String", # The content type (MIME type) of the file.
-        "contentName": "A String", # The original file name for the content, not the full path.
-        "attachmentDataRef": { # A reference to the data of an attachment. # A reference to the attachment data. This is used with the media API to download the attachment data.
-          "resourceName": "A String", # The resource name of the attachment data. This is used with the media API to download the attachment data.
+      "length": 42, # Length of the substring in the plain-text message body this annotation corresponds to.
+      "startIndex": 42, # Start index (0-based, inclusive) in the plain-text message body this annotation corresponds to.
+      "userMention": { # Annotation metadata for user mentions (@). # The metadata of user mention.
+        "type": "A String", # The type of user mention.
+        "user": { # A user in Hangouts Chat. # The user mentioned.
+          "displayName": "A String", # The user's display name.
+          "type": "A String", # User type.
+          "name": "A String", # Resource name, in the format "users/*".
+          "domainId": "A String", # Obfuscated domain information.
+          "isAnonymous": True or False, # True when the user is deleted or the user's proifle is not visible.
         },
-        "downloadUri": "A String", # Output only. The download URL which should be used to allow a human user to download the attachment. Bots should not use this URL to download attachment content.
-        "driveDataRef": { # A reference to the data of a drive attachment. # A reference to the drive attachment. This is used with the Drive API.
-          "driveFileId": "A String", # The id for the drive file, for use with the Drive API.
-        },
-        "name": "A String", # Resource name of the attachment, in the form "spaces/*/messages/*/attachments/*".
       },
-    ],
-    "slashCommand": { # A Slash Command in Hangouts Chat. # Slash command information, if applicable.
-      "commandId": "A String", # The id of the slash command invoked.
     },
-    "previewText": "A String", # Text for generating preview chips. This text will not be displayed to the user, but any links to images, web pages, videos, etc. included here will generate preview chips.
-    "argumentText": "A String", # Plain-text body of the message with all bot mentions stripped out.
-    "actionResponse": { # Parameters that a bot can use to configure how it's response is posted. # Input only. Parameters that a bot can use to configure how its response is posted.
-      "url": "A String", # URL for users to auth or config. (Only for REQUEST_CONFIG response types.)
-      "type": "A String", # The type of bot response.
+  ],
+  "text": "A String", # Plain-text body of the message.
+  "space": { # A room or DM in Hangouts Chat. # The space the message belongs to.
+    "name": "A String", # Resource name of the space, in the form "spaces/*". Example: spaces/AAAAMpdlehYs
+    "displayName": "A String", # Output only. The display name (only if the space is a room). Please note that this field might not be populated in direct messages between humans.
+    "threaded": True or False, # Whether the messages are threaded in this space.
+    "type": "A String", # Output only. The type of a space. This is deprecated. Use `single_user_bot_dm` instead.
+    "singleUserBotDm": True or False, # Whether the space is a DM between a bot and a single human.
+  },
+  "argumentText": "A String", # Plain-text body of the message with all bot mentions stripped out.
+  "thread": { # A thread in Hangouts Chat. # The thread the message belongs to.
+    "name": "A String", # Resource name, in the form "spaces/*/threads/*". Example: spaces/AAAAMpdlehY/threads/UMxbHmzDlr4
+  },
+  "createTime": "A String", # Output only. The time at which the message was created in Hangouts Chat server.
+  "actionResponse": { # Parameters that a bot can use to configure how it's response is posted. # Input only. Parameters that a bot can use to configure how its response is posted.
+    "type": "A String", # The type of bot response.
+    "url": "A String", # URL for users to auth or config. (Only for REQUEST_CONFIG response types.)
+  },
+  "name": "A String", # Resource name, in the form "spaces/*/messages/*". Example: spaces/AAAAMpdlehY/messages/UMxbHmzDlr4.UMxbHmzDlr4
+  "previewText": "A String", # Text for generating preview chips. This text will not be displayed to the user, but any links to images, web pages, videos, etc. included here will generate preview chips.
+  "attachment": [ # User uploaded attachment.
+    { # An attachment in Hangouts Chat.
+      "downloadUri": "A String", # Output only. The download URL which should be used to allow a human user to download the attachment. Bots should not use this URL to download attachment content.
+      "driveDataRef": { # A reference to the data of a drive attachment. # A reference to the drive attachment. This is used with the Drive API.
+        "driveFileId": "A String", # The id for the drive file, for use with the Drive API.
+      },
+      "thumbnailUri": "A String", # Output only. The thumbnail URL which should be used to preview the attachment to a human user. Bots should not use this URL to download attachment content.
+      "attachmentDataRef": { # A reference to the data of an attachment. # A reference to the attachment data. This is used with the media API to download the attachment data.
+        "resourceName": "A String", # The resource name of the attachment data. This is used with the media API to download the attachment data.
+      },
+      "name": "A String", # Resource name of the attachment, in the form "spaces/*/messages/*/attachments/*".
+      "contentType": "A String", # The content type (MIME type) of the file.
+      "contentName": "A String", # The original file name for the content, not the full path.
+      "source": "A String", # The source of the attachment.
     },
-  }
+  ],
+  "slashCommand": { # A Slash Command in Hangouts Chat. # Slash command information, if applicable.
+    "commandId": "A String", # The id of the slash command invoked.
+  },
+  "sender": { # A user in Hangouts Chat. # The user who created the message.
+    "displayName": "A String", # The user's display name.
+    "type": "A String", # User type.
+    "name": "A String", # Resource name, in the format "users/*".
+    "domainId": "A String", # Obfuscated domain information.
+    "isAnonymous": True or False, # True when the user is deleted or the user's proifle is not visible.
+  },
+  "fallbackText": "A String", # A plain-text description of the message's cards, used when the actual cards cannot be displayed (e.g. mobile notifications).
+}
 
   threadKey: string, Opaque thread identifier string that can be specified to group messages into a single thread. If this is the first message with a given thread identifier, a new thread is created. Subsequent messages with the same thread identifier will be posted into the same thread. This relieves bots and webhooks from having to store the Hangouts Chat thread ID of a thread (created earlier by them) to post further updates to it. Has no effect if thread field, corresponding to an existing thread, is set in message.
   x__xgafv: string, V1 error format.
@@ -358,243 +358,243 @@
   An object of the form:
 
     { # A message in Hangouts Chat.
-      "createTime": "A String", # Output only. The time at which the message was created in Hangouts Chat server.
-      "name": "A String", # Resource name, in the form "spaces/*/messages/*". Example: spaces/AAAAMpdlehY/messages/UMxbHmzDlr4.UMxbHmzDlr4
-      "space": { # A room or DM in Hangouts Chat. # The space the message belongs to.
-        "displayName": "A String", # Output only. The display name (only if the space is a room). Please note that this field might not be populated in direct messages between humans.
-        "type": "A String", # Output only. The type of a space. This is deprecated. Use `single_user_bot_dm` instead.
-        "name": "A String", # Resource name of the space, in the form "spaces/*". Example: spaces/AAAAMpdlehYs
-        "threaded": True or False, # Whether the messages are threaded in this space.
-        "singleUserBotDm": True or False, # Whether the space is a DM between a bot and a single human.
-      },
-      "cards": [ # Rich, formatted and interactive cards that can be used to display UI elements such as: formatted texts, buttons, clickable images. Cards are normally displayed below the plain-text body of the message.
-        { # A card is a UI element that can contain UI widgets such as texts, images.
-          "sections": [ # Sections are separated by a line divider.
-            { # A section contains a collection of widgets that are rendered (vertically) in the order that they are specified. Across all platforms, cards have a narrow fixed width, so there is currently no need for layout properties (e.g. float).
-              "widgets": [ # A section must contain at least 1 widget.
-                { # A widget is a UI element that presents texts, images, etc.
-                  "buttons": [ # A list of buttons. Buttons is also oneof data and only one of these fields should be set.
-                    { # A button. Can be a text button or an image button.
-                      "textButton": { # A button with text and onclick action. # A button with text and onclick action.
-                        "text": "A String", # The text of the button.
-                        "onClick": { # An onclick action (e.g. open a link). # The onclick action of the button.
-                          "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified.
-                            "url": "A String", # The URL to open.
-                          },
-                          "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-                            "parameters": [ # List of action parameters.
-                              { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
-                                "value": "A String", # The value of the parameter.
-                                "key": "A String", # The name of the parameter for the action script.
-                              },
-                            ],
-                            "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
-                          },
+    "cards": [ # Rich, formatted and interactive cards that can be used to display UI elements such as: formatted texts, buttons, clickable images. Cards are normally displayed below the plain-text body of the message.
+      { # A card is a UI element that can contain UI widgets such as texts, images.
+        "name": "A String", # Name of the card.
+        "header": { # The header of the card. A header usually contains a title and an image.
+          "title": "A String", # The title must be specified. The header has a fixed height: if both a title and subtitle is specified, each will take up 1 line. If only the title is specified, it will take up both lines.
+          "imageUrl": "A String", # The URL of the image in the card header.
+          "subtitle": "A String", # The subtitle of the card header.
+          "imageStyle": "A String", # The image's type (e.g. square border or circular border).
+        },
+        "sections": [ # Sections are separated by a line divider.
+          { # A section contains a collection of widgets that are rendered (vertically) in the order that they are specified. Across all platforms, cards have a narrow fixed width, so there is currently no need for layout properties (e.g. float).
+            "widgets": [ # A section must contain at least 1 widget.
+              { # A widget is a UI element that presents texts, images, etc.
+                "textParagraph": { # A paragraph of text. Formatted text supported. # Display a text paragraph in this widget.
+                  "text": "A String",
+                },
+                "keyValue": { # A UI element contains a key (label) and a value (content). And this element may also contain some actions such as onclick button. # Display a key value item in this widget.
+                  "contentMultiline": True or False, # If the content should be multiline.
+                  "icon": "A String", # An enum value that will be replaced by the Chat API with the corresponding icon image.
+                  "content": "A String", # The text of the content. Formatted text supported and always required.
+                  "topLabel": "A String", # The text of the top label. Formatted text supported.
+                  "bottomLabel": "A String", # The text of the bottom label. Formatted text supported.
+                  "button": { # A button. Can be a text button or an image button. # A button that can be clicked to trigger an action.
+                    "textButton": { # A button with text and onclick action. # A button with text and onclick action.
+                      "text": "A String", # The text of the button.
+                      "onClick": { # An onclick action (e.g. open a link). # The onclick action of the button.
+                        "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
+                          "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
+                          "parameters": [ # List of action parameters.
+                            { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                              "key": "A String", # The name of the parameter for the action script.
+                              "value": "A String", # The value of the parameter.
+                            },
+                          ],
                         },
-                      },
-                      "imageButton": { # An image button with an onclick action. # A button with image and onclick action.
-                        "icon": "A String", # The icon specified by an enum that indices to an icon provided by Chat API.
-                        "onClick": { # An onclick action (e.g. open a link). # The onclick action.
-                          "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified.
-                            "url": "A String", # The URL to open.
-                          },
-                          "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-                            "parameters": [ # List of action parameters.
-                              { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
-                                "value": "A String", # The value of the parameter.
-                                "key": "A String", # The name of the parameter for the action script.
-                              },
-                            ],
-                            "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
-                          },
+                        "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified.
+                          "url": "A String", # The URL to open.
                         },
-                        "iconUrl": "A String", # The icon specified by a URL.
-                        "name": "A String", # The name of this image_button which will be used for accessibility. Default value will be provided if developers don't specify.
                       },
                     },
-                  ],
-                  "keyValue": { # A UI element contains a key (label) and a value (content). And this element may also contain some actions such as onclick button. # Display a key value item in this widget.
-                    "icon": "A String", # An enum value that will be replaced by the Chat API with the corresponding icon image.
-                    "topLabel": "A String", # The text of the top label. Formatted text supported.
-                    "contentMultiline": True or False, # If the content should be multiline.
-                    "content": "A String", # The text of the content. Formatted text supported and always required.
-                    "button": { # A button. Can be a text button or an image button. # A button that can be clicked to trigger an action.
-                      "textButton": { # A button with text and onclick action. # A button with text and onclick action.
-                        "text": "A String", # The text of the button.
-                        "onClick": { # An onclick action (e.g. open a link). # The onclick action of the button.
-                          "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified.
-                            "url": "A String", # The URL to open.
-                          },
-                          "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-                            "parameters": [ # List of action parameters.
-                              { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
-                                "value": "A String", # The value of the parameter.
-                                "key": "A String", # The name of the parameter for the action script.
-                              },
-                            ],
-                            "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
-                          },
+                    "imageButton": { # An image button with an onclick action. # A button with image and onclick action.
+                      "onClick": { # An onclick action (e.g. open a link). # The onclick action.
+                        "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
+                          "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
+                          "parameters": [ # List of action parameters.
+                            { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                              "key": "A String", # The name of the parameter for the action script.
+                              "value": "A String", # The value of the parameter.
+                            },
+                          ],
+                        },
+                        "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified.
+                          "url": "A String", # The URL to open.
                         },
                       },
-                      "imageButton": { # An image button with an onclick action. # A button with image and onclick action.
-                        "icon": "A String", # The icon specified by an enum that indices to an icon provided by Chat API.
-                        "onClick": { # An onclick action (e.g. open a link). # The onclick action.
-                          "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified.
-                            "url": "A String", # The URL to open.
-                          },
-                          "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-                            "parameters": [ # List of action parameters.
-                              { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
-                                "value": "A String", # The value of the parameter.
-                                "key": "A String", # The name of the parameter for the action script.
-                              },
-                            ],
-                            "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
-                          },
-                        },
-                        "iconUrl": "A String", # The icon specified by a URL.
-                        "name": "A String", # The name of this image_button which will be used for accessibility. Default value will be provided if developers don't specify.
-                      },
+                      "name": "A String", # The name of this image_button which will be used for accessibility. Default value will be provided if developers don't specify.
+                      "iconUrl": "A String", # The icon specified by a URL.
+                      "icon": "A String", # The icon specified by an enum that indices to an icon provided by Chat API.
                     },
-                    "onClick": { # An onclick action (e.g. open a link). # The onclick action. Only the top label, bottom label and content region are clickable.
-                      "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified.
-                        "url": "A String", # The URL to open.
-                      },
-                      "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-                        "parameters": [ # List of action parameters.
-                          { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
-                            "value": "A String", # The value of the parameter.
-                            "key": "A String", # The name of the parameter for the action script.
-                          },
-                        ],
-                        "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
-                      },
-                    },
-                    "bottomLabel": "A String", # The text of the bottom label. Formatted text supported.
-                    "iconUrl": "A String", # The icon specified by a URL.
                   },
-                  "image": { # An image that is specified by a URL and can have an onclick action. # Display an image in this widget.
-                    "onClick": { # An onclick action (e.g. open a link). # The onclick action.
-                      "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified.
-                        "url": "A String", # The URL to open.
-                      },
-                      "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-                        "parameters": [ # List of action parameters.
-                          { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
-                            "value": "A String", # The value of the parameter.
-                            "key": "A String", # The name of the parameter for the action script.
-                          },
-                        ],
-                        "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
-                      },
+                  "iconUrl": "A String", # The icon specified by a URL.
+                  "onClick": { # An onclick action (e.g. open a link). # The onclick action. Only the top label, bottom label and content region are clickable.
+                    "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
+                      "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
+                      "parameters": [ # List of action parameters.
+                        { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                          "key": "A String", # The name of the parameter for the action script.
+                          "value": "A String", # The value of the parameter.
+                        },
+                      ],
                     },
-                    "imageUrl": "A String", # The URL of the image.
-                    "aspectRatio": 3.14, # The aspect ratio of this image (width/height). This field allows clients to reserve the right height for the image while waiting for it to load. It's not meant to override the native aspect ratio of the image. If unset, the server fills it by prefetching the image.
-                  },
-                  "textParagraph": { # A paragraph of text. Formatted text supported. # Display a text paragraph in this widget.
-                    "text": "A String",
+                    "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified.
+                      "url": "A String", # The URL to open.
+                    },
                   },
                 },
-              ],
-              "header": "A String", # The header of the section, text formatted supported.
-            },
-          ],
-          "header": { # The header of the card. A header usually contains a title and an image.
-            "imageUrl": "A String", # The URL of the image in the card header.
-            "imageStyle": "A String", # The image's type (e.g. square border or circular border).
-            "subtitle": "A String", # The subtitle of the card header.
-            "title": "A String", # The title must be specified. The header has a fixed height: if both a title and subtitle is specified, each will take up 1 line. If only the title is specified, it will take up both lines.
-          },
-          "name": "A String", # Name of the card.
-          "cardActions": [ # The actions of this card.
-            { # A card action is the action associated with the card. For an invoice card, a typical action would be: delete invoice, email invoice or open the invoice in browser.
-              "actionLabel": "A String", # The label used to be displayed in the action menu item.
-              "onClick": { # An onclick action (e.g. open a link). # The onclick action for this action item.
-                "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified.
-                  "url": "A String", # The URL to open.
-                },
-                "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-                  "parameters": [ # List of action parameters.
-                    { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
-                      "value": "A String", # The value of the parameter.
-                      "key": "A String", # The name of the parameter for the action script.
+                "buttons": [ # A list of buttons. Buttons is also oneof data and only one of these fields should be set.
+                  { # A button. Can be a text button or an image button.
+                    "textButton": { # A button with text and onclick action. # A button with text and onclick action.
+                      "text": "A String", # The text of the button.
+                      "onClick": { # An onclick action (e.g. open a link). # The onclick action of the button.
+                        "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
+                          "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
+                          "parameters": [ # List of action parameters.
+                            { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                              "key": "A String", # The name of the parameter for the action script.
+                              "value": "A String", # The value of the parameter.
+                            },
+                          ],
+                        },
+                        "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified.
+                          "url": "A String", # The URL to open.
+                        },
+                      },
                     },
-                  ],
-                  "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
+                    "imageButton": { # An image button with an onclick action. # A button with image and onclick action.
+                      "onClick": { # An onclick action (e.g. open a link). # The onclick action.
+                        "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
+                          "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
+                          "parameters": [ # List of action parameters.
+                            { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                              "key": "A String", # The name of the parameter for the action script.
+                              "value": "A String", # The value of the parameter.
+                            },
+                          ],
+                        },
+                        "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified.
+                          "url": "A String", # The URL to open.
+                        },
+                      },
+                      "name": "A String", # The name of this image_button which will be used for accessibility. Default value will be provided if developers don't specify.
+                      "iconUrl": "A String", # The icon specified by a URL.
+                      "icon": "A String", # The icon specified by an enum that indices to an icon provided by Chat API.
+                    },
+                  },
+                ],
+                "image": { # An image that is specified by a URL and can have an onclick action. # Display an image in this widget.
+                  "imageUrl": "A String", # The URL of the image.
+                  "onClick": { # An onclick action (e.g. open a link). # The onclick action.
+                    "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
+                      "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
+                      "parameters": [ # List of action parameters.
+                        { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                          "key": "A String", # The name of the parameter for the action script.
+                          "value": "A String", # The value of the parameter.
+                        },
+                      ],
+                    },
+                    "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified.
+                      "url": "A String", # The URL to open.
+                    },
+                  },
+                  "aspectRatio": 3.14, # The aspect ratio of this image (width/height). This field allows clients to reserve the right height for the image while waiting for it to load. It's not meant to override the native aspect ratio of the image. If unset, the server fills it by prefetching the image.
                 },
               },
-            },
-          ],
-        },
-      ],
-      "sender": { # A user in Hangouts Chat. # The user who created the message.
-        "displayName": "A String", # The user's display name.
-        "isAnonymous": True or False, # True when the user is deleted or the user's proifle is not visible.
-        "name": "A String", # Resource name, in the format "users/*".
-        "type": "A String", # User type.
-        "domainId": "A String", # Obfuscated domain information.
-      },
-      "text": "A String", # Plain-text body of the message.
-      "fallbackText": "A String", # A plain-text description of the message's cards, used when the actual cards cannot be displayed (e.g. mobile notifications).
-      "annotations": [ # Output only. Annotations associated with the text in this message.
-        { # Annotations associated with the plain-text body of the message. Example plain-text message body: ``` Hello @FooBot how are you!" ``` The corresponding annotations metadata: ``` "annotations":[{ "type":"USER_MENTION", "startIndex":6, "length":7, "userMention": { "user": { "name":"users/107946847022116401880", "displayName":"FooBot", "avatarUrl":"https://goo.gl/aeDtrS", "type":"BOT" }, "type":"MENTION" } }] ```
-          "length": 42, # Length of the substring in the plain-text message body this annotation corresponds to.
-          "slashCommand": { # Annotation metadata for slash commands (/). # The metadata for a slash command.
-            "triggersDialog": True or False, # Indicating whether the slash command is for a dialog.
-            "commandId": "A String", # The command id of the invoked slash command.
-            "commandName": "A String", # The name of the invoked slash command.
-            "type": "A String", # The type of slash command.
-            "bot": { # A user in Hangouts Chat. # The bot whose command was invoked.
-              "displayName": "A String", # The user's display name.
-              "isAnonymous": True or False, # True when the user is deleted or the user's proifle is not visible.
-              "name": "A String", # Resource name, in the format "users/*".
-              "type": "A String", # User type.
-              "domainId": "A String", # Obfuscated domain information.
+            ],
+            "header": "A String", # The header of the section, text formatted supported.
+          },
+        ],
+        "cardActions": [ # The actions of this card.
+          { # A card action is the action associated with the card. For an invoice card, a typical action would be: delete invoice, email invoice or open the invoice in browser.
+            "actionLabel": "A String", # The label used to be displayed in the action menu item.
+            "onClick": { # An onclick action (e.g. open a link). # The onclick action for this action item.
+              "action": { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
+                "actionMethodName": "A String", # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
+                "parameters": [ # List of action parameters.
+                  { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                    "key": "A String", # The name of the parameter for the action script.
+                    "value": "A String", # The value of the parameter.
+                  },
+                ],
+              },
+              "openLink": { # A link that opens a new window. # This onclick triggers an open link action if specified.
+                "url": "A String", # The URL to open.
+              },
             },
           },
-          "userMention": { # Annotation metadata for user mentions (@). # The metadata of user mention.
-            "type": "A String", # The type of user mention.
-            "user": { # A user in Hangouts Chat. # The user mentioned.
-              "displayName": "A String", # The user's display name.
-              "isAnonymous": True or False, # True when the user is deleted or the user's proifle is not visible.
-              "name": "A String", # Resource name, in the format "users/*".
-              "type": "A String", # User type.
-              "domainId": "A String", # Obfuscated domain information.
-            },
+        ],
+      },
+    ],
+    "annotations": [ # Output only. Annotations associated with the text in this message.
+      { # Annotations associated with the plain-text body of the message. Example plain-text message body: ``` Hello @FooBot how are you!" ``` The corresponding annotations metadata: ``` "annotations":[{ "type":"USER_MENTION", "startIndex":6, "length":7, "userMention": { "user": { "name":"users/107946847022116401880", "displayName":"FooBot", "avatarUrl":"https://goo.gl/aeDtrS", "type":"BOT" }, "type":"MENTION" } }] ```
+        "type": "A String", # The type of this annotation.
+        "slashCommand": { # Annotation metadata for slash commands (/). # The metadata for a slash command.
+          "type": "A String", # The type of slash command.
+          "bot": { # A user in Hangouts Chat. # The bot whose command was invoked.
+            "displayName": "A String", # The user's display name.
+            "type": "A String", # User type.
+            "name": "A String", # Resource name, in the format "users/*".
+            "domainId": "A String", # Obfuscated domain information.
+            "isAnonymous": True or False, # True when the user is deleted or the user's proifle is not visible.
           },
-          "type": "A String", # The type of this annotation.
-          "startIndex": 42, # Start index (0-based, inclusive) in the plain-text message body this annotation corresponds to.
+          "triggersDialog": True or False, # Indicating whether the slash command is for a dialog.
+          "commandId": "A String", # The command id of the invoked slash command.
+          "commandName": "A String", # The name of the invoked slash command.
         },
-      ],
-      "thread": { # A thread in Hangouts Chat. # The thread the message belongs to.
-        "name": "A String", # Resource name, in the form "spaces/*/threads/*". Example: spaces/AAAAMpdlehY/threads/UMxbHmzDlr4
-      },
-      "attachment": [ # User uploaded attachment.
-        { # An attachment in Hangouts Chat.
-          "source": "A String", # The source of the attachment.
-          "thumbnailUri": "A String", # Output only. The thumbnail URL which should be used to preview the attachment to a human user. Bots should not use this URL to download attachment content.
-          "contentType": "A String", # The content type (MIME type) of the file.
-          "contentName": "A String", # The original file name for the content, not the full path.
-          "attachmentDataRef": { # A reference to the data of an attachment. # A reference to the attachment data. This is used with the media API to download the attachment data.
-            "resourceName": "A String", # The resource name of the attachment data. This is used with the media API to download the attachment data.
+        "length": 42, # Length of the substring in the plain-text message body this annotation corresponds to.
+        "startIndex": 42, # Start index (0-based, inclusive) in the plain-text message body this annotation corresponds to.
+        "userMention": { # Annotation metadata for user mentions (@). # The metadata of user mention.
+          "type": "A String", # The type of user mention.
+          "user": { # A user in Hangouts Chat. # The user mentioned.
+            "displayName": "A String", # The user's display name.
+            "type": "A String", # User type.
+            "name": "A String", # Resource name, in the format "users/*".
+            "domainId": "A String", # Obfuscated domain information.
+            "isAnonymous": True or False, # True when the user is deleted or the user's proifle is not visible.
           },
-          "downloadUri": "A String", # Output only. The download URL which should be used to allow a human user to download the attachment. Bots should not use this URL to download attachment content.
-          "driveDataRef": { # A reference to the data of a drive attachment. # A reference to the drive attachment. This is used with the Drive API.
-            "driveFileId": "A String", # The id for the drive file, for use with the Drive API.
-          },
-          "name": "A String", # Resource name of the attachment, in the form "spaces/*/messages/*/attachments/*".
         },
-      ],
-      "slashCommand": { # A Slash Command in Hangouts Chat. # Slash command information, if applicable.
-        "commandId": "A String", # The id of the slash command invoked.
       },
-      "previewText": "A String", # Text for generating preview chips. This text will not be displayed to the user, but any links to images, web pages, videos, etc. included here will generate preview chips.
-      "argumentText": "A String", # Plain-text body of the message with all bot mentions stripped out.
-      "actionResponse": { # Parameters that a bot can use to configure how it's response is posted. # Input only. Parameters that a bot can use to configure how its response is posted.
-        "url": "A String", # URL for users to auth or config. (Only for REQUEST_CONFIG response types.)
-        "type": "A String", # The type of bot response.
+    ],
+    "text": "A String", # Plain-text body of the message.
+    "space": { # A room or DM in Hangouts Chat. # The space the message belongs to.
+      "name": "A String", # Resource name of the space, in the form "spaces/*". Example: spaces/AAAAMpdlehYs
+      "displayName": "A String", # Output only. The display name (only if the space is a room). Please note that this field might not be populated in direct messages between humans.
+      "threaded": True or False, # Whether the messages are threaded in this space.
+      "type": "A String", # Output only. The type of a space. This is deprecated. Use `single_user_bot_dm` instead.
+      "singleUserBotDm": True or False, # Whether the space is a DM between a bot and a single human.
+    },
+    "argumentText": "A String", # Plain-text body of the message with all bot mentions stripped out.
+    "thread": { # A thread in Hangouts Chat. # The thread the message belongs to.
+      "name": "A String", # Resource name, in the form "spaces/*/threads/*". Example: spaces/AAAAMpdlehY/threads/UMxbHmzDlr4
+    },
+    "createTime": "A String", # Output only. The time at which the message was created in Hangouts Chat server.
+    "actionResponse": { # Parameters that a bot can use to configure how it's response is posted. # Input only. Parameters that a bot can use to configure how its response is posted.
+      "type": "A String", # The type of bot response.
+      "url": "A String", # URL for users to auth or config. (Only for REQUEST_CONFIG response types.)
+    },
+    "name": "A String", # Resource name, in the form "spaces/*/messages/*". Example: spaces/AAAAMpdlehY/messages/UMxbHmzDlr4.UMxbHmzDlr4
+    "previewText": "A String", # Text for generating preview chips. This text will not be displayed to the user, but any links to images, web pages, videos, etc. included here will generate preview chips.
+    "attachment": [ # User uploaded attachment.
+      { # An attachment in Hangouts Chat.
+        "downloadUri": "A String", # Output only. The download URL which should be used to allow a human user to download the attachment. Bots should not use this URL to download attachment content.
+        "driveDataRef": { # A reference to the data of a drive attachment. # A reference to the drive attachment. This is used with the Drive API.
+          "driveFileId": "A String", # The id for the drive file, for use with the Drive API.
+        },
+        "thumbnailUri": "A String", # Output only. The thumbnail URL which should be used to preview the attachment to a human user. Bots should not use this URL to download attachment content.
+        "attachmentDataRef": { # A reference to the data of an attachment. # A reference to the attachment data. This is used with the media API to download the attachment data.
+          "resourceName": "A String", # The resource name of the attachment data. This is used with the media API to download the attachment data.
+        },
+        "name": "A String", # Resource name of the attachment, in the form "spaces/*/messages/*/attachments/*".
+        "contentType": "A String", # The content type (MIME type) of the file.
+        "contentName": "A String", # The original file name for the content, not the full path.
+        "source": "A String", # The source of the attachment.
       },
-    }</pre>
+    ],
+    &quot;slashCommand&quot;: { # A Slash Command in Hangouts Chat. # Slash command information, if applicable.
+      &quot;commandId&quot;: &quot;A String&quot;, # The id of the slash command invoked.
+    },
+    &quot;sender&quot;: { # A user in Hangouts Chat. # The user who created the message.
+      &quot;displayName&quot;: &quot;A String&quot;, # The user&#x27;s display name.
+      &quot;type&quot;: &quot;A String&quot;, # User type.
+      &quot;name&quot;: &quot;A String&quot;, # Resource name, in the format &quot;users/*&quot;.
+      &quot;domainId&quot;: &quot;A String&quot;, # Obfuscated domain information.
+      &quot;isAnonymous&quot;: True or False, # True when the user is deleted or the user&#x27;s proifle is not visible.
+    },
+    &quot;fallbackText&quot;: &quot;A String&quot;, # A plain-text description of the message&#x27;s cards, used when the actual cards cannot be displayed (e.g. mobile notifications).
+  }</pre>
 </div>
 
 <div class="method">
@@ -630,243 +630,243 @@
   An object of the form:
 
     { # A message in Hangouts Chat.
-      &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the message was created in Hangouts Chat server.
-      &quot;name&quot;: &quot;A String&quot;, # Resource name, in the form &quot;spaces/*/messages/*&quot;. Example: spaces/AAAAMpdlehY/messages/UMxbHmzDlr4.UMxbHmzDlr4
-      &quot;space&quot;: { # A room or DM in Hangouts Chat. # The space the message belongs to.
-        &quot;displayName&quot;: &quot;A String&quot;, # Output only. The display name (only if the space is a room). Please note that this field might not be populated in direct messages between humans.
-        &quot;type&quot;: &quot;A String&quot;, # Output only. The type of a space. This is deprecated. Use `single_user_bot_dm` instead.
-        &quot;name&quot;: &quot;A String&quot;, # Resource name of the space, in the form &quot;spaces/*&quot;. Example: spaces/AAAAMpdlehYs
-        &quot;threaded&quot;: True or False, # Whether the messages are threaded in this space.
-        &quot;singleUserBotDm&quot;: True or False, # Whether the space is a DM between a bot and a single human.
-      },
-      &quot;cards&quot;: [ # Rich, formatted and interactive cards that can be used to display UI elements such as: formatted texts, buttons, clickable images. Cards are normally displayed below the plain-text body of the message.
-        { # A card is a UI element that can contain UI widgets such as texts, images.
-          &quot;sections&quot;: [ # Sections are separated by a line divider.
-            { # A section contains a collection of widgets that are rendered (vertically) in the order that they are specified. Across all platforms, cards have a narrow fixed width, so there is currently no need for layout properties (e.g. float).
-              &quot;widgets&quot;: [ # A section must contain at least 1 widget.
-                { # A widget is a UI element that presents texts, images, etc.
-                  &quot;buttons&quot;: [ # A list of buttons. Buttons is also oneof data and only one of these fields should be set.
-                    { # A button. Can be a text button or an image button.
-                      &quot;textButton&quot;: { # A button with text and onclick action. # A button with text and onclick action.
-                        &quot;text&quot;: &quot;A String&quot;, # The text of the button.
-                        &quot;onClick&quot;: { # An onclick action (e.g. open a link). # The onclick action of the button.
-                          &quot;openLink&quot;: { # A link that opens a new window. # This onclick triggers an open link action if specified.
-                            &quot;url&quot;: &quot;A String&quot;, # The URL to open.
-                          },
-                          &quot;action&quot;: { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-                            &quot;parameters&quot;: [ # List of action parameters.
-                              { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
-                                &quot;value&quot;: &quot;A String&quot;, # The value of the parameter.
-                                &quot;key&quot;: &quot;A String&quot;, # The name of the parameter for the action script.
-                              },
-                            ],
-                            &quot;actionMethodName&quot;: &quot;A String&quot;, # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
-                          },
+    &quot;cards&quot;: [ # Rich, formatted and interactive cards that can be used to display UI elements such as: formatted texts, buttons, clickable images. Cards are normally displayed below the plain-text body of the message.
+      { # A card is a UI element that can contain UI widgets such as texts, images.
+        &quot;name&quot;: &quot;A String&quot;, # Name of the card.
+        &quot;header&quot;: { # The header of the card. A header usually contains a title and an image.
+          &quot;title&quot;: &quot;A String&quot;, # The title must be specified. The header has a fixed height: if both a title and subtitle is specified, each will take up 1 line. If only the title is specified, it will take up both lines.
+          &quot;imageUrl&quot;: &quot;A String&quot;, # The URL of the image in the card header.
+          &quot;subtitle&quot;: &quot;A String&quot;, # The subtitle of the card header.
+          &quot;imageStyle&quot;: &quot;A String&quot;, # The image&#x27;s type (e.g. square border or circular border).
+        },
+        &quot;sections&quot;: [ # Sections are separated by a line divider.
+          { # A section contains a collection of widgets that are rendered (vertically) in the order that they are specified. Across all platforms, cards have a narrow fixed width, so there is currently no need for layout properties (e.g. float).
+            &quot;widgets&quot;: [ # A section must contain at least 1 widget.
+              { # A widget is a UI element that presents texts, images, etc.
+                &quot;textParagraph&quot;: { # A paragraph of text. Formatted text supported. # Display a text paragraph in this widget.
+                  &quot;text&quot;: &quot;A String&quot;,
+                },
+                &quot;keyValue&quot;: { # A UI element contains a key (label) and a value (content). And this element may also contain some actions such as onclick button. # Display a key value item in this widget.
+                  &quot;contentMultiline&quot;: True or False, # If the content should be multiline.
+                  &quot;icon&quot;: &quot;A String&quot;, # An enum value that will be replaced by the Chat API with the corresponding icon image.
+                  &quot;content&quot;: &quot;A String&quot;, # The text of the content. Formatted text supported and always required.
+                  &quot;topLabel&quot;: &quot;A String&quot;, # The text of the top label. Formatted text supported.
+                  &quot;bottomLabel&quot;: &quot;A String&quot;, # The text of the bottom label. Formatted text supported.
+                  &quot;button&quot;: { # A button. Can be a text button or an image button. # A button that can be clicked to trigger an action.
+                    &quot;textButton&quot;: { # A button with text and onclick action. # A button with text and onclick action.
+                      &quot;text&quot;: &quot;A String&quot;, # The text of the button.
+                      &quot;onClick&quot;: { # An onclick action (e.g. open a link). # The onclick action of the button.
+                        &quot;action&quot;: { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
+                          &quot;actionMethodName&quot;: &quot;A String&quot;, # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
+                          &quot;parameters&quot;: [ # List of action parameters.
+                            { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                              &quot;key&quot;: &quot;A String&quot;, # The name of the parameter for the action script.
+                              &quot;value&quot;: &quot;A String&quot;, # The value of the parameter.
+                            },
+                          ],
                         },
-                      },
-                      &quot;imageButton&quot;: { # An image button with an onclick action. # A button with image and onclick action.
-                        &quot;icon&quot;: &quot;A String&quot;, # The icon specified by an enum that indices to an icon provided by Chat API.
-                        &quot;onClick&quot;: { # An onclick action (e.g. open a link). # The onclick action.
-                          &quot;openLink&quot;: { # A link that opens a new window. # This onclick triggers an open link action if specified.
-                            &quot;url&quot;: &quot;A String&quot;, # The URL to open.
-                          },
-                          &quot;action&quot;: { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-                            &quot;parameters&quot;: [ # List of action parameters.
-                              { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
-                                &quot;value&quot;: &quot;A String&quot;, # The value of the parameter.
-                                &quot;key&quot;: &quot;A String&quot;, # The name of the parameter for the action script.
-                              },
-                            ],
-                            &quot;actionMethodName&quot;: &quot;A String&quot;, # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
-                          },
+                        &quot;openLink&quot;: { # A link that opens a new window. # This onclick triggers an open link action if specified.
+                          &quot;url&quot;: &quot;A String&quot;, # The URL to open.
                         },
-                        &quot;iconUrl&quot;: &quot;A String&quot;, # The icon specified by a URL.
-                        &quot;name&quot;: &quot;A String&quot;, # The name of this image_button which will be used for accessibility. Default value will be provided if developers don&#x27;t specify.
                       },
                     },
-                  ],
-                  &quot;keyValue&quot;: { # A UI element contains a key (label) and a value (content). And this element may also contain some actions such as onclick button. # Display a key value item in this widget.
-                    &quot;icon&quot;: &quot;A String&quot;, # An enum value that will be replaced by the Chat API with the corresponding icon image.
-                    &quot;topLabel&quot;: &quot;A String&quot;, # The text of the top label. Formatted text supported.
-                    &quot;contentMultiline&quot;: True or False, # If the content should be multiline.
-                    &quot;content&quot;: &quot;A String&quot;, # The text of the content. Formatted text supported and always required.
-                    &quot;button&quot;: { # A button. Can be a text button or an image button. # A button that can be clicked to trigger an action.
-                      &quot;textButton&quot;: { # A button with text and onclick action. # A button with text and onclick action.
-                        &quot;text&quot;: &quot;A String&quot;, # The text of the button.
-                        &quot;onClick&quot;: { # An onclick action (e.g. open a link). # The onclick action of the button.
-                          &quot;openLink&quot;: { # A link that opens a new window. # This onclick triggers an open link action if specified.
-                            &quot;url&quot;: &quot;A String&quot;, # The URL to open.
-                          },
-                          &quot;action&quot;: { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-                            &quot;parameters&quot;: [ # List of action parameters.
-                              { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
-                                &quot;value&quot;: &quot;A String&quot;, # The value of the parameter.
-                                &quot;key&quot;: &quot;A String&quot;, # The name of the parameter for the action script.
-                              },
-                            ],
-                            &quot;actionMethodName&quot;: &quot;A String&quot;, # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
-                          },
+                    &quot;imageButton&quot;: { # An image button with an onclick action. # A button with image and onclick action.
+                      &quot;onClick&quot;: { # An onclick action (e.g. open a link). # The onclick action.
+                        &quot;action&quot;: { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
+                          &quot;actionMethodName&quot;: &quot;A String&quot;, # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
+                          &quot;parameters&quot;: [ # List of action parameters.
+                            { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                              &quot;key&quot;: &quot;A String&quot;, # The name of the parameter for the action script.
+                              &quot;value&quot;: &quot;A String&quot;, # The value of the parameter.
+                            },
+                          ],
+                        },
+                        &quot;openLink&quot;: { # A link that opens a new window. # This onclick triggers an open link action if specified.
+                          &quot;url&quot;: &quot;A String&quot;, # The URL to open.
                         },
                       },
-                      &quot;imageButton&quot;: { # An image button with an onclick action. # A button with image and onclick action.
-                        &quot;icon&quot;: &quot;A String&quot;, # The icon specified by an enum that indices to an icon provided by Chat API.
-                        &quot;onClick&quot;: { # An onclick action (e.g. open a link). # The onclick action.
-                          &quot;openLink&quot;: { # A link that opens a new window. # This onclick triggers an open link action if specified.
-                            &quot;url&quot;: &quot;A String&quot;, # The URL to open.
-                          },
-                          &quot;action&quot;: { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-                            &quot;parameters&quot;: [ # List of action parameters.
-                              { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
-                                &quot;value&quot;: &quot;A String&quot;, # The value of the parameter.
-                                &quot;key&quot;: &quot;A String&quot;, # The name of the parameter for the action script.
-                              },
-                            ],
-                            &quot;actionMethodName&quot;: &quot;A String&quot;, # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
-                          },
-                        },
-                        &quot;iconUrl&quot;: &quot;A String&quot;, # The icon specified by a URL.
-                        &quot;name&quot;: &quot;A String&quot;, # The name of this image_button which will be used for accessibility. Default value will be provided if developers don&#x27;t specify.
-                      },
+                      &quot;name&quot;: &quot;A String&quot;, # The name of this image_button which will be used for accessibility. Default value will be provided if developers don&#x27;t specify.
+                      &quot;iconUrl&quot;: &quot;A String&quot;, # The icon specified by a URL.
+                      &quot;icon&quot;: &quot;A String&quot;, # The icon specified by an enum that indices to an icon provided by Chat API.
                     },
-                    &quot;onClick&quot;: { # An onclick action (e.g. open a link). # The onclick action. Only the top label, bottom label and content region are clickable.
-                      &quot;openLink&quot;: { # A link that opens a new window. # This onclick triggers an open link action if specified.
-                        &quot;url&quot;: &quot;A String&quot;, # The URL to open.
-                      },
-                      &quot;action&quot;: { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-                        &quot;parameters&quot;: [ # List of action parameters.
-                          { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
-                            &quot;value&quot;: &quot;A String&quot;, # The value of the parameter.
-                            &quot;key&quot;: &quot;A String&quot;, # The name of the parameter for the action script.
-                          },
-                        ],
-                        &quot;actionMethodName&quot;: &quot;A String&quot;, # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
-                      },
-                    },
-                    &quot;bottomLabel&quot;: &quot;A String&quot;, # The text of the bottom label. Formatted text supported.
-                    &quot;iconUrl&quot;: &quot;A String&quot;, # The icon specified by a URL.
                   },
-                  &quot;image&quot;: { # An image that is specified by a URL and can have an onclick action. # Display an image in this widget.
-                    &quot;onClick&quot;: { # An onclick action (e.g. open a link). # The onclick action.
-                      &quot;openLink&quot;: { # A link that opens a new window. # This onclick triggers an open link action if specified.
-                        &quot;url&quot;: &quot;A String&quot;, # The URL to open.
-                      },
-                      &quot;action&quot;: { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-                        &quot;parameters&quot;: [ # List of action parameters.
-                          { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
-                            &quot;value&quot;: &quot;A String&quot;, # The value of the parameter.
-                            &quot;key&quot;: &quot;A String&quot;, # The name of the parameter for the action script.
-                          },
-                        ],
-                        &quot;actionMethodName&quot;: &quot;A String&quot;, # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
-                      },
+                  &quot;iconUrl&quot;: &quot;A String&quot;, # The icon specified by a URL.
+                  &quot;onClick&quot;: { # An onclick action (e.g. open a link). # The onclick action. Only the top label, bottom label and content region are clickable.
+                    &quot;action&quot;: { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
+                      &quot;actionMethodName&quot;: &quot;A String&quot;, # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
+                      &quot;parameters&quot;: [ # List of action parameters.
+                        { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                          &quot;key&quot;: &quot;A String&quot;, # The name of the parameter for the action script.
+                          &quot;value&quot;: &quot;A String&quot;, # The value of the parameter.
+                        },
+                      ],
                     },
-                    &quot;imageUrl&quot;: &quot;A String&quot;, # The URL of the image.
-                    &quot;aspectRatio&quot;: 3.14, # The aspect ratio of this image (width/height). This field allows clients to reserve the right height for the image while waiting for it to load. It&#x27;s not meant to override the native aspect ratio of the image. If unset, the server fills it by prefetching the image.
-                  },
-                  &quot;textParagraph&quot;: { # A paragraph of text. Formatted text supported. # Display a text paragraph in this widget.
-                    &quot;text&quot;: &quot;A String&quot;,
+                    &quot;openLink&quot;: { # A link that opens a new window. # This onclick triggers an open link action if specified.
+                      &quot;url&quot;: &quot;A String&quot;, # The URL to open.
+                    },
                   },
                 },
-              ],
-              &quot;header&quot;: &quot;A String&quot;, # The header of the section, text formatted supported.
-            },
-          ],
-          &quot;header&quot;: { # The header of the card. A header usually contains a title and an image.
-            &quot;imageUrl&quot;: &quot;A String&quot;, # The URL of the image in the card header.
-            &quot;imageStyle&quot;: &quot;A String&quot;, # The image&#x27;s type (e.g. square border or circular border).
-            &quot;subtitle&quot;: &quot;A String&quot;, # The subtitle of the card header.
-            &quot;title&quot;: &quot;A String&quot;, # The title must be specified. The header has a fixed height: if both a title and subtitle is specified, each will take up 1 line. If only the title is specified, it will take up both lines.
-          },
-          &quot;name&quot;: &quot;A String&quot;, # Name of the card.
-          &quot;cardActions&quot;: [ # The actions of this card.
-            { # A card action is the action associated with the card. For an invoice card, a typical action would be: delete invoice, email invoice or open the invoice in browser.
-              &quot;actionLabel&quot;: &quot;A String&quot;, # The label used to be displayed in the action menu item.
-              &quot;onClick&quot;: { # An onclick action (e.g. open a link). # The onclick action for this action item.
-                &quot;openLink&quot;: { # A link that opens a new window. # This onclick triggers an open link action if specified.
-                  &quot;url&quot;: &quot;A String&quot;, # The URL to open.
-                },
-                &quot;action&quot;: { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-                  &quot;parameters&quot;: [ # List of action parameters.
-                    { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
-                      &quot;value&quot;: &quot;A String&quot;, # The value of the parameter.
-                      &quot;key&quot;: &quot;A String&quot;, # The name of the parameter for the action script.
+                &quot;buttons&quot;: [ # A list of buttons. Buttons is also oneof data and only one of these fields should be set.
+                  { # A button. Can be a text button or an image button.
+                    &quot;textButton&quot;: { # A button with text and onclick action. # A button with text and onclick action.
+                      &quot;text&quot;: &quot;A String&quot;, # The text of the button.
+                      &quot;onClick&quot;: { # An onclick action (e.g. open a link). # The onclick action of the button.
+                        &quot;action&quot;: { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
+                          &quot;actionMethodName&quot;: &quot;A String&quot;, # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
+                          &quot;parameters&quot;: [ # List of action parameters.
+                            { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                              &quot;key&quot;: &quot;A String&quot;, # The name of the parameter for the action script.
+                              &quot;value&quot;: &quot;A String&quot;, # The value of the parameter.
+                            },
+                          ],
+                        },
+                        &quot;openLink&quot;: { # A link that opens a new window. # This onclick triggers an open link action if specified.
+                          &quot;url&quot;: &quot;A String&quot;, # The URL to open.
+                        },
+                      },
                     },
-                  ],
-                  &quot;actionMethodName&quot;: &quot;A String&quot;, # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
+                    &quot;imageButton&quot;: { # An image button with an onclick action. # A button with image and onclick action.
+                      &quot;onClick&quot;: { # An onclick action (e.g. open a link). # The onclick action.
+                        &quot;action&quot;: { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
+                          &quot;actionMethodName&quot;: &quot;A String&quot;, # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
+                          &quot;parameters&quot;: [ # List of action parameters.
+                            { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                              &quot;key&quot;: &quot;A String&quot;, # The name of the parameter for the action script.
+                              &quot;value&quot;: &quot;A String&quot;, # The value of the parameter.
+                            },
+                          ],
+                        },
+                        &quot;openLink&quot;: { # A link that opens a new window. # This onclick triggers an open link action if specified.
+                          &quot;url&quot;: &quot;A String&quot;, # The URL to open.
+                        },
+                      },
+                      &quot;name&quot;: &quot;A String&quot;, # The name of this image_button which will be used for accessibility. Default value will be provided if developers don&#x27;t specify.
+                      &quot;iconUrl&quot;: &quot;A String&quot;, # The icon specified by a URL.
+                      &quot;icon&quot;: &quot;A String&quot;, # The icon specified by an enum that indices to an icon provided by Chat API.
+                    },
+                  },
+                ],
+                &quot;image&quot;: { # An image that is specified by a URL and can have an onclick action. # Display an image in this widget.
+                  &quot;imageUrl&quot;: &quot;A String&quot;, # The URL of the image.
+                  &quot;onClick&quot;: { # An onclick action (e.g. open a link). # The onclick action.
+                    &quot;action&quot;: { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
+                      &quot;actionMethodName&quot;: &quot;A String&quot;, # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
+                      &quot;parameters&quot;: [ # List of action parameters.
+                        { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                          &quot;key&quot;: &quot;A String&quot;, # The name of the parameter for the action script.
+                          &quot;value&quot;: &quot;A String&quot;, # The value of the parameter.
+                        },
+                      ],
+                    },
+                    &quot;openLink&quot;: { # A link that opens a new window. # This onclick triggers an open link action if specified.
+                      &quot;url&quot;: &quot;A String&quot;, # The URL to open.
+                    },
+                  },
+                  &quot;aspectRatio&quot;: 3.14, # The aspect ratio of this image (width/height). This field allows clients to reserve the right height for the image while waiting for it to load. It&#x27;s not meant to override the native aspect ratio of the image. If unset, the server fills it by prefetching the image.
                 },
               },
-            },
-          ],
-        },
-      ],
-      &quot;sender&quot;: { # A user in Hangouts Chat. # The user who created the message.
-        &quot;displayName&quot;: &quot;A String&quot;, # The user&#x27;s display name.
-        &quot;isAnonymous&quot;: True or False, # True when the user is deleted or the user&#x27;s proifle is not visible.
-        &quot;name&quot;: &quot;A String&quot;, # Resource name, in the format &quot;users/*&quot;.
-        &quot;type&quot;: &quot;A String&quot;, # User type.
-        &quot;domainId&quot;: &quot;A String&quot;, # Obfuscated domain information.
-      },
-      &quot;text&quot;: &quot;A String&quot;, # Plain-text body of the message.
-      &quot;fallbackText&quot;: &quot;A String&quot;, # A plain-text description of the message&#x27;s cards, used when the actual cards cannot be displayed (e.g. mobile notifications).
-      &quot;annotations&quot;: [ # Output only. Annotations associated with the text in this message.
-        { # Annotations associated with the plain-text body of the message. Example plain-text message body: ``` Hello @FooBot how are you!&quot; ``` The corresponding annotations metadata: ``` &quot;annotations&quot;:[{ &quot;type&quot;:&quot;USER_MENTION&quot;, &quot;startIndex&quot;:6, &quot;length&quot;:7, &quot;userMention&quot;: { &quot;user&quot;: { &quot;name&quot;:&quot;users/107946847022116401880&quot;, &quot;displayName&quot;:&quot;FooBot&quot;, &quot;avatarUrl&quot;:&quot;https://goo.gl/aeDtrS&quot;, &quot;type&quot;:&quot;BOT&quot; }, &quot;type&quot;:&quot;MENTION&quot; } }] ```
-          &quot;length&quot;: 42, # Length of the substring in the plain-text message body this annotation corresponds to.
-          &quot;slashCommand&quot;: { # Annotation metadata for slash commands (/). # The metadata for a slash command.
-            &quot;triggersDialog&quot;: True or False, # Indicating whether the slash command is for a dialog.
-            &quot;commandId&quot;: &quot;A String&quot;, # The command id of the invoked slash command.
-            &quot;commandName&quot;: &quot;A String&quot;, # The name of the invoked slash command.
-            &quot;type&quot;: &quot;A String&quot;, # The type of slash command.
-            &quot;bot&quot;: { # A user in Hangouts Chat. # The bot whose command was invoked.
-              &quot;displayName&quot;: &quot;A String&quot;, # The user&#x27;s display name.
-              &quot;isAnonymous&quot;: True or False, # True when the user is deleted or the user&#x27;s proifle is not visible.
-              &quot;name&quot;: &quot;A String&quot;, # Resource name, in the format &quot;users/*&quot;.
-              &quot;type&quot;: &quot;A String&quot;, # User type.
-              &quot;domainId&quot;: &quot;A String&quot;, # Obfuscated domain information.
+            ],
+            &quot;header&quot;: &quot;A String&quot;, # The header of the section, text formatted supported.
+          },
+        ],
+        &quot;cardActions&quot;: [ # The actions of this card.
+          { # A card action is the action associated with the card. For an invoice card, a typical action would be: delete invoice, email invoice or open the invoice in browser.
+            &quot;actionLabel&quot;: &quot;A String&quot;, # The label used to be displayed in the action menu item.
+            &quot;onClick&quot;: { # An onclick action (e.g. open a link). # The onclick action for this action item.
+              &quot;action&quot;: { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
+                &quot;actionMethodName&quot;: &quot;A String&quot;, # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
+                &quot;parameters&quot;: [ # List of action parameters.
+                  { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                    &quot;key&quot;: &quot;A String&quot;, # The name of the parameter for the action script.
+                    &quot;value&quot;: &quot;A String&quot;, # The value of the parameter.
+                  },
+                ],
+              },
+              &quot;openLink&quot;: { # A link that opens a new window. # This onclick triggers an open link action if specified.
+                &quot;url&quot;: &quot;A String&quot;, # The URL to open.
+              },
             },
           },
-          &quot;userMention&quot;: { # Annotation metadata for user mentions (@). # The metadata of user mention.
-            &quot;type&quot;: &quot;A String&quot;, # The type of user mention.
-            &quot;user&quot;: { # A user in Hangouts Chat. # The user mentioned.
-              &quot;displayName&quot;: &quot;A String&quot;, # The user&#x27;s display name.
-              &quot;isAnonymous&quot;: True or False, # True when the user is deleted or the user&#x27;s proifle is not visible.
-              &quot;name&quot;: &quot;A String&quot;, # Resource name, in the format &quot;users/*&quot;.
-              &quot;type&quot;: &quot;A String&quot;, # User type.
-              &quot;domainId&quot;: &quot;A String&quot;, # Obfuscated domain information.
-            },
+        ],
+      },
+    ],
+    &quot;annotations&quot;: [ # Output only. Annotations associated with the text in this message.
+      { # Annotations associated with the plain-text body of the message. Example plain-text message body: ``` Hello @FooBot how are you!&quot; ``` The corresponding annotations metadata: ``` &quot;annotations&quot;:[{ &quot;type&quot;:&quot;USER_MENTION&quot;, &quot;startIndex&quot;:6, &quot;length&quot;:7, &quot;userMention&quot;: { &quot;user&quot;: { &quot;name&quot;:&quot;users/107946847022116401880&quot;, &quot;displayName&quot;:&quot;FooBot&quot;, &quot;avatarUrl&quot;:&quot;https://goo.gl/aeDtrS&quot;, &quot;type&quot;:&quot;BOT&quot; }, &quot;type&quot;:&quot;MENTION&quot; } }] ```
+        &quot;type&quot;: &quot;A String&quot;, # The type of this annotation.
+        &quot;slashCommand&quot;: { # Annotation metadata for slash commands (/). # The metadata for a slash command.
+          &quot;type&quot;: &quot;A String&quot;, # The type of slash command.
+          &quot;bot&quot;: { # A user in Hangouts Chat. # The bot whose command was invoked.
+            &quot;displayName&quot;: &quot;A String&quot;, # The user&#x27;s display name.
+            &quot;type&quot;: &quot;A String&quot;, # User type.
+            &quot;name&quot;: &quot;A String&quot;, # Resource name, in the format &quot;users/*&quot;.
+            &quot;domainId&quot;: &quot;A String&quot;, # Obfuscated domain information.
+            &quot;isAnonymous&quot;: True or False, # True when the user is deleted or the user&#x27;s proifle is not visible.
           },
-          &quot;type&quot;: &quot;A String&quot;, # The type of this annotation.
-          &quot;startIndex&quot;: 42, # Start index (0-based, inclusive) in the plain-text message body this annotation corresponds to.
+          &quot;triggersDialog&quot;: True or False, # Indicating whether the slash command is for a dialog.
+          &quot;commandId&quot;: &quot;A String&quot;, # The command id of the invoked slash command.
+          &quot;commandName&quot;: &quot;A String&quot;, # The name of the invoked slash command.
         },
-      ],
-      &quot;thread&quot;: { # A thread in Hangouts Chat. # The thread the message belongs to.
-        &quot;name&quot;: &quot;A String&quot;, # Resource name, in the form &quot;spaces/*/threads/*&quot;. Example: spaces/AAAAMpdlehY/threads/UMxbHmzDlr4
-      },
-      &quot;attachment&quot;: [ # User uploaded attachment.
-        { # An attachment in Hangouts Chat.
-          &quot;source&quot;: &quot;A String&quot;, # The source of the attachment.
-          &quot;thumbnailUri&quot;: &quot;A String&quot;, # Output only. The thumbnail URL which should be used to preview the attachment to a human user. Bots should not use this URL to download attachment content.
-          &quot;contentType&quot;: &quot;A String&quot;, # The content type (MIME type) of the file.
-          &quot;contentName&quot;: &quot;A String&quot;, # The original file name for the content, not the full path.
-          &quot;attachmentDataRef&quot;: { # A reference to the data of an attachment. # A reference to the attachment data. This is used with the media API to download the attachment data.
-            &quot;resourceName&quot;: &quot;A String&quot;, # The resource name of the attachment data. This is used with the media API to download the attachment data.
+        &quot;length&quot;: 42, # Length of the substring in the plain-text message body this annotation corresponds to.
+        &quot;startIndex&quot;: 42, # Start index (0-based, inclusive) in the plain-text message body this annotation corresponds to.
+        &quot;userMention&quot;: { # Annotation metadata for user mentions (@). # The metadata of user mention.
+          &quot;type&quot;: &quot;A String&quot;, # The type of user mention.
+          &quot;user&quot;: { # A user in Hangouts Chat. # The user mentioned.
+            &quot;displayName&quot;: &quot;A String&quot;, # The user&#x27;s display name.
+            &quot;type&quot;: &quot;A String&quot;, # User type.
+            &quot;name&quot;: &quot;A String&quot;, # Resource name, in the format &quot;users/*&quot;.
+            &quot;domainId&quot;: &quot;A String&quot;, # Obfuscated domain information.
+            &quot;isAnonymous&quot;: True or False, # True when the user is deleted or the user&#x27;s proifle is not visible.
           },
-          &quot;downloadUri&quot;: &quot;A String&quot;, # Output only. The download URL which should be used to allow a human user to download the attachment. Bots should not use this URL to download attachment content.
-          &quot;driveDataRef&quot;: { # A reference to the data of a drive attachment. # A reference to the drive attachment. This is used with the Drive API.
-            &quot;driveFileId&quot;: &quot;A String&quot;, # The id for the drive file, for use with the Drive API.
-          },
-          &quot;name&quot;: &quot;A String&quot;, # Resource name of the attachment, in the form &quot;spaces/*/messages/*/attachments/*&quot;.
         },
-      ],
-      &quot;slashCommand&quot;: { # A Slash Command in Hangouts Chat. # Slash command information, if applicable.
-        &quot;commandId&quot;: &quot;A String&quot;, # The id of the slash command invoked.
       },
-      &quot;previewText&quot;: &quot;A String&quot;, # Text for generating preview chips. This text will not be displayed to the user, but any links to images, web pages, videos, etc. included here will generate preview chips.
-      &quot;argumentText&quot;: &quot;A String&quot;, # Plain-text body of the message with all bot mentions stripped out.
-      &quot;actionResponse&quot;: { # Parameters that a bot can use to configure how it&#x27;s response is posted. # Input only. Parameters that a bot can use to configure how its response is posted.
-        &quot;url&quot;: &quot;A String&quot;, # URL for users to auth or config. (Only for REQUEST_CONFIG response types.)
-        &quot;type&quot;: &quot;A String&quot;, # The type of bot response.
+    ],
+    &quot;text&quot;: &quot;A String&quot;, # Plain-text body of the message.
+    &quot;space&quot;: { # A room or DM in Hangouts Chat. # The space the message belongs to.
+      &quot;name&quot;: &quot;A String&quot;, # Resource name of the space, in the form &quot;spaces/*&quot;. Example: spaces/AAAAMpdlehYs
+      &quot;displayName&quot;: &quot;A String&quot;, # Output only. The display name (only if the space is a room). Please note that this field might not be populated in direct messages between humans.
+      &quot;threaded&quot;: True or False, # Whether the messages are threaded in this space.
+      &quot;type&quot;: &quot;A String&quot;, # Output only. The type of a space. This is deprecated. Use `single_user_bot_dm` instead.
+      &quot;singleUserBotDm&quot;: True or False, # Whether the space is a DM between a bot and a single human.
+    },
+    &quot;argumentText&quot;: &quot;A String&quot;, # Plain-text body of the message with all bot mentions stripped out.
+    &quot;thread&quot;: { # A thread in Hangouts Chat. # The thread the message belongs to.
+      &quot;name&quot;: &quot;A String&quot;, # Resource name, in the form &quot;spaces/*/threads/*&quot;. Example: spaces/AAAAMpdlehY/threads/UMxbHmzDlr4
+    },
+    &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the message was created in Hangouts Chat server.
+    &quot;actionResponse&quot;: { # Parameters that a bot can use to configure how it&#x27;s response is posted. # Input only. Parameters that a bot can use to configure how its response is posted.
+      &quot;type&quot;: &quot;A String&quot;, # The type of bot response.
+      &quot;url&quot;: &quot;A String&quot;, # URL for users to auth or config. (Only for REQUEST_CONFIG response types.)
+    },
+    &quot;name&quot;: &quot;A String&quot;, # Resource name, in the form &quot;spaces/*/messages/*&quot;. Example: spaces/AAAAMpdlehY/messages/UMxbHmzDlr4.UMxbHmzDlr4
+    &quot;previewText&quot;: &quot;A String&quot;, # Text for generating preview chips. This text will not be displayed to the user, but any links to images, web pages, videos, etc. included here will generate preview chips.
+    &quot;attachment&quot;: [ # User uploaded attachment.
+      { # An attachment in Hangouts Chat.
+        &quot;downloadUri&quot;: &quot;A String&quot;, # Output only. The download URL which should be used to allow a human user to download the attachment. Bots should not use this URL to download attachment content.
+        &quot;driveDataRef&quot;: { # A reference to the data of a drive attachment. # A reference to the drive attachment. This is used with the Drive API.
+          &quot;driveFileId&quot;: &quot;A String&quot;, # The id for the drive file, for use with the Drive API.
+        },
+        &quot;thumbnailUri&quot;: &quot;A String&quot;, # Output only. The thumbnail URL which should be used to preview the attachment to a human user. Bots should not use this URL to download attachment content.
+        &quot;attachmentDataRef&quot;: { # A reference to the data of an attachment. # A reference to the attachment data. This is used with the media API to download the attachment data.
+          &quot;resourceName&quot;: &quot;A String&quot;, # The resource name of the attachment data. This is used with the media API to download the attachment data.
+        },
+        &quot;name&quot;: &quot;A String&quot;, # Resource name of the attachment, in the form &quot;spaces/*/messages/*/attachments/*&quot;.
+        &quot;contentType&quot;: &quot;A String&quot;, # The content type (MIME type) of the file.
+        &quot;contentName&quot;: &quot;A String&quot;, # The original file name for the content, not the full path.
+        &quot;source&quot;: &quot;A String&quot;, # The source of the attachment.
       },
-    }</pre>
+    ],
+    &quot;slashCommand&quot;: { # A Slash Command in Hangouts Chat. # Slash command information, if applicable.
+      &quot;commandId&quot;: &quot;A String&quot;, # The id of the slash command invoked.
+    },
+    &quot;sender&quot;: { # A user in Hangouts Chat. # The user who created the message.
+      &quot;displayName&quot;: &quot;A String&quot;, # The user&#x27;s display name.
+      &quot;type&quot;: &quot;A String&quot;, # User type.
+      &quot;name&quot;: &quot;A String&quot;, # Resource name, in the format &quot;users/*&quot;.
+      &quot;domainId&quot;: &quot;A String&quot;, # Obfuscated domain information.
+      &quot;isAnonymous&quot;: True or False, # True when the user is deleted or the user&#x27;s proifle is not visible.
+    },
+    &quot;fallbackText&quot;: &quot;A String&quot;, # A plain-text description of the message&#x27;s cards, used when the actual cards cannot be displayed (e.g. mobile notifications).
+  }</pre>
 </div>
 
 <div class="method">
@@ -879,243 +879,243 @@
     The object takes the form of:
 
 { # A message in Hangouts Chat.
-    &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the message was created in Hangouts Chat server.
-    &quot;name&quot;: &quot;A String&quot;, # Resource name, in the form &quot;spaces/*/messages/*&quot;. Example: spaces/AAAAMpdlehY/messages/UMxbHmzDlr4.UMxbHmzDlr4
-    &quot;space&quot;: { # A room or DM in Hangouts Chat. # The space the message belongs to.
-      &quot;displayName&quot;: &quot;A String&quot;, # Output only. The display name (only if the space is a room). Please note that this field might not be populated in direct messages between humans.
-      &quot;type&quot;: &quot;A String&quot;, # Output only. The type of a space. This is deprecated. Use `single_user_bot_dm` instead.
-      &quot;name&quot;: &quot;A String&quot;, # Resource name of the space, in the form &quot;spaces/*&quot;. Example: spaces/AAAAMpdlehYs
-      &quot;threaded&quot;: True or False, # Whether the messages are threaded in this space.
-      &quot;singleUserBotDm&quot;: True or False, # Whether the space is a DM between a bot and a single human.
-    },
-    &quot;cards&quot;: [ # Rich, formatted and interactive cards that can be used to display UI elements such as: formatted texts, buttons, clickable images. Cards are normally displayed below the plain-text body of the message.
-      { # A card is a UI element that can contain UI widgets such as texts, images.
-        &quot;sections&quot;: [ # Sections are separated by a line divider.
-          { # A section contains a collection of widgets that are rendered (vertically) in the order that they are specified. Across all platforms, cards have a narrow fixed width, so there is currently no need for layout properties (e.g. float).
-            &quot;widgets&quot;: [ # A section must contain at least 1 widget.
-              { # A widget is a UI element that presents texts, images, etc.
-                &quot;buttons&quot;: [ # A list of buttons. Buttons is also oneof data and only one of these fields should be set.
-                  { # A button. Can be a text button or an image button.
-                    &quot;textButton&quot;: { # A button with text and onclick action. # A button with text and onclick action.
-                      &quot;text&quot;: &quot;A String&quot;, # The text of the button.
-                      &quot;onClick&quot;: { # An onclick action (e.g. open a link). # The onclick action of the button.
-                        &quot;openLink&quot;: { # A link that opens a new window. # This onclick triggers an open link action if specified.
-                          &quot;url&quot;: &quot;A String&quot;, # The URL to open.
-                        },
-                        &quot;action&quot;: { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-                          &quot;parameters&quot;: [ # List of action parameters.
-                            { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
-                              &quot;value&quot;: &quot;A String&quot;, # The value of the parameter.
-                              &quot;key&quot;: &quot;A String&quot;, # The name of the parameter for the action script.
-                            },
-                          ],
-                          &quot;actionMethodName&quot;: &quot;A String&quot;, # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
-                        },
+  &quot;cards&quot;: [ # Rich, formatted and interactive cards that can be used to display UI elements such as: formatted texts, buttons, clickable images. Cards are normally displayed below the plain-text body of the message.
+    { # A card is a UI element that can contain UI widgets such as texts, images.
+      &quot;name&quot;: &quot;A String&quot;, # Name of the card.
+      &quot;header&quot;: { # The header of the card. A header usually contains a title and an image.
+        &quot;title&quot;: &quot;A String&quot;, # The title must be specified. The header has a fixed height: if both a title and subtitle is specified, each will take up 1 line. If only the title is specified, it will take up both lines.
+        &quot;imageUrl&quot;: &quot;A String&quot;, # The URL of the image in the card header.
+        &quot;subtitle&quot;: &quot;A String&quot;, # The subtitle of the card header.
+        &quot;imageStyle&quot;: &quot;A String&quot;, # The image&#x27;s type (e.g. square border or circular border).
+      },
+      &quot;sections&quot;: [ # Sections are separated by a line divider.
+        { # A section contains a collection of widgets that are rendered (vertically) in the order that they are specified. Across all platforms, cards have a narrow fixed width, so there is currently no need for layout properties (e.g. float).
+          &quot;widgets&quot;: [ # A section must contain at least 1 widget.
+            { # A widget is a UI element that presents texts, images, etc.
+              &quot;textParagraph&quot;: { # A paragraph of text. Formatted text supported. # Display a text paragraph in this widget.
+                &quot;text&quot;: &quot;A String&quot;,
+              },
+              &quot;keyValue&quot;: { # A UI element contains a key (label) and a value (content). And this element may also contain some actions such as onclick button. # Display a key value item in this widget.
+                &quot;contentMultiline&quot;: True or False, # If the content should be multiline.
+                &quot;icon&quot;: &quot;A String&quot;, # An enum value that will be replaced by the Chat API with the corresponding icon image.
+                &quot;content&quot;: &quot;A String&quot;, # The text of the content. Formatted text supported and always required.
+                &quot;topLabel&quot;: &quot;A String&quot;, # The text of the top label. Formatted text supported.
+                &quot;bottomLabel&quot;: &quot;A String&quot;, # The text of the bottom label. Formatted text supported.
+                &quot;button&quot;: { # A button. Can be a text button or an image button. # A button that can be clicked to trigger an action.
+                  &quot;textButton&quot;: { # A button with text and onclick action. # A button with text and onclick action.
+                    &quot;text&quot;: &quot;A String&quot;, # The text of the button.
+                    &quot;onClick&quot;: { # An onclick action (e.g. open a link). # The onclick action of the button.
+                      &quot;action&quot;: { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
+                        &quot;actionMethodName&quot;: &quot;A String&quot;, # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
+                        &quot;parameters&quot;: [ # List of action parameters.
+                          { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                            &quot;key&quot;: &quot;A String&quot;, # The name of the parameter for the action script.
+                            &quot;value&quot;: &quot;A String&quot;, # The value of the parameter.
+                          },
+                        ],
                       },
-                    },
-                    &quot;imageButton&quot;: { # An image button with an onclick action. # A button with image and onclick action.
-                      &quot;icon&quot;: &quot;A String&quot;, # The icon specified by an enum that indices to an icon provided by Chat API.
-                      &quot;onClick&quot;: { # An onclick action (e.g. open a link). # The onclick action.
-                        &quot;openLink&quot;: { # A link that opens a new window. # This onclick triggers an open link action if specified.
-                          &quot;url&quot;: &quot;A String&quot;, # The URL to open.
-                        },
-                        &quot;action&quot;: { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-                          &quot;parameters&quot;: [ # List of action parameters.
-                            { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
-                              &quot;value&quot;: &quot;A String&quot;, # The value of the parameter.
-                              &quot;key&quot;: &quot;A String&quot;, # The name of the parameter for the action script.
-                            },
-                          ],
-                          &quot;actionMethodName&quot;: &quot;A String&quot;, # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
-                        },
+                      &quot;openLink&quot;: { # A link that opens a new window. # This onclick triggers an open link action if specified.
+                        &quot;url&quot;: &quot;A String&quot;, # The URL to open.
                       },
-                      &quot;iconUrl&quot;: &quot;A String&quot;, # The icon specified by a URL.
-                      &quot;name&quot;: &quot;A String&quot;, # The name of this image_button which will be used for accessibility. Default value will be provided if developers don&#x27;t specify.
                     },
                   },
-                ],
-                &quot;keyValue&quot;: { # A UI element contains a key (label) and a value (content). And this element may also contain some actions such as onclick button. # Display a key value item in this widget.
-                  &quot;icon&quot;: &quot;A String&quot;, # An enum value that will be replaced by the Chat API with the corresponding icon image.
-                  &quot;topLabel&quot;: &quot;A String&quot;, # The text of the top label. Formatted text supported.
-                  &quot;contentMultiline&quot;: True or False, # If the content should be multiline.
-                  &quot;content&quot;: &quot;A String&quot;, # The text of the content. Formatted text supported and always required.
-                  &quot;button&quot;: { # A button. Can be a text button or an image button. # A button that can be clicked to trigger an action.
-                    &quot;textButton&quot;: { # A button with text and onclick action. # A button with text and onclick action.
-                      &quot;text&quot;: &quot;A String&quot;, # The text of the button.
-                      &quot;onClick&quot;: { # An onclick action (e.g. open a link). # The onclick action of the button.
-                        &quot;openLink&quot;: { # A link that opens a new window. # This onclick triggers an open link action if specified.
-                          &quot;url&quot;: &quot;A String&quot;, # The URL to open.
-                        },
-                        &quot;action&quot;: { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-                          &quot;parameters&quot;: [ # List of action parameters.
-                            { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
-                              &quot;value&quot;: &quot;A String&quot;, # The value of the parameter.
-                              &quot;key&quot;: &quot;A String&quot;, # The name of the parameter for the action script.
-                            },
-                          ],
-                          &quot;actionMethodName&quot;: &quot;A String&quot;, # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
-                        },
+                  &quot;imageButton&quot;: { # An image button with an onclick action. # A button with image and onclick action.
+                    &quot;onClick&quot;: { # An onclick action (e.g. open a link). # The onclick action.
+                      &quot;action&quot;: { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
+                        &quot;actionMethodName&quot;: &quot;A String&quot;, # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
+                        &quot;parameters&quot;: [ # List of action parameters.
+                          { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                            &quot;key&quot;: &quot;A String&quot;, # The name of the parameter for the action script.
+                            &quot;value&quot;: &quot;A String&quot;, # The value of the parameter.
+                          },
+                        ],
+                      },
+                      &quot;openLink&quot;: { # A link that opens a new window. # This onclick triggers an open link action if specified.
+                        &quot;url&quot;: &quot;A String&quot;, # The URL to open.
                       },
                     },
-                    &quot;imageButton&quot;: { # An image button with an onclick action. # A button with image and onclick action.
-                      &quot;icon&quot;: &quot;A String&quot;, # The icon specified by an enum that indices to an icon provided by Chat API.
-                      &quot;onClick&quot;: { # An onclick action (e.g. open a link). # The onclick action.
-                        &quot;openLink&quot;: { # A link that opens a new window. # This onclick triggers an open link action if specified.
-                          &quot;url&quot;: &quot;A String&quot;, # The URL to open.
-                        },
-                        &quot;action&quot;: { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-                          &quot;parameters&quot;: [ # List of action parameters.
-                            { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
-                              &quot;value&quot;: &quot;A String&quot;, # The value of the parameter.
-                              &quot;key&quot;: &quot;A String&quot;, # The name of the parameter for the action script.
-                            },
-                          ],
-                          &quot;actionMethodName&quot;: &quot;A String&quot;, # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
-                        },
-                      },
-                      &quot;iconUrl&quot;: &quot;A String&quot;, # The icon specified by a URL.
-                      &quot;name&quot;: &quot;A String&quot;, # The name of this image_button which will be used for accessibility. Default value will be provided if developers don&#x27;t specify.
-                    },
+                    &quot;name&quot;: &quot;A String&quot;, # The name of this image_button which will be used for accessibility. Default value will be provided if developers don&#x27;t specify.
+                    &quot;iconUrl&quot;: &quot;A String&quot;, # The icon specified by a URL.
+                    &quot;icon&quot;: &quot;A String&quot;, # The icon specified by an enum that indices to an icon provided by Chat API.
                   },
-                  &quot;onClick&quot;: { # An onclick action (e.g. open a link). # The onclick action. Only the top label, bottom label and content region are clickable.
-                    &quot;openLink&quot;: { # A link that opens a new window. # This onclick triggers an open link action if specified.
-                      &quot;url&quot;: &quot;A String&quot;, # The URL to open.
-                    },
-                    &quot;action&quot;: { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-                      &quot;parameters&quot;: [ # List of action parameters.
-                        { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
-                          &quot;value&quot;: &quot;A String&quot;, # The value of the parameter.
-                          &quot;key&quot;: &quot;A String&quot;, # The name of the parameter for the action script.
-                        },
-                      ],
-                      &quot;actionMethodName&quot;: &quot;A String&quot;, # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
-                    },
-                  },
-                  &quot;bottomLabel&quot;: &quot;A String&quot;, # The text of the bottom label. Formatted text supported.
-                  &quot;iconUrl&quot;: &quot;A String&quot;, # The icon specified by a URL.
                 },
-                &quot;image&quot;: { # An image that is specified by a URL and can have an onclick action. # Display an image in this widget.
-                  &quot;onClick&quot;: { # An onclick action (e.g. open a link). # The onclick action.
-                    &quot;openLink&quot;: { # A link that opens a new window. # This onclick triggers an open link action if specified.
-                      &quot;url&quot;: &quot;A String&quot;, # The URL to open.
-                    },
-                    &quot;action&quot;: { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-                      &quot;parameters&quot;: [ # List of action parameters.
-                        { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
-                          &quot;value&quot;: &quot;A String&quot;, # The value of the parameter.
-                          &quot;key&quot;: &quot;A String&quot;, # The name of the parameter for the action script.
-                        },
-                      ],
-                      &quot;actionMethodName&quot;: &quot;A String&quot;, # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
-                    },
+                &quot;iconUrl&quot;: &quot;A String&quot;, # The icon specified by a URL.
+                &quot;onClick&quot;: { # An onclick action (e.g. open a link). # The onclick action. Only the top label, bottom label and content region are clickable.
+                  &quot;action&quot;: { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
+                    &quot;actionMethodName&quot;: &quot;A String&quot;, # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
+                    &quot;parameters&quot;: [ # List of action parameters.
+                      { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                        &quot;key&quot;: &quot;A String&quot;, # The name of the parameter for the action script.
+                        &quot;value&quot;: &quot;A String&quot;, # The value of the parameter.
+                      },
+                    ],
                   },
-                  &quot;imageUrl&quot;: &quot;A String&quot;, # The URL of the image.
-                  &quot;aspectRatio&quot;: 3.14, # The aspect ratio of this image (width/height). This field allows clients to reserve the right height for the image while waiting for it to load. It&#x27;s not meant to override the native aspect ratio of the image. If unset, the server fills it by prefetching the image.
-                },
-                &quot;textParagraph&quot;: { # A paragraph of text. Formatted text supported. # Display a text paragraph in this widget.
-                  &quot;text&quot;: &quot;A String&quot;,
+                  &quot;openLink&quot;: { # A link that opens a new window. # This onclick triggers an open link action if specified.
+                    &quot;url&quot;: &quot;A String&quot;, # The URL to open.
+                  },
                 },
               },
-            ],
-            &quot;header&quot;: &quot;A String&quot;, # The header of the section, text formatted supported.
-          },
-        ],
-        &quot;header&quot;: { # The header of the card. A header usually contains a title and an image.
-          &quot;imageUrl&quot;: &quot;A String&quot;, # The URL of the image in the card header.
-          &quot;imageStyle&quot;: &quot;A String&quot;, # The image&#x27;s type (e.g. square border or circular border).
-          &quot;subtitle&quot;: &quot;A String&quot;, # The subtitle of the card header.
-          &quot;title&quot;: &quot;A String&quot;, # The title must be specified. The header has a fixed height: if both a title and subtitle is specified, each will take up 1 line. If only the title is specified, it will take up both lines.
-        },
-        &quot;name&quot;: &quot;A String&quot;, # Name of the card.
-        &quot;cardActions&quot;: [ # The actions of this card.
-          { # A card action is the action associated with the card. For an invoice card, a typical action would be: delete invoice, email invoice or open the invoice in browser.
-            &quot;actionLabel&quot;: &quot;A String&quot;, # The label used to be displayed in the action menu item.
-            &quot;onClick&quot;: { # An onclick action (e.g. open a link). # The onclick action for this action item.
-              &quot;openLink&quot;: { # A link that opens a new window. # This onclick triggers an open link action if specified.
-                &quot;url&quot;: &quot;A String&quot;, # The URL to open.
-              },
-              &quot;action&quot;: { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-                &quot;parameters&quot;: [ # List of action parameters.
-                  { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
-                    &quot;value&quot;: &quot;A String&quot;, # The value of the parameter.
-                    &quot;key&quot;: &quot;A String&quot;, # The name of the parameter for the action script.
+              &quot;buttons&quot;: [ # A list of buttons. Buttons is also oneof data and only one of these fields should be set.
+                { # A button. Can be a text button or an image button.
+                  &quot;textButton&quot;: { # A button with text and onclick action. # A button with text and onclick action.
+                    &quot;text&quot;: &quot;A String&quot;, # The text of the button.
+                    &quot;onClick&quot;: { # An onclick action (e.g. open a link). # The onclick action of the button.
+                      &quot;action&quot;: { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
+                        &quot;actionMethodName&quot;: &quot;A String&quot;, # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
+                        &quot;parameters&quot;: [ # List of action parameters.
+                          { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                            &quot;key&quot;: &quot;A String&quot;, # The name of the parameter for the action script.
+                            &quot;value&quot;: &quot;A String&quot;, # The value of the parameter.
+                          },
+                        ],
+                      },
+                      &quot;openLink&quot;: { # A link that opens a new window. # This onclick triggers an open link action if specified.
+                        &quot;url&quot;: &quot;A String&quot;, # The URL to open.
+                      },
+                    },
                   },
-                ],
-                &quot;actionMethodName&quot;: &quot;A String&quot;, # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
+                  &quot;imageButton&quot;: { # An image button with an onclick action. # A button with image and onclick action.
+                    &quot;onClick&quot;: { # An onclick action (e.g. open a link). # The onclick action.
+                      &quot;action&quot;: { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
+                        &quot;actionMethodName&quot;: &quot;A String&quot;, # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
+                        &quot;parameters&quot;: [ # List of action parameters.
+                          { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                            &quot;key&quot;: &quot;A String&quot;, # The name of the parameter for the action script.
+                            &quot;value&quot;: &quot;A String&quot;, # The value of the parameter.
+                          },
+                        ],
+                      },
+                      &quot;openLink&quot;: { # A link that opens a new window. # This onclick triggers an open link action if specified.
+                        &quot;url&quot;: &quot;A String&quot;, # The URL to open.
+                      },
+                    },
+                    &quot;name&quot;: &quot;A String&quot;, # The name of this image_button which will be used for accessibility. Default value will be provided if developers don&#x27;t specify.
+                    &quot;iconUrl&quot;: &quot;A String&quot;, # The icon specified by a URL.
+                    &quot;icon&quot;: &quot;A String&quot;, # The icon specified by an enum that indices to an icon provided by Chat API.
+                  },
+                },
+              ],
+              &quot;image&quot;: { # An image that is specified by a URL and can have an onclick action. # Display an image in this widget.
+                &quot;imageUrl&quot;: &quot;A String&quot;, # The URL of the image.
+                &quot;onClick&quot;: { # An onclick action (e.g. open a link). # The onclick action.
+                  &quot;action&quot;: { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
+                    &quot;actionMethodName&quot;: &quot;A String&quot;, # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
+                    &quot;parameters&quot;: [ # List of action parameters.
+                      { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                        &quot;key&quot;: &quot;A String&quot;, # The name of the parameter for the action script.
+                        &quot;value&quot;: &quot;A String&quot;, # The value of the parameter.
+                      },
+                    ],
+                  },
+                  &quot;openLink&quot;: { # A link that opens a new window. # This onclick triggers an open link action if specified.
+                    &quot;url&quot;: &quot;A String&quot;, # The URL to open.
+                  },
+                },
+                &quot;aspectRatio&quot;: 3.14, # The aspect ratio of this image (width/height). This field allows clients to reserve the right height for the image while waiting for it to load. It&#x27;s not meant to override the native aspect ratio of the image. If unset, the server fills it by prefetching the image.
               },
             },
-          },
-        ],
-      },
-    ],
-    &quot;sender&quot;: { # A user in Hangouts Chat. # The user who created the message.
-      &quot;displayName&quot;: &quot;A String&quot;, # The user&#x27;s display name.
-      &quot;isAnonymous&quot;: True or False, # True when the user is deleted or the user&#x27;s proifle is not visible.
-      &quot;name&quot;: &quot;A String&quot;, # Resource name, in the format &quot;users/*&quot;.
-      &quot;type&quot;: &quot;A String&quot;, # User type.
-      &quot;domainId&quot;: &quot;A String&quot;, # Obfuscated domain information.
-    },
-    &quot;text&quot;: &quot;A String&quot;, # Plain-text body of the message.
-    &quot;fallbackText&quot;: &quot;A String&quot;, # A plain-text description of the message&#x27;s cards, used when the actual cards cannot be displayed (e.g. mobile notifications).
-    &quot;annotations&quot;: [ # Output only. Annotations associated with the text in this message.
-      { # Annotations associated with the plain-text body of the message. Example plain-text message body: ``` Hello @FooBot how are you!&quot; ``` The corresponding annotations metadata: ``` &quot;annotations&quot;:[{ &quot;type&quot;:&quot;USER_MENTION&quot;, &quot;startIndex&quot;:6, &quot;length&quot;:7, &quot;userMention&quot;: { &quot;user&quot;: { &quot;name&quot;:&quot;users/107946847022116401880&quot;, &quot;displayName&quot;:&quot;FooBot&quot;, &quot;avatarUrl&quot;:&quot;https://goo.gl/aeDtrS&quot;, &quot;type&quot;:&quot;BOT&quot; }, &quot;type&quot;:&quot;MENTION&quot; } }] ```
-        &quot;length&quot;: 42, # Length of the substring in the plain-text message body this annotation corresponds to.
-        &quot;slashCommand&quot;: { # Annotation metadata for slash commands (/). # The metadata for a slash command.
-          &quot;triggersDialog&quot;: True or False, # Indicating whether the slash command is for a dialog.
-          &quot;commandId&quot;: &quot;A String&quot;, # The command id of the invoked slash command.
-          &quot;commandName&quot;: &quot;A String&quot;, # The name of the invoked slash command.
-          &quot;type&quot;: &quot;A String&quot;, # The type of slash command.
-          &quot;bot&quot;: { # A user in Hangouts Chat. # The bot whose command was invoked.
-            &quot;displayName&quot;: &quot;A String&quot;, # The user&#x27;s display name.
-            &quot;isAnonymous&quot;: True or False, # True when the user is deleted or the user&#x27;s proifle is not visible.
-            &quot;name&quot;: &quot;A String&quot;, # Resource name, in the format &quot;users/*&quot;.
-            &quot;type&quot;: &quot;A String&quot;, # User type.
-            &quot;domainId&quot;: &quot;A String&quot;, # Obfuscated domain information.
+          ],
+          &quot;header&quot;: &quot;A String&quot;, # The header of the section, text formatted supported.
+        },
+      ],
+      &quot;cardActions&quot;: [ # The actions of this card.
+        { # A card action is the action associated with the card. For an invoice card, a typical action would be: delete invoice, email invoice or open the invoice in browser.
+          &quot;actionLabel&quot;: &quot;A String&quot;, # The label used to be displayed in the action menu item.
+          &quot;onClick&quot;: { # An onclick action (e.g. open a link). # The onclick action for this action item.
+            &quot;action&quot;: { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
+              &quot;actionMethodName&quot;: &quot;A String&quot;, # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
+              &quot;parameters&quot;: [ # List of action parameters.
+                { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                  &quot;key&quot;: &quot;A String&quot;, # The name of the parameter for the action script.
+                  &quot;value&quot;: &quot;A String&quot;, # The value of the parameter.
+                },
+              ],
+            },
+            &quot;openLink&quot;: { # A link that opens a new window. # This onclick triggers an open link action if specified.
+              &quot;url&quot;: &quot;A String&quot;, # The URL to open.
+            },
           },
         },
-        &quot;userMention&quot;: { # Annotation metadata for user mentions (@). # The metadata of user mention.
-          &quot;type&quot;: &quot;A String&quot;, # The type of user mention.
-          &quot;user&quot;: { # A user in Hangouts Chat. # The user mentioned.
-            &quot;displayName&quot;: &quot;A String&quot;, # The user&#x27;s display name.
-            &quot;isAnonymous&quot;: True or False, # True when the user is deleted or the user&#x27;s proifle is not visible.
-            &quot;name&quot;: &quot;A String&quot;, # Resource name, in the format &quot;users/*&quot;.
-            &quot;type&quot;: &quot;A String&quot;, # User type.
-            &quot;domainId&quot;: &quot;A String&quot;, # Obfuscated domain information.
-          },
+      ],
+    },
+  ],
+  &quot;annotations&quot;: [ # Output only. Annotations associated with the text in this message.
+    { # Annotations associated with the plain-text body of the message. Example plain-text message body: ``` Hello @FooBot how are you!&quot; ``` The corresponding annotations metadata: ``` &quot;annotations&quot;:[{ &quot;type&quot;:&quot;USER_MENTION&quot;, &quot;startIndex&quot;:6, &quot;length&quot;:7, &quot;userMention&quot;: { &quot;user&quot;: { &quot;name&quot;:&quot;users/107946847022116401880&quot;, &quot;displayName&quot;:&quot;FooBot&quot;, &quot;avatarUrl&quot;:&quot;https://goo.gl/aeDtrS&quot;, &quot;type&quot;:&quot;BOT&quot; }, &quot;type&quot;:&quot;MENTION&quot; } }] ```
+      &quot;type&quot;: &quot;A String&quot;, # The type of this annotation.
+      &quot;slashCommand&quot;: { # Annotation metadata for slash commands (/). # The metadata for a slash command.
+        &quot;type&quot;: &quot;A String&quot;, # The type of slash command.
+        &quot;bot&quot;: { # A user in Hangouts Chat. # The bot whose command was invoked.
+          &quot;displayName&quot;: &quot;A String&quot;, # The user&#x27;s display name.
+          &quot;type&quot;: &quot;A String&quot;, # User type.
+          &quot;name&quot;: &quot;A String&quot;, # Resource name, in the format &quot;users/*&quot;.
+          &quot;domainId&quot;: &quot;A String&quot;, # Obfuscated domain information.
+          &quot;isAnonymous&quot;: True or False, # True when the user is deleted or the user&#x27;s proifle is not visible.
         },
-        &quot;type&quot;: &quot;A String&quot;, # The type of this annotation.
-        &quot;startIndex&quot;: 42, # Start index (0-based, inclusive) in the plain-text message body this annotation corresponds to.
+        &quot;triggersDialog&quot;: True or False, # Indicating whether the slash command is for a dialog.
+        &quot;commandId&quot;: &quot;A String&quot;, # The command id of the invoked slash command.
+        &quot;commandName&quot;: &quot;A String&quot;, # The name of the invoked slash command.
       },
-    ],
-    &quot;thread&quot;: { # A thread in Hangouts Chat. # The thread the message belongs to.
-      &quot;name&quot;: &quot;A String&quot;, # Resource name, in the form &quot;spaces/*/threads/*&quot;. Example: spaces/AAAAMpdlehY/threads/UMxbHmzDlr4
-    },
-    &quot;attachment&quot;: [ # User uploaded attachment.
-      { # An attachment in Hangouts Chat.
-        &quot;source&quot;: &quot;A String&quot;, # The source of the attachment.
-        &quot;thumbnailUri&quot;: &quot;A String&quot;, # Output only. The thumbnail URL which should be used to preview the attachment to a human user. Bots should not use this URL to download attachment content.
-        &quot;contentType&quot;: &quot;A String&quot;, # The content type (MIME type) of the file.
-        &quot;contentName&quot;: &quot;A String&quot;, # The original file name for the content, not the full path.
-        &quot;attachmentDataRef&quot;: { # A reference to the data of an attachment. # A reference to the attachment data. This is used with the media API to download the attachment data.
-          &quot;resourceName&quot;: &quot;A String&quot;, # The resource name of the attachment data. This is used with the media API to download the attachment data.
+      &quot;length&quot;: 42, # Length of the substring in the plain-text message body this annotation corresponds to.
+      &quot;startIndex&quot;: 42, # Start index (0-based, inclusive) in the plain-text message body this annotation corresponds to.
+      &quot;userMention&quot;: { # Annotation metadata for user mentions (@). # The metadata of user mention.
+        &quot;type&quot;: &quot;A String&quot;, # The type of user mention.
+        &quot;user&quot;: { # A user in Hangouts Chat. # The user mentioned.
+          &quot;displayName&quot;: &quot;A String&quot;, # The user&#x27;s display name.
+          &quot;type&quot;: &quot;A String&quot;, # User type.
+          &quot;name&quot;: &quot;A String&quot;, # Resource name, in the format &quot;users/*&quot;.
+          &quot;domainId&quot;: &quot;A String&quot;, # Obfuscated domain information.
+          &quot;isAnonymous&quot;: True or False, # True when the user is deleted or the user&#x27;s proifle is not visible.
         },
-        &quot;downloadUri&quot;: &quot;A String&quot;, # Output only. The download URL which should be used to allow a human user to download the attachment. Bots should not use this URL to download attachment content.
-        &quot;driveDataRef&quot;: { # A reference to the data of a drive attachment. # A reference to the drive attachment. This is used with the Drive API.
-          &quot;driveFileId&quot;: &quot;A String&quot;, # The id for the drive file, for use with the Drive API.
-        },
-        &quot;name&quot;: &quot;A String&quot;, # Resource name of the attachment, in the form &quot;spaces/*/messages/*/attachments/*&quot;.
       },
-    ],
-    &quot;slashCommand&quot;: { # A Slash Command in Hangouts Chat. # Slash command information, if applicable.
-      &quot;commandId&quot;: &quot;A String&quot;, # The id of the slash command invoked.
     },
-    &quot;previewText&quot;: &quot;A String&quot;, # Text for generating preview chips. This text will not be displayed to the user, but any links to images, web pages, videos, etc. included here will generate preview chips.
-    &quot;argumentText&quot;: &quot;A String&quot;, # Plain-text body of the message with all bot mentions stripped out.
-    &quot;actionResponse&quot;: { # Parameters that a bot can use to configure how it&#x27;s response is posted. # Input only. Parameters that a bot can use to configure how its response is posted.
-      &quot;url&quot;: &quot;A String&quot;, # URL for users to auth or config. (Only for REQUEST_CONFIG response types.)
-      &quot;type&quot;: &quot;A String&quot;, # The type of bot response.
+  ],
+  &quot;text&quot;: &quot;A String&quot;, # Plain-text body of the message.
+  &quot;space&quot;: { # A room or DM in Hangouts Chat. # The space the message belongs to.
+    &quot;name&quot;: &quot;A String&quot;, # Resource name of the space, in the form &quot;spaces/*&quot;. Example: spaces/AAAAMpdlehYs
+    &quot;displayName&quot;: &quot;A String&quot;, # Output only. The display name (only if the space is a room). Please note that this field might not be populated in direct messages between humans.
+    &quot;threaded&quot;: True or False, # Whether the messages are threaded in this space.
+    &quot;type&quot;: &quot;A String&quot;, # Output only. The type of a space. This is deprecated. Use `single_user_bot_dm` instead.
+    &quot;singleUserBotDm&quot;: True or False, # Whether the space is a DM between a bot and a single human.
+  },
+  &quot;argumentText&quot;: &quot;A String&quot;, # Plain-text body of the message with all bot mentions stripped out.
+  &quot;thread&quot;: { # A thread in Hangouts Chat. # The thread the message belongs to.
+    &quot;name&quot;: &quot;A String&quot;, # Resource name, in the form &quot;spaces/*/threads/*&quot;. Example: spaces/AAAAMpdlehY/threads/UMxbHmzDlr4
+  },
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the message was created in Hangouts Chat server.
+  &quot;actionResponse&quot;: { # Parameters that a bot can use to configure how it&#x27;s response is posted. # Input only. Parameters that a bot can use to configure how its response is posted.
+    &quot;type&quot;: &quot;A String&quot;, # The type of bot response.
+    &quot;url&quot;: &quot;A String&quot;, # URL for users to auth or config. (Only for REQUEST_CONFIG response types.)
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Resource name, in the form &quot;spaces/*/messages/*&quot;. Example: spaces/AAAAMpdlehY/messages/UMxbHmzDlr4.UMxbHmzDlr4
+  &quot;previewText&quot;: &quot;A String&quot;, # Text for generating preview chips. This text will not be displayed to the user, but any links to images, web pages, videos, etc. included here will generate preview chips.
+  &quot;attachment&quot;: [ # User uploaded attachment.
+    { # An attachment in Hangouts Chat.
+      &quot;downloadUri&quot;: &quot;A String&quot;, # Output only. The download URL which should be used to allow a human user to download the attachment. Bots should not use this URL to download attachment content.
+      &quot;driveDataRef&quot;: { # A reference to the data of a drive attachment. # A reference to the drive attachment. This is used with the Drive API.
+        &quot;driveFileId&quot;: &quot;A String&quot;, # The id for the drive file, for use with the Drive API.
+      },
+      &quot;thumbnailUri&quot;: &quot;A String&quot;, # Output only. The thumbnail URL which should be used to preview the attachment to a human user. Bots should not use this URL to download attachment content.
+      &quot;attachmentDataRef&quot;: { # A reference to the data of an attachment. # A reference to the attachment data. This is used with the media API to download the attachment data.
+        &quot;resourceName&quot;: &quot;A String&quot;, # The resource name of the attachment data. This is used with the media API to download the attachment data.
+      },
+      &quot;name&quot;: &quot;A String&quot;, # Resource name of the attachment, in the form &quot;spaces/*/messages/*/attachments/*&quot;.
+      &quot;contentType&quot;: &quot;A String&quot;, # The content type (MIME type) of the file.
+      &quot;contentName&quot;: &quot;A String&quot;, # The original file name for the content, not the full path.
+      &quot;source&quot;: &quot;A String&quot;, # The source of the attachment.
     },
-  }
+  ],
+  &quot;slashCommand&quot;: { # A Slash Command in Hangouts Chat. # Slash command information, if applicable.
+    &quot;commandId&quot;: &quot;A String&quot;, # The id of the slash command invoked.
+  },
+  &quot;sender&quot;: { # A user in Hangouts Chat. # The user who created the message.
+    &quot;displayName&quot;: &quot;A String&quot;, # The user&#x27;s display name.
+    &quot;type&quot;: &quot;A String&quot;, # User type.
+    &quot;name&quot;: &quot;A String&quot;, # Resource name, in the format &quot;users/*&quot;.
+    &quot;domainId&quot;: &quot;A String&quot;, # Obfuscated domain information.
+    &quot;isAnonymous&quot;: True or False, # True when the user is deleted or the user&#x27;s proifle is not visible.
+  },
+  &quot;fallbackText&quot;: &quot;A String&quot;, # A plain-text description of the message&#x27;s cards, used when the actual cards cannot be displayed (e.g. mobile notifications).
+}
 
   updateMask: string, Required. The field paths to be updated, comma separated if there are multiple. Currently supported field paths: * text * cards
   x__xgafv: string, V1 error format.
@@ -1127,243 +1127,243 @@
   An object of the form:
 
     { # A message in Hangouts Chat.
-      &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the message was created in Hangouts Chat server.
-      &quot;name&quot;: &quot;A String&quot;, # Resource name, in the form &quot;spaces/*/messages/*&quot;. Example: spaces/AAAAMpdlehY/messages/UMxbHmzDlr4.UMxbHmzDlr4
-      &quot;space&quot;: { # A room or DM in Hangouts Chat. # The space the message belongs to.
-        &quot;displayName&quot;: &quot;A String&quot;, # Output only. The display name (only if the space is a room). Please note that this field might not be populated in direct messages between humans.
-        &quot;type&quot;: &quot;A String&quot;, # Output only. The type of a space. This is deprecated. Use `single_user_bot_dm` instead.
-        &quot;name&quot;: &quot;A String&quot;, # Resource name of the space, in the form &quot;spaces/*&quot;. Example: spaces/AAAAMpdlehYs
-        &quot;threaded&quot;: True or False, # Whether the messages are threaded in this space.
-        &quot;singleUserBotDm&quot;: True or False, # Whether the space is a DM between a bot and a single human.
-      },
-      &quot;cards&quot;: [ # Rich, formatted and interactive cards that can be used to display UI elements such as: formatted texts, buttons, clickable images. Cards are normally displayed below the plain-text body of the message.
-        { # A card is a UI element that can contain UI widgets such as texts, images.
-          &quot;sections&quot;: [ # Sections are separated by a line divider.
-            { # A section contains a collection of widgets that are rendered (vertically) in the order that they are specified. Across all platforms, cards have a narrow fixed width, so there is currently no need for layout properties (e.g. float).
-              &quot;widgets&quot;: [ # A section must contain at least 1 widget.
-                { # A widget is a UI element that presents texts, images, etc.
-                  &quot;buttons&quot;: [ # A list of buttons. Buttons is also oneof data and only one of these fields should be set.
-                    { # A button. Can be a text button or an image button.
-                      &quot;textButton&quot;: { # A button with text and onclick action. # A button with text and onclick action.
-                        &quot;text&quot;: &quot;A String&quot;, # The text of the button.
-                        &quot;onClick&quot;: { # An onclick action (e.g. open a link). # The onclick action of the button.
-                          &quot;openLink&quot;: { # A link that opens a new window. # This onclick triggers an open link action if specified.
-                            &quot;url&quot;: &quot;A String&quot;, # The URL to open.
-                          },
-                          &quot;action&quot;: { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-                            &quot;parameters&quot;: [ # List of action parameters.
-                              { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
-                                &quot;value&quot;: &quot;A String&quot;, # The value of the parameter.
-                                &quot;key&quot;: &quot;A String&quot;, # The name of the parameter for the action script.
-                              },
-                            ],
-                            &quot;actionMethodName&quot;: &quot;A String&quot;, # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
-                          },
+    &quot;cards&quot;: [ # Rich, formatted and interactive cards that can be used to display UI elements such as: formatted texts, buttons, clickable images. Cards are normally displayed below the plain-text body of the message.
+      { # A card is a UI element that can contain UI widgets such as texts, images.
+        &quot;name&quot;: &quot;A String&quot;, # Name of the card.
+        &quot;header&quot;: { # The header of the card. A header usually contains a title and an image.
+          &quot;title&quot;: &quot;A String&quot;, # The title must be specified. The header has a fixed height: if both a title and subtitle is specified, each will take up 1 line. If only the title is specified, it will take up both lines.
+          &quot;imageUrl&quot;: &quot;A String&quot;, # The URL of the image in the card header.
+          &quot;subtitle&quot;: &quot;A String&quot;, # The subtitle of the card header.
+          &quot;imageStyle&quot;: &quot;A String&quot;, # The image&#x27;s type (e.g. square border or circular border).
+        },
+        &quot;sections&quot;: [ # Sections are separated by a line divider.
+          { # A section contains a collection of widgets that are rendered (vertically) in the order that they are specified. Across all platforms, cards have a narrow fixed width, so there is currently no need for layout properties (e.g. float).
+            &quot;widgets&quot;: [ # A section must contain at least 1 widget.
+              { # A widget is a UI element that presents texts, images, etc.
+                &quot;textParagraph&quot;: { # A paragraph of text. Formatted text supported. # Display a text paragraph in this widget.
+                  &quot;text&quot;: &quot;A String&quot;,
+                },
+                &quot;keyValue&quot;: { # A UI element contains a key (label) and a value (content). And this element may also contain some actions such as onclick button. # Display a key value item in this widget.
+                  &quot;contentMultiline&quot;: True or False, # If the content should be multiline.
+                  &quot;icon&quot;: &quot;A String&quot;, # An enum value that will be replaced by the Chat API with the corresponding icon image.
+                  &quot;content&quot;: &quot;A String&quot;, # The text of the content. Formatted text supported and always required.
+                  &quot;topLabel&quot;: &quot;A String&quot;, # The text of the top label. Formatted text supported.
+                  &quot;bottomLabel&quot;: &quot;A String&quot;, # The text of the bottom label. Formatted text supported.
+                  &quot;button&quot;: { # A button. Can be a text button or an image button. # A button that can be clicked to trigger an action.
+                    &quot;textButton&quot;: { # A button with text and onclick action. # A button with text and onclick action.
+                      &quot;text&quot;: &quot;A String&quot;, # The text of the button.
+                      &quot;onClick&quot;: { # An onclick action (e.g. open a link). # The onclick action of the button.
+                        &quot;action&quot;: { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
+                          &quot;actionMethodName&quot;: &quot;A String&quot;, # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
+                          &quot;parameters&quot;: [ # List of action parameters.
+                            { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                              &quot;key&quot;: &quot;A String&quot;, # The name of the parameter for the action script.
+                              &quot;value&quot;: &quot;A String&quot;, # The value of the parameter.
+                            },
+                          ],
                         },
-                      },
-                      &quot;imageButton&quot;: { # An image button with an onclick action. # A button with image and onclick action.
-                        &quot;icon&quot;: &quot;A String&quot;, # The icon specified by an enum that indices to an icon provided by Chat API.
-                        &quot;onClick&quot;: { # An onclick action (e.g. open a link). # The onclick action.
-                          &quot;openLink&quot;: { # A link that opens a new window. # This onclick triggers an open link action if specified.
-                            &quot;url&quot;: &quot;A String&quot;, # The URL to open.
-                          },
-                          &quot;action&quot;: { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-                            &quot;parameters&quot;: [ # List of action parameters.
-                              { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
-                                &quot;value&quot;: &quot;A String&quot;, # The value of the parameter.
-                                &quot;key&quot;: &quot;A String&quot;, # The name of the parameter for the action script.
-                              },
-                            ],
-                            &quot;actionMethodName&quot;: &quot;A String&quot;, # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
-                          },
+                        &quot;openLink&quot;: { # A link that opens a new window. # This onclick triggers an open link action if specified.
+                          &quot;url&quot;: &quot;A String&quot;, # The URL to open.
                         },
-                        &quot;iconUrl&quot;: &quot;A String&quot;, # The icon specified by a URL.
-                        &quot;name&quot;: &quot;A String&quot;, # The name of this image_button which will be used for accessibility. Default value will be provided if developers don&#x27;t specify.
                       },
                     },
-                  ],
-                  &quot;keyValue&quot;: { # A UI element contains a key (label) and a value (content). And this element may also contain some actions such as onclick button. # Display a key value item in this widget.
-                    &quot;icon&quot;: &quot;A String&quot;, # An enum value that will be replaced by the Chat API with the corresponding icon image.
-                    &quot;topLabel&quot;: &quot;A String&quot;, # The text of the top label. Formatted text supported.
-                    &quot;contentMultiline&quot;: True or False, # If the content should be multiline.
-                    &quot;content&quot;: &quot;A String&quot;, # The text of the content. Formatted text supported and always required.
-                    &quot;button&quot;: { # A button. Can be a text button or an image button. # A button that can be clicked to trigger an action.
-                      &quot;textButton&quot;: { # A button with text and onclick action. # A button with text and onclick action.
-                        &quot;text&quot;: &quot;A String&quot;, # The text of the button.
-                        &quot;onClick&quot;: { # An onclick action (e.g. open a link). # The onclick action of the button.
-                          &quot;openLink&quot;: { # A link that opens a new window. # This onclick triggers an open link action if specified.
-                            &quot;url&quot;: &quot;A String&quot;, # The URL to open.
-                          },
-                          &quot;action&quot;: { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-                            &quot;parameters&quot;: [ # List of action parameters.
-                              { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
-                                &quot;value&quot;: &quot;A String&quot;, # The value of the parameter.
-                                &quot;key&quot;: &quot;A String&quot;, # The name of the parameter for the action script.
-                              },
-                            ],
-                            &quot;actionMethodName&quot;: &quot;A String&quot;, # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
-                          },
+                    &quot;imageButton&quot;: { # An image button with an onclick action. # A button with image and onclick action.
+                      &quot;onClick&quot;: { # An onclick action (e.g. open a link). # The onclick action.
+                        &quot;action&quot;: { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
+                          &quot;actionMethodName&quot;: &quot;A String&quot;, # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
+                          &quot;parameters&quot;: [ # List of action parameters.
+                            { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                              &quot;key&quot;: &quot;A String&quot;, # The name of the parameter for the action script.
+                              &quot;value&quot;: &quot;A String&quot;, # The value of the parameter.
+                            },
+                          ],
+                        },
+                        &quot;openLink&quot;: { # A link that opens a new window. # This onclick triggers an open link action if specified.
+                          &quot;url&quot;: &quot;A String&quot;, # The URL to open.
                         },
                       },
-                      &quot;imageButton&quot;: { # An image button with an onclick action. # A button with image and onclick action.
-                        &quot;icon&quot;: &quot;A String&quot;, # The icon specified by an enum that indices to an icon provided by Chat API.
-                        &quot;onClick&quot;: { # An onclick action (e.g. open a link). # The onclick action.
-                          &quot;openLink&quot;: { # A link that opens a new window. # This onclick triggers an open link action if specified.
-                            &quot;url&quot;: &quot;A String&quot;, # The URL to open.
-                          },
-                          &quot;action&quot;: { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-                            &quot;parameters&quot;: [ # List of action parameters.
-                              { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
-                                &quot;value&quot;: &quot;A String&quot;, # The value of the parameter.
-                                &quot;key&quot;: &quot;A String&quot;, # The name of the parameter for the action script.
-                              },
-                            ],
-                            &quot;actionMethodName&quot;: &quot;A String&quot;, # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
-                          },
-                        },
-                        &quot;iconUrl&quot;: &quot;A String&quot;, # The icon specified by a URL.
-                        &quot;name&quot;: &quot;A String&quot;, # The name of this image_button which will be used for accessibility. Default value will be provided if developers don&#x27;t specify.
-                      },
+                      &quot;name&quot;: &quot;A String&quot;, # The name of this image_button which will be used for accessibility. Default value will be provided if developers don&#x27;t specify.
+                      &quot;iconUrl&quot;: &quot;A String&quot;, # The icon specified by a URL.
+                      &quot;icon&quot;: &quot;A String&quot;, # The icon specified by an enum that indices to an icon provided by Chat API.
                     },
-                    &quot;onClick&quot;: { # An onclick action (e.g. open a link). # The onclick action. Only the top label, bottom label and content region are clickable.
-                      &quot;openLink&quot;: { # A link that opens a new window. # This onclick triggers an open link action if specified.
-                        &quot;url&quot;: &quot;A String&quot;, # The URL to open.
-                      },
-                      &quot;action&quot;: { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-                        &quot;parameters&quot;: [ # List of action parameters.
-                          { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
-                            &quot;value&quot;: &quot;A String&quot;, # The value of the parameter.
-                            &quot;key&quot;: &quot;A String&quot;, # The name of the parameter for the action script.
-                          },
-                        ],
-                        &quot;actionMethodName&quot;: &quot;A String&quot;, # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
-                      },
-                    },
-                    &quot;bottomLabel&quot;: &quot;A String&quot;, # The text of the bottom label. Formatted text supported.
-                    &quot;iconUrl&quot;: &quot;A String&quot;, # The icon specified by a URL.
                   },
-                  &quot;image&quot;: { # An image that is specified by a URL and can have an onclick action. # Display an image in this widget.
-                    &quot;onClick&quot;: { # An onclick action (e.g. open a link). # The onclick action.
-                      &quot;openLink&quot;: { # A link that opens a new window. # This onclick triggers an open link action if specified.
-                        &quot;url&quot;: &quot;A String&quot;, # The URL to open.
-                      },
-                      &quot;action&quot;: { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-                        &quot;parameters&quot;: [ # List of action parameters.
-                          { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
-                            &quot;value&quot;: &quot;A String&quot;, # The value of the parameter.
-                            &quot;key&quot;: &quot;A String&quot;, # The name of the parameter for the action script.
-                          },
-                        ],
-                        &quot;actionMethodName&quot;: &quot;A String&quot;, # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
-                      },
+                  &quot;iconUrl&quot;: &quot;A String&quot;, # The icon specified by a URL.
+                  &quot;onClick&quot;: { # An onclick action (e.g. open a link). # The onclick action. Only the top label, bottom label and content region are clickable.
+                    &quot;action&quot;: { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
+                      &quot;actionMethodName&quot;: &quot;A String&quot;, # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
+                      &quot;parameters&quot;: [ # List of action parameters.
+                        { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                          &quot;key&quot;: &quot;A String&quot;, # The name of the parameter for the action script.
+                          &quot;value&quot;: &quot;A String&quot;, # The value of the parameter.
+                        },
+                      ],
                     },
-                    &quot;imageUrl&quot;: &quot;A String&quot;, # The URL of the image.
-                    &quot;aspectRatio&quot;: 3.14, # The aspect ratio of this image (width/height). This field allows clients to reserve the right height for the image while waiting for it to load. It&#x27;s not meant to override the native aspect ratio of the image. If unset, the server fills it by prefetching the image.
-                  },
-                  &quot;textParagraph&quot;: { # A paragraph of text. Formatted text supported. # Display a text paragraph in this widget.
-                    &quot;text&quot;: &quot;A String&quot;,
+                    &quot;openLink&quot;: { # A link that opens a new window. # This onclick triggers an open link action if specified.
+                      &quot;url&quot;: &quot;A String&quot;, # The URL to open.
+                    },
                   },
                 },
-              ],
-              &quot;header&quot;: &quot;A String&quot;, # The header of the section, text formatted supported.
-            },
-          ],
-          &quot;header&quot;: { # The header of the card. A header usually contains a title and an image.
-            &quot;imageUrl&quot;: &quot;A String&quot;, # The URL of the image in the card header.
-            &quot;imageStyle&quot;: &quot;A String&quot;, # The image&#x27;s type (e.g. square border or circular border).
-            &quot;subtitle&quot;: &quot;A String&quot;, # The subtitle of the card header.
-            &quot;title&quot;: &quot;A String&quot;, # The title must be specified. The header has a fixed height: if both a title and subtitle is specified, each will take up 1 line. If only the title is specified, it will take up both lines.
-          },
-          &quot;name&quot;: &quot;A String&quot;, # Name of the card.
-          &quot;cardActions&quot;: [ # The actions of this card.
-            { # A card action is the action associated with the card. For an invoice card, a typical action would be: delete invoice, email invoice or open the invoice in browser.
-              &quot;actionLabel&quot;: &quot;A String&quot;, # The label used to be displayed in the action menu item.
-              &quot;onClick&quot;: { # An onclick action (e.g. open a link). # The onclick action for this action item.
-                &quot;openLink&quot;: { # A link that opens a new window. # This onclick triggers an open link action if specified.
-                  &quot;url&quot;: &quot;A String&quot;, # The URL to open.
-                },
-                &quot;action&quot;: { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
-                  &quot;parameters&quot;: [ # List of action parameters.
-                    { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
-                      &quot;value&quot;: &quot;A String&quot;, # The value of the parameter.
-                      &quot;key&quot;: &quot;A String&quot;, # The name of the parameter for the action script.
+                &quot;buttons&quot;: [ # A list of buttons. Buttons is also oneof data and only one of these fields should be set.
+                  { # A button. Can be a text button or an image button.
+                    &quot;textButton&quot;: { # A button with text and onclick action. # A button with text and onclick action.
+                      &quot;text&quot;: &quot;A String&quot;, # The text of the button.
+                      &quot;onClick&quot;: { # An onclick action (e.g. open a link). # The onclick action of the button.
+                        &quot;action&quot;: { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
+                          &quot;actionMethodName&quot;: &quot;A String&quot;, # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
+                          &quot;parameters&quot;: [ # List of action parameters.
+                            { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                              &quot;key&quot;: &quot;A String&quot;, # The name of the parameter for the action script.
+                              &quot;value&quot;: &quot;A String&quot;, # The value of the parameter.
+                            },
+                          ],
+                        },
+                        &quot;openLink&quot;: { # A link that opens a new window. # This onclick triggers an open link action if specified.
+                          &quot;url&quot;: &quot;A String&quot;, # The URL to open.
+                        },
+                      },
                     },
-                  ],
-                  &quot;actionMethodName&quot;: &quot;A String&quot;, # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
+                    &quot;imageButton&quot;: { # An image button with an onclick action. # A button with image and onclick action.
+                      &quot;onClick&quot;: { # An onclick action (e.g. open a link). # The onclick action.
+                        &quot;action&quot;: { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
+                          &quot;actionMethodName&quot;: &quot;A String&quot;, # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
+                          &quot;parameters&quot;: [ # List of action parameters.
+                            { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                              &quot;key&quot;: &quot;A String&quot;, # The name of the parameter for the action script.
+                              &quot;value&quot;: &quot;A String&quot;, # The value of the parameter.
+                            },
+                          ],
+                        },
+                        &quot;openLink&quot;: { # A link that opens a new window. # This onclick triggers an open link action if specified.
+                          &quot;url&quot;: &quot;A String&quot;, # The URL to open.
+                        },
+                      },
+                      &quot;name&quot;: &quot;A String&quot;, # The name of this image_button which will be used for accessibility. Default value will be provided if developers don&#x27;t specify.
+                      &quot;iconUrl&quot;: &quot;A String&quot;, # The icon specified by a URL.
+                      &quot;icon&quot;: &quot;A String&quot;, # The icon specified by an enum that indices to an icon provided by Chat API.
+                    },
+                  },
+                ],
+                &quot;image&quot;: { # An image that is specified by a URL and can have an onclick action. # Display an image in this widget.
+                  &quot;imageUrl&quot;: &quot;A String&quot;, # The URL of the image.
+                  &quot;onClick&quot;: { # An onclick action (e.g. open a link). # The onclick action.
+                    &quot;action&quot;: { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
+                      &quot;actionMethodName&quot;: &quot;A String&quot;, # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
+                      &quot;parameters&quot;: [ # List of action parameters.
+                        { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                          &quot;key&quot;: &quot;A String&quot;, # The name of the parameter for the action script.
+                          &quot;value&quot;: &quot;A String&quot;, # The value of the parameter.
+                        },
+                      ],
+                    },
+                    &quot;openLink&quot;: { # A link that opens a new window. # This onclick triggers an open link action if specified.
+                      &quot;url&quot;: &quot;A String&quot;, # The URL to open.
+                    },
+                  },
+                  &quot;aspectRatio&quot;: 3.14, # The aspect ratio of this image (width/height). This field allows clients to reserve the right height for the image while waiting for it to load. It&#x27;s not meant to override the native aspect ratio of the image. If unset, the server fills it by prefetching the image.
                 },
               },
-            },
-          ],
-        },
-      ],
-      &quot;sender&quot;: { # A user in Hangouts Chat. # The user who created the message.
-        &quot;displayName&quot;: &quot;A String&quot;, # The user&#x27;s display name.
-        &quot;isAnonymous&quot;: True or False, # True when the user is deleted or the user&#x27;s proifle is not visible.
-        &quot;name&quot;: &quot;A String&quot;, # Resource name, in the format &quot;users/*&quot;.
-        &quot;type&quot;: &quot;A String&quot;, # User type.
-        &quot;domainId&quot;: &quot;A String&quot;, # Obfuscated domain information.
-      },
-      &quot;text&quot;: &quot;A String&quot;, # Plain-text body of the message.
-      &quot;fallbackText&quot;: &quot;A String&quot;, # A plain-text description of the message&#x27;s cards, used when the actual cards cannot be displayed (e.g. mobile notifications).
-      &quot;annotations&quot;: [ # Output only. Annotations associated with the text in this message.
-        { # Annotations associated with the plain-text body of the message. Example plain-text message body: ``` Hello @FooBot how are you!&quot; ``` The corresponding annotations metadata: ``` &quot;annotations&quot;:[{ &quot;type&quot;:&quot;USER_MENTION&quot;, &quot;startIndex&quot;:6, &quot;length&quot;:7, &quot;userMention&quot;: { &quot;user&quot;: { &quot;name&quot;:&quot;users/107946847022116401880&quot;, &quot;displayName&quot;:&quot;FooBot&quot;, &quot;avatarUrl&quot;:&quot;https://goo.gl/aeDtrS&quot;, &quot;type&quot;:&quot;BOT&quot; }, &quot;type&quot;:&quot;MENTION&quot; } }] ```
-          &quot;length&quot;: 42, # Length of the substring in the plain-text message body this annotation corresponds to.
-          &quot;slashCommand&quot;: { # Annotation metadata for slash commands (/). # The metadata for a slash command.
-            &quot;triggersDialog&quot;: True or False, # Indicating whether the slash command is for a dialog.
-            &quot;commandId&quot;: &quot;A String&quot;, # The command id of the invoked slash command.
-            &quot;commandName&quot;: &quot;A String&quot;, # The name of the invoked slash command.
-            &quot;type&quot;: &quot;A String&quot;, # The type of slash command.
-            &quot;bot&quot;: { # A user in Hangouts Chat. # The bot whose command was invoked.
-              &quot;displayName&quot;: &quot;A String&quot;, # The user&#x27;s display name.
-              &quot;isAnonymous&quot;: True or False, # True when the user is deleted or the user&#x27;s proifle is not visible.
-              &quot;name&quot;: &quot;A String&quot;, # Resource name, in the format &quot;users/*&quot;.
-              &quot;type&quot;: &quot;A String&quot;, # User type.
-              &quot;domainId&quot;: &quot;A String&quot;, # Obfuscated domain information.
+            ],
+            &quot;header&quot;: &quot;A String&quot;, # The header of the section, text formatted supported.
+          },
+        ],
+        &quot;cardActions&quot;: [ # The actions of this card.
+          { # A card action is the action associated with the card. For an invoice card, a typical action would be: delete invoice, email invoice or open the invoice in browser.
+            &quot;actionLabel&quot;: &quot;A String&quot;, # The label used to be displayed in the action menu item.
+            &quot;onClick&quot;: { # An onclick action (e.g. open a link). # The onclick action for this action item.
+              &quot;action&quot;: { # A form action describes the behavior when the form is submitted. For example, an Apps Script can be invoked to handle the form. # A form action will be triggered by this onclick if specified.
+                &quot;actionMethodName&quot;: &quot;A String&quot;, # The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the bot as part of the card click event. The same method name can be used for several elements that trigger a common behavior if desired.
+                &quot;parameters&quot;: [ # List of action parameters.
+                  { # List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze 1 day, snooze next week. You might use action method = snooze(), passing the snooze type and snooze time in the list of string parameters.
+                    &quot;key&quot;: &quot;A String&quot;, # The name of the parameter for the action script.
+                    &quot;value&quot;: &quot;A String&quot;, # The value of the parameter.
+                  },
+                ],
+              },
+              &quot;openLink&quot;: { # A link that opens a new window. # This onclick triggers an open link action if specified.
+                &quot;url&quot;: &quot;A String&quot;, # The URL to open.
+              },
             },
           },
-          &quot;userMention&quot;: { # Annotation metadata for user mentions (@). # The metadata of user mention.
-            &quot;type&quot;: &quot;A String&quot;, # The type of user mention.
-            &quot;user&quot;: { # A user in Hangouts Chat. # The user mentioned.
-              &quot;displayName&quot;: &quot;A String&quot;, # The user&#x27;s display name.
-              &quot;isAnonymous&quot;: True or False, # True when the user is deleted or the user&#x27;s proifle is not visible.
-              &quot;name&quot;: &quot;A String&quot;, # Resource name, in the format &quot;users/*&quot;.
-              &quot;type&quot;: &quot;A String&quot;, # User type.
-              &quot;domainId&quot;: &quot;A String&quot;, # Obfuscated domain information.
-            },
+        ],
+      },
+    ],
+    &quot;annotations&quot;: [ # Output only. Annotations associated with the text in this message.
+      { # Annotations associated with the plain-text body of the message. Example plain-text message body: ``` Hello @FooBot how are you!&quot; ``` The corresponding annotations metadata: ``` &quot;annotations&quot;:[{ &quot;type&quot;:&quot;USER_MENTION&quot;, &quot;startIndex&quot;:6, &quot;length&quot;:7, &quot;userMention&quot;: { &quot;user&quot;: { &quot;name&quot;:&quot;users/107946847022116401880&quot;, &quot;displayName&quot;:&quot;FooBot&quot;, &quot;avatarUrl&quot;:&quot;https://goo.gl/aeDtrS&quot;, &quot;type&quot;:&quot;BOT&quot; }, &quot;type&quot;:&quot;MENTION&quot; } }] ```
+        &quot;type&quot;: &quot;A String&quot;, # The type of this annotation.
+        &quot;slashCommand&quot;: { # Annotation metadata for slash commands (/). # The metadata for a slash command.
+          &quot;type&quot;: &quot;A String&quot;, # The type of slash command.
+          &quot;bot&quot;: { # A user in Hangouts Chat. # The bot whose command was invoked.
+            &quot;displayName&quot;: &quot;A String&quot;, # The user&#x27;s display name.
+            &quot;type&quot;: &quot;A String&quot;, # User type.
+            &quot;name&quot;: &quot;A String&quot;, # Resource name, in the format &quot;users/*&quot;.
+            &quot;domainId&quot;: &quot;A String&quot;, # Obfuscated domain information.
+            &quot;isAnonymous&quot;: True or False, # True when the user is deleted or the user&#x27;s proifle is not visible.
           },
-          &quot;type&quot;: &quot;A String&quot;, # The type of this annotation.
-          &quot;startIndex&quot;: 42, # Start index (0-based, inclusive) in the plain-text message body this annotation corresponds to.
+          &quot;triggersDialog&quot;: True or False, # Indicating whether the slash command is for a dialog.
+          &quot;commandId&quot;: &quot;A String&quot;, # The command id of the invoked slash command.
+          &quot;commandName&quot;: &quot;A String&quot;, # The name of the invoked slash command.
         },
-      ],
-      &quot;thread&quot;: { # A thread in Hangouts Chat. # The thread the message belongs to.
-        &quot;name&quot;: &quot;A String&quot;, # Resource name, in the form &quot;spaces/*/threads/*&quot;. Example: spaces/AAAAMpdlehY/threads/UMxbHmzDlr4
-      },
-      &quot;attachment&quot;: [ # User uploaded attachment.
-        { # An attachment in Hangouts Chat.
-          &quot;source&quot;: &quot;A String&quot;, # The source of the attachment.
-          &quot;thumbnailUri&quot;: &quot;A String&quot;, # Output only. The thumbnail URL which should be used to preview the attachment to a human user. Bots should not use this URL to download attachment content.
-          &quot;contentType&quot;: &quot;A String&quot;, # The content type (MIME type) of the file.
-          &quot;contentName&quot;: &quot;A String&quot;, # The original file name for the content, not the full path.
-          &quot;attachmentDataRef&quot;: { # A reference to the data of an attachment. # A reference to the attachment data. This is used with the media API to download the attachment data.
-            &quot;resourceName&quot;: &quot;A String&quot;, # The resource name of the attachment data. This is used with the media API to download the attachment data.
+        &quot;length&quot;: 42, # Length of the substring in the plain-text message body this annotation corresponds to.
+        &quot;startIndex&quot;: 42, # Start index (0-based, inclusive) in the plain-text message body this annotation corresponds to.
+        &quot;userMention&quot;: { # Annotation metadata for user mentions (@). # The metadata of user mention.
+          &quot;type&quot;: &quot;A String&quot;, # The type of user mention.
+          &quot;user&quot;: { # A user in Hangouts Chat. # The user mentioned.
+            &quot;displayName&quot;: &quot;A String&quot;, # The user&#x27;s display name.
+            &quot;type&quot;: &quot;A String&quot;, # User type.
+            &quot;name&quot;: &quot;A String&quot;, # Resource name, in the format &quot;users/*&quot;.
+            &quot;domainId&quot;: &quot;A String&quot;, # Obfuscated domain information.
+            &quot;isAnonymous&quot;: True or False, # True when the user is deleted or the user&#x27;s proifle is not visible.
           },
-          &quot;downloadUri&quot;: &quot;A String&quot;, # Output only. The download URL which should be used to allow a human user to download the attachment. Bots should not use this URL to download attachment content.
-          &quot;driveDataRef&quot;: { # A reference to the data of a drive attachment. # A reference to the drive attachment. This is used with the Drive API.
-            &quot;driveFileId&quot;: &quot;A String&quot;, # The id for the drive file, for use with the Drive API.
-          },
-          &quot;name&quot;: &quot;A String&quot;, # Resource name of the attachment, in the form &quot;spaces/*/messages/*/attachments/*&quot;.
         },
-      ],
-      &quot;slashCommand&quot;: { # A Slash Command in Hangouts Chat. # Slash command information, if applicable.
-        &quot;commandId&quot;: &quot;A String&quot;, # The id of the slash command invoked.
       },
-      &quot;previewText&quot;: &quot;A String&quot;, # Text for generating preview chips. This text will not be displayed to the user, but any links to images, web pages, videos, etc. included here will generate preview chips.
-      &quot;argumentText&quot;: &quot;A String&quot;, # Plain-text body of the message with all bot mentions stripped out.
-      &quot;actionResponse&quot;: { # Parameters that a bot can use to configure how it&#x27;s response is posted. # Input only. Parameters that a bot can use to configure how its response is posted.
-        &quot;url&quot;: &quot;A String&quot;, # URL for users to auth or config. (Only for REQUEST_CONFIG response types.)
-        &quot;type&quot;: &quot;A String&quot;, # The type of bot response.
+    ],
+    &quot;text&quot;: &quot;A String&quot;, # Plain-text body of the message.
+    &quot;space&quot;: { # A room or DM in Hangouts Chat. # The space the message belongs to.
+      &quot;name&quot;: &quot;A String&quot;, # Resource name of the space, in the form &quot;spaces/*&quot;. Example: spaces/AAAAMpdlehYs
+      &quot;displayName&quot;: &quot;A String&quot;, # Output only. The display name (only if the space is a room). Please note that this field might not be populated in direct messages between humans.
+      &quot;threaded&quot;: True or False, # Whether the messages are threaded in this space.
+      &quot;type&quot;: &quot;A String&quot;, # Output only. The type of a space. This is deprecated. Use `single_user_bot_dm` instead.
+      &quot;singleUserBotDm&quot;: True or False, # Whether the space is a DM between a bot and a single human.
+    },
+    &quot;argumentText&quot;: &quot;A String&quot;, # Plain-text body of the message with all bot mentions stripped out.
+    &quot;thread&quot;: { # A thread in Hangouts Chat. # The thread the message belongs to.
+      &quot;name&quot;: &quot;A String&quot;, # Resource name, in the form &quot;spaces/*/threads/*&quot;. Example: spaces/AAAAMpdlehY/threads/UMxbHmzDlr4
+    },
+    &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the message was created in Hangouts Chat server.
+    &quot;actionResponse&quot;: { # Parameters that a bot can use to configure how it&#x27;s response is posted. # Input only. Parameters that a bot can use to configure how its response is posted.
+      &quot;type&quot;: &quot;A String&quot;, # The type of bot response.
+      &quot;url&quot;: &quot;A String&quot;, # URL for users to auth or config. (Only for REQUEST_CONFIG response types.)
+    },
+    &quot;name&quot;: &quot;A String&quot;, # Resource name, in the form &quot;spaces/*/messages/*&quot;. Example: spaces/AAAAMpdlehY/messages/UMxbHmzDlr4.UMxbHmzDlr4
+    &quot;previewText&quot;: &quot;A String&quot;, # Text for generating preview chips. This text will not be displayed to the user, but any links to images, web pages, videos, etc. included here will generate preview chips.
+    &quot;attachment&quot;: [ # User uploaded attachment.
+      { # An attachment in Hangouts Chat.
+        &quot;downloadUri&quot;: &quot;A String&quot;, # Output only. The download URL which should be used to allow a human user to download the attachment. Bots should not use this URL to download attachment content.
+        &quot;driveDataRef&quot;: { # A reference to the data of a drive attachment. # A reference to the drive attachment. This is used with the Drive API.
+          &quot;driveFileId&quot;: &quot;A String&quot;, # The id for the drive file, for use with the Drive API.
+        },
+        &quot;thumbnailUri&quot;: &quot;A String&quot;, # Output only. The thumbnail URL which should be used to preview the attachment to a human user. Bots should not use this URL to download attachment content.
+        &quot;attachmentDataRef&quot;: { # A reference to the data of an attachment. # A reference to the attachment data. This is used with the media API to download the attachment data.
+          &quot;resourceName&quot;: &quot;A String&quot;, # The resource name of the attachment data. This is used with the media API to download the attachment data.
+        },
+        &quot;name&quot;: &quot;A String&quot;, # Resource name of the attachment, in the form &quot;spaces/*/messages/*/attachments/*&quot;.
+        &quot;contentType&quot;: &quot;A String&quot;, # The content type (MIME type) of the file.
+        &quot;contentName&quot;: &quot;A String&quot;, # The original file name for the content, not the full path.
+        &quot;source&quot;: &quot;A String&quot;, # The source of the attachment.
       },
-    }</pre>
+    ],
+    &quot;slashCommand&quot;: { # A Slash Command in Hangouts Chat. # Slash command information, if applicable.
+      &quot;commandId&quot;: &quot;A String&quot;, # The id of the slash command invoked.
+    },
+    &quot;sender&quot;: { # A user in Hangouts Chat. # The user who created the message.
+      &quot;displayName&quot;: &quot;A String&quot;, # The user&#x27;s display name.
+      &quot;type&quot;: &quot;A String&quot;, # User type.
+      &quot;name&quot;: &quot;A String&quot;, # Resource name, in the format &quot;users/*&quot;.
+      &quot;domainId&quot;: &quot;A String&quot;, # Obfuscated domain information.
+      &quot;isAnonymous&quot;: True or False, # True when the user is deleted or the user&#x27;s proifle is not visible.
+    },
+    &quot;fallbackText&quot;: &quot;A String&quot;, # A plain-text description of the message&#x27;s cards, used when the actual cards cannot be displayed (e.g. mobile notifications).
+  }</pre>
 </div>
 
 </body></html>
\ No newline at end of file