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,138 @@
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 Credentials Resource
28
+ class Credentials
29
+
30
+ def initialize(client)
31
+ @client = client
32
+ end
33
+
34
+ # Returns a collection of credentials for an application
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.Application, all.Application.read, all.Organization, all.Organization.read, all.User, all.User.read, credentials.*, or credentials.get.
41
+ #
42
+ # Parameters:
43
+ # * {string} applicationId - ID associated with the application
44
+ # * {string} sortField - Field to sort the results by. Accepted values are: name, type, creationDate, lastUpdated
45
+ # * {string} sortDirection - Direction to sort the results by. Accepted values are: asc, desc
46
+ # * {string} page - Which page of results to return
47
+ # * {string} perPage - How many items to return per page
48
+ # * {string} filterField - Field to filter the results by. Blank or not provided means no filtering. Accepted values are: name, type
49
+ # * {string} filter - Filter to apply against the filtered field. Supports globbing. Blank or not provided means no filtering.
50
+ # * {string} losantdomain - Domain scope of request (rarely needed)
51
+ # * {boolean} _actions - Return resource actions in response
52
+ # * {boolean} _links - Return resource link in response
53
+ # * {boolean} _embedded - Return embedded resources in response
54
+ #
55
+ # Responses:
56
+ # * 200 - Collection of credentials (https://api.losant.com/#/definitions/credentials)
57
+ #
58
+ # Errors:
59
+ # * 400 - Error if malformed request (https://api.losant.com/#/definitions/error)
60
+ # * 404 - Error if application was not found (https://api.losant.com/#/definitions/error)
61
+ def get(params = {})
62
+ params = Utils.symbolize_hash_keys(params)
63
+ query_params = { _actions: false, _links: true, _embedded: true }
64
+ headers = {}
65
+ body = nil
66
+
67
+ raise ArgumentError.new("applicationId is required") unless params.has_key?(:applicationId)
68
+
69
+ query_params[:sortField] = params[:sortField] if params.has_key?(:sortField)
70
+ query_params[:sortDirection] = params[:sortDirection] if params.has_key?(:sortDirection)
71
+ query_params[:page] = params[:page] if params.has_key?(:page)
72
+ query_params[:perPage] = params[:perPage] if params.has_key?(:perPage)
73
+ query_params[:filterField] = params[:filterField] if params.has_key?(:filterField)
74
+ query_params[:filter] = params[:filter] if params.has_key?(:filter)
75
+ headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
76
+ query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
77
+ query_params[:_links] = params[:_links] if params.has_key?(:_links)
78
+ query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)
79
+
80
+ path = "/applications/#{params[:applicationId]}/credentials"
81
+
82
+ @client.request(
83
+ method: :get,
84
+ path: path,
85
+ query: query_params,
86
+ headers: headers,
87
+ body: body)
88
+ end
89
+
90
+ # Create a new credential for an application
91
+ #
92
+ # Authentication:
93
+ # The client must be configured with a valid api
94
+ # access token to call this action. The token
95
+ # must include at least one of the following scopes:
96
+ # all.Application, all.Organization, all.User, credentials.*, or credentials.post.
97
+ #
98
+ # Parameters:
99
+ # * {string} applicationId - ID associated with the application
100
+ # * {hash} credential - Credential information (https://api.losant.com/#/definitions/credentialPost)
101
+ # * {string} losantdomain - Domain scope of request (rarely needed)
102
+ # * {boolean} _actions - Return resource actions in response
103
+ # * {boolean} _links - Return resource link in response
104
+ # * {boolean} _embedded - Return embedded resources in response
105
+ #
106
+ # Responses:
107
+ # * 201 - Successfully created credential (https://api.losant.com/#/definitions/credential)
108
+ #
109
+ # Errors:
110
+ # * 400 - Error if malformed request (https://api.losant.com/#/definitions/error)
111
+ # * 404 - Error if application was not found (https://api.losant.com/#/definitions/error)
112
+ def post(params = {})
113
+ params = Utils.symbolize_hash_keys(params)
114
+ query_params = { _actions: false, _links: true, _embedded: true }
115
+ headers = {}
116
+ body = nil
117
+
118
+ raise ArgumentError.new("applicationId is required") unless params.has_key?(:applicationId)
119
+ raise ArgumentError.new("credential is required") unless params.has_key?(:credential)
120
+
121
+ body = params[:credential] if params.has_key?(:credential)
122
+ headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
123
+ query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
124
+ query_params[:_links] = params[:_links] if params.has_key?(:_links)
125
+ query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)
126
+
127
+ path = "/applications/#{params[:applicationId]}/credentials"
128
+
129
+ @client.request(
130
+ method: :post,
131
+ path: path,
132
+ query: query_params,
133
+ headers: headers,
134
+ body: body)
135
+ end
136
+
137
+ end
138
+ end
@@ -0,0 +1,268 @@
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 Dashboard Resource
28
+ class Dashboard
29
+
30
+ def initialize(client)
31
+ @client = client
32
+ end
33
+
34
+ # Deletes a dashboard
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.Organization, all.User, dashboard.*, or dashboard.delete.
41
+ #
42
+ # Parameters:
43
+ # * {string} dashboardId - ID of the associated dashboard
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 - If dashboard was successfully deleted (https://api.losant.com/#/definitions/success)
51
+ #
52
+ # Errors:
53
+ # * 400 - Error if malformed request (https://api.losant.com/#/definitions/error)
54
+ # * 404 - Error if dashboard was not found (https://api.losant.com/#/definitions/error)
55
+ def delete(params = {})
56
+ params = Utils.symbolize_hash_keys(params)
57
+ query_params = { _actions: false, _links: true, _embedded: true }
58
+ headers = {}
59
+ body = nil
60
+
61
+ raise ArgumentError.new("dashboardId is required") unless params.has_key?(:dashboardId)
62
+
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 = "/dashboards/#{params[:dashboardId]}"
69
+
70
+ @client.request(
71
+ method: :delete,
72
+ path: path,
73
+ query: query_params,
74
+ headers: headers,
75
+ body: body)
76
+ end
77
+
78
+ # Retrieves information on a dashboard
79
+ #
80
+ # Authentication:
81
+ # No api access token is required to call this action.
82
+ #
83
+ # Parameters:
84
+ # * {string} dashboardId - ID of the associated dashboard
85
+ # * {string} password - Password for password-protected dashboards
86
+ # * {string} losantdomain - Domain scope of request (rarely needed)
87
+ # * {boolean} _actions - Return resource actions in response
88
+ # * {boolean} _links - Return resource link in response
89
+ # * {boolean} _embedded - Return embedded resources in response
90
+ #
91
+ # Responses:
92
+ # * 200 - Dashboard information (https://api.losant.com/#/definitions/dashboard)
93
+ #
94
+ # Errors:
95
+ # * 400 - Error if malformed request (https://api.losant.com/#/definitions/error)
96
+ # * 404 - Error if dashboard was not found (https://api.losant.com/#/definitions/error)
97
+ def get(params = {})
98
+ params = Utils.symbolize_hash_keys(params)
99
+ query_params = { _actions: false, _links: true, _embedded: true }
100
+ headers = {}
101
+ body = nil
102
+
103
+ raise ArgumentError.new("dashboardId is required") unless params.has_key?(:dashboardId)
104
+
105
+ query_params[:password] = params[:password] if params.has_key?(:password)
106
+ headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
107
+ query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
108
+ query_params[:_links] = params[:_links] if params.has_key?(:_links)
109
+ query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)
110
+
111
+ path = "/dashboards/#{params[:dashboardId]}"
112
+
113
+ @client.request(
114
+ method: :get,
115
+ path: path,
116
+ query: query_params,
117
+ headers: headers,
118
+ body: body)
119
+ end
120
+
121
+ # Updates information about a dashboard
122
+ #
123
+ # Authentication:
124
+ # The client must be configured with a valid api
125
+ # access token to call this action. The token
126
+ # must include at least one of the following scopes:
127
+ # all.Organization, all.User, dashboard.*, or dashboard.patch.
128
+ #
129
+ # Parameters:
130
+ # * {string} dashboardId - ID of the associated dashboard
131
+ # * {hash} dashboard - Object containing new dashboard properties (https://api.losant.com/#/definitions/dashboardPatch)
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 - Update dashboard information (https://api.losant.com/#/definitions/dashboard)
139
+ #
140
+ # Errors:
141
+ # * 400 - Error if malformed request (https://api.losant.com/#/definitions/error)
142
+ # * 404 - Error if dashboard was not found (https://api.losant.com/#/definitions/error)
143
+ def patch(params = {})
144
+ params = Utils.symbolize_hash_keys(params)
145
+ query_params = { _actions: false, _links: true, _embedded: true }
146
+ headers = {}
147
+ body = nil
148
+
149
+ raise ArgumentError.new("dashboardId is required") unless params.has_key?(:dashboardId)
150
+ raise ArgumentError.new("dashboard is required") unless params.has_key?(:dashboard)
151
+
152
+ body = params[:dashboard] if params.has_key?(:dashboard)
153
+ headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
154
+ query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
155
+ query_params[:_links] = params[:_links] if params.has_key?(:_links)
156
+ query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)
157
+
158
+ path = "/dashboards/#{params[:dashboardId]}"
159
+
160
+ @client.request(
161
+ method: :patch,
162
+ path: path,
163
+ query: query_params,
164
+ headers: headers,
165
+ body: body)
166
+ end
167
+
168
+ # Sends a snapshot of a dashboard
169
+ #
170
+ # Authentication:
171
+ # The client must be configured with a valid api
172
+ # access token to call this action. The token
173
+ # must include at least one of the following scopes:
174
+ # all.Organization, all.User, dashboard.*, or dashboard.sendReport.
175
+ #
176
+ # Parameters:
177
+ # * {string} dashboardId - ID of the associated dashboard
178
+ # * {hash} reportConfig - Object containing report options (https://api.losant.com/#/definitions/dashboardSendReport)
179
+ # * {string} losantdomain - Domain scope of request (rarely needed)
180
+ # * {boolean} _actions - Return resource actions in response
181
+ # * {boolean} _links - Return resource link in response
182
+ # * {boolean} _embedded - Return embedded resources in response
183
+ #
184
+ # Responses:
185
+ # * 202 - If dashboard report was enqueued to be sent (https://api.losant.com/#/definitions/jobEnqueuedResult)
186
+ #
187
+ # Errors:
188
+ # * 400 - Error if malformed request (https://api.losant.com/#/definitions/error)
189
+ # * 404 - Error if dashboard was not found (https://api.losant.com/#/definitions/error)
190
+ def send_report(params = {})
191
+ params = Utils.symbolize_hash_keys(params)
192
+ query_params = { _actions: false, _links: true, _embedded: true }
193
+ headers = {}
194
+ body = nil
195
+
196
+ raise ArgumentError.new("dashboardId is required") unless params.has_key?(:dashboardId)
197
+ raise ArgumentError.new("reportConfig is required") unless params.has_key?(:reportConfig)
198
+
199
+ body = params[:reportConfig] if params.has_key?(:reportConfig)
200
+ headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
201
+ query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
202
+ query_params[:_links] = params[:_links] if params.has_key?(:_links)
203
+ query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)
204
+
205
+ path = "/dashboards/#{params[:dashboardId]}"
206
+
207
+ @client.request(
208
+ method: :post,
209
+ path: path,
210
+ query: query_params,
211
+ headers: headers,
212
+ body: body)
213
+ end
214
+
215
+ # Validates a context object against the dashboard's context configuration
216
+ #
217
+ # Authentication:
218
+ # No api access token is required to call this action.
219
+ #
220
+ # Parameters:
221
+ # * {string} dashboardId - ID of the associated dashboard
222
+ # * {hash} ctx - The context object to validate (https://api.losant.com/#/definitions/dashboardContextInstance)
223
+ # * {string} password - Password for password-protected dashboards
224
+ # * {string} duration - Duration of data to fetch in milliseconds
225
+ # * {string} resolution - Resolution in milliseconds
226
+ # * {string} end - End timestamp of the data, in ms since epoch
227
+ # * {string} losantdomain - Domain scope of request (rarely needed)
228
+ # * {boolean} _actions - Return resource actions in response
229
+ # * {boolean} _links - Return resource link in response
230
+ # * {boolean} _embedded - Return embedded resources in response
231
+ #
232
+ # Responses:
233
+ # * 200 - If context is valid (https://api.losant.com/#/definitions/validateContextSuccess)
234
+ #
235
+ # Errors:
236
+ # * 400 - Error if context is invalid (https://api.losant.com/#/definitions/validateContextError)
237
+ # * 404 - Error if dashboard or application was not found (https://api.losant.com/#/definitions/error)
238
+ def validate_context(params = {})
239
+ params = Utils.symbolize_hash_keys(params)
240
+ query_params = { _actions: false, _links: true, _embedded: true }
241
+ headers = {}
242
+ body = nil
243
+
244
+ raise ArgumentError.new("dashboardId is required") unless params.has_key?(:dashboardId)
245
+ raise ArgumentError.new("ctx is required") unless params.has_key?(:ctx)
246
+
247
+ body = params[:ctx] if params.has_key?(:ctx)
248
+ query_params[:password] = params[:password] if params.has_key?(:password)
249
+ query_params[:duration] = params[:duration] if params.has_key?(:duration)
250
+ query_params[:resolution] = params[:resolution] if params.has_key?(:resolution)
251
+ query_params[:end] = params[:end] if params.has_key?(:end)
252
+ headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
253
+ query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
254
+ query_params[:_links] = params[:_links] if params.has_key?(:_links)
255
+ query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)
256
+
257
+ path = "/dashboards/#{params[:dashboardId]}/validateContext"
258
+
259
+ @client.request(
260
+ method: :post,
261
+ path: path,
262
+ query: query_params,
263
+ headers: headers,
264
+ body: body)
265
+ end
266
+
267
+ end
268
+ end
@@ -0,0 +1,136 @@
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 Dashboards Resource
28
+ class Dashboards
29
+
30
+ def initialize(client)
31
+ @client = client
32
+ end
33
+
34
+ # Returns the dashboards the current user has permission to see
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.Organization, all.Organization.read, all.User, all.User.read, dashboards.*, or dashboards.get.
41
+ #
42
+ # Parameters:
43
+ # * {string} sortField - Field to sort the results by. Accepted values are: name, id, creationDate, ownerId, applicationId, lastUpdated
44
+ # * {string} sortDirection - Direction to sort the results by. Accepted values are: asc, desc
45
+ # * {string} page - Which page of results to return
46
+ # * {string} perPage - How many items to return per page
47
+ # * {string} filterField - Field to filter the results by. Blank or not provided means no filtering. Accepted values are: name
48
+ # * {string} filter - Filter to apply against the filtered field. Supports globbing. Blank or not provided means no filtering.
49
+ # * {string} applicationId - If not provided, return all dashboards. If provided but blank, only return dashboards that are not linked to applications. If provided and an id, only return dashboards linked to the given application id.
50
+ # * {string} orgId - If not provided, return all dashboards. If provided but blank, only return dashboards belonging to the current user. If provided and an id, only return dashboards belonging to the given organization id.
51
+ # * {string} losantdomain - Domain scope of request (rarely needed)
52
+ # * {boolean} _actions - Return resource actions in response
53
+ # * {boolean} _links - Return resource link in response
54
+ # * {boolean} _embedded - Return embedded resources in response
55
+ #
56
+ # Responses:
57
+ # * 200 - Collection of dashboards (https://api.losant.com/#/definitions/dashboards)
58
+ #
59
+ # Errors:
60
+ # * 400 - Error if malformed request (https://api.losant.com/#/definitions/error)
61
+ def get(params = {})
62
+ params = Utils.symbolize_hash_keys(params)
63
+ query_params = { _actions: false, _links: true, _embedded: true }
64
+ headers = {}
65
+ body = nil
66
+
67
+
68
+ query_params[:sortField] = params[:sortField] if params.has_key?(:sortField)
69
+ query_params[:sortDirection] = params[:sortDirection] if params.has_key?(:sortDirection)
70
+ query_params[:page] = params[:page] if params.has_key?(:page)
71
+ query_params[:perPage] = params[:perPage] if params.has_key?(:perPage)
72
+ query_params[:filterField] = params[:filterField] if params.has_key?(:filterField)
73
+ query_params[:filter] = params[:filter] if params.has_key?(:filter)
74
+ query_params[:applicationId] = params[:applicationId] if params.has_key?(:applicationId)
75
+ query_params[:orgId] = params[:orgId] if params.has_key?(:orgId)
76
+ headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
77
+ query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
78
+ query_params[:_links] = params[:_links] if params.has_key?(:_links)
79
+ query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)
80
+
81
+ path = "/dashboards"
82
+
83
+ @client.request(
84
+ method: :get,
85
+ path: path,
86
+ query: query_params,
87
+ headers: headers,
88
+ body: body)
89
+ end
90
+
91
+ # Create a new dashboard
92
+ #
93
+ # Authentication:
94
+ # The client must be configured with a valid api
95
+ # access token to call this action. The token
96
+ # must include at least one of the following scopes:
97
+ # all.Organization, all.User, dashboards.*, or dashboards.post.
98
+ #
99
+ # Parameters:
100
+ # * {hash} dashboard - New dashboard information (https://api.losant.com/#/definitions/dashboardPost)
101
+ # * {string} losantdomain - Domain scope of request (rarely needed)
102
+ # * {boolean} _actions - Return resource actions in response
103
+ # * {boolean} _links - Return resource link in response
104
+ # * {boolean} _embedded - Return embedded resources in response
105
+ #
106
+ # Responses:
107
+ # * 201 - Successfully created dashboard (https://api.losant.com/#/definitions/dashboard)
108
+ #
109
+ # Errors:
110
+ # * 400 - Error if malformed request (https://api.losant.com/#/definitions/error)
111
+ def post(params = {})
112
+ params = Utils.symbolize_hash_keys(params)
113
+ query_params = { _actions: false, _links: true, _embedded: true }
114
+ headers = {}
115
+ body = nil
116
+
117
+ raise ArgumentError.new("dashboard is required") unless params.has_key?(:dashboard)
118
+
119
+ body = params[:dashboard] if params.has_key?(:dashboard)
120
+ headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
121
+ query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
122
+ query_params[:_links] = params[:_links] if params.has_key?(:_links)
123
+ query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)
124
+
125
+ path = "/dashboards"
126
+
127
+ @client.request(
128
+ method: :post,
129
+ path: path,
130
+ query: query_params,
131
+ headers: headers,
132
+ body: body)
133
+ end
134
+
135
+ end
136
+ end