losant_rest 1.15.2 → 1.16.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (94) hide show
  1. checksums.yaml +4 -4
  2. data/docs/_schemas.md +7912 -2208
  3. data/docs/application.md +3 -4
  4. data/docs/applicationDashboard.md +43 -0
  5. data/docs/applications.md +3 -2
  6. data/docs/flows.md +38 -0
  7. data/docs/instanceCustomNode.md +222 -0
  8. data/docs/instanceCustomNodes.md +91 -0
  9. data/docs/instanceSandbox.md +135 -0
  10. data/docs/instanceSandboxes.md +53 -0
  11. data/lib/losant_rest/application_dashboard.rb +49 -0
  12. data/lib/losant_rest/client.rb +18 -2
  13. data/lib/losant_rest/flows.rb +44 -0
  14. data/lib/losant_rest/instance_custom_node.rb +282 -0
  15. data/lib/losant_rest/instance_custom_nodes.rb +136 -0
  16. data/lib/losant_rest/instance_sandbox.rb +181 -0
  17. data/lib/losant_rest/instance_sandboxes.rb +94 -0
  18. data/lib/losant_rest/version.rb +1 -1
  19. data/lib/losant_rest.rb +4 -0
  20. data/schemas/apiTokenPost.json +18 -1
  21. data/schemas/application.json +1 -1
  22. data/schemas/applicationApplyTemplatePatch.json +5 -0
  23. data/schemas/applicationClonePost.json +5 -0
  24. data/schemas/applicationCreationByTemplateResult.json +1 -1
  25. data/schemas/applicationDashboardPost.json +165 -3
  26. data/schemas/applicationExportPost.json +5 -0
  27. data/schemas/applicationImportOptions.json +43 -0
  28. data/schemas/applicationPatch.json +1 -1
  29. data/schemas/applicationPost.json +1 -1
  30. data/schemas/applicationSearchResult.json +2 -1
  31. data/schemas/applicationTemplateCategories.json +11 -0
  32. data/schemas/applicationTemplateCategory.json +11 -0
  33. data/schemas/applications.json +1 -1
  34. data/schemas/dashboard.json +165 -3
  35. data/schemas/dashboardPatch.json +165 -3
  36. data/schemas/dashboardPost.json +165 -3
  37. data/schemas/dashboardSendReport.json +23 -3
  38. data/schemas/dashboards.json +165 -3
  39. data/schemas/dataExport.json +1 -0
  40. data/schemas/devicesDeletePost.json +5 -0
  41. data/schemas/devicesExportPayloadCountPost.json +1 -0
  42. data/schemas/devicesExportPost.json +1 -0
  43. data/schemas/devicesPatch.json +5 -0
  44. data/schemas/embeddedDeploymentExport.json +5 -0
  45. data/schemas/eventsExport.json +1 -0
  46. data/schemas/experienceBootstrapOptions.json +1 -1
  47. data/schemas/experienceLinkedResources.json +20 -5
  48. data/schemas/experienceSlug.json +1 -1
  49. data/schemas/experienceSlugPatch.json +1 -1
  50. data/schemas/experienceSlugPost.json +1 -1
  51. data/schemas/experienceSlugs.json +1 -1
  52. data/schemas/experienceUser.json +2 -1
  53. data/schemas/experienceUsers.json +2 -1
  54. data/schemas/flow.json +18 -0
  55. data/schemas/flowPatch.json +19 -0
  56. data/schemas/flowPost.json +19 -0
  57. data/schemas/flowVersion.json +2 -5
  58. data/schemas/flowVersionPost.json +1 -0
  59. data/schemas/flowVersions.json +2 -5
  60. data/schemas/flowVersionsDeletePost.json +5 -0
  61. data/schemas/flows.json +18 -0
  62. data/schemas/flowsImportPost.json +29 -2
  63. data/schemas/flowsImportResult.json +20 -5
  64. data/schemas/githubLogin.json +18 -1
  65. data/schemas/importIntoApplicationOptions.json +52 -0
  66. data/schemas/importNewApplicationOptions.json +44 -0
  67. data/schemas/instance.json +1 -0
  68. data/schemas/instanceCustomNode.json +589 -0
  69. data/schemas/instanceCustomNodePatch.json +674 -0
  70. data/schemas/instanceCustomNodePost.json +679 -0
  71. data/schemas/instanceCustomNodes.json +634 -0
  72. data/schemas/instanceMember.json +2 -1
  73. data/schemas/instanceMembers.json +2 -1
  74. data/schemas/instanceOrg.json +38 -0
  75. data/schemas/instanceOrgMember.json +2 -1
  76. data/schemas/instanceOrgPatch.json +29 -0
  77. data/schemas/instanceOrgPost.json +29 -0
  78. data/schemas/instanceOrgs.json +38 -0
  79. data/schemas/instancePatch.json +1 -0
  80. data/schemas/instanceReportOptionsPost.json +1 -0
  81. data/schemas/instanceSandbox.json +423 -0
  82. data/schemas/instanceSandboxes.json +48 -0
  83. data/schemas/integration.json +29 -1
  84. data/schemas/integrationPatch.json +29 -1
  85. data/schemas/integrationPost.json +29 -1
  86. data/schemas/integrations.json +29 -1
  87. data/schemas/me.json +2 -1
  88. data/schemas/notebookDataExportOptions.json +5 -0
  89. data/schemas/org.json +19 -1
  90. data/schemas/orgs.json +19 -1
  91. data/schemas/paletteResponse.json +785 -0
  92. data/schemas/userCredentials.json +18 -1
  93. data/schemas/userPost.json +18 -1
  94. metadata +20 -2
