@apexops/contracts 0.10.0-next.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.
Files changed (101) hide show
  1. package/dist/.tsbuildinfo +1 -0
  2. package/dist/artifacts.d.ts +60 -0
  3. package/dist/artifacts.d.ts.map +1 -0
  4. package/dist/artifacts.js +46 -0
  5. package/dist/artifacts.js.map +1 -0
  6. package/dist/common.d.ts +22 -0
  7. package/dist/common.d.ts.map +1 -0
  8. package/dist/common.js +23 -0
  9. package/dist/common.js.map +1 -0
  10. package/dist/deployment.d.ts +100 -0
  11. package/dist/deployment.d.ts.map +1 -0
  12. package/dist/deployment.js +108 -0
  13. package/dist/deployment.js.map +1 -0
  14. package/dist/evidence.d.ts +256 -0
  15. package/dist/evidence.d.ts.map +1 -0
  16. package/dist/evidence.js +382 -0
  17. package/dist/evidence.js.map +1 -0
  18. package/dist/export-schemas.d.ts +2 -0
  19. package/dist/export-schemas.d.ts.map +1 -0
  20. package/dist/export-schemas.js +53 -0
  21. package/dist/export-schemas.js.map +1 -0
  22. package/dist/improvement.d.ts +92 -0
  23. package/dist/improvement.d.ts.map +1 -0
  24. package/dist/improvement.js +119 -0
  25. package/dist/improvement.js.map +1 -0
  26. package/dist/index.d.ts +983 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +128 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/onboarding.d.ts +15 -0
  31. package/dist/onboarding.d.ts.map +1 -0
  32. package/dist/onboarding.js +17 -0
  33. package/dist/onboarding.js.map +1 -0
  34. package/dist/pricing.d.ts +130 -0
  35. package/dist/pricing.d.ts.map +1 -0
  36. package/dist/pricing.js +355 -0
  37. package/dist/pricing.js.map +1 -0
  38. package/dist/runtime.d.ts +284 -0
  39. package/dist/runtime.d.ts.map +1 -0
  40. package/dist/runtime.js +196 -0
  41. package/dist/runtime.js.map +1 -0
  42. package/dist/schema-export.d.ts +15 -0
  43. package/dist/schema-export.d.ts.map +1 -0
  44. package/dist/schema-export.js +49 -0
  45. package/dist/schema-export.js.map +1 -0
  46. package/dist/targets.d.ts +359 -0
  47. package/dist/targets.d.ts.map +1 -0
  48. package/dist/targets.js +394 -0
  49. package/dist/targets.js.map +1 -0
  50. package/dist/test/contracts.test.d.ts +2 -0
  51. package/dist/test/contracts.test.d.ts.map +1 -0
  52. package/dist/test/contracts.test.js +867 -0
  53. package/dist/test/contracts.test.js.map +1 -0
  54. package/package.json +45 -0
  55. package/schemas/approval-evidence-v1.schema.json +172 -0
  56. package/schemas/architecture-availability-v1.schema.json +155 -0
  57. package/schemas/architecture-v1.schema.json +107 -0
  58. package/schemas/capability-pack-manifest-v1.schema.json +59 -0
  59. package/schemas/client-outcome-comparison-v1.schema.json +195 -0
  60. package/schemas/client-outcome-qualification-v1.schema.json +190 -0
  61. package/schemas/client-outcome-v1.schema.json +513 -0
  62. package/schemas/contract-metadata.json +232 -0
  63. package/schemas/cost-estimate-v1.schema.json +165 -0
  64. package/schemas/customization-lock-v1.schema.json +63 -0
  65. package/schemas/deployment-preview-v1.schema.json +180 -0
  66. package/schemas/diagnosis-v1.schema.json +111 -0
  67. package/schemas/environment-inputs-v1.schema.json +106 -0
  68. package/schemas/event-v1.schema.json +74 -0
  69. package/schemas/evidence-manifest-v1.schema.json +111 -0
  70. package/schemas/execution-plan-attestation-v1.schema.json +145 -0
  71. package/schemas/governance-constraints-v1.schema.json +103 -0
  72. package/schemas/iac-binding-v1.schema.json +74 -0
  73. package/schemas/iac-handoff-v1.schema.json +83 -0
  74. package/schemas/implementation-intent-v1.schema.json +89 -0
  75. package/schemas/improvement-decision-v1.schema.json +62 -0
  76. package/schemas/improvement-observation-v1.schema.json +166 -0
  77. package/schemas/improvement-policy-v1.schema.json +204 -0
  78. package/schemas/improvement-proposal-v1.schema.json +144 -0
  79. package/schemas/improvement-recurrence-v1.schema.json +130 -0
  80. package/schemas/input-request-v1.schema.json +242 -0
  81. package/schemas/input-submission-v1.schema.json +205 -0
  82. package/schemas/live-qualification-v1.schema.json +295 -0
  83. package/schemas/logical-resource-manifest-v1.schema.json +123 -0
  84. package/schemas/onboarding-config-v1.schema.json +59 -0
  85. package/schemas/operation-record-v1.schema.json +112 -0
  86. package/schemas/policy-property-map-v1.schema.json +108 -0
  87. package/schemas/pricing-evidence-v1.schema.json +628 -0
  88. package/schemas/pricing-request-v1.schema.json +424 -0
  89. package/schemas/project-config-v1.schema.json +43 -0
  90. package/schemas/quality-measurements-v1.schema.json +54 -0
  91. package/schemas/quality-report-v1.schema.json +114 -0
  92. package/schemas/quality-scorecard-v1.schema.json +109 -0
  93. package/schemas/requirements-v1.schema.json +108 -0
  94. package/schemas/resource-inventory-v1.schema.json +74 -0
  95. package/schemas/review-findings-v1.schema.json +126 -0
  96. package/schemas/run-config-v1.schema.json +133 -0
  97. package/schemas/runtime-bundle-lock-v1.schema.json +59 -0
  98. package/schemas/scenario-v1.schema.json +55 -0
  99. package/schemas/task-envelope-v1.schema.json +122 -0
  100. package/schemas/telemetry-v1.schema.json +117 -0
  101. package/schemas/workload-decision-manifest-v1.schema.json +320 -0
