@eudiplo/cli 9.1.0-main.c121f07 → 9.1.0-main.cd87b41

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 (77) hide show
  1. package/dist/commands/completion/action.js +3 -1
  2. package/dist/commands/completion/action.js.map +1 -1
  3. package/dist/commands/config/portability/migrations.spec.js +4 -2
  4. package/dist/commands/config/portability/migrations.spec.js.map +1 -1
  5. package/dist/commands/config/portability/upgrade.d.ts.map +1 -1
  6. package/dist/commands/config/portability/upgrade.js +7 -8
  7. package/dist/commands/config/portability/upgrade.js.map +1 -1
  8. package/dist/commands/config/validate/action.d.ts.map +1 -1
  9. package/dist/commands/config/validate/action.js +2 -1
  10. package/dist/commands/config/validate/action.js.map +1 -1
  11. package/dist/commands/config/validate/registry.json +21 -0
  12. package/dist/commands/init/action.d.ts.map +1 -1
  13. package/dist/commands/init/action.js +1 -11
  14. package/dist/commands/init/action.js.map +1 -1
  15. package/dist/commands/instance/action.d.ts +2 -0
  16. package/dist/commands/instance/action.d.ts.map +1 -1
  17. package/dist/commands/instance/action.js +68 -12
  18. package/dist/commands/instance/action.js.map +1 -1
  19. package/dist/commands/instance/index.d.ts.map +1 -1
  20. package/dist/commands/instance/index.js +21 -3
  21. package/dist/commands/instance/index.js.map +1 -1
  22. package/dist/commands/open/action.d.ts.map +1 -1
  23. package/dist/commands/open/action.js +13 -2
  24. package/dist/commands/open/action.js.map +1 -1
  25. package/dist/commands/status/action.d.ts.map +1 -1
  26. package/dist/commands/status/action.js +2 -1
  27. package/dist/commands/status/action.js.map +1 -1
  28. package/dist/index.js +17843 -5289
  29. package/dist/services/api-auth.d.ts.map +1 -1
  30. package/dist/services/api-auth.js +3 -2
  31. package/dist/services/api-auth.js.map +1 -1
  32. package/dist/services/browser.d.ts.map +1 -1
  33. package/dist/services/browser.js +3 -2
  34. package/dist/services/browser.js.map +1 -1
  35. package/dist/services/cli-config.d.ts +41 -1
  36. package/dist/services/cli-config.d.ts.map +1 -1
  37. package/dist/services/cli-config.js +217 -29
  38. package/dist/services/cli-config.js.map +1 -1
  39. package/dist/services/diagnostics.d.ts.map +1 -1
  40. package/dist/services/diagnostics.js +9 -8
  41. package/dist/services/diagnostics.js.map +1 -1
  42. package/dist/services/instance-selection.d.ts.map +1 -1
  43. package/dist/services/instance-selection.js +2 -5
  44. package/dist/services/instance-selection.js.map +1 -1
  45. package/dist/services/url.d.ts +21 -0
  46. package/dist/services/url.d.ts.map +1 -0
  47. package/dist/services/url.js +61 -0
  48. package/dist/services/url.js.map +1 -0
  49. package/package.json +6 -5
  50. package/templates/demo-config/clients/presentation-test.json +1 -1
  51. package/templates/demo-config/clients/test.json +6 -2
  52. package/templates/demo-config/key-chains/attestation.json +2 -1
  53. package/templates/demo-config/key-chains/status-list.json +5 -4
  54. package/templates/docker-compose.yml +2 -2
  55. package/templates/schemas/ClientConfigFile.schema.json +134 -1
  56. package/templates/schemas/CreateClientDto.schema.json +5 -1
  57. package/templates/schemas/CreateFederationTrustAnchorDto.schema.json +82 -0
  58. package/templates/schemas/CreateRegistrarConfigDto.schema.json +29 -0
  59. package/templates/schemas/CreateTenantDto.schema.json +5 -1
  60. package/templates/schemas/CredentialConfigCreate.schema.json +236 -6
  61. package/templates/schemas/CredentialConfigFile.schema.json +797 -1
  62. package/templates/schemas/FederationTrustAnchorConfigFile.schema.json +60 -0
  63. package/templates/schemas/IssuanceConfig.schema.json +120 -2
  64. package/templates/schemas/IssuanceConfigFile.schema.json +1434 -1
  65. package/templates/schemas/KeyChainConfigFile.schema.json +505 -119
  66. package/templates/schemas/KeyChainCreateDto.schema.json +11 -1
  67. package/templates/schemas/KeyChainDefaultsConfigFile.schema.json +65 -0
  68. package/templates/schemas/KeyChainImportDto.schema.json +9 -0
  69. package/templates/schemas/KmsConfigDto.schema.json +186 -0
  70. package/templates/schemas/KmsConfigFile.schema.json +1026 -1
  71. package/templates/schemas/RegistrarConfigFile.schema.json +101 -1
  72. package/templates/schemas/RotationPolicyCreateDto.schema.json +1 -1
  73. package/templates/schemas/TenantConfigFile.schema.json +334 -64
  74. package/templates/schemas/UpdateClientDto.schema.json +5 -1
  75. package/templates/schemas/UpdateFederationTrustAnchorDto.schema.json +70 -0
  76. package/templates/schemas/UpdateStatusListConfigDto.schema.json +5 -5
  77. package/templates/schemas.manifest.json +4 -0