@@ -0,0 +1,181 @@
1
+ # The MIT License (MIT)
2
+ #
3
+ # Copyright (c) 2022 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 LosantRest
26
+
27
+ # Class containing all the actions for the Instance Sandbox Resource
28
+ class InstanceSandbox
29
+
30
+ def initialize(client)
31
+ @client = client
32
+ end
33
+
34
+ # Deletes a sandbox user account
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.Instance, all.User, instanceSandbox.*, or instanceSandbox.delete.
41
+ #
42
+ # Parameters:
43
+ # * {string} instanceId - ID associated with the instance
44
+ # * {string} instanceSandboxId - ID associated with the sandbox user
45
+ # * {string} losantdomain - Domain scope of request (rarely needed)
46
+ # * {boolean} _actions - Return resource actions in response
47
+ # * {boolean} _links - Return resource link in response
48
+ # * {boolean} _embedded - Return embedded resources in response
49
+ #
50
+ # Responses:
51
+ # * 200 - If a sandbox was successfully deleted (https://api.losant.com/#/definitions/success)
52
+ #
53
+ # Errors:
54
+ # * 400 - Error if malformed request (https://api.losant.com/#/definitions/error)
55
+ # * 404 - Error if instance, organization or invite was not found (https://api.losant.com/#/definitions/error)
56
+ def delete(params = {})
57
+ params = Utils.symbolize_hash_keys(params)
58
+ query_params = { _actions: false, _links: true, _embedded: true }
59
+ headers = {}
60
+ body = nil
61
+
62
+ raise ArgumentError.new("instanceId is required") unless params.has_key?(:instanceId)
63
+ raise ArgumentError.new("instanceSandboxId is required") unless params.has_key?(:instanceSandboxId)
64
+
65
+ headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
66
+ query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
67
+ query_params[:_links] = params[:_links] if params.has_key?(:_links)
68
+ query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)
69
+
70
+ path = "/instances/#{params[:instanceId]}/sandboxes/#{params[:instanceSandboxId]}"
71
+
72
+ @client.request(
73
+ method: :delete,
74
+ path: path,
75
+ query: query_params,
76
+ headers: headers,
77
+ body: body)
78
+ end
79
+
80
+ # Returns a sandbox user
81
+ #
82
+ # Authentication:
83
+ # The client must be configured with a valid api
84
+ # access token to call this action. The token
85
+ # must include at least one of the following scopes:
86
+ # all.Instance, all.Instance.read, all.User, all.User.read, instanceSandbox.*, or instanceSandbox.get.
87
+ #
88
+ # Parameters:
89
+ # * {string} instanceId - ID associated with the instance
90
+ # * {string} instanceSandboxId - ID associated with the sandbox user
91
+ # * {string} summaryExclude - Comma-separated list of summary fields to exclude from user summary
92
+ # * {string} summaryInclude - Comma-separated list of summary fields to include in user summary
93
+ # * {string} losantdomain - Domain scope of request (rarely needed)
94
+ # * {boolean} _actions - Return resource actions in response
95
+ # * {boolean} _links - Return resource link in response
96
+ # * {boolean} _embedded - Return embedded resources in response
97
+ #
98
+ # Responses:
99
+ # * 200 - A single sandbox user (https://api.losant.com/#/definitions/instanceSandbox)
100
+ #
101
+ # Errors:
102
+ # * 400 - Error if malformed request (https://api.losant.com/#/definitions/error)
103
+ # * 404 - Error if sandbox was not found (https://api.losant.com/#/definitions/error)
104
+ def get(params = {})
105
+ params = Utils.symbolize_hash_keys(params)
106
+ query_params = { _actions: false, _links: true, _embedded: true }
107
+ headers = {}
108
+ body = nil
109
+
110
+ raise ArgumentError.new("instanceId is required") unless params.has_key?(:instanceId)
111
+ raise ArgumentError.new("instanceSandboxId is required") unless params.has_key?(:instanceSandboxId)
112
+
113
+ query_params[:summaryExclude] = params[:summaryExclude] if params.has_key?(:summaryExclude)
114
+ query_params[:summaryInclude] = params[:summaryInclude] if params.has_key?(:summaryInclude)
115
+ headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
116
+ query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
117
+ query_params[:_links] = params[:_links] if params.has_key?(:_links)
118
+ query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)
119
+
120
+ path = "/instances/#{params[:instanceId]}/sandboxes/#{params[:instanceSandboxId]}"
121
+
122
+ @client.request(
123
+ method: :get,
124
+ path: path,
125
+ query: query_params,
126
+ headers: headers,
127
+ body: body)
128
+ end
129
+
130
+ # Restores a sandbox user account
131
+ #
132
+ # Authentication:
133
+ # The client must be configured with a valid api
134
+ # access token to call this action. The token
135
+ # must include at least one of the following scopes:
136
+ # all.Instance, all.User, instanceSandbox.*, or instanceSandbox.undelete.
137
+ #
138
+ # Parameters:
139
+ # * {string} instanceId - ID associated with the instance
140
+ # * {string} instanceSandboxId - ID associated with the sandbox user
141
+ # * {string} summaryExclude - Comma-separated list of summary fields to exclude from user summary
142
+ # * {string} summaryInclude - Comma-separated list of summary fields to include in user summary
143
+ # * {string} losantdomain - Domain scope of request (rarely needed)
144
+ # * {boolean} _actions - Return resource actions in response
145
+ # * {boolean} _links - Return resource link in response
146
+ # * {boolean} _embedded - Return embedded resources in response
147
+ #
148
+ # Responses:
149
+ # * 200 - A single restored sandbox user (https://api.losant.com/#/definitions/instanceSandbox)
150
+ #
151
+ # Errors:
152
+ # * 400 - Error if malformed request (https://api.losant.com/#/definitions/error)
153
+ # * 404 - Error if sandbox was not found (https://api.losant.com/#/definitions/error)
154
+ def undelete(params = {})
155
+ params = Utils.symbolize_hash_keys(params)
156
+ query_params = { _actions: false, _links: true, _embedded: true }
157
+ headers = {}
158
+ body = nil
159
+
160
+ raise ArgumentError.new("instanceId is required") unless params.has_key?(:instanceId)
161
+ raise ArgumentError.new("instanceSandboxId is required") unless params.has_key?(:instanceSandboxId)
162
+
163
+ query_params[:summaryExclude] = params[:summaryExclude] if params.has_key?(:summaryExclude)
164
+ query_params[:summaryInclude] = params[:summaryInclude] if params.has_key?(:summaryInclude)
165
+ headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
166
+ query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
167
+ query_params[:_links] = params[:_links] if params.has_key?(:_links)
168
+ query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)
169
+
170
+ path = "/instances/#{params[:instanceId]}/sandboxes/#{params[:instanceSandboxId]}/undelete"
171
+
172
+ @client.request(
173
+ method: :patch,
174
+ path: path,
175
+ query: query_params,
176
+ headers: headers,
177
+ body: body)
178
+ end
179
+
180
+ end
181
+ end
@@ -0,0 +1,94 @@
1
+ # The MIT License (MIT)
2
+ #
3
+ # Copyright (c) 2022 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 LosantRest
26
+
27
+ # Class containing all the actions for the Instance Sandboxes Resource
28
+ class InstanceSandboxes
29
+
30
+ def initialize(client)
31
+ @client = client
32
+ end
33
+
34
+ # Returns a collection of instance sandboxes
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.Instance, all.Instance.read, all.User, all.User.read, instanceSandboxes.*, or instanceSandboxes.get.
41
+ #
42
+ # Parameters:
43
+ # * {string} instanceId - ID associated with the instance
44
+ # * {string} sortField - Field to sort the results by. Accepted values are: firstName, lastName, email, id, creationDate, lastSuccessfulLogin, lastFailedLogin, failedLoginCount, lastUpdated
45
+ # * {string} sortDirection - Direction to sort the results by. Accepted values are: asc, desc
46
+ # * {string} startingAfterId - Exclusive ID from which to begin querying
47
+ # * {string} endingBeforeId - Exclusive ID at which to end querying
48
+ # * {string} limit - How many items to return
49
+ # * {string} filterField - Field to filter the results by. Blank or not provided means no filtering. Accepted values are: firstName, lastName, email
50
+ # * {string} filter - Filter to apply against the filtered field. Supports globbing. Blank or not provided means no filtering.
51
+ # * {string} includeDeleted - If the result of the request should also include deleted sandboxes.
52
+ # * {string} losantdomain - Domain scope of request (rarely needed)
53
+ # * {boolean} _actions - Return resource actions in response
54
+ # * {boolean} _links - Return resource link in response
55
+ # * {boolean} _embedded - Return embedded resources in response
56
+ #
57
+ # Responses:
58
+ # * 200 - Collection of instance sandboxes (https://api.losant.com/#/definitions/instanceSandboxes)
59
+ #
60
+ # Errors:
61
+ # * 400 - Error if malformed request (https://api.losant.com/#/definitions/error)
62
+ def get(params = {})
63
+ params = Utils.symbolize_hash_keys(params)
64
+ query_params = { _actions: false, _links: true, _embedded: true }
65
+ headers = {}
66
+ body = nil
67
+
68
+ raise ArgumentError.new("instanceId is required") unless params.has_key?(:instanceId)
69
+
70
+ query_params[:sortField] = params[:sortField] if params.has_key?(:sortField)
71
+ query_params[:sortDirection] = params[:sortDirection] if params.has_key?(:sortDirection)
72
+ query_params[:startingAfterId] = params[:startingAfterId] if params.has_key?(:startingAfterId)
73
+ query_params[:endingBeforeId] = params[:endingBeforeId] if params.has_key?(:endingBeforeId)
74
+ query_params[:limit] = params[:limit] if params.has_key?(:limit)
75
+ query_params[:filterField] = params[:filterField] if params.has_key?(:filterField)
76
+ query_params[:filter] = params[:filter] if params.has_key?(:filter)
77
+ query_params[:includeDeleted] = params[:includeDeleted] if params.has_key?(:includeDeleted)
78
+ headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
79
+ query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
80
+ query_params[:_links] = params[:_links] if params.has_key?(:_links)
81
+ query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)
82
+
83
+ path = "/instances/#{params[:instanceId]}/sandboxes"
84
+
85
+ @client.request(
86
+ method: :get,
87
+ path: path,
88
+ query: query_params,
89
+ headers: headers,
90
+ body: body)
91
+ end
92
+
93
+ end
94
+ end
@@ -21,5 +21,5 @@
21
21
  # SOFTWARE.
