kalup 0.4.0 → 0.5.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.
@@ -6,42 +6,77 @@
6
6
  "type": "object",
7
7
  "required": ["irVersion", "project", "generator", "resources", "targets", "tombstones"],
8
8
  "properties": {
9
- "irVersion": { "const": 1 },
10
- "project": { "type": "string" },
9
+ "irVersion": {
10
+ "const": 1
11
+ },
12
+ "project": {
13
+ "type": "string"
14
+ },
11
15
  "generator": {
12
16
  "type": "object",
13
17
  "required": ["name", "version", "frontend"],
14
18
  "properties": {
15
- "name": { "type": "string" },
16
- "version": { "type": "string" },
17
- "frontend": { "enum": ["ts", "portal"] }
19
+ "name": {
20
+ "type": "string"
21
+ },
22
+ "version": {
23
+ "type": "string"
24
+ },
25
+ "frontend": {
26
+ "enum": ["ts", "portal"]
27
+ }
18
28
  },
19
29
  "additionalProperties": false
20
30
  },
21
31
  "resources": {
22
32
  "type": "object",
23
- "patternProperties": { "^[a-z]+:\\S+$": { "$ref": "#/$defs/resource" } },
33
+ "patternProperties": {
34
+ "^[a-z]+:\\S+$": {
35
+ "$ref": "#/$defs/resource"
36
+ }
37
+ },
24
38
  "additionalProperties": false
25
39
  },
26
40
  "targets": {
27
41
  "type": "object",
28
- "additionalProperties": { "$ref": "#/$defs/target" }
42
+ "additionalProperties": {
43
+ "$ref": "#/$defs/target"
44
+ }
29
45
  },
30
46
  "tombstones": {
31
47
  "type": "object",
32
- "patternProperties": { "^[a-z]+:\\S+$": { "$ref": "#/$defs/tombstone" } },
48
+ "patternProperties": {
49
+ "^[a-z]+:\\S+$": {
50
+ "$ref": "#/$defs/tombstone"
51
+ }
52
+ },
33
53
  "additionalProperties": false
34
54
  },
35
- "observation": { "$ref": "#/$defs/observation" },
36
- "x": { "type": "object" }
55
+ "observation": {
56
+ "$ref": "#/$defs/observation"
57
+ },
58
+ "x": {
59
+ "type": "object"
60
+ }
37
61
  },
38
62
  "allOf": [
39
63
  {
40
64
  "if": {
41
65
  "required": ["generator"],
42
- "properties": { "generator": { "required": ["frontend"], "properties": { "frontend": { "const": "portal" } } } }
66
+ "properties": {
67
+ "generator": {
68
+ "required": ["frontend"],
69
+ "properties": {
70
+ "frontend": {
71
+ "const": "portal"
72
+ }
73
+ }
74
+ }
75
+ }
43
76
  },
44
- "then": { "required": ["observation"] }
77
+ "then": {
78
+ "required": ["observation"]
79
+ }
45
80
  }
46
81
  ],
47
82
  "$defs": {
@@ -54,53 +89,180 @@
54
89
  "description": "A logical reference, allowed anywhere inside a definition where HubSpot wants an ID.",
55
90
  "type": "object",
56
91
  "required": ["$ref"],
57
- "properties": { "$ref": { "$ref": "#/$defs/address" } },
92
+ "properties": {
93
+ "$ref": {
94
+ "$ref": "#/$defs/address"
95
+ }
96
+ },
58
97
  "additionalProperties": false
59
98
  },
