losant_rest 1.19.0 → 1.19.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (120) hide show
  1. checksums.yaml +4 -4
  2. data/docs/_schemas.md +872 -38
  3. data/docs/applications.md +49 -0
  4. data/docs/device.md +12 -3
  5. data/docs/me.md +116 -0
  6. data/lib/losant_rest/version.rb +1 -1
  7. data/lib/platform_rest/application.rb +932 -0
  8. data/lib/platform_rest/application_api_token.rb +176 -0
  9. data/lib/platform_rest/application_api_tokens.rb +136 -0
  10. data/lib/platform_rest/application_certificate.rb +176 -0
  11. data/lib/platform_rest/application_certificate_authorities.rb +138 -0
  12. data/lib/platform_rest/application_certificate_authority.rb +176 -0
  13. data/lib/platform_rest/application_certificates.rb +138 -0
  14. data/lib/platform_rest/application_dashboard.rb +225 -0
  15. data/lib/platform_rest/application_dashboards.rb +138 -0
  16. data/lib/platform_rest/application_key.rb +176 -0
  17. data/lib/platform_rest/application_keys.rb +141 -0
  18. data/lib/platform_rest/application_template.rb +79 -0
  19. data/lib/platform_rest/application_templates.rb +176 -0
  20. data/lib/platform_rest/applications.rb +209 -0
  21. data/lib/platform_rest/audit_log.rb +81 -0
  22. data/lib/platform_rest/audit_logs.rb +93 -0
  23. data/lib/platform_rest/auth.rb +245 -0
  24. data/lib/platform_rest/client.rb +410 -0
  25. data/lib/platform_rest/credential.rb +224 -0
  26. data/lib/platform_rest/credentials.rb +138 -0
  27. data/lib/platform_rest/dashboard.rb +268 -0
  28. data/lib/platform_rest/dashboards.rb +136 -0
  29. data/lib/platform_rest/data.rb +176 -0
  30. data/lib/platform_rest/data_table.rb +274 -0
  31. data/lib/platform_rest/data_table_row.rb +182 -0
  32. data/lib/platform_rest/data_table_rows.rb +343 -0
  33. data/lib/platform_rest/data_tables.rb +138 -0
  34. data/lib/platform_rest/device.rb +767 -0
  35. data/lib/platform_rest/device_recipe.rb +234 -0
  36. data/lib/platform_rest/device_recipes.rb +146 -0
  37. data/lib/platform_rest/devices.rb +707 -0
  38. data/lib/platform_rest/edge_deployment.rb +81 -0
  39. data/lib/platform_rest/edge_deployments.rb +236 -0
  40. data/lib/platform_rest/embedded_deployment.rb +81 -0
  41. data/lib/platform_rest/embedded_deployments.rb +280 -0
  42. data/lib/platform_rest/error.rb +34 -0
  43. data/lib/platform_rest/event.rb +176 -0
  44. data/lib/platform_rest/events.rb +341 -0
  45. data/lib/platform_rest/experience.rb +142 -0
  46. data/lib/platform_rest/experience_domain.rb +176 -0
  47. data/lib/platform_rest/experience_domains.rb +126 -0
  48. data/lib/platform_rest/experience_endpoint.rb +230 -0
  49. data/lib/platform_rest/experience_endpoints.rb +200 -0
  50. data/lib/platform_rest/experience_group.rb +180 -0
  51. data/lib/platform_rest/experience_groups.rb +141 -0
  52. data/lib/platform_rest/experience_slug.rb +176 -0
  53. data/lib/platform_rest/experience_slugs.rb +126 -0
  54. data/lib/platform_rest/experience_user.rb +176 -0
  55. data/lib/platform_rest/experience_users.rb +142 -0
  56. data/lib/platform_rest/experience_version.rb +176 -0
  57. data/lib/platform_rest/experience_versions.rb +138 -0
  58. data/lib/platform_rest/experience_view.rb +228 -0
  59. data/lib/platform_rest/experience_views.rb +142 -0
  60. data/lib/platform_rest/file.rb +226 -0
  61. data/lib/platform_rest/files.rb +144 -0
  62. data/lib/platform_rest/flow.rb +580 -0
  63. data/lib/platform_rest/flow_version.rb +352 -0
  64. data/lib/platform_rest/flow_versions.rb +201 -0
  65. data/lib/platform_rest/flows.rb +310 -0
  66. data/lib/platform_rest/instance.rb +377 -0
  67. data/lib/platform_rest/instance_api_token.rb +176 -0
  68. data/lib/platform_rest/instance_api_tokens.rb +136 -0
  69. data/lib/platform_rest/instance_custom_node.rb +282 -0
  70. data/lib/platform_rest/instance_custom_nodes.rb +136 -0
  71. data/lib/platform_rest/instance_member.rb +176 -0
  72. data/lib/platform_rest/instance_members.rb +134 -0
  73. data/lib/platform_rest/instance_org.rb +336 -0
  74. data/lib/platform_rest/instance_org_invite.rb +182 -0
  75. data/lib/platform_rest/instance_org_invites.rb +138 -0
  76. data/lib/platform_rest/instance_org_member.rb +182 -0
  77. data/lib/platform_rest/instance_org_members.rb +138 -0
  78. data/lib/platform_rest/instance_orgs.rb +139 -0
  79. data/lib/platform_rest/instance_sandbox.rb +181 -0
  80. data/lib/platform_rest/instance_sandboxes.rb +98 -0
  81. data/lib/platform_rest/instances.rb +88 -0
  82. data/lib/platform_rest/integration.rb +178 -0
  83. data/lib/platform_rest/integrations.rb +138 -0
  84. data/lib/platform_rest/me.rb +923 -0
  85. data/lib/platform_rest/notebook.rb +423 -0
  86. data/lib/platform_rest/notebooks.rb +138 -0
  87. data/lib/platform_rest/org.rb +663 -0
  88. data/lib/platform_rest/org_invites.rb +124 -0
  89. data/lib/platform_rest/orgs.rb +140 -0
  90. data/lib/platform_rest/resource_job.rb +326 -0
  91. data/lib/platform_rest/resource_jobs.rb +138 -0
  92. data/lib/platform_rest/user_api_token.rb +170 -0
  93. data/lib/platform_rest/user_api_tokens.rb +132 -0
  94. data/lib/platform_rest/utils.rb +44 -0
  95. data/lib/platform_rest/webhook.rb +178 -0
  96. data/lib/platform_rest/webhooks.rb +138 -0
  97. data/lib/platform_rest.rb +129 -0
  98. data/schemas/apiTokenPost.json +4 -0
  99. data/schemas/applicationDashboardPost.json +66 -0
  100. data/schemas/dashboard.json +66 -0
  101. data/schemas/dashboardPatch.json +66 -0
  102. data/schemas/dashboardPost.json +66 -0
  103. data/schemas/dashboards.json +66 -0
  104. data/schemas/deviceConnectionStatus.json +10 -0
  105. data/schemas/deviceLog.json +3 -0
  106. data/schemas/event.json +8 -0
  107. data/schemas/eventPlusNewCount.json +8 -0
  108. data/schemas/events.json +8 -0
  109. data/schemas/githubLogin.json +4 -0
  110. data/schemas/integrationPatch.json +0 -10
  111. data/schemas/orgInviteActionUser.json +18 -0
  112. data/schemas/orgInviteResultUser.json +18 -0
  113. data/schemas/orgInviteUser.json +51 -0
  114. data/schemas/orgInvitesUser.json +59 -0
  115. data/schemas/payloadCountsBreakdown.json +1 -25
  116. data/schemas/periodSummaries.json +172 -0
  117. data/schemas/samlResponse.json +4 -0
  118. data/schemas/userCredentials.json +4 -0
  119. data/schemas/userPost.json +4 -0
  120. metadata +98 -2