22
22
 
23
23
  module LosantRest
24
- VERSION = "1.15.2"
24
+ VERSION = "1.16.2"
25
25
  end
data/lib/losant_rest.rb CHANGED
@@ -81,6 +81,8 @@ require_relative "losant_rest/flows"
81
81
  require_relative "losant_rest/instance"
82
82
  require_relative "losant_rest/instance_api_token"
83
83
  require_relative "losant_rest/instance_api_tokens"
84
+ require_relative "losant_rest/instance_custom_node"
85
+ require_relative "losant_rest/instance_custom_nodes"
84
86
  require_relative "losant_rest/instance_member"
85
87
  require_relative "losant_rest/instance_members"
86
88
  require_relative "losant_rest/instance_org"
@@ -89,6 +91,8 @@ require_relative "losant_rest/instance_org_invites"
89
91
  require_relative "losant_rest/instance_org_member"
90
92
  require_relative "losant_rest/instance_org_members"
91
93
  require_relative "losant_rest/instance_orgs"
94
+ require_relative "losant_rest/instance_sandbox"
95
+ require_relative "losant_rest/instance_sandboxes"
92
96
  require_relative "losant_rest/instances"
93
97
  require_relative "losant_rest/integration"
94
98
  require_relative "losant_rest/integrations"