60
99
  "resource": {
61
100
  "type": "object",
62
101
  "required": ["type", "managed"],
63
102
  "properties": {
64
- "type": { "type": "string" },
65
- "managed": { "type": "boolean" },
66
- "definition": { "type": "object" },
67
- "lookup": { "type": "object", "additionalProperties": { "type": "string" } },
68
- "binding": { "$ref": "#/$defs/binding" },
69
- "lifecycle": { "$ref": "#/$defs/lifecycle" },
70
- "provenance": { "$ref": "#/$defs/provenance" },
71
- "x": { "type": "object" }
103
+ "type": {
104
+ "type": "string"
105
+ },
106
+ "managed": {
107
+ "type": "boolean"
108
+ },
109
+ "definition": {
110
+ "type": "object"
111
+ },
112
+ "lookup": {
113
+ "type": "object",
114
+ "additionalProperties": {
115
+ "type": "string"
116
+ }
117
+ },
118
+ "binding": {
119
+ "$ref": "#/$defs/binding"
120
+ },
121
+ "lifecycle": {
122
+ "$ref": "#/$defs/lifecycle"
123
+ },
124
+ "provenance": {
125
+ "$ref": "#/$defs/provenance"
126
+ },
127
+ "x": {
128
+ "type": "object"
129
+ }
72
130
  },
73
131
  "allOf": [
74
132
  {
75
- "if": { "required": ["managed"], "properties": { "managed": { "const": true } } },
76
- "then": { "required": ["definition"] }
133
+ "if": {
134
+ "required": ["managed"],
135
+ "properties": {
136
+ "managed": {
137
+ "const": true
138
+ }
139
+ }
140
+ },
141
+ "then": {
142
+ "required": ["definition"]
143
+ }
77
144
  },
78
145
  {
79
- "if": { "required": ["type"], "properties": { "type": { "const": "property" } } },
80
- "then": { "properties": { "definition": { "$ref": "#/$defs/propertyFields" } } }
146
+ "if": {
147
+ "required": ["type"],
148
+ "properties": {
149
+ "type": {
150
+ "const": "property"
151
+ }
152
+ }
153
+ },
154
+ "then": {
155
+ "properties": {
156
+ "definition": {
157
+ "$ref": "#/$defs/propertyFields"
158
+ }
159
+ }
160
+ }
81
161
  },
82
162
  {
83
163
  "if": {
84
164
  "required": ["type", "managed"],
85
- "properties": { "type": { "const": "property" }, "managed": { "const": true } }
165
+ "properties": {
166
+ "type": {
167
+ "const": "property"
168
+ },
169
+ "managed": {
170
+ "const": true
171
+ }
172
+ }
86
173
  },
87
- "then": { "properties": { "definition": { "required": ["label", "group", "type", "fieldType"] } } }
174
+ "then": {
175
+ "properties": {
176
+ "definition": {
177
+ "required": ["label", "group", "type", "fieldType"]
178
+ }
179
+ }
180
+ }
88
181
  },
89
182
  {
90
- "if": { "required": ["type"], "properties": { "type": { "const": "group" } } },
91
- "then": { "properties": { "definition": { "$ref": "#/$defs/groupDefinition" } } }
183
+ "if": {
184
+ "required": ["type"],
185
+ "properties": {
186
+ "type": {
187
+ "const": "group"
188
+ }
189
+ }
190
+ },
191
+ "then": {
192
+ "properties": {
193
+ "definition": {
194
+ "$ref": "#/$defs/groupDefinition"
195
+ }
196
+ }
197
+ }
92
198
  },
93
199
  {
94
- "if": { "required": ["type"], "properties": { "type": { "const": "object" } } },
95
- "then": { "properties": { "definition": { "$ref": "#/$defs/objectDefinition" } } }
200
+ "if": {
201
+ "required": ["type"],
202
+ "properties": {
203
+ "type": {
204
+ "const": "object"
205
+ }
206
+ }
207
+ },
208
+ "then": {
209
+ "properties": {
210
+ "definition": {
211
+ "$ref": "#/$defs/objectDefinition"
212
+ }
213
+ }
214
+ }
96
215
  },
97
216
  {
98
- "if": { "required": ["type"], "properties": { "type": { "const": "pipeline" } } },
99
- "then": { "properties": { "definition": { "$ref": "#/$defs/pipelineDefinition" } } }
217
+ "if": {
218
+ "required": ["type"],
219
+ "properties": {
220
+ "type": {
221
+ "const": "pipeline"
222
+ }
223
+ }
224
+ },
225
+ "then": {
226
+ "properties": {
227
+ "definition": {
228
+ "$ref": "#/$defs/pipelineDefinition"
229
+ }
230
+ }
231
+ }
100
232
  },
101
233
  {
102
- "if": { "required": ["type"], "properties": { "type": { "const": "stage" } } },
103
- "then": { "properties": { "definition": { "$ref": "#/$defs/stageDefinition" } } }
234
+ "if": {
235
+ "required": ["type"],
236
+ "properties": {
237
+ "type": {
238
+ "const": "stage"
239
+ }
240
+ }
241
+ },
242
+ "then": {
243
+ "properties": {
244
+ "definition": {
245
+ "$ref": "#/$defs/stageDefinition"
246
+ }
247
+ }
248
+ }
249
+ },
250
+ {
251
+ "if": {
252
+ "required": ["type"],
253
+ "properties": {
254
+ "type": {
255
+ "const": "association"
256
+ }
257
+ }
258
+ },
259
+ "then": {
260
+ "properties": {
261
+ "definition": {
262
+ "$ref": "#/$defs/associationDefinition"
263
+ }
264
+ }
265
+ }
104
266
  }
105
267
  ]
106
268
  },