@@ -0,0 +1,923 @@
1
+ # The MIT License (MIT)
2
+ #
3
+ # Copyright (c) 2023 Losant IoT, Inc.
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ # of this software and associated documentation files (the "Software"), to deal
7
+ # in the Software without restriction, including without limitation the rights
8
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ # copies of the Software, and to permit persons to whom the Software is
10
+ # furnished to do so, subject to the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be included in all
13
+ # copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ # SOFTWARE.
22
+
23
+ require "json"
24
+
25
+ module PlatformRest
26
+
27
+ # Class containing all the actions for the Me Resource
28
+ class Me
29
+
30
+ def initialize(client)
31
+ @client = client
32
+ end
33
+
34
+ # Adds an item to a recent item list
35
+ #
36
+ # Authentication:
37
+ # The client must be configured with a valid api
38
+ # access token to call this action. The token
39
+ # must include at least one of the following scopes:
40
+ # all.User, me.*, or me.addRecentItem.
41
+ #
42
+ # Parameters:
43
+ # * {hash} data - Object containing recent item info (https://api.losant.com/#/definitions/recentItem)
44
+ # * {string} losantdomain - Domain scope of request (rarely needed)
45
+ # * {boolean} _actions - Return resource actions in response
46
+ # * {boolean} _links - Return resource link in response
47
+ # * {boolean} _embedded - Return embedded resources in response
48
+ #
49
+ # Responses:
50
+ # * 200 - Updated recent item list (https://api.losant.com/#/definitions/recentItemList)
51
+ #
52
+ # Errors:
53
+ # * 400 - Error if malformed request (https://api.losant.com/#/definitions/error)
54
+ def add_recent_item(params = {})
55
+ params = Utils.symbolize_hash_keys(params)
56
+ query_params = { _actions: false, _links: true, _embedded: true }
57
+ headers = {}
58
+ body = nil
59
+
60
+ raise ArgumentError.new("data is required") unless params.has_key?(:data)
61
+
62
+ body = params[:data] if params.has_key?(:data)
63
+ headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
64
+ query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
65
+ query_params[:_links] = params[:_links] if params.has_key?(:_links)
66
+ query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)
67
+
68
+ path = "/me/recentItems"
69
+
70
+ @client.request(
71
+ method: :post,
72
+ path: path,
73
+ query: query_params,
74
+ headers: headers,
75
+ body: body)
76
+ end
77
+
78
+ # Changes the current user's password and optionally logs out all other sessions
79
+ #
80
+ # Authentication:
81
+ # The client must be configured with a valid api
82
+ # access token to call this action. The token
83
+ # must include at least one of the following scopes:
84
+ # all.User, me.*, or me.changePassword.
85
+ #
86
+ # Parameters:
87
+ # * {hash} data - Object containing the password change info (https://api.losant.com/#/definitions/changePassword)
88
+ # * {string} losantdomain - Domain scope of request (rarely needed)
89
+ # * {boolean} _actions - Return resource actions in response
90
+ # * {boolean} _links - Return resource link in response
91
+ # * {boolean} _embedded - Return embedded resources in response
92
+ #
93
+ # Responses:
94
+ # * 200 - A new, valid, auth token (potentially all previous tokens are now invalid) (https://api.losant.com/#/definitions/authedUser)
95
+ #
96
+ # Errors:
97
+ # * 400 - Error if malformed request (https://api.losant.com/#/definitions/error)
98
+ def change_password(params = {})
99
+ params = Utils.symbolize_hash_keys(params)
100
+ query_params = { _actions: false, _links: true, _embedded: true }
101
+ headers = {}
102
+ body = nil
103
+
104
+ raise ArgumentError.new("data is required") unless params.has_key?(:data)
105
+
106
+ body = params[:data] if params.has_key?(:data)
107
+ headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
108
+ query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
109
+ query_params[:_links] = params[:_links] if params.has_key?(:_links)
110
+ query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)
111
+
112
+ path = "/me/changePassword"
113
+
114
+ @client.request(
115
+ method: :patch,
116
+ path: path,
117
+ query: query_params,
118
+ headers: headers,
119
+ body: body)
120
+ end
121
+
122
+ # Deletes the current user
123
+ #
124
+ # Authentication:
125
+ # The client must be configured with a valid api
126
+ # access token to call this action. The token
127
+ # must include at least one of the following scopes:
128
+ # all.User, me.*, or me.delete.
129
+ #
130
+ # Parameters:
131
+ # * {hash} credentials - User authentication credentials (https://api.losant.com/#/definitions/userCredentials)
132
+ # * {string} losantdomain - Domain scope of request (rarely needed)
133
+ # * {boolean} _actions - Return resource actions in response
134
+ # * {boolean} _links - Return resource link in response
135
+ # * {boolean} _embedded - Return embedded resources in response
136
+ #
137
+ # Responses:
138
+ # * 200 - If the user was successfully deleted (https://api.losant.com/#/definitions/success)
139
+ #
140
+ # Errors:
141
+ # * 400 - Error if malformed request (https://api.losant.com/#/definitions/error)
142
+ def delete(params = {})
143
+ params = Utils.symbolize_hash_keys(params)
144
+ query_params = { _actions: false, _links: true, _embedded: true }
145
+ headers = {}
146
+ body = nil
147
+
148
+ raise ArgumentError.new("credentials is required") unless params.has_key?(:credentials)
149
+
150
+ body = params[:credentials] if params.has_key?(:credentials)
151
+ headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
152
+ query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
153
+ query_params[:_links] = params[:_links] if params.has_key?(:_links)
154
+ query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)
155
+
156
+ path = "/me/delete"
157
+
158
+ @client.request(
159
+ method: :post,
160
+ path: path,
161
+ query: query_params,
162
+ headers: headers,
163
+ body: body)
164
+ end
165
+
166
+ # Returns device counts by day for the time range specified for all applications the current user owns
167
+ #
168
+ # Authentication:
169
+ # The client must be configured with a valid api
170
+ # access token to call this action. The token
171
+ # must include at least one of the following scopes:
172
+ # all.User, all.User.read, me.*, or me.deviceCounts.
173
+ #
174
+ # Parameters:
175
+ # * {string} start - Start of range for device count query (ms since epoch)
176
+ # * {string} end - End of range for device count query (ms since epoch)
177
+ # * {string} losantdomain - Domain scope of request (rarely needed)
178
+ # * {boolean} _actions - Return resource actions in response
179
+ # * {boolean} _links - Return resource link in response
180
+ # * {boolean} _embedded - Return embedded resources in response
181
+ #
182
+ # Responses:
183
+ # * 200 - Device counts by day (https://api.losant.com/#/definitions/deviceCounts)
184
+ #
185
+ # Errors:
186
+ # * 400 - Error if malformed request (https://api.losant.com/#/definitions/error)
187
+ def device_counts(params = {})
188
+ params = Utils.symbolize_hash_keys(params)
189
+ query_params = { _actions: false, _links: true, _embedded: true }
190
+ headers = {}
191
+ body = nil
192
+
193
+
194
+ query_params[:start] = params[:start] if params.has_key?(:start)
195
+ query_params[:end] = params[:end] if params.has_key?(:end)
196
+ headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
197
+ query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
198
+ query_params[:_links] = params[:_links] if params.has_key?(:_links)
199
+ query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)
200
+
201
+ path = "/me/deviceCounts"
202
+
203
+ @client.request(
204
+ method: :get,
205
+ path: path,
206
+ query: query_params,
207
+ headers: headers,
208
+ body: body)
209
+ end
210
+
211
+ # Disables two factor auth for the current user
212
+ #
213
+ # Authentication:
214
+ # The client must be configured with a valid api
215
+ # access token to call this action. The token
216
+ # must include at least one of the following scopes:
217
+ # all.User, me.*, or me.disableTwoFactorAuth.
218
+ #
219
+ # Parameters:
220
+ # * {hash} data - Object containing two factor auth properties (https://api.losant.com/#/definitions/disableTwoFactorAuth)
221
+ # * {string} losantdomain - Domain scope of request (rarely needed)
222
+ # * {boolean} _actions - Return resource actions in response
223
+ # * {boolean} _links - Return resource link in response
224
+ # * {boolean} _embedded - Return embedded resources in response
225
+ #
226
+ # Responses:
227
+ # * 200 - Updated user information (https://api.losant.com/#/definitions/me)
228
+ #
229
+ # Errors:
230
+ # * 400 - Error if malformed request (https://api.losant.com/#/definitions/error)
231
+ def disable_two_factor_auth(params = {})
232
+ params = Utils.symbolize_hash_keys(params)
233
+ query_params = { _actions: false, _links: true, _embedded: true }
234
+ headers = {}
235
+ body = nil
236
+
237
+ raise ArgumentError.new("data is required") unless params.has_key?(:data)
238
+
239
+ body = params[:data] if params.has_key?(:data)
240
+ headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
241
+ query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
242
+ query_params[:_links] = params[:_links] if params.has_key?(:_links)
243
+ query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)
244
+
245
+ path = "/me/disableTwoFactorAuth"
246
+
247
+ @client.request(
248
+ method: :patch,
249
+ path: path,
250
+ query: query_params,
251
+ headers: headers,
252
+ body: body)
253
+ end
254
+
255
+ # Disconnects the user from Github
256
+ #
257
+ # Authentication:
258
+ # The client must be configured with a valid api
259
+ # access token to call this action. The token
260
+ # must include at least one of the following scopes:
261
+ # all.User, me.*, or me.disconnectGithub.
262
+ #
263
+ # Parameters:
264
+ # * {string} losantdomain - Domain scope of request (rarely needed)
265
+ # * {boolean} _actions - Return resource actions in response
266
+ # * {boolean} _links - Return resource link in response
267
+ # * {boolean} _embedded - Return embedded resources in response
268
+ #
269
+ # Responses:
270
+ # * 200 - Updated user information (https://api.losant.com/#/definitions/me)
271
+ #
272
+ # Errors:
273
+ # * 400 - Error if malformed request (https://api.losant.com/#/definitions/error)
274
+ def disconnect_github(params = {})
275
+ params = Utils.symbolize_hash_keys(params)
276
+ query_params = { _actions: false, _links: true, _embedded: true }
277
+ headers = {}
278
+ body = nil
279
+
280
+
281
+ headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
282
+ query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
283
+ query_params[:_links] = params[:_links] if params.has_key?(:_links)
284
+ query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)
285
+
286
+ path = "/me/disconnectGithub"
287
+
288
+ @client.request(
289
+ method: :patch,
290
+ path: path,
291
+ query: query_params,
292
+ headers: headers,
293
+ body: body)
294
+ end
295
+
296
+ # Enables two factor auth for the current user
297
+ #
298
+ # Authentication:
299
+ # The client must be configured with a valid api
300
+ # access token to call this action. The token
301
+ # must include at least one of the following scopes:
302
+ # all.User, me.*, or me.enableTwoFactorAuth.
303
+ #
304
+ # Parameters:
305
+ # * {hash} data - Object containing two factor auth properties (https://api.losant.com/#/definitions/enableTwoFactorAuth)
306
+ # * {string} losantdomain - Domain scope of request (rarely needed)
307
+ # * {boolean} _actions - Return resource actions in response
308
+ # * {boolean} _links - Return resource link in response
309
+ # * {boolean} _embedded - Return embedded resources in response
310
+ #
311
+ # Responses:
312
+ # * 200 - Updated user information (https://api.losant.com/#/definitions/me)
313
+ #
314
+ # Errors:
315
+ # * 400 - Error if malformed request (https://api.losant.com/#/definitions/error)
316
+ def enable_two_factor_auth(params = {})
317
+ params = Utils.symbolize_hash_keys(params)
318
+ query_params = { _actions: false, _links: true, _embedded: true }
319
+ headers = {}
320
+ body = nil
321
+
322
+ raise ArgumentError.new("data is required") unless params.has_key?(:data)
323
+
324
+ body = params[:data] if params.has_key?(:data)
325
+ headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
326
+ query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
327
+ query_params[:_links] = params[:_links] if params.has_key?(:_links)
328
+ query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)
329
+
330
+ path = "/me/enableTwoFactorAuth"
331
+
332
+ @client.request(
333
+ method: :patch,
334
+ path: path,
335
+ query: query_params,
336
+ headers: headers,
337
+ body: body)
338
+ end
339
+
340
+ # Gets a recent item list
341
+ #
342
+ # Authentication:
343
+ # The client must be configured with a valid api
344
+ # access token to call this action. The token
345
+ # must include at least one of the following scopes:
346
+ # all.User, all.User.read, me.*, or me.fetchRecentItems.
347
+ #
348
+ # Parameters:
349
+ # * {string} parentId - Parent id of the recent list
350
+ # * {undefined} itemType - Item type to get the recent list of. Accepted values are: application, device, flow, dashboard, organization
351
+ # * {string} losantdomain - Domain scope of request (rarely needed)
352
+ # * {boolean} _actions - Return resource actions in response
353
+ # * {boolean} _links - Return resource link in response
354
+ # * {boolean} _embedded - Return embedded resources in response
355
+ #
356
+ # Responses:
357
+ # * 200 - Recent item list (https://api.losant.com/#/definitions/recentItemList)
358
+ #
359
+ # Errors:
360
+ # * 400 - Error if malformed request (https://api.losant.com/#/definitions/error)
361
+ def fetch_recent_items(params = {})
362
+ params = Utils.symbolize_hash_keys(params)
363
+ query_params = { _actions: false, _links: true, _embedded: true }
364
+ headers = {}
365
+ body = nil
366
+
367
+ raise ArgumentError.new("itemType is required") unless params.has_key?(:itemType)
368
+
369
+ query_params[:parentId] = params[:parentId] if params.has_key?(:parentId)
370
+ query_params[:itemType] = params[:itemType] if params.has_key?(:itemType)
371
+ headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
372
+ query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
373
+ query_params[:_links] = params[:_links] if params.has_key?(:_links)
374
+ query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)
375
+
376
+ path = "/me/recentItems"
377
+
378
+ @client.request(
379
+ method: :get,
380
+ path: path,
381
+ query: query_params,
382
+ headers: headers,
383
+ body: body)
384
+ end
385
+
386
+ # Returns the two factor auth key for a user
387
+ #
388
+ # Authentication:
389
+ # The client must be configured with a valid api
390
+ # access token to call this action. The token
391
+ # must include at least one of the following scopes:
392
+ # all.User, me.*, or me.generateTwoFactorAuth.
393
+ #
394
+ # Parameters:
395
+ # * {string} losantdomain - Domain scope of request (rarely needed)
396
+ # * {boolean} _actions - Return resource actions in response
397
+ # * {boolean} _links - Return resource link in response
398
+ # * {boolean} _embedded - Return embedded resources in response
399
+ #
400
+ # Responses:
401
+ # * 200 - Updated user information (https://api.losant.com/#/definitions/twoFactorAuthInfo)
402
+ #
403
+ # Errors:
404
+ # * 400 - Error if malformed request (https://api.losant.com/#/definitions/error)
405
+ def generate_two_factor_auth(params = {})
406
+ params = Utils.symbolize_hash_keys(params)
407
+ query_params = { _actions: false, _links: true, _embedded: true }
408
+ headers = {}
409
+ body = nil
410
+
411
+
412
+ headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
413
+ query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
414
+ query_params[:_links] = params[:_links] if params.has_key?(:_links)
415
+ query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)
416
+
417
+ path = "/me/generateTwoFactorAuth"
418
+
419
+ @client.request(
420
+ method: :patch,
421
+ path: path,
422
+ query: query_params,
423
+ headers: headers,
424
+ body: body)
425
+ end
426
+
427
+ # Retrieves information on the current user
428
+ #
429
+ # Authentication:
430
+ # The client must be configured with a valid api
431
+ # access token to call this action. The token
432
+ # must include at least one of the following scopes:
433
+ # all.User, all.User.read, me.*, or me.get.
434
+ #
435
+ # Parameters:
436
+ # * {undefined} includeRecent - Should the user include recent app/dashboard info
437
+ # * {string} summaryExclude - Comma-separated list of summary fields to exclude from user summary
438
+ # * {string} summaryInclude - Comma-separated list of summary fields to include in user summary
439
+ # * {string} losantdomain - Domain scope of request (rarely needed)
440
+ # * {boolean} _actions - Return resource actions in response
441
+ # * {boolean} _links - Return resource link in response
442
+ # * {boolean} _embedded - Return embedded resources in response
443
+ #
444
+ # Responses:
445
+ # * 200 - Current user information (https://api.losant.com/#/definitions/me)
446
+ #
447
+ # Errors:
448
+ def get(params = {})
449
+ params = Utils.symbolize_hash_keys(params)
450
+ query_params = { _actions: false, _links: true, _embedded: true }
451
+ headers = {}
452
+ body = nil
453
+
454
+
455
+ query_params[:includeRecent] = params[:includeRecent] if params.has_key?(:includeRecent)
456
+ query_params[:summaryExclude] = params[:summaryExclude] if params.has_key?(:summaryExclude)
457
+ query_params[:summaryInclude] = params[:summaryInclude] if params.has_key?(:summaryInclude)
458
+ headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
459
+ query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
460
+ query_params[:_links] = params[:_links] if params.has_key?(:_links)
461
+ query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)
462
+
463
+ path = "/me"
464
+
465
+ @client.request(
466
+ method: :get,
467
+ path: path,
468
+ query: query_params,
469
+ headers: headers,
470
+ body: body)
471
+ end
472
+
473
+ # Retrieves information for an invitation to an organization
474
+ #
475
+ # Authentication:
476
+ # The client must be configured with a valid api
477
+ # access token to call this action. The token
478
+ # must include at least one of the following scopes:
479
+ # all.User, me.*, or me.invite.
480
+ #
481
+ # Parameters:
482
+ # * {string} inviteId - ID associated with the invitation
483
+ # * {string} losantdomain - Domain scope of request (rarely needed)
484
+ # * {boolean} _actions - Return resource actions in response
485
+ # * {boolean} _links - Return resource link in response
486
+ # * {boolean} _embedded - Return embedded resources in response
487
+ #
488
+ # Responses:
489
+ # * 200 - Information about invitation (https://api.losant.com/#/definitions/orgInviteUser)
490
+ #
491
+ # Errors:
492
+ # * 400 - Error if malformed request (https://api.losant.com/#/definitions/error)
493
+ # * 404 - Error if invite not found (https://api.losant.com/#/definitions/error)
494
+ def invite(params = {})
495
+ params = Utils.symbolize_hash_keys(params)
496
+ query_params = { _actions: false, _links: true, _embedded: true }
497
+ headers = {}
498
+ body = nil
499
+
500
+ raise ArgumentError.new("inviteId is required") unless params.has_key?(:inviteId)
501
+
502
+ headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
503
+ query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
504
+ query_params[:_links] = params[:_links] if params.has_key?(:_links)
505
+ query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)
506
+
507
+ path = "/me/invites/#{params[:inviteId]}"
508
+
509
+ @client.request(
510
+ method: :get,
511
+ path: path,
512
+ query: query_params,
513
+ headers: headers,
514
+ body: body)
515
+ end
516
+
517
+ # Retrieves pending organization invitations for a user
518
+ #
519
+ # Authentication:
520
+ # The client must be configured with a valid api
521
+ # access token to call this action. The token
522
+ # must include at least one of the following scopes:
523
+ # all.User, me.*, or me.invites.
524
+ #
525
+ # Parameters:
526
+ # * {string} losantdomain - Domain scope of request (rarely needed)
527
+ # * {boolean} _actions - Return resource actions in response
528
+ # * {boolean} _links - Return resource link in response
529
+ # * {boolean} _embedded - Return embedded resources in response
530
+ #
531
+ # Responses:
532
+ # * 200 - Information about invitations (https://api.losant.com/#/definitions/orgInvitesUser)
533
+ #
534
+ # Errors:
535
+ # * 400 - Error if malformed request (https://api.losant.com/#/definitions/error)
536
+ def invites(params = {})
537
+ params = Utils.symbolize_hash_keys(params)
538
+ query_params = { _actions: false, _links: true, _embedded: true }
539
+ headers = {}
540
+ body = nil
541
+
542
+
543
+ headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
544
+ query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
545
+ query_params[:_links] = params[:_links] if params.has_key?(:_links)
546
+ query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)
547
+
548
+ path = "/me/invites"
549
+
550
+ @client.request(
551
+ method: :get,
552
+ path: path,
553
+ query: query_params,
554
+ headers: headers,
555
+ body: body)
556
+ end
557
+
558
+ # Returns notebook execution usage by day for the time range specified for all applications the current user owns
559
+ #
560
+ # Authentication:
561
+ # The client must be configured with a valid api
562
+ # access token to call this action. The token
563
+ # must include at least one of the following scopes:
564
+ # all.User, all.User.read, me.*, or me.notebookMinuteCounts.
565
+ #
566
+ # Parameters:
567
+ # * {string} start - Start of range for notebook execution query (ms since epoch)
568
+ # * {string} end - End of range for notebook execution query (ms since epoch)
569
+ # * {string} losantdomain - Domain scope of request (rarely needed)
570
+ # * {boolean} _actions - Return resource actions in response
571
+ # * {boolean} _links - Return resource link in response
572
+ # * {boolean} _embedded - Return embedded resources in response
573
+ #
574
+ # Responses:
575
+ # * 200 - Notebook usage information (https://api.losant.com/#/definitions/notebookMinuteCounts)
576
+ #
577
+ # Errors:
578
+ # * 400 - Error if malformed request (https://api.losant.com/#/definitions/error)
579
+ def notebook_minute_counts(params = {})
580
+ params = Utils.symbolize_hash_keys(params)
581
+ query_params = { _actions: false, _links: true, _embedded: true }
582
+ headers = {}
583
+ body = nil
584
+
585
+
586
+ query_params[:start] = params[:start] if params.has_key?(:start)
587
+ query_params[:end] = params[:end] if params.has_key?(:end)
588
+ headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
589
+ query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
590
+ query_params[:_links] = params[:_links] if params.has_key?(:_links)
591
+ query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)
592
+
593
+ path = "/me/notebookMinuteCounts"
594
+
595
+ @client.request(
596
+ method: :get,
597
+ path: path,
598
+ query: query_params,
599
+ headers: headers,
600
+ body: body)
601
+ end
602
+
603
+ # Updates information about the current user
604
+ #
605
+ # Authentication:
606
+ # The client must be configured with a valid api
607
+ # access token to call this action. The token
608
+ # must include at least one of the following scopes:
609
+ # all.User, me.*, or me.patch.
610
+ #
611
+ # Parameters:
612
+ # * {hash} user - Object containing new user properties (https://api.losant.com/#/definitions/mePatch)
613
+ # * {string} summaryExclude - Comma-separated list of summary fields to exclude from user summary
614
+ # * {string} summaryInclude - Comma-separated list of summary fields to include in user summary
615
+ # * {string} losantdomain - Domain scope of request (rarely needed)
616
+ # * {boolean} _actions - Return resource actions in response
617
+ # * {boolean} _links - Return resource link in response
618
+ # * {boolean} _embedded - Return embedded resources in response
619
+ #
620
+ # Responses:
621
+ # * 200 - Updated user information (https://api.losant.com/#/definitions/me)
622
+ #
623
+ # Errors:
624
+ # * 400 - Error if malformed request (https://api.losant.com/#/definitions/error)
625
+ def patch(params = {})
626
+ params = Utils.symbolize_hash_keys(params)
627
+ query_params = { _actions: false, _links: true, _embedded: true }
628
+ headers = {}
629
+ body = nil
630
+
631
+ raise ArgumentError.new("user is required") unless params.has_key?(:user)
632
+
633
+ body = params[:user] if params.has_key?(:user)
634
+ query_params[:summaryExclude] = params[:summaryExclude] if params.has_key?(:summaryExclude)
635
+ query_params[:summaryInclude] = params[:summaryInclude] if params.has_key?(:summaryInclude)
636
+ headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
637
+ query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
638
+ query_params[:_links] = params[:_links] if params.has_key?(:_links)
639
+ query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)
640
+
641
+ path = "/me"
642
+
643
+ @client.request(
644
+ method: :patch,
645
+ path: path,
646
+ query: query_params,
647
+ headers: headers,
648
+ body: body)
649
+ end
650
+
651
+ # Returns payload counts for the time range specified for all applications the current user owns
652
+ #
653
+ # Authentication:
654
+ # The client must be configured with a valid api
655
+ # access token to call this action. The token
656
+ # must include at least one of the following scopes:
657
+ # all.User, all.User.read, me.*, or me.payloadCounts.
658
+ #
659
+ # Parameters:
660
+ # * {string} start - Start of range for payload count query (ms since epoch)
661
+ # * {string} end - End of range for payload count query (ms since epoch)
662
+ # * {string} losantdomain - Domain scope of request (rarely needed)
663
+ # * {boolean} _actions - Return resource actions in response
664
+ # * {boolean} _links - Return resource link in response
665
+ # * {boolean} _embedded - Return embedded resources in response
666
+ #
667
+ # Responses:
668
+ # * 200 - Payload counts, by type and source (https://api.losant.com/#/definitions/payloadStats)
669
+ #
670
+ # Errors:
671
+ # * 400 - Error if malformed request (https://api.losant.com/#/definitions/error)
672
+ def payload_counts(params = {})
673
+ params = Utils.symbolize_hash_keys(params)
674
+ query_params = { _actions: false, _links: true, _embedded: true }
675
+ headers = {}
676
+ body = nil
677
+
678
+
679
+ query_params[:start] = params[:start] if params.has_key?(:start)
680
+ query_params[:end] = params[:end] if params.has_key?(:end)
681
+ headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
682
+ query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
683
+ query_params[:_links] = params[:_links] if params.has_key?(:_links)
684
+ query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)
685
+
686
+ path = "/me/payloadCounts"
687
+
688
+ @client.request(
689
+ method: :get,
690
+ path: path,
691
+ query: query_params,
692
+ headers: headers,
693
+ body: body)
694
+ end
695
+
696
+ # Returns payload counts per resolution in the time range specified for all applications the current user owns
697
+ #
698
+ # Authentication:
699
+ # The client must be configured with a valid api
700
+ # access token to call this action. The token
701
+ # must include at least one of the following scopes:
702
+ # all.User, all.User.read, me.*, or me.payloadCountsBreakdown.
703
+ #
704
+ # Parameters:
705
+ # * {string} start - Start of range for payload count query (ms since epoch)
706
+ # * {string} end - End of range for payload count query (ms since epoch)
707
+ # * {string} resolution - Resolution in milliseconds. Accepted values are: 86400000, 3600000
708
+ # * {string} asBytes - If the resulting stats should be returned as bytes
709
+ # * {string} includeNonBillable - If non-billable payloads should be included in the result
710
+ # * {string} losantdomain - Domain scope of request (rarely needed)
711
+ # * {boolean} _actions - Return resource actions in response
712
+ # * {boolean} _links - Return resource link in response
713
+ # * {boolean} _embedded - Return embedded resources in response
714
+ #
715
+ # Responses:
716
+ # * 200 - Sum of payload counts by date (https://api.losant.com/#/definitions/payloadCountsBreakdown)
717
+ #
718
+ # Errors:
719
+ # * 400 - Error if malformed request (https://api.losant.com/#/definitions/error)
720
+ def payload_counts_breakdown(params = {})
721
+ params = Utils.symbolize_hash_keys(params)
722
+ query_params = { _actions: false, _links: true, _embedded: true }
723
+ headers = {}
724
+ body = nil
725
+
726
+
727
+ query_params[:start] = params[:start] if params.has_key?(:start)
728
+ query_params[:end] = params[:end] if params.has_key?(:end)
729
+ query_params[:resolution] = params[:resolution] if params.has_key?(:resolution)
730
+ query_params[:asBytes] = params[:asBytes] if params.has_key?(:asBytes)
731
+ query_params[:includeNonBillable] = params[:includeNonBillable] if params.has_key?(:includeNonBillable)
732
+ headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
733
+ query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
734
+ query_params[:_links] = params[:_links] if params.has_key?(:_links)
735
+ query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)
736
+
737
+ path = "/me/payloadCountsBreakdown"
738
+
739
+ @client.request(
740
+ method: :get,
741
+ path: path,
742
+ query: query_params,
743
+ headers: headers,
744
+ body: body)
745
+ end
746
+
747
+ # Returns a new auth token based on the current auth token
748
+ #
749
+ # Authentication:
750
+ # The client must be configured with a valid api
751
+ # access token to call this action. The token
752
+ # must include at least one of the following scopes:
753
+ # all.User, or me.*.
754
+ #
755
+ # Parameters:
756
+ # * {string} losantdomain - Domain scope of request (rarely needed)
757
+ # * {boolean} _actions - Return resource actions in response
758
+ # * {boolean} _links - Return resource link in response
759
+ # * {boolean} _embedded - Return embedded resources in response
760
+ #
761
+ # Responses:
762
+ # * 200 - Successful token regeneration (https://api.losant.com/#/definitions/authedUser)
763
+ #
764
+ # Errors:
765
+ # * 400 - Error if malformed request (https://api.losant.com/#/definitions/error)
766
+ # * 401 - Unauthorized error if authentication fails (https://api.losant.com/#/definitions/error)
767
+ def refresh_token(params = {})
768
+ params = Utils.symbolize_hash_keys(params)
769
+ query_params = { _actions: false, _links: true, _embedded: true }
770
+ headers = {}
771
+ body = nil
772
+
773
+
774
+ headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
775
+ query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
776
+ query_params[:_links] = params[:_links] if params.has_key?(:_links)
777
+ query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)
778
+
779
+ path = "/me/refreshToken"
780
+
781
+ @client.request(
782
+ method: :get,
783
+ path: path,
784
+ query: query_params,
785
+ headers: headers,
786
+ body: body)
787
+ end
788
+
789
+ # Accepts or rejects an invitation to an organization
790
+ #
791
+ # Authentication:
792
+ # The client must be configured with a valid api
793
+ # access token to call this action. The token
794
+ # must include at least one of the following scopes:
795
+ # all.User, me.*, or me.respondToInvite.
796
+ #
797
+ # Parameters:
798
+ # * {string} inviteId - ID associated with the invitation
799
+ # * {hash} response - Response to invitation (https://api.losant.com/#/definitions/orgInviteActionUser)
800
+ # * {string} losantdomain - Domain scope of request (rarely needed)
801
+ # * {boolean} _actions - Return resource actions in response
802
+ # * {boolean} _links - Return resource link in response
803
+ # * {boolean} _embedded - Return embedded resources in response
804
+ #
805
+ # Responses:
806
+ # * 200 - Acceptance or rejection of invitation (https://api.losant.com/#/definitions/orgInviteResultUser)
807
+ #
808
+ # Errors:
809
+ # * 400 - Error if malformed request (https://api.losant.com/#/definitions/error)
810
+ # * 404 - Error if invitation not found (https://api.losant.com/#/definitions/error)
811
+ # * 410 - Error if invitation has expired (https://api.losant.com/#/definitions/error)
812
+ def respond_to_invite(params = {})
813
+ params = Utils.symbolize_hash_keys(params)
814
+ query_params = { _actions: false, _links: true, _embedded: true }
815
+ headers = {}
816
+ body = nil
817
+
818
+ raise ArgumentError.new("inviteId is required") unless params.has_key?(:inviteId)
819
+ raise ArgumentError.new("response is required") unless params.has_key?(:response)
820
+
821
+ body = params[:response] if params.has_key?(:response)
822
+ headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
823
+ query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
824
+ query_params[:_links] = params[:_links] if params.has_key?(:_links)
825
+ query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)
826
+
827
+ path = "/me/invites/#{params[:inviteId]}"
828
+
829
+ @client.request(
830
+ method: :post,
831
+ path: path,
832
+ query: query_params,
833
+ headers: headers,
834
+ body: body)
835
+ end
836
+
837
+ # Moves resources to a new owner
838
+ #
839
+ # Authentication:
840
+ # The client must be configured with a valid api
841
+ # access token to call this action. The token
842
+ # must include at least one of the following scopes:
843
+ # all.User, me.*, or me.transferResources.
844
+ #
845
+ # Parameters:
846
+ # * {hash} transfer - Object containing properties of the transfer (https://api.losant.com/#/definitions/resourceTransfer)
847
+ # * {string} losantdomain - Domain scope of request (rarely needed)
848
+ # * {boolean} _actions - Return resource actions in response
849
+ # * {boolean} _links - Return resource link in response
850
+ # * {boolean} _embedded - Return embedded resources in response
851
+ #
852
+ # Responses:
853
+ # * 200 - If resource transfer was successful (https://api.losant.com/#/definitions/success)
854
+ #
855
+ # Errors:
856
+ # * 400 - Error if malformed request (https://api.losant.com/#/definitions/error)
857
+ def transfer_resources(params = {})
858
+ params = Utils.symbolize_hash_keys(params)
859
+ query_params = { _actions: false, _links: true, _embedded: true }
860
+ headers = {}
861
+ body = nil
862
+
863
+ raise ArgumentError.new("transfer is required") unless params.has_key?(:transfer)
864
+
865
+ body = params[:transfer] if params.has_key?(:transfer)
866
+ headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
867
+ query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
868
+ query_params[:_links] = params[:_links] if params.has_key?(:_links)
869
+ query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)
870
+
871
+ path = "/me/transferResources"
872
+
873
+ @client.request(
874
+ method: :patch,
875
+ path: path,
876
+ query: query_params,
877
+ headers: headers,
878
+ body: body)
879
+ end
880
+
881
+ # Sends an email verification to the user
882
+ #
883
+ # Authentication:
884
+ # The client must be configured with a valid api
885
+ # access token to call this action. The token
886
+ # must include at least one of the following scopes:
887
+ # all.User, me.*, or me.verifyEmail.
888
+ #
889
+ # Parameters:
890
+ # * {string} losantdomain - Domain scope of request (rarely needed)
891
+ # * {boolean} _actions - Return resource actions in response
892
+ # * {boolean} _links - Return resource link in response
893
+ # * {boolean} _embedded - Return embedded resources in response
894
+ #
895
+ # Responses:
896
+ # * 200 - If email verification was successfully sent (https://api.losant.com/#/definitions/success)
897
+ #
898
+ # Errors:
899
+ # * 400 - Error if malformed request (https://api.losant.com/#/definitions/error)
900
+ def verify_email(params = {})
901
+ params = Utils.symbolize_hash_keys(params)
902
+ query_params = { _actions: false, _links: true, _embedded: true }
903
+ headers = {}
904
+ body = nil
905
+
906
+
907
+ headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
908
+ query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
909
+ query_params[:_links] = params[:_links] if params.has_key?(:_links)
910
+ query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)
911
+
912
+ path = "/me/verify-email"
913
+
914
+ @client.request(
915
+ method: :post,
916
+ path: path,
917
+ query: query_params,
918
+ headers: headers,
919
+ body: body)
920
+ end
921
+
922
+ end
923
+ end