@@ -116,6 +116,7 @@
116
116
  "applicationCertificateAuthorities.post",
117
117
  "applicationDashboard.get",
118
118
  "applicationDashboard.patch",
119
+ "applicationDashboard.sendReport",
119
120
  "applicationDashboard.delete",
120
121
  "applicationDashboards.get",
121
122
  "applicationDashboards.post",
@@ -265,6 +266,7 @@
265
266
  "flows.get",
266
267
  "flows.getByVersion",
267
268
  "flows.import",
269
+ "flows.palette",
268
270
  "flows.post",
269
271
  "flowVersion.delete",
270
272
  "flowVersion.errors",
@@ -379,7 +381,22 @@
379
381
  "instanceApiToken.*",
380
382
  "instanceApiToken.get",
381
383
  "instanceApiToken.patch",
382
- "instanceApiToken.delete"
384
+ "instanceApiToken.delete",
385
+ "instanceCustomNodes.*",
386
+ "instanceCustomNodes.get",
387
+ "instanceCustomNodes.post",
388
+ "instanceCustomNode.*",
389
+ "instanceCustomNode.get",
390
+ "instanceCustomNode.patch",
391
+ "instanceCustomNode.delete",
392
+ "instanceCustomNode.errors",
393
+ "instanceCustomNode.stats",
394
+ "instanceSandbox.*",
395
+ "instanceSandbox.get",
396
+ "instanceSandbox.delete",
397
+ "instanceSandbox.undelete",
398
+ "instanceSandboxes.*",
399
+ "instanceSandboxes.get"
383
400
  ]