@@ -108,9 +270,15 @@
108
270
  "description": "A property definition in HubSpot terms. A managed property needs label, group, type and fieldType; an unmanaged one may carry any subset, such as the options of a HubSpot-defined enumeration.",
109
271
  "type": "object",
110
272
  "properties": {
111
- "label": { "type": "string" },
112
- "group": { "$ref": "#/$defs/ref" },
113
- "type": { "enum": ["string", "number", "bool", "date", "datetime", "enumeration", "phone_number"] },
273
+ "label": {
274
+ "type": "string"
275
+ },
276
+ "group": {
277
+ "$ref": "#/$defs/ref"
278
+ },
279
+ "type": {
280
+ "enum": ["string", "number", "bool", "date", "datetime", "enumeration", "phone_number"]
281
+ },
114
282
  "fieldType": {
115
283
  "enum": [
116
284
  "text",
@@ -127,17 +295,37 @@
127
295
  "calculation_equation"
128
296
  ]
129
297
  },
130
- "description": { "type": "string" },
131
- "options": { "type": "array", "items": { "$ref": "#/$defs/option" } },
132
- "hasUniqueValue": { "type": "boolean" },
133
- "formField": { "type": "boolean" },
134
- "hidden": { "type": "boolean" },
135
- "displayOrder": { "type": "integer", "minimum": -1 },
298
+ "description": {
299
+ "type": "string"
300
+ },
301
+ "options": {
302
+ "type": "array",
303
+ "items": {
304
+ "$ref": "#/$defs/option"
305
+ }
306
+ },
307
+ "hasUniqueValue": {
308
+ "type": "boolean"
309
+ },
310
+ "formField": {
311
+ "type": "boolean"
312
+ },
313
+ "hidden": {
314
+ "type": "boolean"
315
+ },
316
+ "displayOrder": {
317
+ "type": "integer",
318
+ "minimum": -1
319
+ },
136
320
  "numberDisplayHint": {
137
321
  "enum": ["currency", "duration", "formatted", "percentage", "probability", "unformatted"]
138
322
  },
139
- "showCurrencySymbol": { "type": "boolean" },
140
- "currencyPropertyName": { "type": "string" },
323
+ "showCurrencySymbol": {
324
+ "type": "boolean"
325
+ },
326
+ "currencyPropertyName": {
327
+ "type": "string"
328
+ },
141
329
  "textDisplayHint": {
142
330
  "enum": [
143
331
  "domain_name",
@@ -150,10 +338,18 @@
150
338
  "unformatted_single_line"
151
339
  ]
152
340
  },
153
- "calculationFormula": { "type": "string" },
154
- "dataSensitivity": { "enum": ["non_sensitive", "sensitive", "highly_sensitive"] },
155
- "externalOptions": { "const": true },
156
- "referencedObjectType": { "const": "OWNER" }
341
+ "calculationFormula": {
342
+ "type": "string"
343
+ },
344
+ "dataSensitivity": {
345
+ "enum": ["non_sensitive", "sensitive", "highly_sensitive"]
346
+ },
347
+ "externalOptions": {
348
+ "const": true
349
+ },
350
+ "referencedObjectType": {
351
+ "const": "OWNER"
352
+ }
157
353
  },
158
354
  "additionalProperties": false
159
355
  },
@@ -162,17 +358,29 @@
162
358
  "type": "object",
163
359
  "required": ["value", "label"],
