teams_rb 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +47 -0
  3. data/LICENSE +21 -0
  4. data/README.md +500 -0
  5. data/docs/README.md +40 -0
  6. data/docs/essentials/README.md +13 -0
  7. data/docs/essentials/api-client.md +62 -0
  8. data/docs/essentials/app-authentication.md +27 -0
  9. data/docs/essentials/app-basics.md +50 -0
  10. data/docs/essentials/graph.md +41 -0
  11. data/docs/essentials/on-activity.md +72 -0
  12. data/docs/essentials/on-event.md +29 -0
  13. data/docs/essentials/proactive-messaging.md +44 -0
  14. data/docs/essentials/sending-messages.md +76 -0
  15. data/docs/essentials/sovereign-cloud.md +26 -0
  16. data/docs/getting-started/README.md +7 -0
  17. data/docs/getting-started/code-basics.md +61 -0
  18. data/docs/getting-started/quickstart.md +54 -0
  19. data/docs/getting-started/running-in-teams.md +44 -0
  20. data/docs/in-depth-guides/README.md +14 -0
  21. data/docs/in-depth-guides/adaptive-cards.md +62 -0
  22. data/docs/in-depth-guides/dialogs.md +77 -0
  23. data/docs/in-depth-guides/feedback.md +29 -0
  24. data/docs/in-depth-guides/meeting-events.md +27 -0
  25. data/docs/in-depth-guides/message-extensions.md +77 -0
  26. data/docs/in-depth-guides/message-reactions.md +29 -0
  27. data/docs/in-depth-guides/observability.md +28 -0
  28. data/docs/in-depth-guides/streaming.md +52 -0
  29. data/docs/in-depth-guides/tabs.md +59 -0
  30. data/docs/in-depth-guides/user-authentication.md +60 -0
  31. data/lib/teams/activity.rb +160 -0
  32. data/lib/teams/activity_context.rb +278 -0
  33. data/lib/teams/api/account.rb +90 -0
  34. data/lib/teams/api/activity_value.rb +49 -0
  35. data/lib/teams/api/bot_sign_in_client.rb +54 -0
  36. data/lib/teams/api/channel_data.rb +86 -0
  37. data/lib/teams/api/channel_info.rb +19 -0
  38. data/lib/teams/api/citation_appearance.rb +83 -0
  39. data/lib/teams/api/client.rb +28 -0
  40. data/lib/teams/api/conversation_account.rb +40 -0
  41. data/lib/teams/api/conversation_client.rb +156 -0
  42. data/lib/teams/api/conversation_reference.rb +83 -0
  43. data/lib/teams/api/conversation_resource.rb +19 -0
  44. data/lib/teams/api/meeting_client.rb +57 -0
  45. data/lib/teams/api/meeting_info.rb +26 -0
  46. data/lib/teams/api/meeting_notification_response.rb +29 -0
  47. data/lib/teams/api/meeting_participant.rb +33 -0
  48. data/lib/teams/api/message_activity.rb +201 -0
  49. data/lib/teams/api/message_extension.rb +110 -0
  50. data/lib/teams/api/model.rb +49 -0
  51. data/lib/teams/api/notification_info.rb +28 -0
  52. data/lib/teams/api/paged_members_result.rb +16 -0
  53. data/lib/teams/api/quoted_reply_entity.rb +65 -0
  54. data/lib/teams/api/reaction_client.rb +34 -0
  55. data/lib/teams/api/sent_activity.rb +48 -0
  56. data/lib/teams/api/task_module.rb +83 -0
  57. data/lib/teams/api/team_client.rb +45 -0
  58. data/lib/teams/api/team_details.rb +36 -0
  59. data/lib/teams/api/team_info.rb +44 -0
  60. data/lib/teams/api/tenant_info.rb +11 -0
  61. data/lib/teams/api/token.rb +81 -0
  62. data/lib/teams/api/typing_activity.rb +19 -0
  63. data/lib/teams/api/user_client.rb +83 -0
  64. data/lib/teams/app.rb +602 -0
  65. data/lib/teams/auth/client_secret_credentials.rb +7 -0
  66. data/lib/teams/auth/jwt_validator.rb +148 -0
  67. data/lib/teams/auth/token.rb +39 -0
  68. data/lib/teams/auth/token_manager.rb +68 -0
  69. data/lib/teams/cards/generated.rb +1764 -0
  70. data/lib/teams/cards/generated_base.rb +105 -0
  71. data/lib/teams/cards.rb +81 -0
  72. data/lib/teams/cloud_environment.rb +41 -0
  73. data/lib/teams/common/hashes.rb +20 -0
  74. data/lib/teams/common/http_client.rb +111 -0
  75. data/lib/teams/common/retry.rb +31 -0
  76. data/lib/teams/errors.rb +50 -0
  77. data/lib/teams/function_context.rb +82 -0
  78. data/lib/teams/graph/client.rb +73 -0
  79. data/lib/teams/http_stream.rb +460 -0
  80. data/lib/teams/rack_app.rb +62 -0
  81. data/lib/teams/response.rb +9 -0
  82. data/lib/teams/router.rb +171 -0
  83. data/lib/teams/storage/memory_store.rb +27 -0
  84. data/lib/teams/version.rb +5 -0
  85. data/lib/teams.rb +70 -0
  86. metadata +217 -0