384
401
  },
385
402
  {
@@ -57,7 +57,7 @@
57
57
  },
58
58
  "endpointSlug": {
59
59
  "type": "string",
60
- "minLength": 4,
60
+ "minLength": 3,
61
61
  "maxLength": 63,
62
62
  "pattern": "^[0-9a-z-]*$"
63
63
  },
@@ -10,6 +10,11 @@
10
10
  "type": "string",
11
11
  "format": "email",
12
12
  "maxLength": 1024
13
+ },
14
+ "callbackUrl": {
15
+ "type": "string",
16
+ "format": "uri",
17
+ "maxLength": 1024
13
18
  }
14
19
  },
15
20
  "required": [
@@ -40,6 +40,11 @@
40
40
  "type": "string",
41
41
  "format": "email",
42
42
  "maxLength": 1024
43
+ },
44
+ "callbackUrl": {
45
+ "type": "string",
46
+ "format": "uri",
47
+ "maxLength": 1024
43
48
  }
44
49
  },
45
50
  "additionalProperties": false
@@ -62,7 +62,7 @@
62
62
  },
63
63
  "endpointSlug": {
64
64
  "type": "string",
65
- "minLength": 4,
65
+ "minLength": 3,
66
66
  "maxLength": 63,
67
67
  "pattern": "^[0-9a-z-]*$"
68
68
  },