164
360
  "properties": {
165
- "value": { "type": "string" },
166
- "label": { "type": "string" },
167
- "hidden": { "type": "boolean" },
168
- "description": { "type": "string" }
361
+ "value": {
362
+ "type": "string"
363
+ },
364
+ "label": {
365
+ "type": "string"
366
+ },
367
+ "hidden": {
368
+ "type": "boolean"
369
+ },
370
+ "description": {
371
+ "type": "string"
372
+ }
169
373
  },
170
374
  "additionalProperties": false
171
375
  },
172
376
  "groupDefinition": {
173
377
  "type": "object",
174
378
  "required": ["label"],
175
- "properties": { "label": { "type": "string" } },
379
+ "properties": {
380
+ "label": {
381
+ "type": "string"
382
+ }
383
+ },
176
384
  "additionalProperties": false
177
385
  },
178
386
  "objectDefinition": {
@@ -183,13 +391,40 @@
183
391
  "labels": {
184
392
  "type": "object",
185
393
  "required": ["singular", "plural"],
186
- "properties": { "singular": { "type": "string" }, "plural": { "type": "string" } },
394
+ "properties": {
395
+ "singular": {
396
+ "type": "string"
397
+ },
398
+ "plural": {
399
+ "type": "string"
400
+ }
401
+ },
187
402
  "additionalProperties": false
188
403
  },
189
- "primaryDisplayProperty": { "type": "string" },
190
- "requiredProperties": { "type": "array", "items": { "type": "string" } },
191
- "searchableProperties": { "type": "array", "items": { "type": "string" } },
192
- "secondaryDisplayProperties": { "type": "array", "items": { "type": "string" } }
404
+ "description": {
405
+ "type": "string"
406
+ },
407
+ "primaryDisplayProperty": {
408
+ "type": "string"
409
+ },
410
+ "requiredProperties": {
411
+ "type": "array",
412
+ "items": {
413
+ "type": "string"
414
+ }
415
+ },
416
+ "searchableProperties": {
417
+ "type": "array",
418
+ "items": {
419
+ "type": "string"
420
+ }
421
+ },
422
+ "secondaryDisplayProperties": {
423
+ "type": "array",
424
+ "items": {
425
+ "type": "string"
426
+ }
427
+ }
193
428
  },
194
429
  "additionalProperties": false
195
430
  },
@@ -198,9 +433,19 @@
198
433
  "type": "object",
199
434
  "required": ["label", "displayOrder", "stages"],
200
435
  "properties": {
201
- "label": { "type": "string" },
202
- "displayOrder": { "type": "integer", "minimum": 0 },
203
- "stages": { "type": "array", "items": { "type": "string" } }
436
+ "label": {
437
+ "type": "string"
438
+ },
439
+ "displayOrder": {
440
+ "type": "integer",
441
+ "minimum": 0
442
+ },
443
+ "stages": {
444
+ "type": "array",
445
+ "items": {
446
+ "type": "string"
447
+ }
448
+ }
204
449
  },
205
450
  "additionalProperties": false
206
451
  },
@@ -209,10 +454,33 @@
209
454
  "type": "object",
210
455
  "required": ["label"],
211
456
  "properties": {
212
- "label": { "type": "string" },
213
- "probability": { "type": "number", "minimum": 0, "maximum": 1 },
214
- "ticketState": { "enum": ["OPEN", "CLOSED"] },
215
- "state": { "enum": ["OPEN", "CLOSED"] }
457
+ "label": {
458
+ "type": "string"
459
+ },
460
+ "probability": {
461
+ "type": "number",
462
+ "minimum": 0,
463
+ "maximum": 1
464
+ },
465
+ "ticketState": {
466
+ "enum": ["OPEN", "CLOSED"]
467
+ },
468
+ "state": {
469
+ "enum": ["OPEN", "CLOSED"]
470
+ }
471
+ },
472
+ "additionalProperties": false
473
+ },
474
+ "associationDefinition": {
475
+ "description": "An association label between two objects: label as the from object shows it, inverseLabel as the to object does. With neither, the plain association of a pair that has no HubSpot-defined one.",
476
+ "type": "object",
477
+ "properties": {
478
+ "label": {
479
+ "type": "string"
480
+ },
481
+ "inverseLabel": {
482
+ "type": "string"
483
+ }
216
484
  },
217
485
  "additionalProperties": false
218
486
  },