@@ -1,7 +1,378 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "anyOf": [
3
+ "$id": "./KeyChainConfigFile.schema.json",
4
+ "title": "KeyChainConfigFile",
5
+ "description": "Configuration file identified by its $schema URL.",
6
+ "oneOf": [
7
+ {
8
+ "type": "object",
9
+ "properties": {
10
+ "$schema": {
11
+ "type": "string",
12
+ "const": "https://eudiplo.dev/schemas/v3/KeyChainConfigFile.schema.json"
13
+ },
14
+ "metadata": {
15
+ "type": "object",
16
+ "properties": {
17
+ "generation": {
18
+ "type": "integer",
19
+ "minimum": 1,
20
+ "maximum": 9007199254740991
21
+ },
22
+ "ownership": {
23
+ "type": "string",
24
+ "enum": [
25
+ "unmanaged",
26
+ "file-managed"
27
+ ]
28
+ }
29
+ },
30
+ "additionalProperties": false
31
+ },
32
+ "spec": {
33
+ "type": "object",
34
+ "properties": {
35
+ "id": {
36
+ "type": "string"
37
+ },
38
+ "description": {
39
+ "type": "string"
40
+ },
41
+ "usageType": {
42
+ "type": "string",
43
+ "enum": [
44
+ "access",
45
+ "attestation",
46
+ "trustList",
47
+ "statusList",
48
+ "federation",
49
+ "encrypt"
50
+ ]
51
+ },
52
+ "type": {
53
+ "description": "Key chain type. For a `private-jwk` key source without `activeJwk`, `standalone` makes `jwk` the signing key and `crt` its chain, leaf first; `internalChain` makes `jwk` a CA key and the last `crt` entry its CA certificate (created if `crt` is omitted), and the import generates a new signing key with a certificate issued by it. Without `type`, `jwk` is a CA key only if `rotationPolicy.enabled` is true and `crt` is not a single self-signed certificate that is not a CA. For `regenerate`, it is the type of the new key chain and must equal `keySource.keyChainType` if both are set. For the other key sources, it must match the key chain they describe.",
54
+ "type": "string",
55
+ "enum": [
56
+ "standalone",
57
+ "internalChain"
58
+ ]
59
+ },
60
+ "keySource": {
61
+ "oneOf": [
62
+ {
63
+ "type": "object",
64
+ "properties": {
65
+ "type": {
66
+ "type": "string",
67
+ "const": "private-jwk"
68
+ },
69
+ "jwk": {
70
+ "type": "object",
71
+ "properties": {
72
+ "kty": {
73
+ "type": "string",
74
+ "description": "Key type (for example EC)."
75
+ },
76
+ "x": {
77
+ "type": "string",
78
+ "description": "Elliptic curve public x coordinate."
79
+ },
80
+ "y": {
81
+ "type": "string",
82
+ "description": "Elliptic curve public y coordinate."
83
+ },
84
+ "crv": {
85
+ "type": "string",
86
+ "description": "Elliptic curve name."
87
+ },
88
+ "d": {
89
+ "type": "string",
90
+ "description": "Private key value."
91
+ },
92
+ "alg": {
93
+ "description": "Optional algorithm hint.",
94
+ "type": "string"
95
+ },
96
+ "kid": {
97
+ "description": "Optional key identifier.",
98
+ "type": "string"
99
+ }
100
+ },
101
+ "required": [
102
+ "kty",
103
+ "x",
104
+ "y",
105
+ "crv",
106
+ "d"
107
+ ],
108
+ "additionalProperties": false
109
+ },
110
+ "activeJwk": {
111
+ "type": "object",
112
+ "properties": {
113
+ "kty": {
114
+ "type": "string",
115
+ "description": "Key type (for example EC)."
116
+ },
117
+ "x": {
118
+ "type": "string",
119
+ "description": "Elliptic curve public x coordinate."
120
+ },
121
+ "y": {
122
+ "type": "string",
123
+ "description": "Elliptic curve public y coordinate."
124
+ },
125
+ "crv": {
126
+ "type": "string",
127
+ "description": "Elliptic curve name."
128
+ },
129
+ "d": {
130
+ "type": "string",
131
+ "description": "Private key value."
132
+ },
133
+ "alg": {
134
+ "description": "Optional algorithm hint.",
135
+ "type": "string"
136
+ },
137
+ "kid": {
138
+ "description": "Optional key identifier.",
139
+ "type": "string"
140
+ }
141
+ },
142
+ "required": [
143
+ "kty",
144
+ "x",
145
+ "y",
146
+ "crv",
147
+ "d"
148
+ ],
149
+ "additionalProperties": false
150
+ }
151
+ },
152
+ "required": [
153
+ "type",
154
+ "jwk"
155
+ ],
156
+ "additionalProperties": false
157
+ },
158
+ {
159
+ "type": "object",
160
+ "properties": {
161
+ "type": {
162
+ "type": "string",
163
+ "const": "external-reference"
164
+ },
165
+ "provider": {
166
+ "type": "string"
167
+ },
168
+ "externalKeyId": {
169
+ "type": "string"
170
+ },
171
+ "publicJwk": {
172
+ "type": "object",
173
+ "properties": {
174
+ "kty": {
175
+ "type": "string"
176
+ },
177
+ "x": {
178
+ "type": "string"
179
+ },
180
+ "y": {
181
+ "type": "string"
182
+ },
183
+ "crv": {
184
+ "type": "string"
185
+ },
186
+ "alg": {
187
+ "type": "string"
188
+ },
189
+ "kid": {
190
+ "type": "string"
191
+ }
192
+ },
193
+ "required": [
194
+ "kty",
195
+ "x",
196
+ "y",
197
+ "crv"
198
+ ],
199
+ "additionalProperties": false
200
+ },
201
+ "activeExternalKeyId": {
202
+ "type": "string"
203
+ },
204
+ "activePublicJwk": {
205
+ "type": "object",
206
+ "properties": {
207
+ "kty": {
208
+ "type": "string"
209
+ },
210
+ "x": {
211
+ "type": "string"
212
+ },
213
+ "y": {
214
+ "type": "string"
215
+ },
216
+ "crv": {
217
+ "type": "string"
218
+ },
219
+ "alg": {
220
+ "type": "string"
221
+ },
222
+ "kid": {
223
+ "type": "string"
224
+ }
225
+ },
226
+ "required": [
227
+ "kty",
228
+ "x",
229
+ "y",
230
+ "crv"
231
+ ],
232
+ "additionalProperties": false
233
+ }
234
+ },
235
+ "required": [
236
+ "type",
237
+ "provider",
238
+ "externalKeyId",
239
+ "publicJwk"
240
+ ],
241
+ "additionalProperties": false
242
+ },
243
+ {
244
+ "type": "object",
245
+ "properties": {
246
+ "type": {
247
+ "type": "string",
248
+ "const": "required"
249
+ },
250
+ "publicJwk": {
251
+ "type": "object",
252
+ "properties": {
253
+ "kty": {
254
+ "type": "string"
255
+ },
256
+ "x": {
257
+ "type": "string"
258
+ },
259
+ "y": {
260
+ "type": "string"
261
+ },
262
+ "crv": {
263
+ "type": "string"
264
+ },
265
+ "alg": {
266
+ "type": "string"
267
+ },
268
+ "kid": {
269
+ "type": "string"
270
+ }
271
+ },
272
+ "required": [
273
+ "kty",
274
+ "x",
275
+ "y",
276
+ "crv"
277
+ ],
278
+ "additionalProperties": false
279
+ }
280
+ },
281
+ "required": [
282
+ "type"
283
+ ],
284
+ "additionalProperties": false
285
+ },
286
+ {
287
+ "type": "object",
288
+ "properties": {
289
+ "type": {
290
+ "type": "string",
291
+ "const": "regenerate"
292
+ },
293
+ "keyChainType": {
294
+ "type": "string",
295
+ "enum": [
296
+ "standalone",
297
+ "internalChain"
298
+ ]
299
+ }
300
+ },
301
+ "required": [
302
+ "type"
303
+ ],
304
+ "additionalProperties": false
305
+ }
306
+ ]
307
+ },
308
+ "crt": {
309
+ "type": "array",
310
+ "items": {
311
+ "type": "string"
312
+ }
313
+ },
314
+ "activeCertificate": {
315
+ "description": "Active certificate for an internal key chain.",
316
+ "type": "string"
317
+ },
318
+ "kmsProvider": {
319
+ "type": "string"
320
+ },
321
+ "rotationPolicy": {
322
+ "type": "object",
323
+ "properties": {
324
+ "enabled": {
325
+ "type": "boolean"
326
+ },
327
+ "intervalDays": {
328
+ "anyOf": [
329
+ {
330
+ "type": "number",
331
+ "minimum": 1,
332
+ "maximum": 3650
333
+ },
334
+ {
335
+ "type": "null"
336
+ }
337
+ ]
338
+ },
339
+ "certValidityDays": {
340
+ "anyOf": [
341
+ {
342
+ "type": "number",
343
+ "minimum": 1,
344
+ "maximum": 3650
345
+ },
346
+ {
347
+ "type": "null"
348
+ }
349
+ ]
350
+ }
351
+ },
352
+ "required": [
353
+ "enabled"
354
+ ],
355
+ "additionalProperties": false
356
+ }
357
+ },
358
+ "required": [
359
+ "usageType",
360
+ "keySource"
361
+ ],
362
+ "additionalProperties": false
363
+ }
364
+ },
365
+ "required": [
366
+ "$schema",
367
+ "metadata",
368
+ "spec"
369
+ ],
370
+ "additionalProperties": false
371
+ },
4
372
  {
373
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
374
+ "$id": "https://eudiplo.dev/schemas/v1/KeyChainConfigFile.schema.json",
375
+ "title": "KeyChainConfigFile",
5
376
  "type": "object",
6
377
  "properties": {
7
378
  "$schema": {
@@ -358,128 +729,14 @@
358
729
  "additionalProperties": false
359
730
  },
360
731
  {
361
- "type": "object",
362
- "properties": {
363
- "id": {
364
- "description": "Optional key chain id. If omitted, one is generated.",
365
- "type": "string"
366
- },
367
- "key": {
368
- "description": "Private key material in JWK format.",
369
- "type": "object",
370
- "properties": {
371
- "kty": {
372
- "type": "string",
373
- "description": "Key type (for example EC)."
374
- },
375
- "x": {
376
- "type": "string",
377
- "description": "Elliptic curve public x coordinate."
378
- },
379
- "y": {
380
- "type": "string",
381
- "description": "Elliptic curve public y coordinate."
382
- },
383
- "crv": {
384
- "type": "string",
385
- "description": "Elliptic curve name."
386
- },
387
- "d": {
388
- "type": "string",
389
- "description": "Private key value."
390
- },
391
- "alg": {
392
- "description": "Optional algorithm hint.",
393
- "type": "string"
394
- },
395
- "kid": {
396
- "description": "Optional key identifier.",
397
- "type": "string"
398
- }
399
- },
400
- "required": [
401
- "kty",
402
- "x",
403
- "y",
404
- "crv",
405
- "d"
406
- ],
407
- "additionalProperties": false
408
- },
409
- "keyPem": {
410
- "description": "PKCS#8 PEM-encoded EC private key material.",
411
- "type": "string",
412
- "minLength": 1
413
- },
414
- "description": {
415
- "description": "Optional key chain description.",
416
- "type": "string"
417
- },
418
- "usageType": {
419
- "type": "string",
420
- "enum": [
421
- "access",
422
- "attestation",
423
- "trustList",
424
- "statusList",
425
- "encrypt"
426
- ],
427
- "description": "Key usage category for the imported key chain."
428
- },
429
- "crt": {
430
- "description": "Optional certificate chain values in PEM or base64 DER.",
431
- "type": "array",
432
- "items": {
433
- "type": "string"
434
- }
435
- },
436
- "kmsProvider": {
437
- "description": "Optional KMS provider id.",
438
- "type": "string"
439
- },
440
- "rotationPolicy": {
441
- "description": "Optional rotation policy for imported key chains.",
442
- "type": "object",
443
- "properties": {
444
- "enabled": {
445
- "type": "boolean",
446
- "description": "Enable automatic rotation for imported key chains."
447
- },
448
- "intervalDays": {
449
- "description": "Rotation interval in days.",
450
- "type": "number",
451
- "minimum": 1,
452
- "maximum": 3650
453
- },
454
- "certValidityDays": {
455
- "description": "Certificate validity period in days.",
456
- "type": "number",
457
- "minimum": 1,
458
- "maximum": 3650
459
- }
460
- },
461
- "required": [
462
- "enabled"
463
- ],
464
- "additionalProperties": false
465
- }
466
- },
467
- "required": [
468
- "usageType"
469
- ],
470
- "additionalProperties": false
471
- }
472
- ],
473
- "$id": "./KeyChainConfigFile.schema.json",
474
- "title": "KeyChainConfigFile",
475
- "description": "Configuration file identified by its $schema URL.",
476
- "oneOf": [
477
- {
732
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
733
+ "$id": "https://eudiplo.dev/schemas/v2/KeyChainConfigFile.schema.json",
734
+ "title": "KeyChainConfigFile",
478
735
  "type": "object",
479
736
  "properties": {
480
737
  "$schema": {
481
738
  "type": "string",
482
- "const": "https://eudiplo.dev/schemas/v1/KeyChainConfigFile.schema.json"
739
+ "const": "https://eudiplo.dev/schemas/v2/KeyChainConfigFile.schema.json"
483
740
  },
484
741
  "metadata": {
485
742
  "type": "object",
@@ -518,6 +775,14 @@
518
775
  "encrypt"
519
776
  ]
520
777
  },
778
+ "type": {
779
+ "description": "Key chain type. For a `private-jwk` key source without `activeJwk`, `standalone` makes `jwk` the signing key and `crt` its chain, leaf first; `internalChain` makes `jwk` a CA key and the last `crt` entry its CA certificate (created if `crt` is omitted), and the import generates a new signing key with a certificate issued by it. Without `type`, `jwk` is a CA key only if `rotationPolicy.enabled` is true and `crt` is not a single self-signed certificate that is not a CA. For `regenerate`, it is the type of the new key chain and must equal `keySource.keyChainType` if both are set. For the other key sources, it must match the key chain they describe.",
780
+ "type": "string",
781
+ "enum": [
782
+ "standalone",
783
+ "internalChain"
784
+ ]
785
+ },
521
786
  "keySource": {
522
787
  "oneOf": [
523
788
  {
@@ -829,6 +1094,127 @@
829
1094
  "spec"
830
1095
  ],
831
1096
  "additionalProperties": false
1097
+ },
1098
+ {
1099
+ "type": "object",
1100
+ "properties": {
1101
+ "id": {
1102
+ "description": "Optional key chain id. If omitted, one is generated.",
1103
+ "type": "string"
1104
+ },
1105
+ "key": {
1106
+ "description": "Private key material in JWK format.",
1107
+ "type": "object",
1108
+ "properties": {
1109
+ "kty": {
1110
+ "type": "string",
1111
+ "description": "Key type (for example EC)."
1112
+ },
1113
+ "x": {
1114
+ "type": "string",
1115
+ "description": "Elliptic curve public x coordinate."
1116
+ },
1117
+ "y": {
1118
+ "type": "string",
1119
+ "description": "Elliptic curve public y coordinate."
1120
+ },
1121
+ "crv": {
1122
+ "type": "string",
1123
+ "description": "Elliptic curve name."
1124
+ },
1125
+ "d": {
1126
+ "type": "string",
1127
+ "description": "Private key value."
1128
+ },
1129
+ "alg": {
1130
+ "description": "Optional algorithm hint.",
1131
+ "type": "string"
1132
+ },
1133
+ "kid": {
1134
+ "description": "Optional key identifier.",
1135
+ "type": "string"
1136
+ }
1137
+ },
1138
+ "required": [
1139
+ "kty",
1140
+ "x",
1141
+ "y",
1142
+ "crv",
1143
+ "d"
1144
+ ],
1145
+ "additionalProperties": false
1146
+ },
1147
+ "keyPem": {
1148
+ "description": "PKCS#8 PEM-encoded EC private key material.",
1149
+ "type": "string",
1150
+ "minLength": 1
1151
+ },
1152
+ "description": {
1153
+ "description": "Optional key chain description.",
1154
+ "type": "string"
1155
+ },
1156
+ "usageType": {
1157
+ "type": "string",
1158
+ "enum": [
1159
+ "access",
1160
+ "attestation",
1161
+ "trustList",
1162
+ "statusList",
1163
+ "federation",
1164
+ "encrypt"
1165
+ ],
1166
+ "description": "Key usage category for the imported key chain."
1167
+ },
1168
+ "type": {
1169
+ "description": "Key chain type. `standalone`: `key` is the signing key and `crt` its chain, leaf first. `internalChain`: `key` is a CA key and the last `crt` entry its CA certificate (created if `crt` is omitted); the import generates a new signing key with a certificate issued by it. Without `type`, `key` is a CA key only if `rotationPolicy.enabled` is true and `crt` is not a single self-signed certificate that is not a CA.",
1170
+ "type": "string",
1171
+ "enum": [
1172
+ "standalone",
1173
+ "internalChain"
1174
+ ]
1175
+ },
1176
+ "crt": {
1177
+ "description": "Optional certificate chain values in PEM or base64 DER.",
1178
+ "type": "array",
1179
+ "items": {
1180
+ "type": "string"
1181
+ }
1182
+ },
1183
+ "kmsProvider": {
1184
+ "description": "Optional KMS provider id.",
1185
+ "type": "string"
1186
+ },
1187
+ "rotationPolicy": {
1188
+ "description": "Optional rotation policy for imported key chains.",
1189
+ "type": "object",
1190
+ "properties": {
1191
+ "enabled": {
1192
+ "type": "boolean",
1193
+ "description": "Enable automatic rotation for imported key chains."
1194
+ },
1195
+ "intervalDays": {
1196
+ "description": "Rotation interval in days.",
1197
+ "type": "number",
1198
+ "minimum": 1,
1199
+ "maximum": 3650
1200
+ },
1201
+ "certValidityDays": {
1202
+ "description": "Certificate validity period in days.",
1203
+ "type": "number",
1204
+ "minimum": 1,
1205
+ "maximum": 3650
1206
+ }
1207
+ },
1208
+ "required": [
1209
+ "enabled"
1210
+ ],
1211
+ "additionalProperties": false
1212
+ }
1213
+ },
1214
+ "required": [
1215
+ "usageType"
1216
+ ],
1217
+ "additionalProperties": false
832
1218
  }
833
1219
  ]
834
1220
  }
@@ -9,6 +9,7 @@
9
9
  "attestation",
10
10
  "trustList",
11
11
  "statusList",
12
+ "federation",
12
13
  "encrypt"
13
14
  ],
14
15
  "description": "Key usage category for the key chain."
@@ -29,6 +30,15 @@
29
30
  "description": "Optional KMS provider id for key storage operations.",
30
31
  "type": "string"
31
32
  },
33
+ "alg": {
34
+ "description": "Signing algorithm, which also selects the curve: ES256 (P-256), ES384 (P-384) or ES512 (P-521). Must be one of the KMS provider's supportedAlgs; defaults to its defaultAlg. Rotation keeps it.",
35
+ "type": "string",
36
+ "enum": [
37
+ "ES256",
38
+ "ES384",
39
+ "ES512"
40
+ ]
41
+ },
32
42
  "rotationPolicy": {
33
43
  "description": "Optional rotation policy.",
34
44
  "type": "object",
@@ -38,7 +48,7 @@
38
48
  "description": "Enable or disable automatic key rotation."
39
49
  },
40
50
  "intervalDays": {
41
- "description": "Rotation interval in days.",
51
+ "description": "Rotation interval in days. Required when `enabled` is true.",
42
52
  "type": "number",
43
53
  "minimum": 1,
44
54
  "maximum": 3650