@@ -966,6 +966,147 @@
966
966
  ],
967
967
  "additionalProperties": false
968
968
  },
969
+ {
970
+ "type": "object",
971
+ "properties": {
972
+ "id": {
973
+ "type": "string",
974
+ "maxLength": 48
975
+ },
976
+ "title": {
977
+ "type": "string",
978
+ "maxLength": 255
979
+ },
980
+ "description": {
981
+ "type": "string",
982
+ "maxLength": 32767
983
+ },
984
+ "applicationId": {
985
+ "type": "string",
986
+ "pattern": "^[A-Fa-f\\d]{24}$"
987
+ },
988
+ "startX": {
989
+ "type": "number"
990
+ },
991
+ "startY": {
992
+ "type": "number"
993
+ },
994
+ "width": {
995
+ "type": "number"
996
+ },
997
+ "height": {
998
+ "type": "number"
999
+ },
1000
+ "blockType": {
1001
+ "type": "string",
1002
+ "enum": [
1003
+ "device-count"
1004
+ ]
1005
+ },
1006
+ "config": {
1007
+ "type": "object",
1008
+ "properties": {
1009
+ "segments": {
1010
+ "type": "array",
1011
+ "minItems": 1,
1012
+ "maxItems": 100,
1013
+ "items": {
1014
+ "type": "object",
1015
+ "properties": {
1016
+ "id": {
1017
+ "type": "string",
1018
+ "maxLength": 48
1019
+ },
1020
+ "query": {
1021
+ "type": "string",
1022
+ "maxLength": 32767
1023
+ }
1024
+ },
1025
+ "required": [
1026
+ "id",
1027
+ "query"
1028
+ ],
1029
+ "additionalProperties": false
1030
+ }
1031
+ },
1032
+ "conditions": {
1033
+ "type": "array",
1034
+ "maxItems": 100,
1035
+ "items": {
1036
+ "type": "object",
1037
+ "properties": {
1038
+ "color": {
1039
+ "type": "string",
1040
+ "maxLength": 64
1041
+ },
1042
+ "id": {
1043
+ "type": "string",
1044
+ "maxLength": 48
1045
+ },
1046
+ "label": {
1047
+ "type": "string",
1048
+ "maxLength": 32767
1049
+ },
1050
+ "condition": {
1051
+ "type": "string",
1052
+ "maxLength": 2048
1053
+ },
1054
+ "imageUrl": {
1055
+ "type": "string",
1056
+ "maxLength": 32767
1057
+ },
1058
+ "shape": {
1059
+ "type": "string",
1060
+ "enum": [
1061
+ "circle",
1062
+ "square",
1063
+ "triangle-down",
1064
+ "triangle-up",
1065
+ "octagon"
1066
+ ]
1067
+ }
1068
+ },
1069
+ "additionalProperties": false
1070
+ }
1071
+ },
1072
+ "defaultCondition": {
1073
+ "type": "object",
1074
+ "properties": {
1075
+ "color": {
1076
+ "type": "string",
1077
+ "maxLength": 64
1078
+ },
1079
+ "label": {
1080
+ "type": "string",
1081
+ "maxLength": 32767
1082
+ },
1083
+ "value": {
1084
+ "type": "string",
1085
+ "maxLength": 32767
1086
+ }
1087
+ },
1088
+ "required": [
1089
+ "color"
1090
+ ],
1091
+ "additionalProperties": false
1092
+ }
1093
+ },
1094
+ "required": [
1095
+ "segments",
1096
+ "defaultCondition"
1097
+ ],
1098
+ "additionalProperties": false
1099
+ }
1100
+ },
1101
+ "required": [
1102
+ "blockType",
1103
+ "startX",
1104
+ "startY",
1105
+ "width",
1106
+ "height"
1107
+ ],
1108
+ "additionalProperties": false
1109
+ },
969
1110
  {
970
1111
  "type": "object",
971
1112
  "properties": {
@@ -5318,6 +5459,11 @@
5318
5459
  "maxLength": 1024
5319
5460
  }
5320
5461
  },