@@ -220,7 +488,9 @@
220
488
  "description": "App terms, filled in by the loader. key and codec for properties, export for objects.",
221
489
  "type": "object",
222
490
  "properties": {
223
- "key": { "type": "string" },
491
+ "key": {
492
+ "type": "string"
493
+ },
224
494
  "codec": {
225
495
  "enum": [
226
496
  "string",
@@ -236,11 +506,24 @@
236
506
  "owner"
237
507
  ]
238
508
  },
239
- "aliases": { "type": "object", "additionalProperties": { "type": "string" } },
240
- "required": { "type": "boolean" },
241
- "readonly": { "type": "boolean" },
242
- "strict": { "type": "boolean" },
243
- "export": { "type": "string" }
509
+ "aliases": {
510
+ "type": "object",
511
+ "additionalProperties": {
512
+ "type": "string"
513
+ }
514
+ },
515
+ "required": {
516
+ "type": "boolean"
517
+ },
518
+ "readonly": {
519
+ "type": "boolean"
520
+ },
521
+ "strict": {
522
+ "type": "boolean"
523
+ },
524
+ "export": {
525
+ "type": "string"
526
+ }
244
527
  },
245
528
  "additionalProperties": false
246
529
  },
@@ -248,10 +531,24 @@
248
531
  "type": "object",
249
532
  "required": ["options"],
250
533
  "properties": {
251
- "options": { "enum": ["additive", "exact"] },
252
- "removedOptions": { "type": "array", "items": { "type": "string" } },
253
- "ignoreChanges": { "type": "array", "items": { "type": "string" } },
254
- "preventDestroy": { "type": "boolean" }
534
+ "options": {
535
+ "enum": ["additive", "exact"]
536
+ },
537
+ "removedOptions": {
538
+ "type": "array",
539
+ "items": {
540
+ "type": "string"
541
+ }
542
+ },
543
+ "ignoreChanges": {
544
+ "type": "array",
545
+ "items": {
546
+ "type": "string"
547
+ }
548
+ },
549
+ "preventDestroy": {
550
+ "type": "boolean"
551
+ }
255
552
  },
256
553
  "additionalProperties": false
257
554
  },
@@ -260,11 +557,21 @@
260
557
  "type": "object",
261
558
  "required": ["blueprint", "version", "sourceAddress", "prefix", "hash"],
262
559
  "properties": {
263
- "blueprint": { "type": "string" },
264
- "version": { "type": "string" },
265
- "sourceAddress": { "$ref": "#/$defs/address" },
266
- "prefix": { "type": "string" },
267
- "hash": { "type": "string" }
560
+ "blueprint": {
561
+ "type": "string"
562
+ },
563
+ "version": {
564
+ "type": "string"
565
+ },
566
+ "sourceAddress": {
567
+ "$ref": "#/$defs/address"
568
+ },
569
+ "prefix": {
570
+ "type": "string"
571
+ },
572
+ "hash": {
573
+ "type": "string"
574
+ }
268
575
  },
269
576
  "additionalProperties": false
270
577
  },
@@ -273,9 +580,16 @@
273
580
  "type": "object",
274
581
  "required": ["portalId"],
275
582
  "properties": {
276
- "portalId": { "type": "integer", "minimum": 1 },
277
- "protected": { "type": "boolean" },
278
- "drift": { "enum": ["hold", "overwrite"] },
583
+ "portalId": {
584
+ "type": "integer",
585
+ "minimum": 1
586
+ },
587
+ "protected": {
588
+ "type": "boolean"
589
+ },
590
+ "drift": {
591
+ "enum": ["hold", "overwrite"]
592
+ },
279
593
  "adopt": {
280
594
  "description": "What a plan does with a unit that has no base and differs. Default hold.",
281
595
  "enum": ["hold", "overwrite"]
@@ -292,7 +606,11 @@
292
606
  },
293
607
  "overrides": {
294
608
  "type": "object",
295
- "patternProperties": { "^[a-z]+:\\S+$": { "$ref": "#/$defs/override" } },
609
+ "patternProperties": {
610
+ "^[a-z]+:\\S+$": {
611
+ "$ref": "#/$defs/override"
612
+ }
613
+ },
296
614
  "additionalProperties": false
297
615
  }
298
616
  },