@@ -0,0 +1,424 @@
1
+ {
2
+ "$id": "https://schemas.apexops.dev/pricing-request-v1.json",
3
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4
+ "additionalProperties": false,
5
+ "properties": {
6
+ "bulkItems": {
7
+ "items": {
8
+ "additionalProperties": false,
9
+ "properties": {
10
+ "meter": {
11
+ "additionalProperties": false,
12
+ "properties": {
13
+ "meterId": {
14
+ "maxLength": 128,
15
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9 ._()/-]{0,127}$",
16
+ "type": "string"
17
+ },
18
+ "unitDimension": {
19
+ "anyOf": [
20
+ {
21
+ "const": "hour",
22
+ "type": "string"
23
+ },
24
+ {
25
+ "const": "day",
26
+ "type": "string"
27
+ },
28
+ {
29
+ "const": "month",
30
+ "type": "string"
31
+ },
32
+ {
33
+ "const": "second",
34
+ "type": "string"
35
+ },
36
+ {
37
+ "const": "gb-month",
38
+ "type": "string"
39
+ },
40
+ {
41
+ "const": "gb",
42
+ "type": "string"
43
+ },
44
+ {
45
+ "const": "transactions",
46
+ "type": "string"
47
+ }
48
+ ]
49
+ },
50
+ "unitQuantity": {
51
+ "exclusiveMinimum": 0,
52
+ "maximum": 1000000000,
53
+ "type": "number"
54
+ }
55
+ },
56
+ "required": [
57
+ "meterId",
58
+ "unitDimension",
59
+ "unitQuantity"
60
+ ],
61
+ "type": "object"
62
+ },
63
+ "specId": {
64
+ "maxLength": 128,
65
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9 ._()/-]{0,127}$",
66
+ "type": "string"
67
+ },
68
+ "target": {
69
+ "additionalProperties": false,
70
+ "properties": {
71
+ "currency": {
72
+ "pattern": "^[A-Z]{3}$",
73
+ "type": "string"
74
+ },
75
+ "regions": {
76
+ "items": {
77
+ "maxLength": 32,
78
+ "pattern": "^[a-z][a-z0-9-]{1,31}$",
79
+ "type": "string"
80
+ },
81
+ "maxItems": 16,
82
+ "minItems": 1,
83
+ "type": "array",
84
+ "uniqueItems": true
85
+ },
86
+ "serviceName": {
87
+ "maxLength": 128,
88
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9 ._()/-]{0,127}$",
89
+ "type": "string"
90
+ },
91
+ "skuName": {
92
+ "maxLength": 128,
93
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9 ._()/-]{0,127}$",
94
+ "type": "string"
95
+ }
96
+ },
97
+ "required": [
98
+ "serviceName",
99
+ "regions",
100
+ "currency"
101
+ ],
102
+ "type": "object"
103
+ },
104
+ "usage": {
105
+ "additionalProperties": false,
106
+ "properties": {
107
+ "dimension": {
108
+ "anyOf": [
109
+ {
110
+ "const": "hour",
111
+ "type": "string"
112
+ },
113
+ {
114
+ "const": "day",
115
+ "type": "string"
116
+ },
117
+ {
118
+ "const": "month",
119
+ "type": "string"
120
+ },
121
+ {
122
+ "const": "second",
123
+ "type": "string"
124
+ },
125
+ {
126
+ "const": "gb-month",
127
+ "type": "string"
128
+ },
129
+ {
130
+ "const": "gb",
131
+ "type": "string"
132
+ },
133
+ {
134
+ "const": "transactions",
135
+ "type": "string"
136
+ }
137
+ ]
138
+ },
139
+ "quantity": {
140
+ "maximum": 1000000000,
141
+ "minimum": 0,
142
+ "type": "number"
143
+ }
144
+ },
145
+ "required": [
146
+ "dimension",
147
+ "quantity"
148
+ ],
149
+ "type": "object"
150
+ }
151
+ },
152
+ "required": [
153
+ "specId",
154
+ "target",
155
+ "usage"
156
+ ],
157
+ "type": "object"
158
+ },
159
+ "maxItems": 256,
160
+ "minItems": 2,
161
+ "type": "array"
162
+ },
163
+ "commitment": {
164
+ "additionalProperties": false,
165
+ "properties": {
166
+ "kind": {
167
+ "anyOf": [
168
+ {
169
+ "const": "none",
170
+ "type": "string"
171
+ },
172
+ {
173
+ "const": "reservation",
174
+ "type": "string"
175
+ },
176
+ {
177
+ "const": "savings-plan",
178
+ "type": "string"
179
+ }
180
+ ]
181
+ },
182
+ "priceBasis": {
183
+ "anyOf": [
184
+ {
185
+ "const": "hourly",
186
+ "type": "string"
187
+ },
188
+ {
189
+ "const": "total",
190
+ "type": "string"
191
+ }
192
+ ]
193
+ },
194
+ "termMonths": {
195
+ "anyOf": [
196
+ {
197
+ "const": 12,
198
+ "type": "number"
199
+ },
200
+ {
201
+ "const": 36,
202
+ "type": "number"
203
+ }
204
+ ]
205
+ }
206
+ },
207
+ "required": [
208
+ "kind"
209
+ ],
210
+ "type": "object"
211
+ },
212
+ "meter": {
213
+ "additionalProperties": false,
214
+ "properties": {
215
+ "meterId": {
216
+ "maxLength": 128,
217
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9 ._()/-]{0,127}$",
218
+ "type": "string"
219
+ },
220
+ "unitDimension": {
221
+ "anyOf": [
222
+ {
223
+ "const": "hour",
224
+ "type": "string"
225
+ },
226
+ {
227
+ "const": "day",
228
+ "type": "string"
229
+ },
230
+ {
231
+ "const": "month",
232
+ "type": "string"
233
+ },
234
+ {
235
+ "const": "second",
236
+ "type": "string"
237
+ },
238
+ {
239
+ "const": "gb-month",
240
+ "type": "string"
241
+ },
242
+ {
243
+ "const": "gb",
244
+ "type": "string"
245
+ },
246
+ {
247
+ "const": "transactions",
248
+ "type": "string"
249
+ }
250
+ ]
251
+ },
252
+ "unitQuantity": {
253
+ "exclusiveMinimum": 0,
254
+ "maximum": 1000000000,
255
+ "type": "number"
256
+ }
257
+ },
258
+ "required": [
259
+ "meterId",
260
+ "unitDimension",
261
+ "unitQuantity"
262
+ ],
263
+ "type": "object"
264
+ },
265
+ "projectId": {
266
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
267
+ "type": "string"
268
+ },
269
+ "requestedAt": {
270
+ "format": "date-time",
271
+ "type": "string"
272
+ },
273
+ "requestId": {
274
+ "pattern": "^[0-9a-f]{64}$",
275
+ "type": "string"
276
+ },
277
+ "runId": {
278
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,127}$",
279
+ "type": "string"
280
+ },
281
+ "scenarioId": {
282
+ "anyOf": [
283
+ {
284
+ "const": "PRICING-001-retail",
285
+ "type": "string"
286
+ },
287
+ {
288
+ "const": "PRICING-002-meter-aware",
289
+ "type": "string"
290
+ },
291
+ {
292
+ "const": "PRICING-003-bulk",
293
+ "type": "string"
294
+ },
295
+ {
296
+ "const": "PRICING-004-regional",
297
+ "type": "string"
298
+ },
299
+ {
300
+ "const": "PRICING-005-commitments",
301
+ "type": "string"
302
+ },
303
+ {
304
+ "const": "PRICING-006-negotiated",
305
+ "type": "string"
306
+ },
307
+ {
308
+ "const": "PRICING-007-ambiguity",
309
+ "type": "string"
310
+ },
311
+ {
312
+ "const": "PRICING-008-uncertainty",
313
+ "type": "string"
314
+ },
315
+ {
316
+ "const": "PRICING-009-throttling",
317
+ "type": "string"
318
+ },
319
+ {
320
+ "const": "PRICING-010-provenance",
321
+ "type": "string"
322
+ }
323
+ ]
324
+ },
325
+ "schemaVersion": {
326
+ "const": "1.0.0",
327
+ "type": "string"
328
+ },
329
+ "target": {
330
+ "additionalProperties": false,
331
+ "properties": {
332
+ "currency": {
333
+ "pattern": "^[A-Z]{3}$",
334
+ "type": "string"
335
+ },
336
+ "regions": {
337
+ "items": {
338
+ "maxLength": 32,
339
+ "pattern": "^[a-z][a-z0-9-]{1,31}$",
340
+ "type": "string"
341
+ },
342
+ "maxItems": 16,
343
+ "minItems": 1,
344
+ "type": "array",
345
+ "uniqueItems": true
346
+ },
347
+ "serviceName": {
348
+ "maxLength": 128,
349
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9 ._()/-]{0,127}$",
350
+ "type": "string"
351
+ },
352
+ "skuName": {
353
+ "maxLength": 128,
354
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9 ._()/-]{0,127}$",
355
+ "type": "string"
356
+ }
357
+ },
358
+ "required": [
359
+ "serviceName",
360
+ "regions",
361
+ "currency"
362
+ ],
363
+ "type": "object"
364
+ },
365
+ "usage": {
366
+ "additionalProperties": false,
367
+ "properties": {
368
+ "dimension": {
369
+ "anyOf": [
370
+ {
371
+ "const": "hour",
372
+ "type": "string"
373
+ },
374
+ {
375
+ "const": "day",
376
+ "type": "string"
377
+ },
378
+ {
379
+ "const": "month",
380
+ "type": "string"
381
+ },
382
+ {
383
+ "const": "second",
384
+ "type": "string"
385
+ },
386
+ {
387
+ "const": "gb-month",
388
+ "type": "string"
389
+ },
390
+ {
391
+ "const": "gb",
392
+ "type": "string"
393
+ },
394
+ {
395
+ "const": "transactions",
396
+ "type": "string"
397
+ }
398
+ ]
399
+ },
400
+ "quantity": {
401
+ "maximum": 1000000000,
402
+ "minimum": 0,
403
+ "type": "number"
404
+ }
405
+ },
406
+ "required": [
407
+ "dimension",
408
+ "quantity"
409
+ ],
410
+ "type": "object"
411
+ }
412
+ },
413
+ "required": [
414
+ "schemaVersion",
415
+ "projectId",
416
+ "runId",
417
+ "scenarioId",
418
+ "target",
419
+ "usage",
420
+ "requestedAt",
421
+ "requestId"
422
+ ],
423
+ "type": "object"
424
+ }
@@ -0,0 +1,43 @@
1
+ {
2
+ "$id": "https://schemas.apexops.dev/project-config-v1.json",
3
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4
+ "additionalProperties": false,
5
+ "properties": {
6
+ "createdAt": {
7
+ "format": "date-time",
8
+ "type": "string"
9
+ },
10
+ "defaultIacTool": {
11
+ "anyOf": [
12
+ {
13
+ "const": "bicep",
14
+ "type": "string"
15
+ },
16
+ {
17
+ "const": "terraform",
18
+ "type": "string"
19
+ }
20
+ ]
21
+ },
22
+ "displayName": {
23
+ "minLength": 1,
24
+ "type": "string"
25
+ },
26
+ "projectId": {
27
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
28
+ "type": "string"
29
+ },
30
+ "schemaVersion": {
31
+ "const": "1.0.0",
32
+ "type": "string"
33
+ }
34
+ },
35
+ "required": [
36
+ "schemaVersion",
37
+ "projectId",
38
+ "displayName",
39
+ "createdAt",
40
+ "defaultIacTool"
41
+ ],
42
+ "type": "object"
43
+ }
@@ -0,0 +1,54 @@
1
+ {
2
+ "$id": "https://schemas.apexops.dev/quality-measurements-v1.json",
3
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4
+ "additionalProperties": false,
5
+ "properties": {
6
+ "measurements": {
7
+ "items": {
8
+ "additionalProperties": false,
9
+ "properties": {
10
+ "evidenceRefs": {
11
+ "items": {
12
+ "pattern": "^[0-9a-f]{64}$",
13
+ "type": "string"
14
+ },
15
+ "type": "array",
16
+ "uniqueItems": true
17
+ },
18
+ "metric": {
19
+ "minLength": 1,
20
+ "type": "string"
21
+ },
22
+ "samples": {
23
+ "minimum": 0,
24
+ "type": "integer"
25
+ },
26
+ "scenario": {
27
+ "minLength": 1,
28
+ "type": "string"
29
+ },
30
+ "value": {
31
+ "type": "number"
32
+ }
33
+ },
34
+ "required": [
35
+ "metric",
36
+ "scenario",
37
+ "samples",
38
+ "evidenceRefs"
39
+ ],
40
+ "type": "object"
41
+ },
42
+ "type": "array"
43
+ },
44
+ "schemaVersion": {
45
+ "const": "1.0.0",
46
+ "type": "string"
47
+ }
48
+ },
49
+ "required": [
50
+ "schemaVersion",
51
+ "measurements"
52
+ ],
53
+ "type": "object"
54
+ }
@@ -0,0 +1,114 @@
1
+ {
2
+ "$id": "https://schemas.apexops.dev/quality-report-v1.json",
3
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4
+ "additionalProperties": false,
5
+ "properties": {
6
+ "checks": {
7
+ "items": {
8
+ "additionalProperties": false,
9
+ "properties": {
10
+ "detail": {
11
+ "minLength": 1,
12
+ "type": "string"
13
+ },
14
+ "evidenceRefs": {
15
+ "items": {
16
+ "pattern": "^[0-9a-f]{64}$",
17
+ "type": "string"
18
+ },
19
+ "type": "array",
20
+ "uniqueItems": true
21
+ },
22
+ "id": {
23
+ "minLength": 1,
24
+ "type": "string"
25
+ },
26
+ "samples": {
27
+ "minimum": 0,
28
+ "type": "integer"
29
+ },
30
+ "scenario": {
31
+ "minLength": 1,
32
+ "type": "string"
33
+ },
34
+ "status": {
35
+ "anyOf": [
36
+ {
37
+ "const": "pass",
38
+ "type": "string"
39
+ },
40
+ {
41
+ "const": "fail",
42
+ "type": "string"
43
+ },
44
+ {
45
+ "const": "omitted",
46
+ "type": "string"
47
+ }
48
+ ]
49
+ },
50
+ "value": {
51
+ "type": "number"
52
+ }
53
+ },
54
+ "required": [
55
+ "id",
56
+ "scenario",
57
+ "status",
58
+ "samples",
59
+ "evidenceRefs",
60
+ "detail"
61
+ ],
62
+ "type": "object"
63
+ },
64
+ "type": "array"
65
+ },
66
+ "evaluatedAt": {
67
+ "format": "date-time",
68
+ "type": "string"
69
+ },
70
+ "measurementsHash": {
71
+ "pattern": "^[0-9a-f]{64}$",
72
+ "type": "string"
73
+ },
74
+ "projectId": {
75
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
76
+ "type": "string"
77
+ },
78
+ "runId": {
79
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,127}$",
80
+ "type": "string"
81
+ },
82
+ "schemaVersion": {
83
+ "const": "1.0.0",
84
+ "type": "string"
85
+ },
86
+ "scorecardHash": {
87
+ "pattern": "^[0-9a-f]{64}$",
88
+ "type": "string"
89
+ },
90
+ "status": {
91
+ "anyOf": [
92
+ {
93
+ "const": "pass",
94
+ "type": "string"
95
+ },
96
+ {
97
+ "const": "fail",
98
+ "type": "string"
99
+ }
100
+ ]
101
+ }
102
+ },
103
+ "required": [
104
+ "schemaVersion",
105
+ "projectId",
106
+ "runId",
107
+ "evaluatedAt",
108
+ "scorecardHash",
109
+ "measurementsHash",
110
+ "status",
111
+ "checks"
112
+ ],
113
+ "type": "object"
114
+ }