5462
+ "callbackUrl": {
5463
+ "type": "string",
5464
+ "format": "uri",
5465
+ "maxLength": 1024
5466
+ },
5321
5467
  "subject": {
5322
5468
  "type": "string",
5323
5469
  "maxLength": 255
@@ -5340,12 +5486,28 @@
5340
5486
  "locale": {
5341
5487
  "type": "string",
5342
5488
  "maxLength": 5
5489
+ },
5490
+ "ctx": {
5491
+ "ref": "#/definitions/dashboardContextInstance"
5492
+ },
5493
+ "branded": {
5494
+ "type": "boolean"
5343
5495
  }
5344
5496
  },
5345
5497
  "additionalProperties": false,
5346
- "required": [
5347
- "cron",
5348
- "toEmail"
5498
+ "anyOf": [
5499
+ {
5500
+ "required": [
5501
+ "cron",
5502
+ "toEmail"
5503
+ ]
5504
+ },
5505
+ {
5506
+ "required": [
5507
+ "cron",
5508
+ "callbackUrl"
5509
+ ]
5510
+ }
5349
5511
  ]
5350
5512
  }
5351
5513
  },
@@ -18,6 +18,11 @@
18
18
  "type": "string",
19
19
  "format": "email",
20
20
  "maxLength": 1024
21
+ },
22
+ "callbackUrl": {
23
+ "type": "string",
24
+ "format": "uri",
25
+ "maxLength": 1024
21
26
  }
22
27
  },
23
28
  "additionalProperties": false
@@ -0,0 +1,43 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-04/schema#",
3
+ "type": "object",
4
+ "properties": {
5
+ "importUrl": {
6
+ "type": "string",
7
+ "format": "uri",
8
+ "maxLength": 1024
9
+ },
10
+ "callbackUrl": {
11
+ "type": "string",
12
+ "format": "uri",
13
+ "maxLength": 1024
14
+ },
15
+ "include": {
16
+ "type": "array",
17
+ "items": {
18
+ "enum": [
19
+ "ApplicationCertificateAuthority",
20
+ "Dashboard",
21
+ "DataTableRow",
22
+ "DataTable",
23
+ "DeviceRecipe",
24
+ "Device",
25
+ "ExperienceEndpoint",
26
+ "ExperienceFlowVersion",
27
+ "ExperienceGroup",
28
+ "ExperienceUser",
29
+ "ExperienceVersion",
30
+ "ExperienceView",
31
+ "File",
32
+ "FlowVersion",
33
+ "Flow",
34
+ "Integration",
35
+ "Notebook",
36
+ "Webhook"
37
+ ]
38
+ },
39
+ "uniqueItems": true
40
+ }
41
+ },
42
+ "additionalProperties": false
43
+ }
@@ -13,7 +13,7 @@
13
13
  },
14
14
  "endpointSlug": {
15
15
  "type": "string",
16
- "minLength": 4,
16
+ "minLength": 3,
17
17
  "maxLength": 63,
18
18
  "pattern": "^[0-9a-z-]*$"
19
19
  },
@@ -29,7 +29,7 @@
29
29
  },
30
30
  "endpointSlug": {
31
31
  "type": "string",
32
- "minLength": 4,
32
+ "minLength": 3,
33
33
  "maxLength": 63,
34
34
  "pattern": "^[0-9a-z-]*$"
35
35
  },
@@ -39,7 +39,8 @@
39
39
  "file",
40
40
  "flow",
41
41
  "integration",
42
- "webhook"
42
+ "webhook",
43
+ "notebook"
43
44
  ]
44
45
  }
45
46
  },