@@ -301,10 +619,21 @@
301
619
  "override": {
302
620
  "type": "object",
303
621
  "properties": {
304
- "skip": { "const": true },
305
- "name": { "type": "string" },
306
- "definition": { "type": "object" },
307
- "lookup": { "type": "object", "additionalProperties": { "type": "string" } }
622
+ "skip": {
623
+ "const": true
624
+ },
625
+ "name": {
626
+ "type": "string"
627
+ },
628
+ "definition": {
629
+ "type": "object"
630
+ },
631
+ "lookup": {
632
+ "type": "object",
633
+ "additionalProperties": {
634
+ "type": "string"
635
+ }
636
+ }
308
637
  },
309
638
  "additionalProperties": false
310
639
  },
@@ -316,7 +645,15 @@
316
645
  "target": {
317
646
  "type": "object",
318
647
  "required": ["name", "portalId"],
319
- "properties": { "name": { "type": "string" }, "portalId": { "type": "integer", "minimum": 1 } },
648
+ "properties": {
649
+ "name": {
650
+ "type": "string"
651
+ },
652
+ "portalId": {
653
+ "type": "integer",
654
+ "minimum": 1
655
+ }
656
+ },
320
657
  "additionalProperties": false
321
658
  },
322
659
  "observedAt": {
@@ -324,7 +661,9 @@
324
661
  "type": "string",
325
662
  "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}([.][0-9]+)?Z$"
326
663
  },
327
- "coverage": { "$ref": "#/$defs/coverage" }
664
+ "coverage": {
665
+ "$ref": "#/$defs/coverage"
666
+ }
328
667
  },
329
668
  "additionalProperties": false
330
669
  },
@@ -333,29 +672,70 @@
333
672
  "type": "object",
334
673
  "required": ["complete", "objects", "otherObjects", "notCaptured"],