@@ -0,0 +1,1764 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Generated by script/generate_cards.rb from script/cards_ir.json.
4
+ # DO NOT EDIT MANUALLY - regenerate after upstream teams.py updates.
5
+
6
+ module Teams
7
+ module Cards
8
+
9
+ # Base class for all serializable objects.
10
+ class SerializableObject < GeneratedCard
11
+ end
12
+
13
+ # Base class for Action.
14
+ class Action < SerializableObject
15
+ end
16
+
17
+ # Defines a button as displayed when prompting a user to authenticate. For more information, refer to the [Bot Framework CardAction type](https://docs.microsoft.com/dotnet/api/microsoft.bot.schema.cardaction).
18
+ class AuthCardButton < SerializableObject
19
+ field :key, "key"
20
+ field :type, "type"
21
+ field :title, "title"
22
+ field :image, "image"
23
+ field :value, "value"
24
+ end
25
+
26
+ # Defines authentication information associated with a card. For more information, refer to the [Bot Framework OAuthCard type](https://docs.microsoft.com/dotnet/api/microsoft.bot.schema.oauthcard)
27
+ class Authentication < SerializableObject
28
+ field :key, "key"
29
+ field :text, "text"
30
+ field :connection_name, "connectionName"
31
+ field :buttons, "buttons"
32
+ field :token_exchange_resource, "tokenExchangeResource"
33
+ end
34
+
35
+ # Defines a container's background image and the way it should be rendered.
36
+ class BackgroundImage < SerializableObject
37
+ field :key, "key"
38
+ field :url, "url"
39
+ field :fill_mode, "fillMode", "Cover"
40
+ field :horizontal_alignment, "horizontalAlignment", "Left"
41
+ field :vertical_alignment, "verticalAlignment", "Top"
42
+ field :themed_urls, "themedUrls"
43
+ end
44
+
45
+ # A single data point in a bar chart.
46
+ class BarChartDataValue < SerializableObject
47
+ field :key, "key"
48
+ field :x, "x"
49
+ field :y, "y", 0
50
+ end
51
+
52
+ # Represents a calendar event attendee.
53
+ class CalendarEventAttendee < SerializableObject
54
+ field :key, "key"
55
+ field :name, "name"
56
+ field :email, "email"
57
+ field :title, "title"
58
+ field :type, "type"
59
+ field :status, "status"
60
+ end
61
+
62
+ # The properties of a calendar event.
63
+ class CalendarEventProperties < SerializableObject
64
+ field :key, "key"
65
+ field :id, "id"
66
+ field :title, "title"
67
+ field :start, "start"
68
+ field :end, "end"
69
+ field :status, "status"
70
+ field :locations, "locations"
71
+ field :online_meeting_url, "onlineMeetingUrl"
72
+ field :is_all_day, "isAllDay"
73
+ field :extension, "extension"
74
+ field :url, "url"
75
+ field :attendees, "attendees"
76
+ field :organizer, "organizer"
77
+ end
78
+
79
+ # Defines a source URL for a video captions.
80
+ class CaptionSource < SerializableObject
81
+ field :key, "key"
82
+ field :mime_type, "mimeType"
83
+ field :url, "url"
84
+ field :label, "label"
85
+ end
86
+
87
+ # Base class for CardElement.
88
+ class CardElement < SerializableObject
89
+ end
90
+
91
+ # Card-level metadata.
92
+ class CardMetadata < SerializableObject
93
+ field :key, "key"
94
+ field :web_url, "webUrl"
95
+ end
96
+
97
+ # A choice as used by the Input.ChoiceSet input.
98
+ class Choice < SerializableObject
99
+ field :key, "key"
100
+ field :title, "title"
101
+ field :value, "value"
102
+ end
103
+
104
+ # Data for invoking a collaboration stage action.
105
+ class CollabStageInvokeDataValue < SerializableObject
106
+ field :type, "type", "tab/tabInfoAction"
107
+ field :tab_info, "tabInfo"
108
+ end
109
+
110
+ # Defines a column in a Table element.
111
+ class ColumnDefinition < SerializableObject
112
+ field :key, "key"
113
+ field :horizontal_cell_content_alignment, "horizontalCellContentAlignment"
114
+ field :vertical_cell_content_alignment, "verticalCellContentAlignment"
115
+ field :width, "width"
116
+ end
117
+
118
+ # Base class for ContainerLayout.
119
+ class ContainerLayout < SerializableObject
120
+ end
121
+
122
+ # A data point in a Donut chart.
123
+ class DonutChartData < SerializableObject
124
+ field :key, "key"
125
+ field :legend, "legend"
126
+ field :value, "value", 0
127
+ field :color, "color"
128
+ end
129
+
130
+ # A fact in a FactSet element.
131
+ class Fact < SerializableObject
132
+ field :key, "key"
133
+ field :title, "title"
134
+ field :value, "value"
135
+ end
136
+
137
+ # Represents the properties of a file component.
138
+ class FileProperties < SerializableObject
139
+ field :key, "key"
140
+ field :name, "name"
141
+ field :extension, "extension"
142
+ field :url, "url"
143
+ end
144
+
145
+ # The legend of the chart.
146
+ class GaugeChartLegend < SerializableObject
147
+ field :key, "key"
148
+ field :size, "size", 0
149
+ field :legend, "legend"
150
+ field :color, "color"
151
+ end
152
+
153
+ # Defines an area in a Layout.AreaGrid layout.
154
+ class GridArea < SerializableObject
155
+ field :key, "key"
156
+ field :name, "name"
157
+ field :column, "column", 1
158
+ field :column_span, "columnSpan", 1
159
+ field :row, "row", 1
160
+ field :row_span, "rowSpan", 1
161
+ end
162
+
163
+ # Represents a series of data points.
164
+ class GroupedVerticalBarChartData < SerializableObject
165
+ field :key, "key"
166
+ field :legend, "legend"
167
+ field :values, "values"
168
+ field :color, "color"
169
+ end
170
+
171
+ # Represents a single data point in a horizontal bar chart.
172
+ class HorizontalBarChartDataValue < SerializableObject
173
+ field :key, "key"
174
+ field :x, "x"
175
+ field :y, "y", 0
176
+ field :color, "color"
177
+ end
178
+
179
+ # Represents a list of versioned capabilities a host application must support.
180
+ class HostCapabilities < SerializableObject
181
+ field :key, "key"
182
+ end
183
+
184
+ # Defines information about a Fluent icon and how it should be rendered.
185
+ class IconInfo < SerializableObject
186
+ field :key, "key"
187
+ field :name, "name"
188
+ field :size, "size", "xSmall"
189
+ field :style, "style", "Regular"
190
+ field :color, "color", "Default"
191
+ end
192
+
193
+ # Represents Teams-specific data in an Action.Submit to send an Instant Message back to the Bot.
194
+ class ImBackSubmitActionData < SerializableObject
195
+ field :key, "key"
196
+ field :type, "type", "imBack"
197
+ field :value, "value"
198
+ end
199
+
200
+ # Represents Teams-specific data in an Action.Submit to make an Invoke request to the Bot.
201
+ class InvokeSubmitActionData < SerializableObject
202
+ field :key, "key"
203
+ field :type, "type", "invoke"
204
+ field :value, "value"
205
+ end
206
+
207
+ # Represents a collection of data points series in a line chart.
208
+ class LineChartData < SerializableObject
209
+ field :key, "key"
210
+ field :legend, "legend"
211
+ field :values, "values"
212
+ field :color, "color"
213
+ end
214
+
215
+ # Represents a single data point in a line chart.
216
+ class LineChartValue < SerializableObject
217
+ field :key, "key"
218
+ field :x, "x"
219
+ field :y, "y", 0
220
+ end
221
+
222
+ # Defines the source URL of a media stream. YouTube, Dailymotion, Vimeo and Microsoft Stream URLs are supported.
223
+ class MediaSource < SerializableObject
224
+ field :key, "key"
225
+ field :mime_type, "mimeType"
226
+ field :url, "url"
227
+ end
228
+
229
+ # Represents a mention to a person.
230
+ class Mention < SerializableObject
231
+ field :key, "key"
232
+ field :type, "type", "mention"
233
+ field :text, "text"
234
+ field :mentioned, "mentioned"
235
+ end
236
+
237
+ # Represents a mentioned person or tag.
238
+ class MentionedEntity < SerializableObject
239
+ field :key, "key"
240
+ field :id, "id"
241
+ field :name, "name"
242
+ field :mention_type, "mentionType", "Person"
243
+ end
244
+
245
+ # Represents Teams-specific data in an Action.Submit to send a message back to the Bot.
246
+ class MessageBackSubmitActionData < SerializableObject
247
+ field :key, "key"
248
+ field :type, "type", "messageBack"
249
+ field :text, "text"
250
+ field :display_text, "displayText"
251
+ field :value, "value"
252
+ end
253
+
254
+ # Represents the properties of a Persona component.
255
+ class PersonaProperties < SerializableObject
256
+ field :key, "key"
257
+ field :id, "id"
258
+ field :user_principal_name, "userPrincipalName"
259
+ field :display_name, "displayName"
260
+ field :icon_style, "iconStyle"
261
+ field :style, "style"
262
+ end
263
+
264
+ # Represents the properties of a PersonaSet component.
265
+ class PersonaSetProperties < SerializableObject
266
+ field :key, "key"
267
+ field :users, "users"
268
+ field :icon_style, "iconStyle"
269
+ field :style, "style"
270
+ end
271
+
272
+ # Defines a query to dynamically fetch data from a Bot.
273
+ class QueryData < SerializableObject
274
+ field :key, "key"
275
+ field :type, "type", "Data.Query"
276
+ field :dataset, "dataset"
277
+ field :associated_inputs, "associatedInputs"
278
+ field :count, "count"
279
+ field :skip, "skip"
280
+ end
281
+
282
+ # Defines how a card can be refreshed by making a request to the target Bot.
283
+ class RefreshDefinition < SerializableObject
284
+ field :key, "key"
285
+ field :action, "action"
286
+ field :user_ids, "userIds"
287
+ end
288
+
289
+ # Represents the properties of a resource component.
290
+ class ResourceProperties < SerializableObject
291
+ field :key, "key"
292
+ field :id, "id"
293
+ field :resource_reference, "resourceReference"
294
+ field :resource_visualization, "resourceVisualization"
295
+ end
296
+
297
+ # Represents a visualization of a resource.
298
+ class ResourceVisualization < SerializableObject
299
+ field :key, "key"
300
+ field :media, "media"
301
+ end
302
+
303
+ # The resources that can be used in the body of the card.
304
+ class Resources < SerializableObject
305
+ field :key, "key"
306
+ field :strings, "strings"
307
+ end
308
+
309
+ # Represents Teams-specific data in an Action.Submit to sign in a user.
310
+ class SigninSubmitActionData < SerializableObject
311
+ field :key, "key"
312
+ field :type, "type", "signin"
313
+ field :value, "value"
314
+ end
315
+
316
+ # Defines the collection of data series to display in as a stacked horizontal bar chart.
317
+ class StackedHorizontalBarChartData < SerializableObject
318
+ field :key, "key"
319
+ field :title, "title"
320
+ field :data, "data"
321
+ end
322
+
323
+ # A data point in a series.
324
+ class StackedHorizontalBarChartDataPoint < SerializableObject
325
+ field :key, "key"
326
+ field :legend, "legend"
327
+ field :value, "value", 0
328
+ field :color, "color"
329
+ end
330
+
331
+ # Defines the replacement string values.
332
+ class StringResource < SerializableObject
333
+ field :key, "key"
334
+ field :default_value, "defaultValue"
335
+ field :localized_values, "localizedValues"
336
+ end
337
+
338
+ # Represents the data of an Action.Submit.
339
+ class SubmitActionData < SerializableObject
340
+ field :key, "key"
341
+ field :msteams, "msteams"
342
+ end
343
+
344
+ # Represents information about the iFrame content, rendered in the collab stage popout window.
345
+ class TabInfo < SerializableObject
346
+ field :name, "name"
347
+ field :content_url, "contentUrl"
348
+ field :entity_id, "entityId"
349
+ field :website_url, "websiteUrl"
350
+ end
351
+
352
+ # Defines a target element in an Action.ToggleVisibility.
353
+ class TargetElement < SerializableObject
354
+ field :element_id, "elementId"
355
+ field :is_visible, "isVisible"
356
+ end
357
+
358
+ # Represents Teams-specific data in an Action.Submit to open a task module.
359
+ class TaskFetchSubmitActionData < SerializableObject
360
+ field :key, "key"
361
+ field :type, "type", "task/fetch"
362
+ end
363
+
364
+ # Represents a set of Teams-specific properties on a card.
365
+ class TeamsCardProperties < SerializableObject
366
+ field :key, "key"
367
+ field :width, "width"
368
+ field :entities, "entities"
369
+ end
370
+
371
+ # Represents a set of Teams-specific properties on an image.
372
+ class TeamsImageProperties < SerializableObject
373
+ field :key, "key"
374
+ field :allow_expand, "allowExpand"
375
+ end
376
+
377
+ # Represents feedback options for an [Action.Submit](https://adaptivecards.microsoft.com/?topic=Action.Submit).
378
+ class TeamsSubmitActionFeedback < SerializableObject
379
+ field :key, "key"
380
+ field :hide, "hide"
381
+ end
382
+
383
+ # Teams-specific properties associated with the action.
384
+ class TeamsSubmitActionProperties < SerializableObject
385
+ field :key, "key"
386
+ field :feedback, "feedback"
387
+ end
388
+
389
+ # Defines a theme-specific URL.
390
+ class ThemedUrl < SerializableObject
391
+ field :key, "key"
392
+ field :theme, "theme", "Light"
393
+ field :url, "url"
394
+ end
395
+
396
+ # Defines information required to enable on-behalf-of single sign-on user authentication. For more information, refer to the [Bot Framework TokenExchangeResource type](https://docs.microsoft.com/dotnet/api/microsoft.bot.schema.tokenexchangeresource)
397
+ class TokenExchangeResource < SerializableObject
398
+ field :key, "key"
399
+ field :id, "id"
400
+ field :uri, "uri"
401
+ field :provider_id, "providerId"
402
+ end
403
+
404
+ # Represents a data point in a vertical bar chart.
405
+ class VerticalBarChartDataValue < SerializableObject
406
+ field :key, "key"
407
+ field :x, "x"
408
+ field :y, "y", 0
409
+ field :color, "color"
410
+ end
411
+
412
+ # Displays a set of action, which can be placed anywhere in the card.
413
+ class ActionSet < CardElement
414
+ field :key, "key"
415
+ field :type, "type", "ActionSet"
416
+ field :id, "id"
417
+ field :requires, "requires", {}, mutable: true
418
+ field :lang, "lang"
419
+ field :is_visible, "isVisible", true
420
+ field :separator, "separator", false
421
+ field :height, "height", "auto"
422
+ field :horizontal_alignment, "horizontalAlignment"
423
+ field :spacing, "spacing", "Default"
424
+ field :target_width, "targetWidth"
425
+ field :is_sort_key, "isSortKey", false
426
+ field :grid_area, "gridArea"
427
+ field :fallback, "fallback"
428
+ field :actions, "actions"
429
+ splat_field :actions
430
+ array_adder :add_action, :actions
431
+ end
432
+
433
+ # An Adaptive Card, containing a free-form body of card elements, and an optional set of actions.
434
+ class AdaptiveCard < CardElement
435
+ field :key, "key"
436
+ field :type, "type", "AdaptiveCard"
437
+ field :id, "id"
438
+ field :requires, "requires", {}, mutable: true
439
+ field :lang, "lang"
440
+ field :is_sort_key, "isSortKey", false
441
+ field :select_action, "selectAction"
442
+ field :style, "style"
443
+ field :layouts, "layouts"
444
+ field :min_height, "minHeight"
445
+ field :background_image, "backgroundImage"
446
+ field :vertical_content_alignment, "verticalContentAlignment"
447
+ field :rtl, "rtl"
448
+ field :ac_schema, "schema"
449
+ field :version, "version", "1.5"
450
+ field :fallback_text, "fallbackText"
451
+ field :speak, "speak"
452
+ field :refresh, "refresh"
453
+ field :authentication, "authentication"
454
+ field :msteams, "msteams"
455
+ field :metadata, "metadata"
456
+ field :resources, "resources"
457
+ field :grid_area, "gridArea"
458
+ field :fallback, "fallback"
459
+ field :body, "body"
460
+ field :actions, "actions"
461
+ splat_field :body
462
+ array_adder :add_item, :body
463
+ array_adder :add_action, :actions
464
+ end
465
+
466
+ # A layout that divides a container into named areas into which elements can be placed.
467
+ class AreaGridLayout < ContainerLayout
468
+ field :key, "key"
469
+ field :type, "type", "Layout.AreaGrid"
470
+ field :target_width, "targetWidth"
471
+ field :columns, "columns"
472
+ field :areas, "areas"
473
+ field :column_spacing, "columnSpacing", "Default"
474
+ field :row_spacing, "rowSpacing", "Default"
475
+ end
476
+
477
+ # A badge element to show an icon and/or text in a compact form over a colored background.
478
+ class Badge < CardElement
479
+ field :key, "key"
480
+ field :type, "type", "Badge"
481
+ field :id, "id"
482
+ field :requires, "requires", {}, mutable: true
483
+ field :lang, "lang"
484
+ field :is_visible, "isVisible", true
485
+ field :separator, "separator", false
486
+ field :height, "height", "auto"
487
+ field :horizontal_alignment, "horizontalAlignment"
488
+ field :spacing, "spacing", "Default"
489
+ field :target_width, "targetWidth"
490
+ field :is_sort_key, "isSortKey", false
491
+ field :text, "text"
492
+ field :icon, "icon"
493
+ field :icon_position, "iconPosition", "Before"
494
+ field :appearance, "appearance", "Filled"
495
+ field :size, "size", "Medium"
496
+ field :shape, "shape", "Circular"
497
+ field :style, "style", "Default"
498
+ field :tooltip, "tooltip"
499
+ field :grid_area, "gridArea"
500
+ field :fallback, "fallback"
501
+ end
502
+
503
+ # A carousel with sliding pages.
504
+ class Carousel < CardElement
505
+ field :key, "key"
506
+ field :type, "type", "Carousel"
507
+ field :id, "id"
508
+ field :requires, "requires", {}, mutable: true
509
+ field :lang, "lang"
510
+ field :is_visible, "isVisible", true
511
+ field :separator, "separator", false
512
+ field :height, "height", "auto"
513
+ field :spacing, "spacing", "Default"
514
+ field :target_width, "targetWidth"
515
+ field :is_sort_key, "isSortKey", false
516
+ field :bleed, "bleed", false
517
+ field :min_height, "minHeight"
518
+ field :page_animation, "pageAnimation", "Slide"
519
+ field :grid_area, "gridArea"
520
+ field :fallback, "fallback"
521
+ field :pages, "pages"
522
+ end
523
+
524
+ # A page inside a Carousel element.
525
+ class CarouselPage < CardElement
526
+ field :key, "key"
527
+ field :type, "type", "CarouselPage"
528
+ field :id, "id"
529
+ field :requires, "requires", {}, mutable: true
530
+ field :lang, "lang"
531
+ field :is_visible, "isVisible", true
532
+ field :height, "height", "auto"
533
+ field :target_width, "targetWidth"
534
+ field :is_sort_key, "isSortKey", false
535
+ field :select_action, "selectAction"
536
+ field :style, "style"
537
+ field :show_border, "showBorder", false
538
+ field :rounded_corners, "roundedCorners", false
539
+ field :layouts, "layouts"
540
+ field :min_height, "minHeight"
541
+ field :background_image, "backgroundImage"
542
+ field :vertical_content_alignment, "verticalContentAlignment"
543
+ field :rtl, "rtl"
544
+ field :max_height, "maxHeight"
545
+ field :grid_area, "gridArea"
546
+ field :fallback, "fallback"
547
+ field :items, "items"
548
+ end
549
+
550
+ # An input to allow the user to select one or more values.
551
+ class ChoiceSetInput < CardElement
552
+ field :key, "key"
553
+ field :type, "type", "Input.ChoiceSet"
554
+ field :id, "id"
555
+ field :requires, "requires", {}, mutable: true
556
+ field :lang, "lang"
557
+ field :is_visible, "isVisible", true
558
+ field :separator, "separator", false
559
+ field :height, "height", "auto"
560
+ field :spacing, "spacing", "Default"
561
+ field :target_width, "targetWidth"
562
+ field :is_sort_key, "isSortKey", false
563
+ field :label, "label"
564
+ field :is_required, "isRequired", false
565
+ field :error_message, "errorMessage"
566
+ field :value_changed_action, "valueChangedAction"
567
+ field :value, "value"
568
+ field :choices, "choices"
569
+ field :choices_data, "choices.data"
570
+ field :style, "style", "compact"
571
+ field :is_multi_select, "isMultiSelect", false
572
+ field :placeholder, "placeholder"
573
+ field :wrap, "wrap", true
574
+ field :use_multiple_columns, "useMultipleColumns", false
575
+ field :min_column_width, "minColumnWidth"
576
+ field :grid_area, "gridArea"
577
+ field :fallback, "fallback"
578
+ splat_field :choices
579
+ array_adder :add_choice, :choices
580
+ end
581
+
582
+ # A formatted and syntax-colored code block.
583
+ class CodeBlock < CardElement
584
+ field :key, "key"
585
+ field :type, "type", "CodeBlock"
586
+ field :id, "id"
587
+ field :requires, "requires", {}, mutable: true
588
+ field :lang, "lang"
589
+ field :is_visible, "isVisible", true
590
+ field :separator, "separator", false
591
+ field :height, "height", "auto"
592
+ field :horizontal_alignment, "horizontalAlignment"
593
+ field :spacing, "spacing", "Default"
594
+ field :target_width, "targetWidth"
595
+ field :is_sort_key, "isSortKey", false
596
+ field :code_snippet, "codeSnippet"
597
+ field :language, "language", "PlainText"
598
+ field :start_line_number, "startLineNumber", 1
599
+ field :grid_area, "gridArea"
600
+ field :fallback, "fallback"
601
+ end
602
+
603
+ # A column in a ColumnSet element.
604
+ class Column < CardElement
605
+ field :key, "key"
606
+ field :type, "type", "Column"
607
+ field :id, "id"
608
+ field :requires, "requires", {}, mutable: true
609
+ field :lang, "lang"
610
+ field :is_visible, "isVisible", true
611
+ field :separator, "separator", false
612
+ field :height, "height", "auto"
613
+ field :horizontal_alignment, "horizontalAlignment"
614
+ field :spacing, "spacing", "Default"
615
+ field :target_width, "targetWidth"
616
+ field :is_sort_key, "isSortKey", false
617
+ field :select_action, "selectAction"
618
+ field :style, "style"
619
+ field :show_border, "showBorder", false
620
+ field :rounded_corners, "roundedCorners", false
621
+ field :layouts, "layouts"
622
+ field :bleed, "bleed", false
623
+ field :min_height, "minHeight"
624
+ field :background_image, "backgroundImage"
625
+ field :vertical_content_alignment, "verticalContentAlignment"
626
+ field :rtl, "rtl"
627
+ field :max_height, "maxHeight"
628
+ field :width, "width"
629
+ field :grid_area, "gridArea"
630
+ field :fallback, "fallback"
631
+ field :items, "items"
632
+ end
633
+
634
+ # Splits the available horizontal space into separate columns, so elements can be organized in a row.
635
+ class ColumnSet < CardElement
636
+ field :key, "key"
637
+ field :type, "type", "ColumnSet"
638
+ field :id, "id"
639
+ field :requires, "requires", {}, mutable: true
640
+ field :lang, "lang"
641
+ field :is_visible, "isVisible", true
642
+ field :separator, "separator", false
643
+ field :height, "height", "auto"
644
+ field :horizontal_alignment, "horizontalAlignment"
645
+ field :spacing, "spacing", "Default"
646
+ field :target_width, "targetWidth"
647
+ field :is_sort_key, "isSortKey", false
648
+ field :select_action, "selectAction"
649
+ field :style, "style"
650
+ field :show_border, "showBorder", false
651
+ field :rounded_corners, "roundedCorners", false
652
+ field :bleed, "bleed", false
653
+ field :min_height, "minHeight"
654
+ field :min_width, "minWidth"
655
+ field :grid_area, "gridArea"
656
+ field :fallback, "fallback"
657
+ field :columns, "columns"
658
+ end
659
+
660
+ # Displays information about a calendar event.
661
+ class ComEventMicrosoftGraphComponent < CardElement
662
+ field :key, "key"
663
+ field :type, "type", "Component"
664
+ field :id, "id"
665
+ field :requires, "requires", {}, mutable: true
666
+ field :lang, "lang"
667
+ field :is_visible, "isVisible", true
668
+ field :separator, "separator", false
669
+ field :height, "height", "auto"
670
+ field :horizontal_alignment, "horizontalAlignment"
671
+ field :spacing, "spacing", "Default"
672
+ field :target_width, "targetWidth"
673
+ field :is_sort_key, "isSortKey", false
674
+ field :name, "name", "graph.microsoft.com/event"
675
+ field :properties, "properties"
676
+ field :grid_area, "gridArea"
677
+ field :fallback, "fallback"
678
+ end
679
+
680
+ # Displays information about a file resource.
681
+ class ComFileMicrosoftGraphComponent < CardElement
682
+ field :key, "key"
683
+ field :type, "type", "Component"
684
+ field :id, "id"
685
+ field :requires, "requires", {}, mutable: true
686
+ field :lang, "lang"
687
+ field :is_visible, "isVisible", true
688
+ field :separator, "separator", false
689
+ field :height, "height", "auto"
690
+ field :horizontal_alignment, "horizontalAlignment"
691
+ field :spacing, "spacing", "Default"
692
+ field :target_width, "targetWidth"
693
+ field :is_sort_key, "isSortKey", false
694
+ field :name, "name", "graph.microsoft.com/file"
695
+ field :properties, "properties"
696
+ field :grid_area, "gridArea"
697
+ field :fallback, "fallback"
698
+ end
699
+
700
+ # Displays information about a generic graph resource.
701
+ class ComResourceMicrosoftGraphComponent < CardElement
702
+ field :key, "key"
703
+ field :type, "type", "Component"
704
+ field :id, "id"
705
+ field :requires, "requires", {}, mutable: true
706
+ field :lang, "lang"
707
+ field :is_visible, "isVisible", true
708
+ field :separator, "separator", false
709
+ field :height, "height", "auto"
710
+ field :horizontal_alignment, "horizontalAlignment"
711
+ field :spacing, "spacing", "Default"
712
+ field :target_width, "targetWidth"
713
+ field :is_sort_key, "isSortKey", false
714
+ field :name, "name", "graph.microsoft.com/resource"
715
+ field :properties, "properties"
716
+ field :grid_area, "gridArea"
717
+ field :fallback, "fallback"
718
+ end
719
+
720
+ # Displays a user's information, including their profile picture.
721
+ class ComUserMicrosoftGraphComponent < CardElement
722
+ field :key, "key"
723
+ field :type, "type", "Component"
724
+ field :id, "id"
725
+ field :requires, "requires", {}, mutable: true
726
+ field :lang, "lang"
727
+ field :is_visible, "isVisible", true
728
+ field :separator, "separator", false
729
+ field :height, "height", "auto"
730
+ field :horizontal_alignment, "horizontalAlignment"
731
+ field :spacing, "spacing", "Default"
732
+ field :target_width, "targetWidth"
733
+ field :is_sort_key, "isSortKey", false
734
+ field :name, "name", "graph.microsoft.com/user"
735
+ field :properties, "properties"
736
+ field :grid_area, "gridArea"
737
+ field :fallback, "fallback"
738
+ end
739
+
740
+ # Displays multiple users' information, including their profile pictures.
741
+ class ComUsersMicrosoftGraphComponent < CardElement
742
+ field :key, "key"
743
+ field :type, "type", "Component"
744
+ field :id, "id"
745
+ field :requires, "requires", {}, mutable: true
746
+ field :lang, "lang"
747
+ field :is_visible, "isVisible", true
748
+ field :separator, "separator", false
749
+ field :height, "height", "auto"
750
+ field :horizontal_alignment, "horizontalAlignment"
751
+ field :spacing, "spacing", "Default"
752
+ field :target_width, "targetWidth"
753
+ field :is_sort_key, "isSortKey", false
754
+ field :name, "name", "graph.microsoft.com/users"
755
+ field :properties, "properties"
756
+ field :grid_area, "gridArea"
757
+ field :fallback, "fallback"
758
+ end
759
+
760
+ # A special type of button with an icon, title and description.
761
+ class CompoundButton < CardElement
762
+ field :key, "key"
763
+ field :type, "type", "CompoundButton"
764
+ field :id, "id"
765
+ field :requires, "requires", {}, mutable: true
766
+ field :lang, "lang"
767
+ field :is_visible, "isVisible", true
768
+ field :separator, "separator", false
769
+ field :height, "height", "auto"
770
+ field :horizontal_alignment, "horizontalAlignment"
771
+ field :spacing, "spacing", "Default"
772
+ field :target_width, "targetWidth"
773
+ field :is_sort_key, "isSortKey", false
774
+ field :icon, "icon"
775
+ field :badge, "badge"
776
+ field :title, "title"
777
+ field :description, "description"
778
+ field :select_action, "selectAction"
779
+ field :grid_area, "gridArea"
780
+ field :fallback, "fallback"
781
+ end
782
+
783
+ # A container for other elements. Use containers for styling purposes and/or to logically group a set of elements together, which can be especially useful when used with Action.ToggleVisibility.
784
+ class Container < CardElement
785
+ field :key, "key"
786
+ field :type, "type", "Container"
787
+ field :id, "id"
788
+ field :requires, "requires", {}, mutable: true
789
+ field :lang, "lang"
790
+ field :is_visible, "isVisible", true
791
+ field :separator, "separator", false
792
+ field :height, "height", "auto"
793
+ field :horizontal_alignment, "horizontalAlignment"
794
+ field :spacing, "spacing", "Default"
795
+ field :target_width, "targetWidth"
796
+ field :is_sort_key, "isSortKey", false
797
+ field :select_action, "selectAction"
798
+ field :style, "style"
799
+ field :show_border, "showBorder", false
800
+ field :rounded_corners, "roundedCorners", false
801
+ field :layouts, "layouts"
802
+ field :bleed, "bleed", false
803
+ field :min_height, "minHeight"
804
+ field :background_image, "backgroundImage"
805
+ field :vertical_content_alignment, "verticalContentAlignment"
806
+ field :rtl, "rtl"
807
+ field :max_height, "maxHeight"
808
+ field :grid_area, "gridArea"
809
+ field :fallback, "fallback"
810
+ field :items, "items"
811
+ end
812
+
813
+ # An input to allow the user to select a date.
814
+ class DateInput < CardElement
815
+ field :key, "key"
816
+ field :type, "type", "Input.Date"
817
+ field :id, "id"
818
+ field :requires, "requires", {}, mutable: true
819
+ field :lang, "lang"
820
+ field :is_visible, "isVisible", true
821
+ field :separator, "separator", false
822
+ field :height, "height", "auto"
823
+ field :spacing, "spacing", "Default"
824
+ field :target_width, "targetWidth"
825
+ field :is_sort_key, "isSortKey", false
826
+ field :label, "label"
827
+ field :is_required, "isRequired", false
828
+ field :error_message, "errorMessage"
829
+ field :value_changed_action, "valueChangedAction"
830
+ field :value, "value"
831
+ field :placeholder, "placeholder"
832
+ field :min, "min"
833
+ field :max, "max"
834
+ field :grid_area, "gridArea"
835
+ field :fallback, "fallback"
836
+ end
837
+
838
+ # A donut chart.
839
+ class DonutChart < CardElement
840
+ field :key, "key"
841
+ field :type, "type", "Chart.Donut"
842
+ field :id, "id"
843
+ field :requires, "requires", {}, mutable: true
844
+ field :lang, "lang"
845
+ field :is_visible, "isVisible", true
846
+ field :separator, "separator", false
847
+ field :height, "height", "auto"
848
+ field :horizontal_alignment, "horizontalAlignment"
849
+ field :spacing, "spacing", "Default"
850
+ field :target_width, "targetWidth"
851
+ field :is_sort_key, "isSortKey", false
852
+ field :title, "title"
853
+ field :show_title, "showTitle", false
854
+ field :color_set, "colorSet"
855
+ field :max_width, "maxWidth"
856
+ field :show_legend, "showLegend", true
857
+ field :data, "data"
858
+ field :value, "value"
859
+ field :value_color, "valueColor"
860
+ field :thickness, "thickness"
861
+ field :show_outlines, "showOutlines", true
862
+ field :grid_area, "gridArea"
863
+ field :fallback, "fallback"
864
+ end
865
+
866
+ # Gathers input values, merges them with the data property if specified, and sends them to the Bot via an Invoke activity. The Bot can respond synchronously and return an updated Adaptive Card to be displayed by the client. Action.Execute works in all Adaptive Card hosts.
867
+ class ExecuteAction < Action
868
+ field :key, "key"
869
+ field :type, "type", "Action.Execute"
870
+ field :id, "id"
871
+ field :requires, "requires", {}, mutable: true
872
+ field :title, "title"
873
+ field :icon_url, "iconUrl"
874
+ field :style, "style", "default"
875
+ field :mode, "mode", "primary"
876
+ field :tooltip, "tooltip"
877
+ field :is_enabled, "isEnabled", true
878
+ field :menu_actions, "menuActions"
879
+ field :themed_icon_urls, "themedIconUrls"
880
+ field :data, "data"
881
+ field :associated_inputs, "associatedInputs"
882
+ field :conditionally_enabled, "conditionallyEnabled", false
883
+ field :verb, "verb"
884
+ field :fallback, "fallback"
885
+ end
886
+
887
+ # A set of facts, displayed as a table or a vertical list when horizontal space is constrained.
888
+ class FactSet < CardElement
889
+ field :key, "key"
890
+ field :type, "type", "FactSet"
891
+ field :id, "id"
892
+ field :requires, "requires", {}, mutable: true
893
+ field :lang, "lang"
894
+ field :is_visible, "isVisible", true
895
+ field :separator, "separator", false
896
+ field :height, "height", "auto"
897
+ field :spacing, "spacing", "Default"
898
+ field :target_width, "targetWidth"
899
+ field :is_sort_key, "isSortKey", false
900
+ field :facts, "facts"
901
+ field :grid_area, "gridArea"
902
+ field :fallback, "fallback"
903
+ end
904
+
905
+ # A layout that spreads elements horizontally and wraps them across multiple rows, as needed.
906
+ class FlowLayout < ContainerLayout
907
+ field :key, "key"
908
+ field :type, "type", "Layout.Flow"
909
+ field :target_width, "targetWidth"
910
+ field :horizontal_items_alignment, "horizontalItemsAlignment", "Center"
911
+ field :vertical_items_alignment, "verticalItemsAlignment", "Top"
912
+ field :item_fit, "itemFit", "Fit"
913
+ field :min_item_width, "minItemWidth"
914
+ field :max_item_width, "maxItemWidth"
915
+ field :item_width, "itemWidth"
916
+ field :column_spacing, "columnSpacing", "Default"
917
+ field :row_spacing, "rowSpacing", "Default"
918
+ end
919
+
920
+ # A gauge chart.
921
+ class GaugeChart < CardElement
922
+ field :key, "key"
923
+ field :type, "type", "Chart.Gauge"
924
+ field :id, "id"
925
+ field :requires, "requires", {}, mutable: true
926
+ field :lang, "lang"
927
+ field :is_visible, "isVisible", true
928
+ field :separator, "separator", false
929
+ field :height, "height", "auto"
930
+ field :horizontal_alignment, "horizontalAlignment"
931
+ field :spacing, "spacing", "Default"
932
+ field :target_width, "targetWidth"
933
+ field :is_sort_key, "isSortKey", false
934
+ field :title, "title"
935
+ field :show_title, "showTitle", false
936
+ field :color_set, "colorSet"
937
+ field :max_width, "maxWidth"
938
+ field :show_legend, "showLegend", true
939
+ field :min, "min", 0
940
+ field :max, "max"
941
+ field :sub_label, "subLabel"
942
+ field :show_min_max, "showMinMax", true
943
+ field :show_needle, "showNeedle", true
944
+ field :show_outlines, "showOutlines", true
945
+ field :segments, "segments"
946
+ field :value, "value", 0
947
+ field :value_format, "valueFormat", "Percentage"
948
+ field :grid_area, "gridArea"
949
+ field :fallback, "fallback"
950
+ end
951
+
952
+ # A grouped vertical bar chart.
953
+ class GroupedVerticalBarChart < CardElement
954
+ field :key, "key"
955
+ field :type, "type", "Chart.VerticalBar.Grouped"
956
+ field :id, "id"
957
+ field :requires, "requires", {}, mutable: true
958
+ field :lang, "lang"
959
+ field :is_visible, "isVisible", true
960
+ field :separator, "separator", false
961
+ field :height, "height", "auto"
962
+ field :horizontal_alignment, "horizontalAlignment"
963
+ field :spacing, "spacing", "Default"
964
+ field :target_width, "targetWidth"
965
+ field :is_sort_key, "isSortKey", false
966
+ field :title, "title"
967
+ field :show_title, "showTitle", false
968
+ field :color_set, "colorSet"
969
+ field :max_width, "maxWidth"
970
+ field :show_legend, "showLegend", true
971
+ field :x_axis_title, "xAxisTitle"
972
+ field :y_axis_title, "yAxisTitle"
973
+ field :color, "color"
974
+ field :stacked, "stacked", false
975
+ field :data, "data"
976
+ field :show_bar_values, "showBarValues", false
977
+ field :y_min, "yMin"
978
+ field :y_max, "yMax"
979
+ field :grid_area, "gridArea"
980
+ field :fallback, "fallback"
981
+ end
982
+
983
+ # A horizontal bar chart.
984
+ class HorizontalBarChart < CardElement
985
+ field :key, "key"
986
+ field :type, "type", "Chart.HorizontalBar"
987
+ field :id, "id"
988
+ field :requires, "requires", {}, mutable: true
989
+ field :lang, "lang"
990
+ field :is_visible, "isVisible", true
991
+ field :separator, "separator", false
992
+ field :height, "height", "auto"
993
+ field :horizontal_alignment, "horizontalAlignment"
994
+ field :spacing, "spacing", "Default"
995
+ field :target_width, "targetWidth"
996
+ field :is_sort_key, "isSortKey", false
997
+ field :title, "title"
998
+ field :show_title, "showTitle", false
999
+ field :color_set, "colorSet"
1000
+ field :max_width, "maxWidth"
1001
+ field :show_legend, "showLegend", true
1002
+ field :x_axis_title, "xAxisTitle"
1003
+ field :y_axis_title, "yAxisTitle"
1004
+ field :color, "color"
1005
+ field :data, "data"
1006
+ field :display_mode, "displayMode", "AbsoluteWithAxis"
1007
+ field :grid_area, "gridArea"
1008
+ field :fallback, "fallback"
1009
+ end
1010
+
1011
+ # A standalone icon element. Icons can be picked from the vast [Adaptive Card icon catalog](https://adaptivecards.microsoft.com/?topic=icon-catalog).
1012
+ class Icon < CardElement
1013
+ field :key, "key"
1014
+ field :type, "type", "Icon"
1015
+ field :id, "id"
1016
+ field :requires, "requires", {}, mutable: true
1017
+ field :lang, "lang"
1018
+ field :is_visible, "isVisible", true
1019
+ field :separator, "separator", false
1020
+ field :horizontal_alignment, "horizontalAlignment"
1021
+ field :spacing, "spacing", "Default"
1022
+ field :target_width, "targetWidth"
1023
+ field :is_sort_key, "isSortKey", false
1024
+ field :name, "name"
1025
+ field :size, "size", "Standard"
1026
+ field :style, "style", "Regular"
1027
+ field :color, "color", "Default"
1028
+ field :select_action, "selectAction"
1029
+ field :grid_area, "gridArea"
1030
+ field :fallback, "fallback"
1031
+ end
1032
+
1033
+ # An inline icon inside a RichTextBlock element.
1034
+ class IconRun < CardElement
1035
+ field :key, "key"
1036
+ field :type, "type", "IconRun"
1037
+ field :id, "id"
1038
+ field :lang, "lang"
1039
+ field :is_visible, "isVisible", true
1040
+ field :is_sort_key, "isSortKey", false
1041
+ field :name, "name"
1042
+ field :size, "size", "Default"
1043
+ field :style, "style", "Regular"
1044
+ field :color, "color", "Default"
1045
+ field :select_action, "selectAction"
1046
+ field :grid_area, "gridArea"
1047
+ field :fallback, "fallback"
1048
+ end
1049
+
1050
+ # A standalone image element.
1051
+ class Image < CardElement
1052
+ field :key, "key"
1053
+ field :type, "type", "Image"
1054
+ field :id, "id"
1055
+ field :requires, "requires", {}, mutable: true
1056
+ field :lang, "lang"
1057
+ field :is_visible, "isVisible", true
1058
+ field :separator, "separator", false
1059
+ field :horizontal_alignment, "horizontalAlignment"
1060
+ field :spacing, "spacing", "Default"
1061
+ field :target_width, "targetWidth"
1062
+ field :is_sort_key, "isSortKey", false
1063
+ field :url, "url"
1064
+ field :alt_text, "altText"
1065
+ field :background_color, "backgroundColor"
1066
+ field :style, "style", "Default"
1067
+ field :size, "size", "Auto"
1068
+ field :width, "width", "auto"
1069
+ field :select_action, "selectAction"
1070
+ field :allow_expand, "allowExpand", false
1071
+ field :msteams, "msteams"
1072
+ field :themed_urls, "themedUrls"
1073
+ field :fit_mode, "fitMode", "Fill"
1074
+ field :horizontal_content_alignment, "horizontalContentAlignment", "Left"
1075
+ field :vertical_content_alignment, "verticalContentAlignment", "Top"
1076
+ field :height, "height", "auto"
1077
+ field :grid_area, "gridArea"
1078
+ field :fallback, "fallback"
1079
+ end
1080
+
1081
+ # An inline image inside a RichTextBlock element.
1082
+ class ImageRun < CardElement
1083
+ field :key, "key"
1084
+ field :type, "type", "ImageRun"
1085
+ field :id, "id"
1086
+ field :lang, "lang"
1087
+ field :is_visible, "isVisible", true
1088
+ field :is_sort_key, "isSortKey", false
1089
+ field :url, "url"
1090
+ field :size, "size", "Default"
1091
+ field :style, "style", "Default"
1092
+ field :select_action, "selectAction"
1093
+ field :themed_urls, "themedUrls"
1094
+ field :grid_area, "gridArea"
1095
+ field :fallback, "fallback"
1096
+ end
1097
+
1098
+ # A set of images, displayed side-by-side and wrapped across multiple rows as needed.
1099
+ class ImageSet < CardElement
1100
+ field :key, "key"
1101
+ field :type, "type", "ImageSet"
1102
+ field :id, "id"
1103
+ field :requires, "requires", {}, mutable: true
1104
+ field :lang, "lang"
1105
+ field :is_visible, "isVisible", true
1106
+ field :separator, "separator", false
1107
+ field :height, "height", "auto"
1108
+ field :horizontal_alignment, "horizontalAlignment"
1109
+ field :spacing, "spacing", "Default"
1110
+ field :target_width, "targetWidth"
1111
+ field :is_sort_key, "isSortKey", false
1112
+ field :images, "images"
1113
+ field :image_size, "imageSize", "Medium"
1114
+ field :grid_area, "gridArea"
1115
+ field :fallback, "fallback"
1116
+ end
1117
+
1118
+ # Inserts an image into the host application's canvas.
1119
+ class InsertImageAction < Action
1120
+ field :key, "key"
1121
+ field :type, "type", "Action.InsertImage"
1122
+ field :id, "id"
1123
+ field :requires, "requires", {}, mutable: true
1124
+ field :title, "title"
1125
+ field :icon_url, "iconUrl"
1126
+ field :style, "style", "default"
1127
+ field :mode, "mode", "primary"
1128
+ field :tooltip, "tooltip"
1129
+ field :is_enabled, "isEnabled", true
1130
+ field :menu_actions, "menuActions"
1131
+ field :themed_icon_urls, "themedIconUrls"
1132
+ field :url, "url"
1133
+ field :alt_text, "altText"
1134
+ field :insert_position, "insertPosition", "Selection"
1135
+ field :fallback, "fallback"
1136
+ end
1137
+
1138
+ # A line chart.
1139
+ class LineChart < CardElement
1140
+ field :key, "key"
1141
+ field :type, "type", "Chart.Line"
1142
+ field :id, "id"
1143
+ field :requires, "requires", {}, mutable: true
1144
+ field :lang, "lang"
1145
+ field :is_visible, "isVisible", true
1146
+ field :separator, "separator", false
1147
+ field :height, "height", "auto"
1148
+ field :horizontal_alignment, "horizontalAlignment"
1149
+ field :spacing, "spacing", "Default"
1150
+ field :target_width, "targetWidth"
1151
+ field :is_sort_key, "isSortKey", false
1152
+ field :title, "title"
1153
+ field :show_title, "showTitle", false
1154
+ field :color_set, "colorSet"
1155
+ field :max_width, "maxWidth"
1156
+ field :show_legend, "showLegend", true
1157
+ field :x_axis_title, "xAxisTitle"
1158
+ field :y_axis_title, "yAxisTitle"
1159
+ field :color, "color"
1160
+ field :data, "data"
1161
+ field :y_min, "yMin"
1162
+ field :y_max, "yMax"
1163
+ field :grid_area, "gridArea"
1164
+ field :fallback, "fallback"
1165
+ end
1166
+
1167
+ # A media element, that makes it possible to embed videos inside a card.
1168
+ class Media < CardElement
1169
+ field :key, "key"
1170
+ field :type, "type", "Media"
1171
+ field :id, "id"
1172
+ field :requires, "requires", {}, mutable: true
1173
+ field :lang, "lang"
1174
+ field :is_visible, "isVisible", true
1175
+ field :separator, "separator", false
1176
+ field :height, "height", "auto"
1177
+ field :spacing, "spacing", "Default"
1178
+ field :target_width, "targetWidth"
1179
+ field :is_sort_key, "isSortKey", false
1180
+ field :sources, "sources"
1181
+ field :caption_sources, "captionSources"
1182
+ field :poster, "poster"
1183
+ field :alt_text, "altText"
1184
+ field :grid_area, "gridArea"
1185
+ field :fallback, "fallback"
1186
+ end
1187
+
1188
+ # An input to allow the user to enter a number.
1189
+ class NumberInput < CardElement
1190
+ field :key, "key"
1191
+ field :type, "type", "Input.Number"
1192
+ field :id, "id"
1193
+ field :requires, "requires", {}, mutable: true
1194
+ field :lang, "lang"
1195
+ field :is_visible, "isVisible", true
1196
+ field :separator, "separator", false
1197
+ field :height, "height", "auto"
1198
+ field :spacing, "spacing", "Default"
1199
+ field :target_width, "targetWidth"
1200
+ field :is_sort_key, "isSortKey", false
1201
+ field :label, "label"
1202
+ field :is_required, "isRequired", false
1203
+ field :error_message, "errorMessage"
1204
+ field :value_changed_action, "valueChangedAction"
1205
+ field :value, "value"
1206
+ field :placeholder, "placeholder"
1207
+ field :min, "min"
1208
+ field :max, "max"
1209
+ field :grid_area, "gridArea"
1210
+ field :fallback, "fallback"
1211
+ end
1212
+
1213
+ # Opens the provided URL in either a separate browser tab or within the host application.
1214
+ class OpenUrlAction < Action
1215
+ field :key, "key"
1216
+ field :type, "type", "Action.OpenUrl"
1217
+ field :id, "id"
1218
+ field :requires, "requires", {}, mutable: true
1219
+ field :title, "title"
1220
+ field :icon_url, "iconUrl"
1221
+ field :style, "style", "default"
1222
+ field :mode, "mode", "primary"
1223
+ field :tooltip, "tooltip"
1224
+ field :is_enabled, "isEnabled", true
1225
+ field :menu_actions, "menuActions"
1226
+ field :themed_icon_urls, "themedIconUrls"
1227
+ field :url, "url"
1228
+ field :fallback, "fallback"
1229
+ positional_field :url
1230
+ end
1231
+
1232
+ # Opens a task module in a modal dialog hosting the content at a provided URL.
1233
+ class OpenUrlDialogAction < Action
1234
+ field :key, "key"
1235
+ field :type, "type", "Action.OpenUrlDialog"
1236
+ field :id, "id"
1237
+ field :requires, "requires", {}, mutable: true
1238
+ field :title, "title"
1239
+ field :icon_url, "iconUrl"
1240
+ field :style, "style", "default"
1241
+ field :mode, "mode", "primary"
1242
+ field :tooltip, "tooltip"
1243
+ field :is_enabled, "isEnabled", true
1244
+ field :menu_actions, "menuActions"
1245
+ field :themed_icon_urls, "themedIconUrls"
1246
+ field :dialog_title, "dialogTitle"
1247
+ field :dialog_height, "dialogHeight"
1248
+ field :dialog_width, "dialogWidth"
1249
+ field :url, "url"
1250
+ field :fallback, "fallback"
1251
+ end
1252
+
1253
+ # A pie chart.
1254
+ class PieChart < CardElement
1255
+ field :key, "key"
1256
+ field :type, "type", "Chart.Pie"
1257
+ field :id, "id"
1258
+ field :requires, "requires", {}, mutable: true
1259
+ field :lang, "lang"
1260
+ field :is_visible, "isVisible", true
1261
+ field :separator, "separator", false
1262
+ field :height, "height", "auto"
1263
+ field :horizontal_alignment, "horizontalAlignment"
1264
+ field :spacing, "spacing", "Default"
1265
+ field :target_width, "targetWidth"
1266
+ field :is_sort_key, "isSortKey", false
1267
+ field :title, "title"
1268
+ field :show_title, "showTitle", false
1269
+ field :color_set, "colorSet"
1270
+ field :max_width, "maxWidth"
1271
+ field :show_legend, "showLegend", true
1272
+ field :data, "data"
1273
+ field :value, "value"
1274
+ field :value_color, "valueColor"
1275
+ field :thickness, "thickness"
1276
+ field :show_outlines, "showOutlines", true
1277
+ field :grid_area, "gridArea"
1278
+ field :fallback, "fallback"
1279
+ end
1280
+
1281
+ # Shows a popover to display more information to the user.
1282
+ class PopoverAction < Action
1283
+ field :key, "key"
1284
+ field :type, "type", "Action.Popover"
1285
+ field :id, "id"
1286
+ field :requires, "requires", {}, mutable: true
1287
+ field :title, "title"
1288
+ field :icon_url, "iconUrl"
1289
+ field :style, "style", "default"
1290
+ field :mode, "mode", "primary"
1291
+ field :tooltip, "tooltip"
1292
+ field :is_enabled, "isEnabled", true
1293
+ field :themed_icon_urls, "themedIconUrls"
1294
+ field :content, "content"
1295
+ field :display_arrow, "displayArrow", true
1296
+ field :position, "position", "Above"
1297
+ field :max_popover_width, "maxPopoverWidth"
1298
+ field :fallback, "fallback"
1299
+ end
1300
+
1301
+ # A progress bar element, to represent a value within a range.
1302
+ class ProgressBar < CardElement
1303
+ field :key, "key"
1304
+ field :type, "type", "ProgressBar"
1305
+ field :id, "id"
1306
+ field :requires, "requires", {}, mutable: true
1307
+ field :lang, "lang"
1308
+ field :is_visible, "isVisible", true
1309
+ field :separator, "separator", false
1310
+ field :height, "height", "auto"
1311
+ field :horizontal_alignment, "horizontalAlignment"
1312
+ field :spacing, "spacing", "Default"
1313
+ field :target_width, "targetWidth"
1314
+ field :is_sort_key, "isSortKey", false
1315
+ field :value, "value"
1316
+ field :max, "max", 100
1317
+ field :color, "color", "Accent"
1318
+ field :grid_area, "gridArea"
1319
+ field :fallback, "fallback"
1320
+ end
1321
+
1322
+ # A spinning ring element, to indicate progress.
1323
+ class ProgressRing < CardElement
1324
+ field :key, "key"
1325
+ field :type, "type", "ProgressRing"
1326
+ field :id, "id"
1327
+ field :requires, "requires", {}, mutable: true
1328
+ field :lang, "lang"
1329
+ field :is_visible, "isVisible", true
1330
+ field :separator, "separator", false
1331
+ field :height, "height", "auto"
1332
+ field :horizontal_alignment, "horizontalAlignment"
1333
+ field :spacing, "spacing", "Default"
1334
+ field :target_width, "targetWidth"
1335
+ field :is_sort_key, "isSortKey", false
1336
+ field :label, "label"
1337
+ field :label_position, "labelPosition", "Below"
1338
+ field :size, "size", "Medium"
1339
+ field :grid_area, "gridArea"
1340
+ field :fallback, "fallback"
1341
+ end
1342
+
1343
+ # A read-only star rating element, to display the rating of something.
1344
+ class Rating < CardElement
1345
+ field :key, "key"
1346
+ field :type, "type", "Rating"
1347
+ field :id, "id"
1348
+ field :requires, "requires", {}, mutable: true
1349
+ field :lang, "lang"
1350
+ field :is_visible, "isVisible", true
1351
+ field :separator, "separator", false
1352
+ field :height, "height", "auto"
1353
+ field :horizontal_alignment, "horizontalAlignment"
1354
+ field :spacing, "spacing", "Default"
1355
+ field :target_width, "targetWidth"
1356
+ field :is_sort_key, "isSortKey", false
1357
+ field :value, "value"
1358
+ field :count, "count"
1359
+ field :max, "max", 5
1360
+ field :size, "size", "Large"
1361
+ field :color, "color", "Neutral"
1362
+ field :style, "style", "Default"
1363
+ field :grid_area, "gridArea"
1364
+ field :fallback, "fallback"
1365
+ end
1366
+
1367
+ # An input to allow the user to rate something using stars.
1368
+ class RatingInput < CardElement
1369
+ field :key, "key"
1370
+ field :type, "type", "Input.Rating"
1371
+ field :id, "id"
1372
+ field :requires, "requires", {}, mutable: true
1373
+ field :lang, "lang"
1374
+ field :is_visible, "isVisible", true
1375
+ field :separator, "separator", false
1376
+ field :height, "height", "auto"
1377
+ field :spacing, "spacing", "Default"
1378
+ field :target_width, "targetWidth"
1379
+ field :is_sort_key, "isSortKey", false
1380
+ field :label, "label"
1381
+ field :is_required, "isRequired", false
1382
+ field :error_message, "errorMessage"
1383
+ field :value_changed_action, "valueChangedAction"
1384
+ field :value, "value"
1385
+ field :max, "max", 5
1386
+ field :allow_half_steps, "allowHalfSteps", false
1387
+ field :size, "size", "Large"
1388
+ field :color, "color", "Neutral"
1389
+ field :grid_area, "gridArea"
1390
+ field :fallback, "fallback"
1391
+ end
1392
+
1393
+ # Resets the values of the inputs in the card.
1394
+ class ResetInputsAction < Action
1395
+ field :key, "key"
1396
+ field :type, "type", "Action.ResetInputs"
1397
+ field :id, "id"
1398
+ field :requires, "requires", {}, mutable: true
1399
+ field :title, "title"
1400
+ field :icon_url, "iconUrl"
1401
+ field :style, "style", "default"
1402
+ field :mode, "mode", "primary"
1403
+ field :tooltip, "tooltip"
1404
+ field :is_enabled, "isEnabled", true
1405
+ field :menu_actions, "menuActions"
1406
+ field :themed_icon_urls, "themedIconUrls"
1407
+ field :target_input_ids, "targetInputIds"
1408
+ field :fallback, "fallback"
1409
+ end
1410
+
1411
+ # A rich text block that displays formatted text.
1412
+ class RichTextBlock < CardElement
1413
+ field :key, "key"
1414
+ field :type, "type", "RichTextBlock"
1415
+ field :id, "id"
1416
+ field :requires, "requires", {}, mutable: true
1417
+ field :lang, "lang"
1418
+ field :is_visible, "isVisible", true
1419
+ field :separator, "separator", false
1420
+ field :height, "height", "auto"
1421
+ field :horizontal_alignment, "horizontalAlignment"
1422
+ field :spacing, "spacing", "Default"
1423
+ field :target_width, "targetWidth"
1424
+ field :is_sort_key, "isSortKey", false
1425
+ field :label_for, "labelFor"
1426
+ field :grid_area, "gridArea"
1427
+ field :fallback, "fallback"
1428
+ field :inlines, "inlines"
1429
+ end
1430
+
1431
+ # Expands or collapses an embedded card within the main card.
1432
+ class ShowCardAction < Action
1433
+ field :key, "key"
1434
+ field :type, "type", "Action.ShowCard"
1435
+ field :id, "id"
1436
+ field :requires, "requires", {}, mutable: true
1437
+ field :title, "title"
1438
+ field :icon_url, "iconUrl"
1439
+ field :style, "style", "default"
1440
+ field :mode, "mode", "primary"
1441
+ field :tooltip, "tooltip"
1442
+ field :is_enabled, "isEnabled", true
1443
+ field :menu_actions, "menuActions"
1444
+ field :themed_icon_urls, "themedIconUrls"
1445
+ field :fallback, "fallback"
1446
+ field :card, "card"
1447
+ end
1448
+
1449
+ # A layout that stacks elements on top of each other. Layout.Stack is the default layout used by AdaptiveCard and all containers.
1450
+ class StackLayout < ContainerLayout
1451
+ field :key, "key"
1452
+ field :type, "type", "Layout.Stack"
1453
+ field :target_width, "targetWidth"
1454
+ end
1455
+
1456
+ # A stacked horizontal bar chart.
1457
+ class StackedHorizontalBarChart < CardElement
1458
+ field :key, "key"
1459
+ field :type, "type", "Chart.HorizontalBar.Stacked"
1460
+ field :id, "id"
1461
+ field :requires, "requires", {}, mutable: true
1462
+ field :lang, "lang"
1463
+ field :is_visible, "isVisible", true
1464
+ field :separator, "separator", false
1465
+ field :height, "height", "auto"
1466
+ field :horizontal_alignment, "horizontalAlignment"
1467
+ field :spacing, "spacing", "Default"
1468
+ field :target_width, "targetWidth"
1469
+ field :is_sort_key, "isSortKey", false
1470
+ field :title, "title"
1471
+ field :show_title, "showTitle", false
1472
+ field :color_set, "colorSet"
1473
+ field :max_width, "maxWidth"
1474
+ field :show_legend, "showLegend", true
1475
+ field :x_axis_title, "xAxisTitle"
1476
+ field :y_axis_title, "yAxisTitle"
1477
+ field :color, "color"
1478
+ field :data, "data"
1479
+ field :grid_area, "gridArea"
1480
+ field :fallback, "fallback"
1481
+ end
1482
+
1483
+ # Gathers input values, merges them with the data property if specified, and sends them to the Bot via an Invoke activity. The Bot can only acknowledge is has received the request.
1484
+ class SubmitAction < Action
1485
+ field :key, "key"
1486
+ field :type, "type", "Action.Submit"
1487
+ field :id, "id"
1488
+ field :requires, "requires", {}, mutable: true
1489
+ field :title, "title"
1490
+ field :icon_url, "iconUrl"
1491
+ field :style, "style", "default"
1492
+ field :mode, "mode", "primary"
1493
+ field :tooltip, "tooltip"
1494
+ field :is_enabled, "isEnabled", true
1495
+ field :menu_actions, "menuActions"
1496
+ field :themed_icon_urls, "themedIconUrls"
1497
+ field :data, "data"
1498
+ field :associated_inputs, "associatedInputs"
1499
+ field :conditionally_enabled, "conditionallyEnabled", false
1500
+ field :msteams, "msteams"
1501
+ field :fallback, "fallback"
1502
+ end
1503
+
1504
+ # Use tables to display data in a tabular way, with rows, columns and cells.
1505
+ class Table < CardElement
1506
+ field :key, "key"
1507
+ field :type, "type", "Table"
1508
+ field :id, "id"
1509
+ field :requires, "requires", {}, mutable: true
1510
+ field :lang, "lang"
1511
+ field :is_visible, "isVisible", true
1512
+ field :separator, "separator", false
1513
+ field :height, "height", "auto"
1514
+ field :horizontal_alignment, "horizontalAlignment"
1515
+ field :spacing, "spacing", "Default"
1516
+ field :target_width, "targetWidth"
1517
+ field :is_sort_key, "isSortKey", false
1518
+ field :style, "style"
1519
+ field :show_border, "showBorder", false
1520
+ field :rounded_corners, "roundedCorners", false
1521
+ field :columns, "columns"
1522
+ field :min_width, "minWidth"
1523
+ field :first_row_as_headers, "firstRowAsHeaders", true
1524
+ field :show_grid_lines, "showGridLines", true
1525
+ field :grid_style, "gridStyle"
1526
+ field :horizontal_cell_content_alignment, "horizontalCellContentAlignment"
1527
+ field :vertical_cell_content_alignment, "verticalCellContentAlignment"
1528
+ field :grid_area, "gridArea"
1529
+ field :fallback, "fallback"
1530
+ field :rows, "rows"
1531
+ end
1532
+
1533
+ # Represents a cell in a table row.
1534
+ class TableCell < CardElement
1535
+ field :key, "key"
1536
+ field :type, "type", "TableCell"
1537
+ field :id, "id"
1538
+ field :requires, "requires", {}, mutable: true
1539
+ field :lang, "lang"
1540
+ field :is_visible, "isVisible", true
1541
+ field :separator, "separator", false
1542
+ field :height, "height", "auto"
1543
+ field :spacing, "spacing", "Default"
1544
+ field :target_width, "targetWidth"
1545
+ field :is_sort_key, "isSortKey", false
1546
+ field :select_action, "selectAction"
1547
+ field :style, "style"
1548
+ field :layouts, "layouts"
1549
+ field :bleed, "bleed", false
1550
+ field :min_height, "minHeight"
1551
+ field :background_image, "backgroundImage"
1552
+ field :vertical_content_alignment, "verticalContentAlignment"
1553
+ field :rtl, "rtl"
1554
+ field :max_height, "maxHeight"
1555
+ field :grid_area, "gridArea"
1556
+ field :fallback, "fallback"
1557
+ field :items, "items"
1558
+ end
1559
+
1560
+ # Represents a row of cells in a table.
1561
+ class TableRow < CardElement
1562
+ field :key, "key"
1563
+ field :type, "type", "TableRow"
1564
+ field :id, "id"
1565
+ field :requires, "requires", {}, mutable: true
1566
+ field :lang, "lang"
1567
+ field :is_visible, "isVisible", true
1568
+ field :separator, "separator", false
1569
+ field :height, "height", "auto"
1570
+ field :horizontal_alignment, "horizontalAlignment"
1571
+ field :spacing, "spacing", "Default"
1572
+ field :target_width, "targetWidth"
1573
+ field :is_sort_key, "isSortKey", false
1574
+ field :show_border, "showBorder", false
1575
+ field :rounded_corners, "roundedCorners", false
1576
+ field :style, "style"
1577
+ field :horizontal_cell_content_alignment, "horizontalCellContentAlignment"
1578
+ field :vertical_cell_content_alignment, "verticalCellContentAlignment"
1579
+ field :grid_area, "gridArea"
1580
+ field :fallback, "fallback"
1581
+ field :cells, "cells"
1582
+ end
1583
+
1584
+ # A block of text, optionally formatted using Markdown.
1585
+ class TextBlock < CardElement
1586
+ field :key, "key"
1587
+ field :type, "type", "TextBlock"
1588
+ field :id, "id"
1589
+ field :requires, "requires", {}, mutable: true
1590
+ field :lang, "lang"
1591
+ field :is_visible, "isVisible", true
1592
+ field :separator, "separator", false
1593
+ field :height, "height", "auto"
1594
+ field :horizontal_alignment, "horizontalAlignment"
1595
+ field :spacing, "spacing", "Default"
1596
+ field :target_width, "targetWidth"
1597
+ field :is_sort_key, "isSortKey", false
1598
+ field :text, "text"
1599
+ field :size, "size"
1600
+ field :weight, "weight"
1601
+ field :color, "color"
1602
+ field :is_subtle, "isSubtle"
1603
+ field :font_type, "fontType"
1604
+ field :wrap, "wrap", false
1605
+ field :max_lines, "maxLines"
1606
+ field :style, "style"
1607
+ field :label_for, "labelFor"
1608
+ field :grid_area, "gridArea"
1609
+ field :fallback, "fallback"
1610
+ positional_field :text
1611
+ end
1612
+
1613
+ # An input to allow the user to enter text.
1614
+ class TextInput < CardElement
1615
+ field :key, "key"
1616
+ field :type, "type", "Input.Text"
1617
+ field :id, "id"
1618
+ field :requires, "requires", {}, mutable: true
1619
+ field :lang, "lang"
1620
+ field :is_visible, "isVisible", true
1621
+ field :separator, "separator", false
1622
+ field :height, "height", "auto"
1623
+ field :spacing, "spacing", "Default"
1624
+ field :target_width, "targetWidth"
1625
+ field :is_sort_key, "isSortKey", false
1626
+ field :label, "label"
1627
+ field :is_required, "isRequired", false
1628
+ field :error_message, "errorMessage"
1629
+ field :value_changed_action, "valueChangedAction"
1630
+ field :value, "value"
1631
+ field :max_length, "maxLength"
1632
+ field :is_multiline, "isMultiline", false
1633
+ field :placeholder, "placeholder"
1634
+ field :style, "style", "Text"
1635
+ field :inline_action, "inlineAction"
1636
+ field :regex, "regex"
1637
+ field :grid_area, "gridArea"
1638
+ field :fallback, "fallback"
1639
+ end
1640
+
1641
+ # A block of text inside a RichTextBlock element.
1642
+ class TextRun < CardElement
1643
+ field :key, "key"
1644
+ field :type, "type", "TextRun"
1645
+ field :id, "id"
1646
+ field :lang, "lang"
1647
+ field :is_visible, "isVisible", true
1648
+ field :is_sort_key, "isSortKey", false
1649
+ field :text, "text"
1650
+ field :size, "size"
1651
+ field :weight, "weight"
1652
+ field :color, "color"
1653
+ field :is_subtle, "isSubtle"
1654
+ field :font_type, "fontType"
1655
+ field :italic, "italic", false
1656
+ field :strikethrough, "strikethrough", false
1657
+ field :highlight, "highlight", false
1658
+ field :underline, "underline", false
1659
+ field :select_action, "selectAction"
1660
+ field :grid_area, "gridArea"
1661
+ field :fallback, "fallback"
1662
+ end
1663
+
1664
+ # An input to allow the user to select a time.
1665
+ class TimeInput < CardElement
1666
+ field :key, "key"
1667
+ field :type, "type", "Input.Time"
1668
+ field :id, "id"
1669
+ field :requires, "requires", {}, mutable: true
1670
+ field :lang, "lang"
1671
+ field :is_visible, "isVisible", true
1672
+ field :separator, "separator", false
1673
+ field :height, "height", "auto"
1674
+ field :spacing, "spacing", "Default"
1675
+ field :target_width, "targetWidth"
1676
+ field :is_sort_key, "isSortKey", false
1677
+ field :label, "label"
1678
+ field :is_required, "isRequired", false
1679
+ field :error_message, "errorMessage"
1680
+ field :value_changed_action, "valueChangedAction"
1681
+ field :value, "value"
1682
+ field :placeholder, "placeholder"
1683
+ field :min, "min"
1684
+ field :max, "max"
1685
+ field :grid_area, "gridArea"
1686
+ field :fallback, "fallback"
1687
+ end
1688
+
1689
+ # An input to allow the user to select between on/off states.
1690
+ class ToggleInput < CardElement
1691
+ field :key, "key"
1692
+ field :type, "type", "Input.Toggle"
1693
+ field :id, "id"
1694
+ field :requires, "requires", {}, mutable: true
1695
+ field :lang, "lang"
1696
+ field :is_visible, "isVisible", true
1697
+ field :separator, "separator", false
1698
+ field :height, "height", "auto"
1699
+ field :spacing, "spacing", "Default"
1700
+ field :target_width, "targetWidth"
1701
+ field :is_sort_key, "isSortKey", false
1702
+ field :label, "label"
1703
+ field :is_required, "isRequired", false
1704
+ field :error_message, "errorMessage"
1705
+ field :value_changed_action, "valueChangedAction"
1706
+ field :value, "value", "false"
1707
+ field :title, "title"
1708
+ field :value_on, "valueOn", "true"
1709
+ field :value_off, "valueOff", "false"
1710
+ field :wrap, "wrap", true
1711
+ field :show_title, "showTitle", true
1712
+ field :grid_area, "gridArea"
1713
+ field :fallback, "fallback"
1714
+ end
1715
+
1716
+ # Toggles the visibility of a set of elements. Action.ToggleVisibility is useful for creating "Show more" type UI patterns.
1717
+ class ToggleVisibilityAction < Action
1718
+ field :key, "key"
1719
+ field :type, "type", "Action.ToggleVisibility"
1720
+ field :id, "id"
1721
+ field :requires, "requires", {}, mutable: true
1722
+ field :title, "title"
1723
+ field :icon_url, "iconUrl"
1724
+ field :style, "style", "default"
1725
+ field :mode, "mode", "primary"
1726
+ field :tooltip, "tooltip"
1727
+ field :is_enabled, "isEnabled", true
1728
+ field :menu_actions, "menuActions"
1729
+ field :themed_icon_urls, "themedIconUrls"
1730
+ field :target_elements, "targetElements"
1731
+ field :fallback, "fallback"
1732
+ end
1733
+
1734
+ # A vertical bar chart.
1735
+ class VerticalBarChart < CardElement
1736
+ field :key, "key"
1737
+ field :type, "type", "Chart.VerticalBar"
1738
+ field :id, "id"
1739
+ field :requires, "requires", {}, mutable: true
1740
+ field :lang, "lang"
1741
+ field :is_visible, "isVisible", true
1742
+ field :separator, "separator", false
1743
+ field :height, "height", "auto"
1744
+ field :horizontal_alignment, "horizontalAlignment"
1745
+ field :spacing, "spacing", "Default"
1746
+ field :target_width, "targetWidth"
1747
+ field :is_sort_key, "isSortKey", false
1748
+ field :title, "title"
1749
+ field :show_title, "showTitle", false
1750
+ field :color_set, "colorSet"
1751
+ field :max_width, "maxWidth"
1752
+ field :show_legend, "showLegend", true
1753
+ field :x_axis_title, "xAxisTitle"
1754
+ field :y_axis_title, "yAxisTitle"
1755
+ field :data, "data"
1756
+ field :color, "color"
1757
+ field :show_bar_values, "showBarValues", false
1758
+ field :y_min, "yMin"
1759
+ field :y_max, "yMax"
1760
+ field :grid_area, "gridArea"
1761
+ field :fallback, "fallback"
1762
+ end
1763
+ end
1764
+ end