@fourier-labs/harbour-contracts 0.95.0 → 0.97.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/contract-release.json +27 -25
- package/dist/gen-ts/app-integrations-declaration.d.ts +5 -0
- package/dist/gen-ts/contract-release.d.ts +6 -6
- package/dist/gen-ts/contract-release.js +6 -6
- package/dist/gen-ts/data-grant-v2.d.ts +4 -4
- package/dist/gen-ts/deployment-app-registration.d.ts +43 -7
- package/dist/gen-ts/file-arrival.d.ts +13 -0
- package/dist/gen-ts/file-arrival.js +3 -0
- package/dist/gen-ts/index.d.ts +1 -0
- package/dist/gen-ts/index.js +1 -0
- package/dist/gen-ts/integration-execute-input-rules.d.ts +130 -0
- package/dist/gen-ts/integration-execute-input-rules.js +42 -0
- package/dist/gen-ts/integration-execute-request.d.ts +5 -3
- package/dist/gen-ts/integration-execute-result.d.ts +36 -0
- package/dist/gen-ts/integration-operations.d.ts +35 -0
- package/dist/gen-ts/integration-operations.js +45 -0
- package/dist/gen-ts/saas-connection.d.ts +6 -6
- package/gen-ts/app-integrations-declaration.ts +5 -0
- package/gen-ts/contract-release.ts +6 -6
- package/gen-ts/data-grant-v2.ts +12 -2
- package/gen-ts/deployment-app-registration.ts +55 -9
- package/gen-ts/file-arrival.ts +20 -0
- package/gen-ts/index.ts +1 -0
- package/gen-ts/integration-execute-input-rules.ts +42 -0
- package/gen-ts/integration-execute-request.ts +10 -3
- package/gen-ts/integration-execute-result.ts +36 -0
- package/gen-ts/integration-operations.ts +45 -0
- package/gen-ts/saas-connection.ts +18 -3
- package/package.json +1 -1
- package/schema/app-integrations-declaration.schema.json +71 -1
- package/schema/data-grant-v2.schema.json +2 -2
- package/schema/deployment-app-registration.schema.json +183 -22
- package/schema/file-arrival.schema.json +88 -0
- package/schema/integration-execute-request.schema.json +358 -10
- package/schema/integration-execute-result.schema.json +156 -1
- package/schema/saas-connection.schema.json +3 -3
package/package.json
CHANGED
|
@@ -141,7 +141,12 @@
|
|
|
141
141
|
"zohobooks.bill.read",
|
|
142
142
|
"zohobooks.invoice.create",
|
|
143
143
|
"zohobooks.invoice.read",
|
|
144
|
-
"zohobooks.invoice.pdf"
|
|
144
|
+
"zohobooks.invoice.pdf",
|
|
145
|
+
"zohobooks.salesorder.list",
|
|
146
|
+
"zohobooks.salesorder.read",
|
|
147
|
+
"zohobooks.invoice.reviseDraft",
|
|
148
|
+
"zohobooks.creditnote.create",
|
|
149
|
+
"zohobooks.creditnote.read"
|
|
145
150
|
],
|
|
146
151
|
"description": "Closed operation set. Extending it is a contracts change. 0.86.0 (ADR 0032) adds the forty-five Google Workspace and Microsoft 365 operations, every one user mode only: on the provider's fixed alias for the signed-in person's own data, calendar.calendar.list, calendar.event.list, calendar.event.read, calendar.event.create (a receipted write: explicit action, idempotencyKey), calendar.event.update and calendar.event.cancel (idempotent at Google, no key); drive.file.list, drive.file.search, drive.file.read, drive.file.upload and drive.folder.create (receipted writes); docs.document.read, docs.document.create (receipted), docs.document.append and docs.text.replace (no key); sheets.spreadsheet.read, sheets.values.read, sheets.values.append (receipted), sheets.values.update and sheets.values.clear (no key), sheets.spreadsheet.create (receipted); outlook.message.list, outlook.message.read, outlook.attachment.read, outlook.message.send and outlook.message.reply (receipted sends, as gmail.message.send), outlook.event.list, outlook.event.read, outlook.event.create (receipted), outlook.event.update and outlook.event.cancel (no key); onedrive.file.list, onedrive.file.search, onedrive.file.read, onedrive.file.upload and onedrive.folder.create (receipted); excel.worksheet.list, excel.range.read, excel.range.update (no key), excel.table.list, excel.row.add and excel.worksheet.add (receipted); and on a Teams channel alias (a key of the connection's `channels` map) teams.message.list, teams.message.post and teams.reply.post (receipted). 0.78.0 (ADR 0024) adds the nine SharePoint operations, every one user mode only on a site alias (a key of the connection's `channels` map, holding a Microsoft Graph site id): sharepoint.list.list, sharepoint.item.list, sharepoint.item.create (a receipted write: explicit action, idempotencyKey), sharepoint.item.update (a PATCH, idempotent at Graph, no key), sharepoint.drive.list, sharepoint.file.list, sharepoint.file.search, sharepoint.file.read and sharepoint.file.upload (a receipted write). 0.76.0 (ADR 0022) adds the eleven Basecamp operations, every one user mode only like gmail.*: basecamp.project.list (the projects of the company's pinned Basecamp account; its resource is the fixed `account` alias), and on one mapped project (the resource is a project alias, a key of the connection's `channels` map) basecamp.todolist.list, basecamp.todo.list, basecamp.todo.create (a receipted write: explicit action, idempotencyKey), basecamp.todo.complete (idempotent at Basecamp, no key), basecamp.message.list, basecamp.message.post, basecamp.comment.list, basecamp.comment.post, basecamp.campfire.post (the three posts are receipted writes) and basecamp.people.list. gmail.message.send (0.50.0) sends one email as the signed-in person: a send like slack.message.post (explicit Send, idempotencyKey, write receipt) under user identity; since 0.71.0 it may carry an HTML body and attachments. slack.message.post (0.53.0) runs in the mode the app declares: app (the company's Slack app, under the IT-approved per-app name) or user (the signed-in person, after their consent); since 0.55.0 each call names which of the approved modes it runs under. 0.71.0 (ADR 0018) adds slack.message.update and slack.message.delete (declared mode, like post), slack.dm.send (app mode: a direct message to 1..8 workspace members named by email), slack.user.lookup (app mode: email to Slack user id), gmail.thread.read (every message of one thread) and gmail.attachment.read (one attachment's bytes), and lets slack.channel.history run in app mode as well as user mode. 0.82.0 (ADR 0028) adds phone.sms.list (app mode only, a number alias from a phone connection's `channels` map: the SMS received on that number since a time) and warehouse.table.append (app mode only on a database connection, a receipted write with idempotencyKey: rows appended to a view alias whose mapping says `access: append`). 0.83.0 (ADR 0029) adds phone.number.get (app mode only, read-only, no input, on a number alias from a phone connection's `channels` map: the E.164 number that alias maps to, so the app — or a computer-use agent it drives — can type it into a portal that signs in by mobile number). 0.85.0 (ADR 0031) raises warehouse.table.append's `rows` from 1..500 to 1..5000 records (the byte cap stays governance's, now 8 MiB), so a downloaded report of a few thousand rows lands in one call."
|
|
147
152
|
},
|
|
@@ -599,6 +604,21 @@
|
|
|
599
604
|
},
|
|
600
605
|
"zohobooks.invoice.pdf": {
|
|
601
606
|
"$ref": "#/definitions/UserModeChannelOperation"
|
|
607
|
+
},
|
|
608
|
+
"zohobooks.salesorder.list": {
|
|
609
|
+
"$ref": "#/definitions/UserModeChannelOperation"
|
|
610
|
+
},
|
|
611
|
+
"zohobooks.salesorder.read": {
|
|
612
|
+
"$ref": "#/definitions/UserModeChannelOperation"
|
|
613
|
+
},
|
|
614
|
+
"zohobooks.invoice.reviseDraft": {
|
|
615
|
+
"$ref": "#/definitions/UserModeChannelOperation"
|
|
616
|
+
},
|
|
617
|
+
"zohobooks.creditnote.create": {
|
|
618
|
+
"$ref": "#/definitions/UserModeChannelOperation"
|
|
619
|
+
},
|
|
620
|
+
"zohobooks.creditnote.read": {
|
|
621
|
+
"$ref": "#/definitions/UserModeChannelOperation"
|
|
602
622
|
}
|
|
603
623
|
}
|
|
604
624
|
}
|
|
@@ -1085,6 +1105,31 @@
|
|
|
1085
1105
|
"required": [
|
|
1086
1106
|
"zohobooks.invoice.pdf"
|
|
1087
1107
|
]
|
|
1108
|
+
},
|
|
1109
|
+
{
|
|
1110
|
+
"required": [
|
|
1111
|
+
"zohobooks.salesorder.list"
|
|
1112
|
+
]
|
|
1113
|
+
},
|
|
1114
|
+
{
|
|
1115
|
+
"required": [
|
|
1116
|
+
"zohobooks.salesorder.read"
|
|
1117
|
+
]
|
|
1118
|
+
},
|
|
1119
|
+
{
|
|
1120
|
+
"required": [
|
|
1121
|
+
"zohobooks.invoice.reviseDraft"
|
|
1122
|
+
]
|
|
1123
|
+
},
|
|
1124
|
+
{
|
|
1125
|
+
"required": [
|
|
1126
|
+
"zohobooks.creditnote.create"
|
|
1127
|
+
]
|
|
1128
|
+
},
|
|
1129
|
+
{
|
|
1130
|
+
"required": [
|
|
1131
|
+
"zohobooks.creditnote.read"
|
|
1132
|
+
]
|
|
1088
1133
|
}
|
|
1089
1134
|
]
|
|
1090
1135
|
}
|
|
@@ -1549,6 +1594,31 @@
|
|
|
1549
1594
|
"required": [
|
|
1550
1595
|
"zohobooks.invoice.pdf"
|
|
1551
1596
|
]
|
|
1597
|
+
},
|
|
1598
|
+
{
|
|
1599
|
+
"required": [
|
|
1600
|
+
"zohobooks.salesorder.list"
|
|
1601
|
+
]
|
|
1602
|
+
},
|
|
1603
|
+
{
|
|
1604
|
+
"required": [
|
|
1605
|
+
"zohobooks.salesorder.read"
|
|
1606
|
+
]
|
|
1607
|
+
},
|
|
1608
|
+
{
|
|
1609
|
+
"required": [
|
|
1610
|
+
"zohobooks.invoice.reviseDraft"
|
|
1611
|
+
]
|
|
1612
|
+
},
|
|
1613
|
+
{
|
|
1614
|
+
"required": [
|
|
1615
|
+
"zohobooks.creditnote.create"
|
|
1616
|
+
]
|
|
1617
|
+
},
|
|
1618
|
+
{
|
|
1619
|
+
"required": [
|
|
1620
|
+
"zohobooks.creditnote.read"
|
|
1621
|
+
]
|
|
1552
1622
|
}
|
|
1553
1623
|
]
|
|
1554
1624
|
}
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"status": { "$ref": "#/definitions/DataGrantV2Status" },
|
|
18
18
|
"operations": {
|
|
19
19
|
"type": "array",
|
|
20
|
-
"maxItems":
|
|
20
|
+
"maxItems": 91,
|
|
21
21
|
"uniqueItems": true,
|
|
22
22
|
"items": { "$ref": "app-integrations-declaration.schema.json#/definitions/IntegrationOperation" },
|
|
23
23
|
"description": "Approved operations; each must match this grant's mode. Empty until the first approval. At most the seventy-eight SaaS operations (0.86.0: eleven Slack and Gmail, eleven Basecamp, nine SharePoint, two phone, forty-five Google Workspace and Microsoft 365); a database grant holds up to two (warehouse.view.read, warehouse.table.append)."
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
"description": "Only for SaaS grants mixing reviewed and automatic access: the previously human-reviewed scope. The remaining scope must satisfy current automatic rules. Homogeneous grants continue using approvedBy alone. Governance validates this is a subset of the grant; database behaviour is unchanged.",
|
|
66
66
|
"properties": {
|
|
67
67
|
"operations": {
|
|
68
|
-
"type": "array", "maxItems":
|
|
68
|
+
"type": "array", "maxItems": 91, "uniqueItems": true,
|
|
69
69
|
"items": { "$ref": "app-integrations-declaration.schema.json#/definitions/IntegrationOperation" }
|
|
70
70
|
},
|
|
71
71
|
"resources": {
|
|
@@ -145,6 +145,56 @@
|
|
|
145
145
|
}
|
|
146
146
|
}
|
|
147
147
|
}
|
|
148
|
+
],
|
|
149
|
+
"description": "Temporary rolling-release input for email targets; writers use eventTarget. Remove after old deployments are migrated."
|
|
150
|
+
},
|
|
151
|
+
"eventTarget": {
|
|
152
|
+
"oneOf": [
|
|
153
|
+
{
|
|
154
|
+
"type": "object",
|
|
155
|
+
"additionalProperties": false,
|
|
156
|
+
"required": [
|
|
157
|
+
"versionId",
|
|
158
|
+
"jobs",
|
|
159
|
+
"functionArn"
|
|
160
|
+
],
|
|
161
|
+
"properties": {
|
|
162
|
+
"functionArn": {
|
|
163
|
+
"type": "string",
|
|
164
|
+
"pattern": "^arn:aws:lambda:[a-z0-9-]+:[0-9]{12}:function:[A-Za-z0-9-_]+$"
|
|
165
|
+
},
|
|
166
|
+
"versionId": {
|
|
167
|
+
"type": "string",
|
|
168
|
+
"minLength": 1
|
|
169
|
+
},
|
|
170
|
+
"jobs": {
|
|
171
|
+
"$ref": "#/definitions/eventJobs"
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
"type": "object",
|
|
177
|
+
"additionalProperties": false,
|
|
178
|
+
"required": [
|
|
179
|
+
"versionId",
|
|
180
|
+
"jobs",
|
|
181
|
+
"gatewayUrl"
|
|
182
|
+
],
|
|
183
|
+
"properties": {
|
|
184
|
+
"versionId": {
|
|
185
|
+
"type": "string",
|
|
186
|
+
"minLength": 1
|
|
187
|
+
},
|
|
188
|
+
"jobs": {
|
|
189
|
+
"$ref": "#/definitions/eventJobs"
|
|
190
|
+
},
|
|
191
|
+
"gatewayUrl": {
|
|
192
|
+
"type": "string",
|
|
193
|
+
"format": "uri",
|
|
194
|
+
"pattern": "^https://[^/]+/_harbour/internal/mail-arrival$"
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
148
198
|
]
|
|
149
199
|
}
|
|
150
200
|
},
|
|
@@ -178,6 +228,27 @@
|
|
|
178
228
|
"workloadPrincipalArn"
|
|
179
229
|
]
|
|
180
230
|
}
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
"if": {
|
|
234
|
+
"required": [
|
|
235
|
+
"eventTarget"
|
|
236
|
+
]
|
|
237
|
+
},
|
|
238
|
+
"then": {
|
|
239
|
+
"required": [
|
|
240
|
+
"environment",
|
|
241
|
+
"workloadPrincipalArn"
|
|
242
|
+
]
|
|
243
|
+
}
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
"not": {
|
|
247
|
+
"required": [
|
|
248
|
+
"eventTarget",
|
|
249
|
+
"mailArrivalTarget"
|
|
250
|
+
]
|
|
251
|
+
}
|
|
181
252
|
}
|
|
182
253
|
],
|
|
183
254
|
"definitions": {
|
|
@@ -198,40 +269,130 @@
|
|
|
198
269
|
"pattern": "^[a-z0-9][a-z0-9_-]{0,63}$"
|
|
199
270
|
},
|
|
200
271
|
"trigger": {
|
|
201
|
-
"
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
272
|
+
"$ref": "#/definitions/emailArrivalTrigger"
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
},
|
|
277
|
+
"eventJobs": {
|
|
278
|
+
"type": "array",
|
|
279
|
+
"minItems": 1,
|
|
280
|
+
"maxItems": 100,
|
|
281
|
+
"items": {
|
|
282
|
+
"type": "object",
|
|
283
|
+
"additionalProperties": false,
|
|
284
|
+
"required": [
|
|
285
|
+
"name",
|
|
286
|
+
"trigger"
|
|
287
|
+
],
|
|
288
|
+
"properties": {
|
|
289
|
+
"name": {
|
|
290
|
+
"type": "string",
|
|
291
|
+
"pattern": "^[a-z0-9][a-z0-9_-]{0,63}$"
|
|
292
|
+
},
|
|
293
|
+
"trigger": {
|
|
294
|
+
"oneOf": [
|
|
295
|
+
{
|
|
296
|
+
"$ref": "#/definitions/emailArrivalTrigger"
|
|
218
297
|
},
|
|
219
|
-
|
|
298
|
+
{
|
|
220
299
|
"type": "object",
|
|
221
300
|
"additionalProperties": false,
|
|
301
|
+
"required": [
|
|
302
|
+
"type",
|
|
303
|
+
"connection",
|
|
304
|
+
"resource"
|
|
305
|
+
],
|
|
222
306
|
"properties": {
|
|
223
|
-
"
|
|
307
|
+
"type": {
|
|
308
|
+
"const": "file.created"
|
|
309
|
+
},
|
|
310
|
+
"connection": {
|
|
224
311
|
"type": "string",
|
|
225
|
-
"
|
|
226
|
-
"maxLength": 320
|
|
312
|
+
"pattern": "^[a-z0-9][a-z0-9_-]{0,63}$"
|
|
227
313
|
},
|
|
228
|
-
"
|
|
314
|
+
"resource": {
|
|
229
315
|
"type": "string",
|
|
230
316
|
"minLength": 1,
|
|
231
317
|
"maxLength": 320
|
|
318
|
+
},
|
|
319
|
+
"folderId": {
|
|
320
|
+
"type": "string",
|
|
321
|
+
"pattern": "^[A-Za-z0-9!._,=-]{1,256}$"
|
|
322
|
+
},
|
|
323
|
+
"driveId": {
|
|
324
|
+
"type": "string",
|
|
325
|
+
"pattern": "^[A-Za-z0-9!._,=-]{1,256}$"
|
|
326
|
+
},
|
|
327
|
+
"mimeTypes": {
|
|
328
|
+
"type": "array",
|
|
329
|
+
"minItems": 1,
|
|
330
|
+
"maxItems": 4,
|
|
331
|
+
"uniqueItems": true,
|
|
332
|
+
"items": {
|
|
333
|
+
"enum": [
|
|
334
|
+
"application/pdf",
|
|
335
|
+
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
|
336
|
+
"image/png",
|
|
337
|
+
"image/jpeg"
|
|
338
|
+
]
|
|
339
|
+
}
|
|
340
|
+
},
|
|
341
|
+
"configurableFolder": {
|
|
342
|
+
"const": true,
|
|
343
|
+
"description": "The app owner may select a folder at runtime within the declared connection and resource."
|
|
344
|
+
}
|
|
345
|
+
},
|
|
346
|
+
"if": {
|
|
347
|
+
"not": {
|
|
348
|
+
"required": [
|
|
349
|
+
"configurableFolder"
|
|
350
|
+
]
|
|
232
351
|
}
|
|
352
|
+
},
|
|
353
|
+
"then": {
|
|
354
|
+
"required": [
|
|
355
|
+
"folderId"
|
|
356
|
+
]
|
|
233
357
|
}
|
|
234
358
|
}
|
|
359
|
+
]
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
},
|
|
364
|
+
"emailArrivalTrigger": {
|
|
365
|
+
"type": "object",
|
|
366
|
+
"additionalProperties": false,
|
|
367
|
+
"required": [
|
|
368
|
+
"type",
|
|
369
|
+
"connection",
|
|
370
|
+
"resource"
|
|
371
|
+
],
|
|
372
|
+
"properties": {
|
|
373
|
+
"type": {
|
|
374
|
+
"const": "email.arrived"
|
|
375
|
+
},
|
|
376
|
+
"connection": {
|
|
377
|
+
"type": "string",
|
|
378
|
+
"pattern": "^[a-z0-9][a-z0-9_-]{0,63}$"
|
|
379
|
+
},
|
|
380
|
+
"resource": {
|
|
381
|
+
"const": "inbox"
|
|
382
|
+
},
|
|
383
|
+
"filter": {
|
|
384
|
+
"type": "object",
|
|
385
|
+
"additionalProperties": false,
|
|
386
|
+
"properties": {
|
|
387
|
+
"from": {
|
|
388
|
+
"type": "string",
|
|
389
|
+
"minLength": 1,
|
|
390
|
+
"maxLength": 320
|
|
391
|
+
},
|
|
392
|
+
"subjectContains": {
|
|
393
|
+
"type": "string",
|
|
394
|
+
"minLength": 1,
|
|
395
|
+
"maxLength": 320
|
|
235
396
|
}
|
|
236
397
|
}
|
|
237
398
|
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://harbour.dev/schema/file-arrival.schema.json",
|
|
4
|
+
"title": "FileArrival",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": [
|
|
8
|
+
"type",
|
|
9
|
+
"provider",
|
|
10
|
+
"sourceId",
|
|
11
|
+
"fileId",
|
|
12
|
+
"folderId",
|
|
13
|
+
"name",
|
|
14
|
+
"mimeType",
|
|
15
|
+
"size",
|
|
16
|
+
"createdAt",
|
|
17
|
+
"observedAt"
|
|
18
|
+
],
|
|
19
|
+
"properties": {
|
|
20
|
+
"type": {
|
|
21
|
+
"const": "file.created"
|
|
22
|
+
},
|
|
23
|
+
"provider": {
|
|
24
|
+
"enum": [
|
|
25
|
+
"drive",
|
|
26
|
+
"sharepoint"
|
|
27
|
+
]
|
|
28
|
+
},
|
|
29
|
+
"sourceId": {
|
|
30
|
+
"type": "string",
|
|
31
|
+
"pattern": "^[a-z0-9][a-z0-9_-]{0,63}$"
|
|
32
|
+
},
|
|
33
|
+
"fileId": {
|
|
34
|
+
"type": "string",
|
|
35
|
+
"pattern": "^[A-Za-z0-9!._,=-]{1,256}$"
|
|
36
|
+
},
|
|
37
|
+
"folderId": {
|
|
38
|
+
"type": "string",
|
|
39
|
+
"pattern": "^[A-Za-z0-9!._,=-]{1,256}$"
|
|
40
|
+
},
|
|
41
|
+
"driveId": {
|
|
42
|
+
"type": "string",
|
|
43
|
+
"pattern": "^[A-Za-z0-9!._,=-]{1,256}$"
|
|
44
|
+
},
|
|
45
|
+
"name": {
|
|
46
|
+
"type": "string",
|
|
47
|
+
"minLength": 1,
|
|
48
|
+
"maxLength": 1024
|
|
49
|
+
},
|
|
50
|
+
"mimeType": {
|
|
51
|
+
"enum": [
|
|
52
|
+
"application/pdf",
|
|
53
|
+
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
|
54
|
+
"image/png",
|
|
55
|
+
"image/jpeg"
|
|
56
|
+
]
|
|
57
|
+
},
|
|
58
|
+
"size": {
|
|
59
|
+
"type": "integer",
|
|
60
|
+
"minimum": 0,
|
|
61
|
+
"maximum": 9007199254740991
|
|
62
|
+
},
|
|
63
|
+
"createdAt": {
|
|
64
|
+
"type": "string",
|
|
65
|
+
"format": "date-time"
|
|
66
|
+
},
|
|
67
|
+
"observedAt": {
|
|
68
|
+
"type": "string",
|
|
69
|
+
"format": "date-time"
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
"allOf": [
|
|
73
|
+
{
|
|
74
|
+
"if": {
|
|
75
|
+
"properties": {
|
|
76
|
+
"provider": {
|
|
77
|
+
"const": "sharepoint"
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
"then": {
|
|
82
|
+
"required": [
|
|
83
|
+
"driveId"
|
|
84
|
+
]
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
]
|
|
88
|
+
}
|