335
674
  "properties": {
336
- "complete": { "type": "boolean" },
675
+ "complete": {
676
+ "type": "boolean"
677
+ },
337
678
  "objects": {
338
679
  "description": "One entry per config object key.",
339
680
  "type": "object",
340
- "additionalProperties": { "$ref": "#/$defs/objectCoverage" }
681
+ "additionalProperties": {
682
+ "$ref": "#/$defs/objectCoverage"
683
+ }
341
684
  },
342
685
  "otherObjects": {
343
686
  "description": "Custom objects in the portal that config does not name, or unknown when the schemas list was not read.",
344
687
  "type": ["array", "string"],
345
- "items": { "type": "string" },
346
- "if": { "type": "string" },
347
- "then": { "const": "unknown" }
688
+ "items": {
689
+ "type": "string"
690
+ },
691
+ "if": {
692
+ "type": "string"
693
+ },
694
+ "then": {
695
+ "const": "unknown"
696
+ }
348
697
  },
349
698
  "notCaptured": {
350
699
  "description": "Documented response fields Kalup does not capture, per resource type.",
351
700
  "type": "object",
352
701
  "required": ["property", "group", "object"],
353
702
  "properties": {
354
- "property": { "type": "array", "items": { "type": "string" } },
355
- "group": { "type": "array", "items": { "type": "string" } },
356
- "object": { "type": "array", "items": { "type": "string" } },
357
- "pipeline": { "type": "array", "items": { "type": "string" } },
358
- "stage": { "type": "array", "items": { "type": "string" } }
703
+ "property": {
704
+ "type": "array",
705
+ "items": {
706
+ "type": "string"
707
+ }
708
+ },
709
+ "group": {
710
+ "type": "array",
711
+ "items": {
712
+ "type": "string"
713
+ }
714
+ },
715
+ "object": {
716
+ "type": "array",
717
+ "items": {
718
+ "type": "string"
719
+ }
720
+ },
721
+ "pipeline": {
722
+ "type": "array",
723
+ "items": {
724
+ "type": "string"
725
+ }
726
+ },
727
+ "stage": {
728
+ "type": "array",
729
+ "items": {
730
+ "type": "string"
731
+ }
732
+ },
733
+ "association": {
734
+ "type": "array",
735
+ "items": {
736
+ "type": "string"
737
+ }
738
+ }
359
739
  },
360
740
  "additionalProperties": false
361
741
  }
@@ -366,26 +746,48 @@
366
746
  "type": "object",
367
747
  "required": ["status"],
368
748
  "properties": {
369
- "status": { "enum": ["read", "unreadable", "absent", "excluded"] },
370
- "missingScope": { "description": "Unreadable only.", "type": "string" },
371
- "issue": { "description": "Unreadable only.", "type": "string" },
372
- "objectTypeId": { "description": "A custom object that exists.", "type": "string" },
749
+ "status": {
750
+ "enum": ["read", "unreadable", "absent", "excluded"]
751
+ },
752
+ "missingScope": {
753
+ "description": "Unreadable only.",
754
+ "type": "string"
755
+ },
756
+ "issue": {
757
+ "description": "Unreadable only.",
758
+ "type": "string"
759
+ },
760
+ "objectTypeId": {
761
+ "description": "A custom object that exists.",
762
+ "type": "string"
763
+ },
373
764
  "outOfScope": {
374
765
  "description": "Present properties outside the pull scope that config does not name.",
375
766
  "type": "array",
376
- "items": { "type": "string" }
767
+ "items": {
768
+ "type": "string"
769
+ }
377
770
  },
378
771
  "shadowed": {
379
772
  "description": "Portal names equal to the local name of a renamed address, so not reported at it.",
380
773
  "type": "array",
381
- "items": { "type": "string" }
774
+ "items": {
775
+ "type": "string"
776
+ }
382
777
  },
383
778
  "unaddressable": {
384
779
  "description": "Present properties config names that are in a group whose name no address can hold, so not captured. What they hold is unknown.",
385
780
  "type": "array",
386
- "items": { "type": "string" }
781
+ "items": {
782
+ "type": "string"
783
+ }
784
+ },
785
+ "unsupported": {
786
+ "type": "array",
787
+ "items": {
788
+ "$ref": "#/$defs/unsupportedProperty"
789
+ }
387
790
  },
388
- "unsupported": { "type": "array", "items": { "$ref": "#/$defs/unsupportedProperty" } },
389
791
  "unsupportedSchema": {
390
792
  "description": "A custom object HubSpot returned without a singular or plural label, its fields as returned. It is present but not a resource.",
391
793
  "type": "object",
@@ -393,32 +795,95 @@
393
795
  "properties": {
394
796
  "labels": {
395
797
  "type": "object",
396
- "properties": { "singular": { "type": "string" }, "plural": { "type": "string" } },
798
+ "properties": {
799
+ "singular": {
800
+ "type": "string"
801
+ },
802
+ "plural": {
803
+ "type": "string"
804
+ }
805
+ },
397
806
  "additionalProperties": false
398
807
  },
399
- "primaryDisplayProperty": { "type": "string" },
400
- "requiredProperties": { "type": "array", "items": { "type": "string" } },
401
- "searchableProperties": { "type": "array", "items": { "type": "string" } },
402
- "secondaryDisplayProperties": { "type": "array", "items": { "type": "string" } }
808
+ "description": {
809
+ "type": "string"
810
+ },
811
+ "primaryDisplayProperty": {
812
+ "type": "string"
813
+ },
814
+ "requiredProperties": {
815
+ "type": "array",
816
+ "items": {
817
+ "type": "string"
818
+ }
819
+ },
820
+ "searchableProperties": {
821
+ "type": "array",
822
+ "items": {
823
+ "type": "string"
824
+ }
825
+ },
826
+ "secondaryDisplayProperties": {
827
+ "type": "array",
828
+ "items": {
829
+ "type": "string"
830
+ }
831
+ }
403
832
  },
404
833
  "additionalProperties": false
405
834
  },
406
835
  "excluded": {
407
836
  "description": "Addresses a skip override leaves out.",
408
837
  "type": "array",
409
- "items": { "$ref": "#/$defs/address" }
838
+ "items": {
839
+ "$ref": "#/$defs/address"
840
+ }
410
841
  },
411
842
  "renamed": {
412
843
  "description": "Addresses a name override points at another portal name.",
413
844
  "type": "object",
414
- "patternProperties": { "^[a-z]+:\\S+$": { "type": "string" } },
845
+ "patternProperties": {
846
+ "^[a-z]+:\\S+$": {
847
+ "type": "string"
848
+ }
849
+ },
415
850
  "additionalProperties": false
416
851
  },
417
852
  "pipelines": {
418
853
  "description": "Whether the object's pipelines list was read. Absent when its pipelines are not in scope.",
419
854
  "type": "object",
420
855
  "required": ["status"],
421
- "properties": { "status": { "enum": ["read", "unreadable"] }, "missingScope": { "type": "string" } },
856
+ "properties": {
857
+ "status": {
858
+ "enum": ["read", "unreadable"]
859
+ },
860
+ "missingScope": {
861
+ "type": "string"
862
+ }
863
+ },
864
+ "additionalProperties": false
865
+ },
866
+ "associations": {
867
+ "description": "The associations of the pairs this object is in, pair by pair: per other object, whether the pair was read, and the user-defined types of this direction no name reached; and the HubSpot type IDs of each association addressed from this object. Absent when no pair with this object is in scope.",
868
+ "type": "object",
869
+ "required": ["with"],
870
+ "properties": {
871
+ "with": {
872
+ "type": "object",
873
+ "additionalProperties": {
874
+ "$ref": "#/$defs/pairCoverage"
875
+ }
876
+ },
877
+ "typeIds": {
878
+ "type": "object",
879
+ "additionalProperties": {
880
+ "type": "array",
881
+ "items": {
882
+ "type": "integer"
883
+ }
884
+ }
885
+ }
886
+ },
422
887
  "additionalProperties": false
423
888
  }
424
889
  },
@@ -429,16 +894,39 @@
429
894
  "type": "object",
430
895
  "required": ["name", "type", "fieldType", "label", "group", "hubspotDefined"],
431
896
  "properties": {
432
- "name": { "type": "string" },
433
- "type": { "type": "string" },
434
- "fieldType": { "type": "string" },
435
- "label": { "type": "string" },
436
- "group": { "$ref": "#/$defs/ref" },
437
- "description": { "type": "string" },
438
- "options": { "type": "array", "items": { "$ref": "#/$defs/option" } },
439
- "hubspotDefined": { "type": "boolean" },
440
- "externalOptions": { "type": "boolean" },
441
- "referencedObjectType": { "type": "string" }
897
+ "name": {
898
+ "type": "string"
899
+ },
900
+ "type": {
901
+ "type": "string"
902
+ },
903
+ "fieldType": {
904
+ "type": "string"
905
+ },
906
+ "label": {
907
+ "type": "string"
908
+ },
909
+ "group": {
910
+ "$ref": "#/$defs/ref"
911
+ },
912
+ "description": {
913
+ "type": "string"
914
+ },
915
+ "options": {
916
+ "type": "array",
917
+ "items": {
918
+ "$ref": "#/$defs/option"
919
+ }
920
+ },
921
+ "hubspotDefined": {
922
+ "type": "boolean"
923
+ },
924
+ "externalOptions": {
925
+ "type": "boolean"
926
+ },
927
+ "referencedObjectType": {
928
+ "type": "string"
929
+ }
442
930
  },
443
931
  "additionalProperties": false
444
932
  },
