@@ -21,6 +21,7 @@ import (
21
21
"time"
22
22
23
23
"github.com/arduino/arduino-cli/table"
24
+ "github.com/gofrs/uuid"
24
25
)
25
26
26
27
type (
@@ -70,3 +71,274 @@ func formatHumanReadableTs(ts string) string {
70
71
}
71
72
return parsed .Format (time .RFC3339 )
72
73
}
74
+
75
+ type TemplateDescribeResponse struct {
76
+ // CompatibleBoards List of devices compatible with the template
77
+ CompatibleBoards * []string `json:"compatible_boards,omitempty"`
78
+
79
+ // CreatedAt Template creation date/time
80
+ CreatedAt * time.Time `json:"created_at,omitempty"`
81
+
82
+ // DashboardTemplates List of dashboard templates
83
+ DashboardTemplates * []DashboardTemplate `json:"dashboard_templates,omitempty"`
84
+
85
+ // DeletedAt Template soft deletion date/time
86
+ DeletedAt * time.Time `json:"deleted_at,omitempty"`
87
+
88
+ // Description Description of the template
89
+ Description string `json:"description"`
90
+
91
+ // ImageLinks Optional list of images to be included in the template
92
+ ImageLinks * []string `json:"image_links,omitempty"`
93
+
94
+ // Name Template name
95
+ Name string `json:"name" validate:"required,max=128"`
96
+
97
+ // OrganizationId Organization identifier
98
+ OrganizationId * uuid.UUID `json:"organization_id,omitempty"`
99
+ TemplateId uuid.UUID `json:"template_id" validate:"required,uuid"`
100
+
101
+ // ThingTemplates List of thing templates
102
+ ThingTemplates * []ThingTemplate `json:"thing_templates,omitempty"`
103
+
104
+ // TriggerTemplates List of trigger templates
105
+ TriggerTemplates * []TriggerTemplate `json:"trigger_templates,omitempty"`
106
+
107
+ // UpdatedAt Template update date/time
108
+ UpdatedAt * time.Time `json:"updated_at,omitempty"`
109
+
110
+ // UserId User identifier
111
+ UserId * uuid.UUID `json:"user_id,omitempty" validate:"uuid"`
112
+ }
113
+
114
+ type ThingTemplate struct {
115
+ // Id Template ID
116
+ Id string `json:"id"`
117
+
118
+ // Name Name
119
+ Name string `json:"name"`
120
+
121
+ // Tags Tags
122
+ Tags * []Tag `json:"tags,omitempty"`
123
+
124
+ // Variables Thing variables
125
+ Variables * []Variable `json:"variables,omitempty"`
126
+
127
+ // WebhookUri Webhook URI
128
+ WebhookUri * string `json:"webhook_uri,omitempty"`
129
+ }
130
+
131
+ type Variable struct {
132
+ // Id Id
133
+ Id * string `json:"id,omitempty"`
134
+
135
+ // Name Name
136
+ Name * string `json:"name,omitempty"`
137
+
138
+ // Permission Permission
139
+ Permission * string `json:"permission,omitempty"`
140
+
141
+ // Type Type
142
+ Type * string `json:"type,omitempty"`
143
+
144
+ // UpdateParameter Update parameter
145
+ UpdateParameter * float32 `json:"update_parameter,omitempty"`
146
+
147
+ // UpdateStrategy Update strategy
148
+ UpdateStrategy * string `json:"update_strategy,omitempty"`
149
+
150
+ // VariableName Variable name
151
+ VariableName * string `json:"variable_name,omitempty"`
152
+ }
153
+
154
+ type Tag struct {
155
+ // Key Key
156
+ Key string `json:"key"`
157
+
158
+ // Value Value
159
+ Value string `json:"value"`
160
+ }
161
+
162
+ type DashboardTemplate struct {
163
+ // Id Template ID
164
+ Id string `json:"id"`
165
+
166
+ // Name Name
167
+ Name string `json:"name"`
168
+
169
+ // Widgets Widgets
170
+ Widgets * []Widget `json:"widgets,omitempty"`
171
+ }
172
+
173
+ type Widget struct {
174
+ // Height height
175
+ Height * float32 `json:"height,omitempty"`
176
+
177
+ // HeightMobile height mobile
178
+ HeightMobile * float32 `json:"height_mobile,omitempty"`
179
+
180
+ // Name Name
181
+ Name string `json:"name"`
182
+
183
+ // Options Widget options
184
+ Options * map [string ]interface {} `json:"options,omitempty"`
185
+
186
+ // Type Widget type
187
+ Type string `json:"type"`
188
+
189
+ // Variables Widget variables
190
+ Variables * []WidgetVariable `json:"variables,omitempty"`
191
+
192
+ // Width Width
193
+ Width * float32 `json:"width,omitempty"`
194
+
195
+ // WidthMobile Width mobile
196
+ WidthMobile * float32 `json:"width_mobile,omitempty"`
197
+
198
+ // X x
199
+ X * float32 `json:"x,omitempty"`
200
+
201
+ // XMobile x mobile
202
+ XMobile * float32 `json:"x_mobile,omitempty"`
203
+
204
+ // Y y
205
+ Y * float32 `json:"y,omitempty"`
206
+
207
+ // YMobile y mobile
208
+ YMobile * float32 `json:"y_mobile,omitempty"`
209
+ }
210
+
211
+ type WidgetVariable struct {
212
+ // Name Name
213
+ Name string `json:"name"`
214
+
215
+ // Permission Permission
216
+ Permission * string `json:"permission,omitempty"`
217
+
218
+ // ThingId Thing ID
219
+ ThingId * string `json:"thing_id,omitempty"`
220
+
221
+ // Type Widget type
222
+ Type string `json:"type"`
223
+
224
+ // VariableId Variable ID
225
+ VariableId * string `json:"variable_id,omitempty"`
226
+ }
227
+
228
+ type TriggerTemplate struct {
229
+ // Actions Actions
230
+ Actions * []TriggerAction `json:"actions,omitempty"`
231
+
232
+ // Active Active
233
+ Active * bool `json:"active,omitempty"`
234
+
235
+ // Description Description
236
+ Description * string `json:"description,omitempty"`
237
+
238
+ // Id Template ID
239
+ Id string `json:"id"`
240
+ LinkedDevice * LinkedDevice `json:"linked_device,omitempty"`
241
+ LinkedProperty * LinkedProperty `json:"linked_property,omitempty"`
242
+
243
+ // Name Name
244
+ Name string `json:"name"`
245
+ }
246
+
247
+ type TriggerAction struct {
248
+ // Description Description
249
+ Description * string `json:"description,omitempty"`
250
+ Email * EmailAction `json:"email,omitempty"`
251
+
252
+ // Kind Kind
253
+ Kind * string `json:"kind,omitempty"`
254
+
255
+ // Name Name
256
+ Name string `json:"name"`
257
+ PushNotification * PushNotificationAction `json:"push_notification,omitempty"`
258
+ }
259
+
260
+ type LinkedDevice struct {
261
+ // DeviceConnectedDelay Device connected delay
262
+ DeviceConnectedDelay * float32 `json:"device_connected_delay,omitempty"`
263
+
264
+ // DeviceDisconnectedDelay Device disconnected delay
265
+ DeviceDisconnectedDelay * float32 `json:"device_disconnected_delay,omitempty"`
266
+
267
+ // ThingId Thing ID
268
+ ThingId string `json:"thing_id"`
269
+ }
270
+
271
+ // LinkedProperty defines model for LinkedProperty.
272
+ type LinkedProperty struct {
273
+ // PropertyId Property ID
274
+ PropertyId string `json:"property_id"`
275
+
276
+ // ThingId Thing ID
277
+ ThingId string `json:"thing_id"`
278
+ }
279
+
280
+ // NotificationBody defines model for NotificationBody.
281
+ type NotificationBody struct {
282
+ // Expression Expression
283
+ Expression string `json:"expression"`
284
+
285
+ // Variables Variables
286
+ Variables []BodyVariable `json:"variables"`
287
+ }
288
+
289
+ // PushNotificationAction defines model for PushNotificationAction.
290
+ type PushNotificationAction struct {
291
+ Body NotificationBody `json:"body"`
292
+ Delivery Delivery `json:"delivery"`
293
+ Title Subject `json:"title"`
294
+ }
295
+
296
+ // Subject defines model for Subject.
297
+ type Subject struct {
298
+ // Expression expression
299
+ Expression string `json:"expression"`
300
+ }
301
+
302
+ type BodyVariable struct {
303
+ // Attribute attribute
304
+ Attribute string `json:"attribute"`
305
+
306
+ // Entity entity
307
+ Entity string `json:"entity"`
308
+
309
+ // Placeholder placeholder
310
+ Placeholder string `json:"placeholder"`
311
+
312
+ // PropertyId property_id
313
+ PropertyId * string `json:"property_id,omitempty"`
314
+
315
+ // ThingId thing_id
316
+ ThingId * string `json:"thing_id,omitempty"`
317
+ }
318
+
319
+ type Delivery struct {
320
+ // Bcc BCC
321
+ Bcc * []DeliveryTo `json:"bcc,omitempty"`
322
+
323
+ // Cc CC
324
+ Cc * []DeliveryTo `json:"cc,omitempty"`
325
+
326
+ // To To
327
+ To []DeliveryTo `json:"to"`
328
+ }
329
+
330
+ // DeliveryTo defines model for DeliveryTo.
331
+ type DeliveryTo struct {
332
+ // Email email
333
+ Email * string `json:"email,omitempty"`
334
+
335
+ // Username username
336
+ Username * string `json:"username,omitempty"`
337
+ }
338
+
339
+ // EmailAction defines model for EmailAction.
340
+ type EmailAction struct {
341
+ Body NotificationBody `json:"body"`
342
+ Delivery Delivery `json:"delivery"`
343
+ Subject Subject `json:"subject"`
344
+ }
0 commit comments