codify-schemas 1.0.52 → 1.0.54

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.
@@ -1,82 +1,1107 @@
1
1
  {
2
- "$schema": "http://json-schema.org/draft-07/schema",
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
3
  "$id": "https://www.codifycli.com/codify-schema.json",
4
4
  "title": "JSON schema for Codify configuration files",
5
5
  "type": "array",
6
6
  "items": {
7
- "type": "object",
8
- "properties": {
9
- "type": {
10
- "type": "string",
11
- "description": "Specifies the type of the config block. Ex: project, homebrew",
12
- "pattern": "^[a-zA-Z][\\w-]+$"
13
- }
14
- },
15
- "required": ["type"],
16
- "allOf": [
17
- {
18
- "if": {
19
- "properties": {
20
- "type": { "enum": ["project"] }
21
- },
22
- "required": ["type"]
23
- },
24
- "then": {
25
- "description": "Represents a project configuration block\nhttps://docs.codifycli.com/user-guide/codify-json/#project-configs",
26
- "properties": {
27
- "type": {},
28
- "version": {
29
- "description": "Specifies a CLI version constraint. An error will be throw if the CLI version is outside of the semver range",
30
- "type": "string",
31
- "pattern": "^([0-9]+)\\.([0-9]+)\\.([0-9]+)(?:-([0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*))?(?:\\+[0-9A-Za-z-]+)?$"
32
- },
33
- "plugins": {
34
- "description": "A list of third party plugins to include.",
35
- "type": "object",
36
- "patternProperties": {
37
- ".*": {
38
- "type": "string"
39
- }
7
+ "oneOf": [
8
+ {
9
+ "type": "object",
10
+ "properties": {
11
+ "type": {
12
+ "description": "All project configs are of the type project",
13
+ "type": "string",
14
+ "const": "project"
15
+ },
16
+ "version": {
17
+ "description": "Semver version. Codify will throw an error if this is not satisfied",
18
+ "type": "string",
19
+ "pattern": "^([0-9]+)\\.([0-9]+)\\.([0-9]+)(?:-([0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*))?(?:\\+[0-9A-Za-z-]+)?$"
20
+ },
21
+ "plugins": {
22
+ "type": "object",
23
+ "patternProperties": {
24
+ ".*": {
25
+ "type": "string"
40
26
  }
27
+ }
28
+ },
29
+ "description": {
30
+ "description": "An optional description of the codify project",
31
+ "type": "string"
32
+ }
33
+ },
34
+ "required": ["type"],
35
+ "additionalProperties": false
36
+ },
37
+ {
38
+ "type": "object",
39
+ "properties": {
40
+ "email": {
41
+ "type": "string",
42
+ "description": "The global email to set for git"
43
+ },
44
+ "username": {
45
+ "type": "string",
46
+ "description": "The global username to set for git"
47
+ },
48
+ "name": {
49
+ "description": "Optional name. Useful for specifying multiple resources of the same type",
50
+ "type": "string",
51
+ "pattern": "^[\\w-]+$"
52
+ },
53
+ "dependsOn": {
54
+ "type": "array",
55
+ "items": {
56
+ "type": "string"
41
57
  },
42
- "description": {
43
- "description": "An optional description of the project. This value is not applied.",
58
+ "uniqueItems": true
59
+ },
60
+ "type": {
61
+ "const": "git",
62
+ "type": "string"
63
+ }
64
+ },
65
+ "additionalProperties": false,
66
+ "required": [
67
+ "type"
68
+ ],
69
+ "description": "Resource type: \"git\" | Resource Schema"
70
+ },
71
+ {
72
+ "type": "object",
73
+ "properties": {
74
+ "name": {
75
+ "description": "Optional name. Useful for specifying multiple resources of the same type",
76
+ "type": "string",
77
+ "pattern": "^[\\w-]+$"
78
+ },
79
+ "dependsOn": {
80
+ "type": "array",
81
+ "items": {
82
+ "type": "string"
83
+ },
84
+ "uniqueItems": true
85
+ },
86
+ "type": {
87
+ "const": "xcode-tools",
88
+ "type": "string"
89
+ }
90
+ },
91
+ "required": [
92
+ "type"
93
+ ],
94
+ "description": "Resource type: \"xcode-tools\" | Resource Schema"
95
+ },
96
+ {
97
+ "type": "object",
98
+ "properties": {
99
+ "path": {
100
+ "type": "string",
101
+ "description": "The path to append. This parameter cannot be used at the same time as paths"
102
+ },
103
+ "paths": {
104
+ "type": "array",
105
+ "description": "Multiple paths to append. This parameter cannot be used at the same time as path",
106
+ "items": {
44
107
  "type": "string"
45
108
  }
46
109
  },
47
- "additionalProperties": false
48
- }
110
+ "prepend": {
111
+ "type": "boolean",
112
+ "description": "Whether or not to prepend to the path."
113
+ },
114
+ "name": {
115
+ "description": "Optional name. Useful for specifying multiple resources of the same type",
116
+ "type": "string",
117
+ "pattern": "^[\\w-]+$"
118
+ },
119
+ "dependsOn": {
120
+ "type": "array",
121
+ "items": {
122
+ "type": "string"
123
+ },
124
+ "uniqueItems": true
125
+ },
126
+ "type": {
127
+ "const": "path",
128
+ "type": "string"
129
+ }
130
+ },
131
+ "additionalProperties": false,
132
+ "required": [
133
+ "type"
134
+ ],
135
+ "description": "Resource type: \"path\" | Resource Schema"
49
136
  },
50
137
  {
51
- "if": {
52
- "not": {
53
- "properties": {
54
- "type": {
55
- "enum": ["project"]
56
- }
138
+ "type": "object",
139
+ "properties": {
140
+ "alias": {
141
+ "type": "string",
142
+ "pattern": "^[^ \t\n/\\$`=|&;()<>'\"]*$",
143
+ "description": "The path to append. This parameter cannot be used at the same time as paths"
144
+ },
145
+ "value": {
146
+ "type": "string",
147
+ "description": "The alias value"
148
+ },
149
+ "name": {
150
+ "description": "Optional name. Useful for specifying multiple resources of the same type",
151
+ "type": "string",
152
+ "pattern": "^[\\w-]+$"
153
+ },
154
+ "dependsOn": {
155
+ "type": "array",
156
+ "items": {
157
+ "type": "string"
158
+ },
159
+ "uniqueItems": true
160
+ },
161
+ "type": {
162
+ "const": "alias",
163
+ "type": "string"
164
+ }
165
+ },
166
+ "required": [
167
+ "alias",
168
+ "type"
169
+ ],
170
+ "additionalProperties": false,
171
+ "description": "Resource type: \"alias\" | Resource Schema"
172
+ },
173
+ {
174
+ "type": "object",
175
+ "properties": {
176
+ "formulae": {
177
+ "type": "array",
178
+ "items": {
179
+ "type": "string"
180
+ }
181
+ },
182
+ "casks": {
183
+ "type": "array",
184
+ "items": {
185
+ "type": "string"
57
186
  }
58
187
  },
59
- "required": ["type"]
188
+ "taps": {
189
+ "type": "array",
190
+ "items": {
191
+ "type": "string"
192
+ }
193
+ },
194
+ "directory": {
195
+ "type": "string"
196
+ },
197
+ "skipAlreadyInstalledCasks": {
198
+ "type": "boolean",
199
+ "description": "Skips installing an casks which has already been installed externally. This prevents homebrew from conflicting with the existing install. Defaults to true."
200
+ },
201
+ "name": {
202
+ "description": "Optional name. Useful for specifying multiple resources of the same type",
203
+ "type": "string",
204
+ "pattern": "^[\\w-]+$"
205
+ },
206
+ "dependsOn": {
207
+ "type": "array",
208
+ "items": {
209
+ "type": "string"
210
+ },
211
+ "uniqueItems": true
212
+ },
213
+ "type": {
214
+ "const": "homebrew",
215
+ "type": "string"
216
+ }
60
217
  },
61
- "then": {
62
- "description": "Represents a resource configuration block\nhttps://docs.codifycli.com/user-guide/codify-json/#resource-configs",
63
- "properties": {
64
- "name": {
65
- "type": "string",
66
- "pattern": "^[\\w-]+$",
67
- "description": "Optionally specify a name. Useful for specifying multiple resources of the same type"
218
+ "additionalProperties": false,
219
+ "required": [
220
+ "type"
221
+ ],
222
+ "description": "Resource type: \"homebrew\" | Resource Schema"
223
+ },
224
+ {
225
+ "type": "object",
226
+ "properties": {
227
+ "pythonVersions": {
228
+ "type": "array",
229
+ "items": {
230
+ "type": "string"
231
+ }
232
+ },
233
+ "global": {
234
+ "type": "string"
235
+ },
236
+ "name": {
237
+ "description": "Optional name. Useful for specifying multiple resources of the same type",
238
+ "type": "string",
239
+ "pattern": "^[\\w-]+$"
240
+ },
241
+ "dependsOn": {
242
+ "type": "array",
243
+ "items": {
244
+ "type": "string"
68
245
  },
69
- "dependsOn": {
70
- "type": "array",
71
- "items": {
72
- "type": "string"
246
+ "uniqueItems": true
247
+ },
248
+ "type": {
249
+ "const": "pyenv",
250
+ "type": "string"
251
+ }
252
+ },
253
+ "additionalProperties": false,
254
+ "required": [
255
+ "type"
256
+ ],
257
+ "description": "Resource type: \"pyenv\" | Resource Schema"
258
+ },
259
+ {
260
+ "type": "object",
261
+ "properties": {
262
+ "name": {
263
+ "description": "Optional name. Useful for specifying multiple resources of the same type",
264
+ "type": "string",
265
+ "pattern": "^[\\w-]+$"
266
+ },
267
+ "dependsOn": {
268
+ "type": "array",
269
+ "items": {
270
+ "type": "string"
271
+ },
272
+ "uniqueItems": true
273
+ },
274
+ "type": {
275
+ "const": "git-lfs",
276
+ "type": "string"
277
+ }
278
+ },
279
+ "additionalProperties": false,
280
+ "required": [
281
+ "type"
282
+ ],
283
+ "description": "Resource type: \"git-lfs\" | Resource Schema"
284
+ },
285
+ {
286
+ "type": "object",
287
+ "properties": {
288
+ "name": {
289
+ "description": "Optional name. Useful for specifying multiple resources of the same type",
290
+ "type": "string",
291
+ "pattern": "^[\\w-]+$"
292
+ },
293
+ "dependsOn": {
294
+ "type": "array",
295
+ "items": {
296
+ "type": "string"
297
+ },
298
+ "uniqueItems": true
299
+ },
300
+ "type": {
301
+ "const": "aws-cli",
302
+ "type": "string"
303
+ }
304
+ },
305
+ "additionalProperties": false,
306
+ "required": [
307
+ "type"
308
+ ],
309
+ "description": "Resource type: \"aws-cli\" | Resource Schema"
310
+ },
311
+ {
312
+ "type": "object",
313
+ "properties": {
314
+ "profile": {
315
+ "type": "string",
316
+ "description": "The aws profile that is being configured",
317
+ "default": "default"
318
+ },
319
+ "awsAccessKeyId": {
320
+ "type": "string",
321
+ "description": "The access key id from AWS"
322
+ },
323
+ "awsSecretAccessKey": {
324
+ "type": "string",
325
+ "description": "The access key secret from AWS"
326
+ },
327
+ "csvCredentials": {
328
+ "type": "string",
329
+ "description": "An AWS credentials file with access credentials"
330
+ },
331
+ "region": {
332
+ "type": "string",
333
+ "description": "The region from AWS"
334
+ },
335
+ "output": {
336
+ "type": "string",
337
+ "description": "The output format secret from AWS"
338
+ },
339
+ "metadataServiceTimeout": {
340
+ "type": "string",
341
+ "description": "The metadata service timeout"
342
+ },
343
+ "metadataServiceNumAttempts": {
344
+ "type": "string",
345
+ "description": "The metadata service num attempts"
346
+ },
347
+ "name": {
348
+ "description": "Optional name. Useful for specifying multiple resources of the same type",
349
+ "type": "string",
350
+ "pattern": "^[\\w-]+$"
351
+ },
352
+ "dependsOn": {
353
+ "type": "array",
354
+ "items": {
355
+ "type": "string"
356
+ },
357
+ "uniqueItems": true
358
+ },
359
+ "type": {
360
+ "const": "aws-profile",
361
+ "type": "string"
362
+ }
363
+ },
364
+ "oneOf": [
365
+ {
366
+ "required": [
367
+ "awsAccessKeyId",
368
+ "awsSecretAccessKey",
369
+ "region"
370
+ ]
371
+ },
372
+ {
373
+ "required": [
374
+ "csvCredentials",
375
+ "region"
376
+ ]
377
+ }
378
+ ],
379
+ "additionalProperties": false,
380
+ "required": [
381
+ "type"
382
+ ],
383
+ "description": "Resource type: \"aws-profile\" | Resource Schema"
384
+ },
385
+ {
386
+ "type": "object",
387
+ "properties": {
388
+ "directory": {
389
+ "type": "string"
390
+ },
391
+ "version": {
392
+ "type": "string"
393
+ },
394
+ "name": {
395
+ "description": "Optional name. Useful for specifying multiple resources of the same type",
396
+ "type": "string",
397
+ "pattern": "^[\\w-]+$"
398
+ },
399
+ "dependsOn": {
400
+ "type": "array",
401
+ "items": {
402
+ "type": "string"
403
+ },
404
+ "uniqueItems": true
405
+ },
406
+ "type": {
407
+ "const": "terraform",
408
+ "type": "string"
409
+ }
410
+ },
411
+ "additionalProperties": false,
412
+ "required": [
413
+ "type"
414
+ ],
415
+ "description": "Resource type: \"terraform\" | Resource Schema"
416
+ },
417
+ {
418
+ "type": "object",
419
+ "properties": {
420
+ "nodeVersions": {
421
+ "type": "array",
422
+ "items": {
423
+ "type": "string"
424
+ }
425
+ },
426
+ "global": {
427
+ "type": "string"
428
+ },
429
+ "name": {
430
+ "description": "Optional name. Useful for specifying multiple resources of the same type",
431
+ "type": "string",
432
+ "pattern": "^[\\w-]+$"
433
+ },
434
+ "dependsOn": {
435
+ "type": "array",
436
+ "items": {
437
+ "type": "string"
438
+ },
439
+ "uniqueItems": true
440
+ },
441
+ "type": {
442
+ "const": "nvm",
443
+ "type": "string"
444
+ }
445
+ },
446
+ "additionalProperties": false,
447
+ "required": [
448
+ "type"
449
+ ],
450
+ "description": "Resource type: \"nvm\" | Resource Schema"
451
+ },
452
+ {
453
+ "type": "object",
454
+ "properties": {
455
+ "add": {
456
+ "type": "array",
457
+ "items": {
458
+ "type": "string"
459
+ }
460
+ },
461
+ "global": {
462
+ "type": "string"
463
+ },
464
+ "name": {
465
+ "description": "Optional name. Useful for specifying multiple resources of the same type",
466
+ "type": "string",
467
+ "pattern": "^[\\w-]+$"
468
+ },
469
+ "dependsOn": {
470
+ "type": "array",
471
+ "items": {
472
+ "type": "string"
473
+ },
474
+ "uniqueItems": true
475
+ },
476
+ "type": {
477
+ "const": "jenv",
478
+ "type": "string"
479
+ }
480
+ },
481
+ "additionalProperties": false,
482
+ "required": [
483
+ "type"
484
+ ],
485
+ "description": "Resource type: \"jenv\" | Resource Schema"
486
+ },
487
+ {
488
+ "type": "object",
489
+ "properties": {
490
+ "name": {
491
+ "description": "Optional name. Useful for specifying multiple resources of the same type",
492
+ "type": "string",
493
+ "pattern": "^[\\w-]+$"
494
+ },
495
+ "dependsOn": {
496
+ "type": "array",
497
+ "items": {
498
+ "type": "string"
499
+ },
500
+ "uniqueItems": true
501
+ },
502
+ "type": {
503
+ "const": "pgcli",
504
+ "type": "string"
505
+ }
506
+ },
507
+ "additionalProperties": false,
508
+ "required": [
509
+ "type"
510
+ ],
511
+ "description": "Resource type: \"pgcli\" | Resource Schema"
512
+ },
513
+ {
514
+ "type": "object",
515
+ "properties": {
516
+ "directory": {
517
+ "type": "string",
518
+ "description": "The installation of VSCode. This value defaults to the Applications folder",
519
+ "default": "/Applications"
520
+ },
521
+ "name": {
522
+ "description": "Optional name. Useful for specifying multiple resources of the same type",
523
+ "type": "string",
524
+ "pattern": "^[\\w-]+$"
525
+ },
526
+ "dependsOn": {
527
+ "type": "array",
528
+ "items": {
529
+ "type": "string"
530
+ },
531
+ "uniqueItems": true
532
+ },
533
+ "type": {
534
+ "const": "vscode",
535
+ "type": "string"
536
+ }
537
+ },
538
+ "additionalProperties": false,
539
+ "required": [
540
+ "type"
541
+ ],
542
+ "description": "Resource type: \"vscode\" | Resource Schema"
543
+ },
544
+ {
545
+ "type": "object",
546
+ "properties": {
547
+ "repository": {
548
+ "type": "string",
549
+ "description": "Remote repository to clone repo from."
550
+ },
551
+ "parentDirectory": {
552
+ "type": "string",
553
+ "description": "Parent directory to clone into. The folder name will use default git semantics which extracts the last part of the clone url. Only one of parentDirectory or directory can be specified"
554
+ },
555
+ "directory": {
556
+ "type": "string",
557
+ "description": "Directory to clone contents into. This value is directly passed into git clone. This differs from parent directory in that the last part of the path will be the folder name of the repo"
558
+ },
559
+ "autoVerifySSH": {
560
+ "type": "boolean",
561
+ "description": "Automatically verifies the ssh connection for ssh git clones. Defaults to true."
562
+ },
563
+ "name": {
564
+ "description": "Optional name. Useful for specifying multiple resources of the same type",
565
+ "type": "string",
566
+ "pattern": "^[\\w-]+$"
567
+ },
568
+ "dependsOn": {
569
+ "type": "array",
570
+ "items": {
571
+ "type": "string"
572
+ },
573
+ "uniqueItems": true
574
+ },
575
+ "type": {
576
+ "const": "git-clone",
577
+ "type": "string"
578
+ }
579
+ },
580
+ "additionalProperties": false,
581
+ "oneOf": [
582
+ {
583
+ "required": [
584
+ "repository",
585
+ "directory"
586
+ ]
587
+ },
588
+ {
589
+ "required": [
590
+ "repository",
591
+ "parentDirectory"
592
+ ]
593
+ }
594
+ ],
595
+ "required": [
596
+ "type"
597
+ ],
598
+ "description": "Resource type: \"git-clone\" | Resource Schema"
599
+ },
600
+ {
601
+ "type": "object",
602
+ "properties": {
603
+ "version": {
604
+ "type": "string",
605
+ "description": "Android studios version. Visit: https://developer.android.com/studio/releases for version info"
606
+ },
607
+ "directory": {},
608
+ "name": {
609
+ "description": "Optional name. Useful for specifying multiple resources of the same type",
610
+ "type": "string",
611
+ "pattern": "^[\\w-]+$"
612
+ },
613
+ "dependsOn": {
614
+ "type": "array",
615
+ "items": {
616
+ "type": "string"
617
+ },
618
+ "uniqueItems": true
619
+ },
620
+ "type": {
621
+ "const": "android-studio",
622
+ "type": "string"
623
+ }
624
+ },
625
+ "additionalProperties": false,
626
+ "required": [
627
+ "type"
628
+ ],
629
+ "description": "Resource type: \"android-studio\" | Resource Schema"
630
+ },
631
+ {
632
+ "type": "object",
633
+ "properties": {
634
+ "plugins": {
635
+ "type": "array",
636
+ "description": "Asdf plugins to install. See: https://github.com/asdf-community for a full list",
637
+ "items": {
638
+ "type": "string"
639
+ }
640
+ },
641
+ "name": {
642
+ "description": "Optional name. Useful for specifying multiple resources of the same type",
643
+ "type": "string",
644
+ "pattern": "^[\\w-]+$"
645
+ },
646
+ "dependsOn": {
647
+ "type": "array",
648
+ "items": {
649
+ "type": "string"
650
+ },
651
+ "uniqueItems": true
652
+ },
653
+ "type": {
654
+ "const": "asdf",
655
+ "type": "string"
656
+ }
657
+ },
658
+ "additionalProperties": false,
659
+ "required": [
660
+ "type"
661
+ ],
662
+ "description": "Resource type: \"asdf\" | Resource Schema"
663
+ },
664
+ {
665
+ "type": "object",
666
+ "properties": {
667
+ "plugin": {
668
+ "type": "string",
669
+ "description": "Asdf plugin name"
670
+ },
671
+ "versions": {
672
+ "type": "array",
673
+ "description": "A list of versions to install",
674
+ "items": {
675
+ "type": "string"
676
+ }
677
+ },
678
+ "gitUrl": {
679
+ "type": "string",
680
+ "description": "The gitUrl of the plugin"
681
+ },
682
+ "name": {
683
+ "description": "Optional name. Useful for specifying multiple resources of the same type",
684
+ "type": "string",
685
+ "pattern": "^[\\w-]+$"
686
+ },
687
+ "dependsOn": {
688
+ "type": "array",
689
+ "items": {
690
+ "type": "string"
691
+ },
692
+ "uniqueItems": true
693
+ },
694
+ "type": {
695
+ "const": "asdf-plugin",
696
+ "type": "string"
697
+ }
698
+ },
699
+ "required": [
700
+ "plugin",
701
+ "type"
702
+ ],
703
+ "additionalProperties": false,
704
+ "description": "Resource type: \"asdf-plugin\" | Resource Schema"
705
+ },
706
+ {
707
+ "type": "object",
708
+ "properties": {
709
+ "plugin": {
710
+ "type": "string",
711
+ "description": "Asdf plugin name"
712
+ },
713
+ "version": {
714
+ "type": "string",
715
+ "description": "A version to install"
716
+ },
717
+ "name": {
718
+ "description": "Optional name. Useful for specifying multiple resources of the same type",
719
+ "type": "string",
720
+ "pattern": "^[\\w-]+$"
721
+ },
722
+ "dependsOn": {
723
+ "type": "array",
724
+ "items": {
725
+ "type": "string"
726
+ },
727
+ "uniqueItems": true
728
+ },
729
+ "type": {
730
+ "const": "asdf-global",
731
+ "type": "string"
732
+ }
733
+ },
734
+ "required": [
735
+ "plugin",
736
+ "version",
737
+ "type"
738
+ ],
739
+ "additionalProperties": false,
740
+ "description": "Resource type: \"asdf-global\" | Resource Schema"
741
+ },
742
+ {
743
+ "type": "object",
744
+ "properties": {
745
+ "plugin": {
746
+ "type": "string",
747
+ "description": "Asdf plugin name"
748
+ },
749
+ "version": {
750
+ "type": "string",
751
+ "description": "A version to install"
752
+ },
753
+ "directory": {
754
+ "type": "string",
755
+ "description": "A local install of the version. Provide the location to install the version. For the current directory use '.'"
756
+ },
757
+ "directories": {
758
+ "type": "array",
759
+ "description": "An array of install locations for the specified version. For the current directory use '.",
760
+ "items": {
761
+ "type": "string"
762
+ }
763
+ },
764
+ "name": {
765
+ "description": "Optional name. Useful for specifying multiple resources of the same type",
766
+ "type": "string",
767
+ "pattern": "^[\\w-]+$"
768
+ },
769
+ "dependsOn": {
770
+ "type": "array",
771
+ "items": {
772
+ "type": "string"
773
+ },
774
+ "uniqueItems": true
775
+ },
776
+ "type": {
777
+ "const": "asdf-local",
778
+ "type": "string"
779
+ }
780
+ },
781
+ "required": [
782
+ "plugin",
783
+ "version",
784
+ "type"
785
+ ],
786
+ "additionalProperties": false,
787
+ "description": "Resource type: \"asdf-local\" | Resource Schema"
788
+ },
789
+ {
790
+ "type": "object",
791
+ "properties": {
792
+ "plugin": {
793
+ "type": "string",
794
+ "description": "Asdf plugin name"
795
+ },
796
+ "versions": {
797
+ "type": "array",
798
+ "description": "A list of versions to install",
799
+ "items": {
800
+ "type": "string"
801
+ }
802
+ },
803
+ "directory": {
804
+ "type": "string",
805
+ "description": "The directory to run the install command"
806
+ },
807
+ "name": {
808
+ "description": "Optional name. Useful for specifying multiple resources of the same type",
809
+ "type": "string",
810
+ "pattern": "^[\\w-]+$"
811
+ },
812
+ "dependsOn": {
813
+ "type": "array",
814
+ "items": {
815
+ "type": "string"
816
+ },
817
+ "uniqueItems": true
818
+ },
819
+ "type": {
820
+ "const": "asdf-install",
821
+ "type": "string"
822
+ }
823
+ },
824
+ "oneOf": [
825
+ {
826
+ "required": [
827
+ "plugin",
828
+ "versions"
829
+ ]
830
+ },
831
+ {
832
+ "required": [
833
+ "directory"
834
+ ]
835
+ }
836
+ ],
837
+ "additionalProperties": false,
838
+ "required": [
839
+ "type"
840
+ ],
841
+ "description": "Resource type: \"asdf-install\" | Resource Schema"
842
+ },
843
+ {
844
+ "type": "object",
845
+ "properties": {
846
+ "keyType": {
847
+ "type": "string",
848
+ "description": "The type of key to create (the encryption algorithm used). This corresponds to the -t flag of ssh-keygen. This value defaults to ed25519.",
849
+ "enum": [
850
+ "ecdsa",
851
+ "ecdsa-sk",
852
+ "ed25519",
853
+ "ed25519-sk",
854
+ "rsa"
855
+ ]
856
+ },
857
+ "comment": {
858
+ "type": "string",
859
+ "description": "Comment to add to the ssh key. Changing this value will not re-create the ssh key"
860
+ },
861
+ "fileName": {
862
+ "type": "string",
863
+ "description": "Specifies the filename of the key file. This corresponds to the -f flag of ssh-keygen"
864
+ },
865
+ "bits": {
866
+ "type": "number",
867
+ "description": "Specifies the number of bits in the key to create. This corresponds to the -b flag of ssh-keygen."
868
+ },
869
+ "passphrase": {
870
+ "type": "string",
871
+ "description": "The passphrase to use. This parameter is required. To set an empty password set the value to the empty string: \"\""
872
+ },
873
+ "folder": {
874
+ "type": "string",
875
+ "description": "The folder to generate the ssh key in. Defaults to `$HOME/.ssh`"
876
+ },
877
+ "name": {
878
+ "description": "Optional name. Useful for specifying multiple resources of the same type",
879
+ "type": "string",
880
+ "pattern": "^[\\w-]+$"
881
+ },
882
+ "dependsOn": {
883
+ "type": "array",
884
+ "items": {
885
+ "type": "string"
886
+ },
887
+ "uniqueItems": true
888
+ },
889
+ "type": {
890
+ "const": "ssh-key",
891
+ "type": "string"
892
+ }
893
+ },
894
+ "required": [
895
+ "passphrase",
896
+ "type"
897
+ ],
898
+ "additionalProperties": false,
899
+ "description": "Resource type: \"ssh-key\" | Resource Schema"
900
+ },
901
+ {
902
+ "type": "object",
903
+ "properties": {
904
+ "hosts": {
905
+ "description": "The host blocks inside of the ~/.ssh/config file. See http://man.openbsd.org/OpenBSD-current/man5/ssh_config.5 ",
906
+ "type": "array",
907
+ "items": {
908
+ "type": "object",
909
+ "description": "The individual host blocks inside of the ~/.ssh/config file",
910
+ "properties": {
911
+ "Host": {
912
+ "type": "string",
913
+ "description": "The host is usually the hostname argument given on the command line. Can accept ! and *"
914
+ },
915
+ "Match": {
916
+ "type": "string",
917
+ "description": "Restricts the following declarations (up to the next Host or Match keyword) to be used only when the conditions following the Match keyword are satisfied"
918
+ },
919
+ "AddKeysToAgent": {
920
+ "type": "boolean",
921
+ "description": "Specifies whether keys should be automatically added to a running ssh-agent(1)"
922
+ },
923
+ "User": {
924
+ "type": "string",
925
+ "description": "Specifies the user to log in as. This can be useful when a different user name is used on different machines"
926
+ },
927
+ "UseKeychain": {
928
+ "type": "boolean",
929
+ "description": "A UseKeychain option was introduced in macOS Sierra allowing users to specify whether they would like for the passphrase to be stored in the keychain"
930
+ },
931
+ "IgnoreUnknown": {
932
+ "type": "string",
933
+ "description": "Specifies a pattern-list of unknown options to be ignored if they are encountered in configuration parsing"
934
+ },
935
+ "Port": {
936
+ "type": "number",
937
+ "description": "Specifies the port number to connect on the remote host. The default is 22."
938
+ },
939
+ "IdentityFile": {
940
+ "type": "string",
941
+ "description": "Specifies a file from which the user's ECDSA, authenticator-hosted ECDSA, Ed25519, authenticator-hosted Ed25519 or RSA authentication identity is read"
942
+ },
943
+ "LogLevel": {
944
+ "type": "string",
945
+ "description": "Gives the verbosity level that is used when logging messages from ssh(1)."
946
+ },
947
+ "Compression": {
948
+ "type": "boolean",
949
+ "description": "Specifies whether to use compression. The argument must be yes or no (the default)."
950
+ },
951
+ "PreferredAuthentications": {
952
+ "type": "string",
953
+ "description": "Specifies the order in which the client should try authentication methods."
954
+ },
955
+ "PasswordAuthentication": {
956
+ "type": "boolean",
957
+ "description": "Specifies whether to use password authentication."
958
+ }
73
959
  },
74
- "uniqueItems": true,
75
- "description": "Specify resource dependencies. Must be the type or id of another resource"
960
+ "oneOf": [
961
+ {
962
+ "required": [
963
+ "Host"
964
+ ]
965
+ },
966
+ {
967
+ "required": [
968
+ "Match"
969
+ ]
970
+ }
971
+ ]
76
972
  }
77
973
  },
78
- "additionalProperties": true
79
- }
974
+ "name": {
975
+ "description": "Optional name. Useful for specifying multiple resources of the same type",
976
+ "type": "string",
977
+ "pattern": "^[\\w-]+$"
978
+ },
979
+ "dependsOn": {
980
+ "type": "array",
981
+ "items": {
982
+ "type": "string"
983
+ },
984
+ "uniqueItems": true
985
+ },
986
+ "type": {
987
+ "const": "ssh-config",
988
+ "type": "string"
989
+ }
990
+ },
991
+ "required": [
992
+ "hosts",
993
+ "type"
994
+ ],
995
+ "additionalProperties": false,
996
+ "description": "Resource type: \"ssh-config\" | Resource Schema"
997
+ },
998
+ {
999
+ "type": "object",
1000
+ "properties": {
1001
+ "path": {
1002
+ "type": "string",
1003
+ "description": "The path to the ssh key to add"
1004
+ },
1005
+ "appleUseKeychain": {
1006
+ "type": "boolean",
1007
+ "description": "Corresponds to the --apple-use-keychain parameter. Controls whether the key should be loaded into the apple keychain. Only keys with a passphrase can be loaded"
1008
+ },
1009
+ "name": {
1010
+ "description": "Optional name. Useful for specifying multiple resources of the same type",
1011
+ "type": "string",
1012
+ "pattern": "^[\\w-]+$"
1013
+ },
1014
+ "dependsOn": {
1015
+ "type": "array",
1016
+ "items": {
1017
+ "type": "string"
1018
+ },
1019
+ "uniqueItems": true
1020
+ },
1021
+ "type": {
1022
+ "const": "ssh-add",
1023
+ "type": "string"
1024
+ }
1025
+ },
1026
+ "required": [
1027
+ "path",
1028
+ "type"
1029
+ ],
1030
+ "additionalProperties": false,
1031
+ "description": "Resource type: \"ssh-add\" | Resource Schema"
1032
+ },
1033
+ {
1034
+ "type": "object",
1035
+ "properties": {
1036
+ "condition": {
1037
+ "type": "string"
1038
+ },
1039
+ "action": {
1040
+ "type": "string"
1041
+ },
1042
+ "cwd": {
1043
+ "type": "string"
1044
+ },
1045
+ "name": {
1046
+ "description": "Optional name. Useful for specifying multiple resources of the same type",
1047
+ "type": "string",
1048
+ "pattern": "^[\\w-]+$"
1049
+ },
1050
+ "dependsOn": {
1051
+ "type": "array",
1052
+ "items": {
1053
+ "type": "string"
1054
+ },
1055
+ "uniqueItems": true
1056
+ },
1057
+ "type": {
1058
+ "const": "action",
1059
+ "type": "string"
1060
+ }
1061
+ },
1062
+ "required": [
1063
+ "action",
1064
+ "type"
1065
+ ],
1066
+ "additionalProperties": false,
1067
+ "description": "Resource type: \"action\" | Resource Schema"
1068
+ },
1069
+ {
1070
+ "type": "object",
1071
+ "properties": {
1072
+ "path": {
1073
+ "type": "string"
1074
+ },
1075
+ "contents": {
1076
+ "type": "string"
1077
+ },
1078
+ "onlyCreate": {
1079
+ "type": "boolean"
1080
+ },
1081
+ "name": {
1082
+ "description": "Optional name. Useful for specifying multiple resources of the same type",
1083
+ "type": "string",
1084
+ "pattern": "^[\\w-]+$"
1085
+ },
1086
+ "dependsOn": {
1087
+ "type": "array",
1088
+ "items": {
1089
+ "type": "string"
1090
+ },
1091
+ "uniqueItems": true
1092
+ },
1093
+ "type": {
1094
+ "const": "file",
1095
+ "type": "string"
1096
+ }
1097
+ },
1098
+ "required": [
1099
+ "path",
1100
+ "contents",
1101
+ "type"
1102
+ ],
1103
+ "additionalProperties": false,
1104
+ "description": "Resource type: \"file\" | Resource Schema"
80
1105
  }
81
1106
  ]
82
1107
  }