@@ -447,8 +935,45 @@
447
935
  "type": "object",
448
936
  "required": ["action"],
449
937
  "properties": {
450
- "action": { "enum": ["destroy", "release"] },
451
- "reason": { "type": "string" }
938
+ "action": {
939
+ "enum": ["destroy", "release"]
940
+ },
941
+ "reason": {
942
+ "type": "string"
943
+ }
944
+ },
945
+ "additionalProperties": false
946
+ },
947
+ "pairCoverage": {
948
+ "description": "One pair read with an object, from that object's side.",
949
+ "type": "object",
950
+ "required": ["status"],
951
+ "properties": {
952
+ "status": {
953
+ "enum": ["read", "unreadable"]
954
+ },
955
+ "missingScope": {
956
+ "type": "string"
957
+ },
958
+ "issue": {
959
+ "type": "string"
960
+ },
961
+ "unnamed": {
962
+ "type": "array",
963
+ "items": {
964
+ "type": "object",
965
+ "required": ["typeId"],
966
+ "properties": {
967
+ "typeId": {
968
+ "type": "integer"
969
+ },
970
+ "label": {
971
+ "type": "string"
972
+ }
973
+ },
974
+ "additionalProperties": false
975
+ }
976
+ }
452
977
  },
453
978
  "additionalProperties": false
454
979
  }