@wp-playground/blueprints 0.9.24 → 0.9.25

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,1496 +1,1641 @@
1
1
  {
2
- "$schema": "http://json-schema.org/schema",
3
- "$ref": "#/definitions/Blueprint",
4
- "definitions": {
5
- "Blueprint": {
6
- "type": "object",
7
- "properties": {
8
- "landingPage": {
9
- "type": "string",
10
- "description": "The URL to navigate to after the blueprint has been run."
11
- },
12
- "description": {
13
- "type": "string",
14
- "description": "Optional description. It doesn't do anything but is exposed as a courtesy to developers who may want to document which blueprint file does what.",
15
- "deprecated": "Use meta.description instead."
16
- },
17
- "meta": {
18
- "type": "object",
19
- "properties": {
20
- "title": {
21
- "type": "string",
22
- "description": "A clear and concise name for your Blueprint."
23
- },
24
- "description": {
25
- "type": "string",
26
- "description": "A brief explanation of what your Blueprint offers."
27
- },
28
- "author": {
29
- "type": "string",
30
- "description": "A GitHub username of the author of this Blueprint."
31
- },
32
- "categories": {
33
- "type": "array",
34
- "items": {
35
- "type": "string"
36
- },
37
- "description": "Relevant categories to help users find your Blueprint in the future Blueprints section on WordPress.org."
38
- }
39
- },
40
- "required": ["title", "author"],
41
- "additionalProperties": false,
42
- "description": "Optional metadata. Used by the Blueprints gallery at https://github.com/WordPress/blueprints"
43
- },
44
- "preferredVersions": {
45
- "type": "object",
46
- "properties": {
47
- "php": {
48
- "anyOf": [
49
- {
50
- "$ref": "#/definitions/SupportedPHPVersion"
51
- },
52
- {
53
- "type": "string",
54
- "const": "latest"
55
- }
56
- ],
57
- "description": "The preferred PHP version to use. If not specified, the latest supported version will be used"
58
- },
59
- "wp": {
60
- "type": "string",
61
- "description": "The preferred WordPress version to use. If not specified, the latest supported version will be used"
62
- }
63
- },
64
- "required": ["php", "wp"],
65
- "additionalProperties": false,
66
- "description": "The preferred PHP and WordPress versions to use."
67
- },
68
- "features": {
69
- "type": "object",
70
- "properties": {
71
- "networking": {
72
- "type": "boolean",
73
- "description": "Should boot with support for network request via wp_safe_remote_get?"
74
- }
75
- },
76
- "additionalProperties": false
77
- },
78
- "constants": {
79
- "type": "object",
80
- "additionalProperties": {
81
- "type": "string"
82
- },
83
- "description": "PHP Constants to define on every request"
84
- },
85
- "plugins": {
86
- "type": "array",
87
- "items": {
88
- "anyOf": [
89
- {
90
- "type": "string"
91
- },
92
- {
93
- "$ref": "#/definitions/FileReference"
94
- }
95
- ]
96
- },
97
- "description": "WordPress plugins to install and activate"
98
- },
99
- "siteOptions": {
100
- "type": "object",
101
- "additionalProperties": {
102
- "type": "string"
103
- },
104
- "properties": {
105
- "blogname": {
106
- "type": "string",
107
- "description": "The site title"
108
- }
109
- },
110
- "description": "WordPress site options to define"
111
- },
112
- "login": {
113
- "anyOf": [
114
- {
115
- "type": "boolean"
116
- },
117
- {
118
- "type": "object",
119
- "properties": {
120
- "username": {
121
- "type": "string"
122
- },
123
- "password": {
124
- "type": "string"
125
- }
126
- },
127
- "required": ["username", "password"],
128
- "additionalProperties": false
129
- }
130
- ],
131
- "description": "User to log in as. If true, logs the user in as admin/password."
132
- },
133
- "phpExtensionBundles": {
134
- "type": "array",
135
- "items": {
136
- "$ref": "#/definitions/SupportedPHPExtensionBundle"
137
- },
138
- "description": "The PHP extensions to use."
139
- },
140
- "steps": {
141
- "type": "array",
142
- "items": {
143
- "anyOf": [
144
- {
145
- "$ref": "#/definitions/StepDefinition"
146
- },
147
- {
148
- "type": "string"
149
- },
150
- {
151
- "not": {}
152
- },
153
- {
154
- "type": "boolean",
155
- "const": false
156
- },
157
- {
158
- "type": "null"
159
- }
160
- ]
161
- },
162
- "description": "The steps to run after every other operation in this Blueprint was executed."
163
- },
164
- "$schema": {
165
- "type": "string"
166
- }
167
- },
168
- "additionalProperties": false
169
- },
170
- "SupportedPHPVersion": {
171
- "type": "string",
172
- "enum": [
173
- "8.3",
174
- "8.2",
175
- "8.1",
176
- "8.0",
177
- "7.4",
178
- "7.3",
179
- "7.2",
180
- "7.1",
181
- "7.0"
182
- ]
183
- },
184
- "FileReference": {
185
- "anyOf": [
186
- {
187
- "$ref": "#/definitions/VFSReference"
188
- },
189
- {
190
- "$ref": "#/definitions/LiteralReference"
191
- },
192
- {
193
- "$ref": "#/definitions/CoreThemeReference"
194
- },
195
- {
196
- "$ref": "#/definitions/CorePluginReference"
197
- },
198
- {
199
- "$ref": "#/definitions/UrlReference"
200
- }
201
- ]
202
- },
203
- "VFSReference": {
204
- "type": "object",
205
- "properties": {
206
- "resource": {
207
- "type": "string",
208
- "const": "vfs",
209
- "description": "Identifies the file resource as Virtual File System (VFS)"
210
- },
211
- "path": {
212
- "type": "string",
213
- "description": "The path to the file in the VFS"
214
- }
215
- },
216
- "required": ["resource", "path"],
217
- "additionalProperties": false
218
- },
219
- "LiteralReference": {
220
- "type": "object",
221
- "properties": {
222
- "resource": {
223
- "type": "string",
224
- "const": "literal",
225
- "description": "Identifies the file resource as a literal file"
226
- },
227
- "name": {
228
- "type": "string",
229
- "description": "The name of the file"
230
- },
231
- "contents": {
232
- "anyOf": [
233
- {
234
- "type": "string"
235
- },
236
- {
237
- "type": "object",
238
- "properties": {
239
- "BYTES_PER_ELEMENT": {
240
- "type": "number"
241
- },
242
- "buffer": {
243
- "type": "object",
244
- "properties": {
245
- "byteLength": {
246
- "type": "number"
247
- }
248
- },
249
- "required": ["byteLength"],
250
- "additionalProperties": false
251
- },
252
- "byteLength": {
253
- "type": "number"
254
- },
255
- "byteOffset": {
256
- "type": "number"
257
- },
258
- "length": {
259
- "type": "number"
260
- }
261
- },
262
- "required": [
263
- "BYTES_PER_ELEMENT",
264
- "buffer",
265
- "byteLength",
266
- "byteOffset",
267
- "length"
268
- ],
269
- "additionalProperties": {
270
- "type": "number"
271
- }
272
- }
273
- ],
274
- "description": "The contents of the file"
275
- }
276
- },
277
- "required": ["resource", "name", "contents"],
278
- "additionalProperties": false
279
- },
280
- "CoreThemeReference": {
281
- "type": "object",
282
- "properties": {
283
- "resource": {
284
- "type": "string",
285
- "const": "wordpress.org/themes",
286
- "description": "Identifies the file resource as a WordPress Core theme"
287
- },
288
- "slug": {
289
- "type": "string",
290
- "description": "The slug of the WordPress Core theme"
291
- }
292
- },
293
- "required": ["resource", "slug"],
294
- "additionalProperties": false
295
- },
296
- "CorePluginReference": {
297
- "type": "object",
298
- "properties": {
299
- "resource": {
300
- "type": "string",
301
- "const": "wordpress.org/plugins",
302
- "description": "Identifies the file resource as a WordPress Core plugin"
303
- },
304
- "slug": {
305
- "type": "string",
306
- "description": "The slug of the WordPress Core plugin"
307
- }
308
- },
309
- "required": ["resource", "slug"],
310
- "additionalProperties": false
311
- },
312
- "UrlReference": {
313
- "type": "object",
314
- "properties": {
315
- "resource": {
316
- "type": "string",
317
- "const": "url",
318
- "description": "Identifies the file resource as a URL"
319
- },
320
- "url": {
321
- "type": "string",
322
- "description": "The URL of the file"
323
- },
324
- "caption": {
325
- "type": "string",
326
- "description": "Optional caption for displaying a progress message"
327
- }
328
- },
329
- "required": ["resource", "url"],
330
- "additionalProperties": false
331
- },
332
- "SupportedPHPExtensionBundle": {
333
- "type": "string",
334
- "enum": ["kitchen-sink", "light"]
335
- },
336
- "StepDefinition": {
337
- "type": "object",
338
- "discriminator": {
339
- "propertyName": "step"
340
- },
341
- "required": ["step"],
342
- "oneOf": [
343
- {
344
- "type": "object",
345
- "additionalProperties": false,
346
- "properties": {
347
- "progress": {
348
- "type": "object",
349
- "properties": {
350
- "weight": {
351
- "type": "number"
352
- },
353
- "caption": {
354
- "type": "string"
355
- }
356
- },
357
- "additionalProperties": false
358
- },
359
- "step": {
360
- "type": "string",
361
- "const": "activatePlugin"
362
- },
363
- "pluginPath": {
364
- "type": "string",
365
- "description": "Path to the plugin directory as absolute path (/wordpress/wp-content/plugins/plugin-name); or the plugin entry file relative to the plugins directory (plugin-name/plugin-name.php)."
366
- },
367
- "pluginName": {
368
- "type": "string",
369
- "description": "Optional. Plugin name to display in the progress bar."
370
- }
371
- },
372
- "required": ["pluginPath", "step"]
373
- },
374
- {
375
- "type": "object",
376
- "additionalProperties": false,
377
- "properties": {
378
- "progress": {
379
- "type": "object",
380
- "properties": {
381
- "weight": {
382
- "type": "number"
383
- },
384
- "caption": {
385
- "type": "string"
386
- }
387
- },
388
- "additionalProperties": false
389
- },
390
- "step": {
391
- "type": "string",
392
- "const": "activateTheme"
393
- },
394
- "themeFolderName": {
395
- "type": "string",
396
- "description": "The name of the theme folder inside wp-content/themes/"
397
- }
398
- },
399
- "required": ["step", "themeFolderName"]
400
- },
401
- {
402
- "type": "object",
403
- "additionalProperties": false,
404
- "properties": {
405
- "progress": {
406
- "type": "object",
407
- "properties": {
408
- "weight": {
409
- "type": "number"
410
- },
411
- "caption": {
412
- "type": "string"
413
- }
414
- },
415
- "additionalProperties": false
416
- },
417
- "step": {
418
- "type": "string",
419
- "const": "cp"
420
- },
421
- "fromPath": {
422
- "type": "string",
423
- "description": "Source path"
424
- },
425
- "toPath": {
426
- "type": "string",
427
- "description": "Target path"
428
- }
429
- },
430
- "required": ["fromPath", "step", "toPath"]
431
- },
432
- {
433
- "type": "object",
434
- "additionalProperties": false,
435
- "properties": {
436
- "progress": {
437
- "type": "object",
438
- "properties": {
439
- "weight": {
440
- "type": "number"
441
- },
442
- "caption": {
443
- "type": "string"
444
- }
445
- },
446
- "additionalProperties": false
447
- },
448
- "step": {
449
- "type": "string",
450
- "const": "defineWpConfigConsts"
451
- },
452
- "consts": {
453
- "type": "object",
454
- "additionalProperties": {},
455
- "description": "The constants to define"
456
- },
457
- "method": {
458
- "type": "string",
459
- "enum": ["rewrite-wp-config", "define-before-run"],
460
- "description": "The method of defining the constants in wp-config.php. Possible values are:\n\n- rewrite-wp-config: Default. Rewrites the wp-config.php file to explicitly call define() with the requested name and value. This method alters the file on the disk, but it doesn't conflict with existing define() calls in wp-config.php.\n\n- define-before-run: Defines the constant before running the requested script. It doesn't alter any files on the disk, but constants defined this way may conflict with existing define() calls in wp-config.php."
461
- },
462
- "virtualize": {
463
- "type": "boolean",
464
- "deprecated": "This option is noop and will be removed in a future version.\nThis option is only kept in here to avoid breaking Blueprint schema validation\nfor existing apps using this option."
465
- }
466
- },
467
- "required": ["consts", "step"]
468
- },
469
- {
470
- "type": "object",
471
- "additionalProperties": false,
472
- "properties": {
473
- "progress": {
474
- "type": "object",
475
- "properties": {
476
- "weight": {
477
- "type": "number"
478
- },
479
- "caption": {
480
- "type": "string"
481
- }
482
- },
483
- "additionalProperties": false
484
- },
485
- "step": {
486
- "type": "string",
487
- "const": "defineSiteUrl"
488
- },
489
- "siteUrl": {
490
- "type": "string",
491
- "description": "The URL"
492
- }
493
- },
494
- "required": ["siteUrl", "step"]
495
- },
496
- {
497
- "type": "object",
498
- "additionalProperties": false,
499
- "properties": {
500
- "progress": {
501
- "type": "object",
502
- "properties": {
503
- "weight": {
504
- "type": "number"
505
- },
506
- "caption": {
507
- "type": "string"
508
- }
509
- },
510
- "additionalProperties": false
511
- },
512
- "step": {
513
- "type": "string",
514
- "const": "enableMultisite"
515
- }
516
- },
517
- "required": ["step"]
518
- },
519
- {
520
- "type": "object",
521
- "additionalProperties": false,
522
- "properties": {
523
- "progress": {
524
- "type": "object",
525
- "properties": {
526
- "weight": {
527
- "type": "number"
528
- },
529
- "caption": {
530
- "type": "string"
531
- }
532
- },
533
- "additionalProperties": false
534
- },
535
- "step": {
536
- "type": "string",
537
- "const": "importWxr"
538
- },
539
- "file": {
540
- "$ref": "#/definitions/FileReference",
541
- "description": "The file to import"
542
- }
543
- },
544
- "required": ["file", "step"]
545
- },
546
- {
547
- "type": "object",
548
- "additionalProperties": false,
549
- "properties": {
550
- "progress": {
551
- "type": "object",
552
- "properties": {
553
- "weight": {
554
- "type": "number"
555
- },
556
- "caption": {
557
- "type": "string"
558
- }
559
- },
560
- "additionalProperties": false
561
- },
562
- "step": {
563
- "type": "string",
564
- "const": "importThemeStarterContent",
565
- "description": "The step identifier."
566
- },
567
- "themeSlug": {
568
- "type": "string",
569
- "description": "The name of the theme to import content from."
570
- }
571
- },
572
- "required": ["step", "themeSlug"]
573
- },
574
- {
575
- "type": "object",
576
- "additionalProperties": false,
577
- "properties": {
578
- "progress": {
579
- "type": "object",
580
- "properties": {
581
- "weight": {
582
- "type": "number"
583
- },
584
- "caption": {
585
- "type": "string"
586
- }
587
- },
588
- "additionalProperties": false
589
- },
590
- "step": {
591
- "type": "string",
592
- "const": "importWordPressFiles"
593
- },
594
- "wordPressFilesZip": {
595
- "$ref": "#/definitions/FileReference",
596
- "description": "The zip file containing the top-level WordPress files and directories."
597
- },
598
- "pathInZip": {
599
- "type": "string",
600
- "description": "The path inside the zip file where the WordPress files are."
601
- }
602
- },
603
- "required": ["step", "wordPressFilesZip"]
604
- },
605
- {
606
- "type": "object",
607
- "additionalProperties": false,
608
- "properties": {
609
- "progress": {
610
- "type": "object",
611
- "properties": {
612
- "weight": {
613
- "type": "number"
614
- },
615
- "caption": {
616
- "type": "string"
617
- }
618
- },
619
- "additionalProperties": false
620
- },
621
- "ifAlreadyInstalled": {
622
- "type": "string",
623
- "enum": ["overwrite", "skip", "error"],
624
- "description": "What to do if the asset already exists."
625
- },
626
- "step": {
627
- "type": "string",
628
- "const": "installPlugin",
629
- "description": "The step identifier."
630
- },
631
- "pluginZipFile": {
632
- "$ref": "#/definitions/FileReference",
633
- "description": "The plugin zip file to install."
634
- },
635
- "options": {
636
- "$ref": "#/definitions/InstallPluginOptions",
637
- "description": "Optional installation options."
638
- }
639
- },
640
- "required": ["pluginZipFile", "step"]
641
- },
642
- {
643
- "type": "object",
644
- "additionalProperties": false,
645
- "properties": {
646
- "progress": {
647
- "type": "object",
648
- "properties": {
649
- "weight": {
650
- "type": "number"
651
- },
652
- "caption": {
653
- "type": "string"
654
- }
655
- },
656
- "additionalProperties": false
657
- },
658
- "ifAlreadyInstalled": {
659
- "type": "string",
660
- "enum": ["overwrite", "skip", "error"],
661
- "description": "What to do if the asset already exists."
662
- },
663
- "step": {
664
- "type": "string",
665
- "const": "installTheme",
666
- "description": "The step identifier."
667
- },
668
- "themeZipFile": {
669
- "$ref": "#/definitions/FileReference",
670
- "description": "The theme zip file to install."
671
- },
672
- "options": {
673
- "type": "object",
674
- "properties": {
675
- "activate": {
676
- "type": "boolean",
677
- "description": "Whether to activate the theme after installing it."
678
- },
679
- "importStarterContent": {
680
- "type": "boolean",
681
- "description": "Whether to import the theme's starter content after installing it."
682
- }
683
- },
684
- "additionalProperties": false,
685
- "description": "Optional installation options."
686
- }
687
- },
688
- "required": ["step", "themeZipFile"]
689
- },
690
- {
691
- "type": "object",
692
- "additionalProperties": false,
693
- "properties": {
694
- "progress": {
695
- "type": "object",
696
- "properties": {
697
- "weight": {
698
- "type": "number"
699
- },
700
- "caption": {
701
- "type": "string"
702
- }
703
- },
704
- "additionalProperties": false
705
- },
706
- "step": {
707
- "type": "string",
708
- "const": "login"
709
- },
710
- "username": {
711
- "type": "string",
712
- "description": "The user to log in as. Defaults to 'admin'."
713
- },
714
- "password": {
715
- "type": "string",
716
- "description": "The password to log in with. Defaults to 'password'."
717
- }
718
- },
719
- "required": ["step"]
720
- },
721
- {
722
- "type": "object",
723
- "additionalProperties": false,
724
- "properties": {
725
- "progress": {
726
- "type": "object",
727
- "properties": {
728
- "weight": {
729
- "type": "number"
730
- },
731
- "caption": {
732
- "type": "string"
733
- }
734
- },
735
- "additionalProperties": false
736
- },
737
- "step": {
738
- "type": "string",
739
- "const": "mkdir"
740
- },
741
- "path": {
742
- "type": "string",
743
- "description": "The path of the directory you want to create"
744
- }
745
- },
746
- "required": ["path", "step"]
747
- },
748
- {
749
- "type": "object",
750
- "additionalProperties": false,
751
- "properties": {
752
- "progress": {
753
- "type": "object",
754
- "properties": {
755
- "weight": {
756
- "type": "number"
757
- },
758
- "caption": {
759
- "type": "string"
760
- }
761
- },
762
- "additionalProperties": false
763
- },
764
- "step": {
765
- "type": "string",
766
- "const": "mv"
767
- },
768
- "fromPath": {
769
- "type": "string",
770
- "description": "Source path"
771
- },
772
- "toPath": {
773
- "type": "string",
774
- "description": "Target path"
775
- }
776
- },
777
- "required": ["fromPath", "step", "toPath"]
778
- },
779
- {
780
- "type": "object",
781
- "additionalProperties": false,
782
- "properties": {
783
- "progress": {
784
- "type": "object",
785
- "properties": {
786
- "weight": {
787
- "type": "number"
788
- },
789
- "caption": {
790
- "type": "string"
791
- }
792
- },
793
- "additionalProperties": false
794
- },
795
- "step": {
796
- "type": "string",
797
- "const": "resetData"
798
- }
799
- },
800
- "required": ["step"]
801
- },
802
- {
803
- "type": "object",
804
- "additionalProperties": false,
805
- "properties": {
806
- "progress": {
807
- "type": "object",
808
- "properties": {
809
- "weight": {
810
- "type": "number"
811
- },
812
- "caption": {
813
- "type": "string"
814
- }
815
- },
816
- "additionalProperties": false
817
- },
818
- "step": {
819
- "type": "string",
820
- "const": "request"
821
- },
822
- "request": {
823
- "$ref": "#/definitions/PHPRequest",
824
- "description": "Request details (See /wordpress-playground/api/universal/interface/PHPRequest)"
825
- }
826
- },
827
- "required": ["request", "step"]
828
- },
829
- {
830
- "type": "object",
831
- "additionalProperties": false,
832
- "properties": {
833
- "progress": {
834
- "type": "object",
835
- "properties": {
836
- "weight": {
837
- "type": "number"
838
- },
839
- "caption": {
840
- "type": "string"
841
- }
842
- },
843
- "additionalProperties": false
844
- },
845
- "step": {
846
- "type": "string",
847
- "const": "rm"
848
- },
849
- "path": {
850
- "type": "string",
851
- "description": "The path to remove"
852
- }
853
- },
854
- "required": ["path", "step"]
855
- },
856
- {
857
- "type": "object",
858
- "additionalProperties": false,
859
- "properties": {
860
- "progress": {
861
- "type": "object",
862
- "properties": {
863
- "weight": {
864
- "type": "number"
865
- },
866
- "caption": {
867
- "type": "string"
868
- }
869
- },
870
- "additionalProperties": false
871
- },
872
- "step": {
873
- "type": "string",
874
- "const": "rmdir"
875
- },
876
- "path": {
877
- "type": "string",
878
- "description": "The path to remove"
879
- }
880
- },
881
- "required": ["path", "step"]
882
- },
883
- {
884
- "type": "object",
885
- "additionalProperties": false,
886
- "properties": {
887
- "progress": {
888
- "type": "object",
889
- "properties": {
890
- "weight": {
891
- "type": "number"
892
- },
893
- "caption": {
894
- "type": "string"
895
- }
896
- },
897
- "additionalProperties": false
898
- },
899
- "step": {
900
- "type": "string",
901
- "const": "runPHP",
902
- "description": "The step identifier."
903
- },
904
- "code": {
905
- "type": "string",
906
- "description": "The PHP code to run."
907
- }
908
- },
909
- "required": ["code", "step"]
910
- },
911
- {
912
- "type": "object",
913
- "additionalProperties": false,
914
- "properties": {
915
- "progress": {
916
- "type": "object",
917
- "properties": {
918
- "weight": {
919
- "type": "number"
920
- },
921
- "caption": {
922
- "type": "string"
923
- }
924
- },
925
- "additionalProperties": false
926
- },
927
- "step": {
928
- "type": "string",
929
- "const": "runPHPWithOptions"
930
- },
931
- "options": {
932
- "$ref": "#/definitions/PHPRunOptions",
933
- "description": "Run options (See /wordpress-playground/api/universal/interface/PHPRunOptions/))"
934
- }
935
- },
936
- "required": ["options", "step"]
937
- },
938
- {
939
- "type": "object",
940
- "additionalProperties": false,
941
- "properties": {
942
- "progress": {
943
- "type": "object",
944
- "properties": {
945
- "weight": {
946
- "type": "number"
947
- },
948
- "caption": {
949
- "type": "string"
950
- }
951
- },
952
- "additionalProperties": false
953
- },
954
- "step": {
955
- "type": "string",
956
- "const": "runWpInstallationWizard"
957
- },
958
- "options": {
959
- "$ref": "#/definitions/WordPressInstallationOptions"
960
- }
961
- },
962
- "required": ["options", "step"]
963
- },
964
- {
965
- "type": "object",
966
- "additionalProperties": false,
967
- "properties": {
968
- "progress": {
969
- "type": "object",
970
- "properties": {
971
- "weight": {
972
- "type": "number"
973
- },
974
- "caption": {
975
- "type": "string"
976
- }
977
- },
978
- "additionalProperties": false
979
- },
980
- "step": {
981
- "type": "string",
982
- "const": "runSql",
983
- "description": "The step identifier."
984
- },
985
- "sql": {
986
- "$ref": "#/definitions/FileReference",
987
- "description": "The SQL to run. Each non-empty line must contain a valid SQL query."
988
- }
989
- },
990
- "required": ["sql", "step"]
991
- },
992
- {
993
- "type": "object",
994
- "additionalProperties": false,
995
- "properties": {
996
- "progress": {
997
- "type": "object",
998
- "properties": {
999
- "weight": {
1000
- "type": "number"
1001
- },
1002
- "caption": {
1003
- "type": "string"
1004
- }
1005
- },
1006
- "additionalProperties": false
1007
- },
1008
- "step": {
1009
- "type": "string",
1010
- "const": "setSiteOptions",
1011
- "description": "The name of the step. Must be \"setSiteOptions\"."
1012
- },
1013
- "options": {
1014
- "type": "object",
1015
- "additionalProperties": {},
1016
- "description": "The options to set on the site."
1017
- }
1018
- },
1019
- "required": ["options", "step"]
1020
- },
1021
- {
1022
- "type": "object",
1023
- "additionalProperties": false,
1024
- "properties": {
1025
- "progress": {
1026
- "type": "object",
1027
- "properties": {
1028
- "weight": {
1029
- "type": "number"
1030
- },
1031
- "caption": {
1032
- "type": "string"
1033
- }
1034
- },
1035
- "additionalProperties": false
1036
- },
1037
- "step": {
1038
- "type": "string",
1039
- "const": "unzip"
1040
- },
1041
- "zipFile": {
1042
- "$ref": "#/definitions/FileReference",
1043
- "description": "The zip file to extract"
1044
- },
1045
- "zipPath": {
1046
- "type": "string",
1047
- "description": "The path of the zip file to extract",
1048
- "deprecated": "Use zipFile instead."
1049
- },
1050
- "extractToPath": {
1051
- "type": "string",
1052
- "description": "The path to extract the zip file to"
1053
- }
1054
- },
1055
- "required": ["extractToPath", "step"]
1056
- },
1057
- {
1058
- "type": "object",
1059
- "additionalProperties": false,
1060
- "properties": {
1061
- "progress": {
1062
- "type": "object",
1063
- "properties": {
1064
- "weight": {
1065
- "type": "number"
1066
- },
1067
- "caption": {
1068
- "type": "string"
1069
- }
1070
- },
1071
- "additionalProperties": false
1072
- },
1073
- "step": {
1074
- "type": "string",
1075
- "const": "updateUserMeta"
1076
- },
1077
- "meta": {
1078
- "type": "object",
1079
- "additionalProperties": {},
1080
- "description": "An object of user meta values to set, e.g. { \"first_name\": \"John\" }"
1081
- },
1082
- "userId": {
1083
- "type": "number",
1084
- "description": "User ID"
1085
- }
1086
- },
1087
- "required": ["meta", "step", "userId"]
1088
- },
1089
- {
1090
- "type": "object",
1091
- "additionalProperties": false,
1092
- "properties": {
1093
- "progress": {
1094
- "type": "object",
1095
- "properties": {
1096
- "weight": {
1097
- "type": "number"
1098
- },
1099
- "caption": {
1100
- "type": "string"
1101
- }
1102
- },
1103
- "additionalProperties": false
1104
- },
1105
- "step": {
1106
- "type": "string",
1107
- "const": "writeFile"
1108
- },
1109
- "path": {
1110
- "type": "string",
1111
- "description": "The path of the file to write to"
1112
- },
1113
- "data": {
1114
- "anyOf": [
1115
- {
1116
- "$ref": "#/definitions/FileReference"
1117
- },
1118
- {
1119
- "type": "string"
1120
- },
1121
- {
1122
- "type": "object",
1123
- "properties": {
1124
- "BYTES_PER_ELEMENT": {
1125
- "type": "number"
1126
- },
1127
- "buffer": {
1128
- "type": "object",
1129
- "properties": {
1130
- "byteLength": {
1131
- "type": "number"
1132
- }
1133
- },
1134
- "required": ["byteLength"],
1135
- "additionalProperties": false
1136
- },
1137
- "byteLength": {
1138
- "type": "number"
1139
- },
1140
- "byteOffset": {
1141
- "type": "number"
1142
- },
1143
- "length": {
1144
- "type": "number"
1145
- }
1146
- },
1147
- "required": [
1148
- "BYTES_PER_ELEMENT",
1149
- "buffer",
1150
- "byteLength",
1151
- "byteOffset",
1152
- "length"
1153
- ],
1154
- "additionalProperties": {
1155
- "type": "number"
1156
- }
1157
- }
1158
- ],
1159
- "description": "The data to write"
1160
- }
1161
- },
1162
- "required": ["data", "path", "step"]
1163
- },
1164
- {
1165
- "type": "object",
1166
- "additionalProperties": false,
1167
- "properties": {
1168
- "progress": {
1169
- "type": "object",
1170
- "properties": {
1171
- "weight": {
1172
- "type": "number"
1173
- },
1174
- "caption": {
1175
- "type": "string"
1176
- }
1177
- },
1178
- "additionalProperties": false
1179
- },
1180
- "step": {
1181
- "type": "string",
1182
- "const": "wp-cli",
1183
- "description": "The step identifier."
1184
- },
1185
- "command": {
1186
- "anyOf": [
1187
- {
1188
- "type": "string"
1189
- },
1190
- {
1191
- "type": "array",
1192
- "items": {
1193
- "type": "string"
1194
- }
1195
- }
1196
- ],
1197
- "description": "The WP CLI command to run."
1198
- },
1199
- "wpCliPath": {
1200
- "type": "string",
1201
- "description": "wp-cli.phar path"
1202
- }
1203
- },
1204
- "required": ["command", "step"]
1205
- },
1206
- {
1207
- "type": "object",
1208
- "additionalProperties": false,
1209
- "properties": {
1210
- "progress": {
1211
- "type": "object",
1212
- "properties": {
1213
- "weight": {
1214
- "type": "number"
1215
- },
1216
- "caption": {
1217
- "type": "string"
1218
- }
1219
- },
1220
- "additionalProperties": false
1221
- },
1222
- "step": {
1223
- "type": "string",
1224
- "const": "setSiteLanguage"
1225
- },
1226
- "language": {
1227
- "type": "string",
1228
- "description": "The language to set, e.g. 'en_US'"
1229
- }
1230
- },
1231
- "required": ["language", "step"]
1232
- }
1233
- ]
1234
- },
1235
- "InstallPluginOptions": {
1236
- "type": "object",
1237
- "properties": {
1238
- "activate": {
1239
- "type": "boolean",
1240
- "description": "Whether to activate the plugin after installing it."
1241
- }
1242
- },
1243
- "additionalProperties": false
1244
- },
1245
- "PHPRequest": {
1246
- "type": "object",
1247
- "properties": {
1248
- "method": {
1249
- "$ref": "#/definitions/HTTPMethod",
1250
- "description": "Request method. Default: `GET`."
1251
- },
1252
- "url": {
1253
- "type": "string",
1254
- "description": "Request path or absolute URL."
1255
- },
1256
- "headers": {
1257
- "$ref": "#/definitions/PHPRequestHeaders",
1258
- "description": "Request headers."
1259
- },
1260
- "body": {
1261
- "anyOf": [
1262
- {
1263
- "type": "string"
1264
- },
1265
- {
1266
- "type": "object",
1267
- "properties": {
1268
- "BYTES_PER_ELEMENT": {
1269
- "type": "number"
1270
- },
1271
- "buffer": {
1272
- "type": "object",
1273
- "properties": {
1274
- "byteLength": {
1275
- "type": "number"
1276
- }
1277
- },
1278
- "required": ["byteLength"],
1279
- "additionalProperties": false
1280
- },
1281
- "byteLength": {
1282
- "type": "number"
1283
- },
1284
- "byteOffset": {
1285
- "type": "number"
1286
- },
1287
- "length": {
1288
- "type": "number"
1289
- }
1290
- },
1291
- "required": [
1292
- "BYTES_PER_ELEMENT",
1293
- "buffer",
1294
- "byteLength",
1295
- "byteOffset",
1296
- "length"
1297
- ],
1298
- "additionalProperties": {
1299
- "type": "number"
1300
- }
1301
- },
1302
- {
1303
- "type": "object",
1304
- "additionalProperties": {
1305
- "anyOf": [
1306
- {
1307
- "type": "string"
1308
- },
1309
- {
1310
- "type": "object",
1311
- "properties": {
1312
- "BYTES_PER_ELEMENT": {
1313
- "type": "number"
1314
- },
1315
- "buffer": {
1316
- "type": "object",
1317
- "properties": {
1318
- "byteLength": {
1319
- "type": "number"
1320
- }
1321
- },
1322
- "required": ["byteLength"],
1323
- "additionalProperties": false
1324
- },
1325
- "byteLength": {
1326
- "type": "number"
1327
- },
1328
- "byteOffset": {
1329
- "type": "number"
1330
- },
1331
- "length": {
1332
- "type": "number"
1333
- }
1334
- },
1335
- "required": [
1336
- "BYTES_PER_ELEMENT",
1337
- "buffer",
1338
- "byteLength",
1339
- "byteOffset",
1340
- "length"
1341
- ],
1342
- "additionalProperties": {
1343
- "type": "number"
1344
- }
1345
- },
1346
- {
1347
- "type": "object",
1348
- "properties": {
1349
- "size": {
1350
- "type": "number"
1351
- },
1352
- "type": {
1353
- "type": "string"
1354
- },
1355
- "lastModified": {
1356
- "type": "number"
1357
- },
1358
- "name": {
1359
- "type": "string"
1360
- },
1361
- "webkitRelativePath": {
1362
- "type": "string"
1363
- }
1364
- },
1365
- "required": [
1366
- "lastModified",
1367
- "name",
1368
- "size",
1369
- "type",
1370
- "webkitRelativePath"
1371
- ],
1372
- "additionalProperties": false
1373
- }
1374
- ]
1375
- }
1376
- }
1377
- ],
1378
- "description": "Request body. If an object is given, the request will be encoded as multipart and sent with a `multipart/form-data` header."
1379
- }
1380
- },
1381
- "required": ["url"],
1382
- "additionalProperties": false
1383
- },
1384
- "HTTPMethod": {
1385
- "type": "string",
1386
- "enum": ["GET", "POST", "HEAD", "OPTIONS", "PATCH", "PUT", "DELETE"]
1387
- },
1388
- "PHPRequestHeaders": {
1389
- "type": "object",
1390
- "additionalProperties": {
1391
- "type": "string"
1392
- }
1393
- },
1394
- "PHPRunOptions": {
1395
- "type": "object",
1396
- "properties": {
1397
- "relativeUri": {
1398
- "type": "string",
1399
- "description": "Request path following the domain:port part."
1400
- },
1401
- "scriptPath": {
1402
- "type": "string",
1403
- "description": "Path of the .php file to execute."
1404
- },
1405
- "protocol": {
1406
- "type": "string",
1407
- "description": "Request protocol."
1408
- },
1409
- "method": {
1410
- "$ref": "#/definitions/HTTPMethod",
1411
- "description": "Request method. Default: `GET`."
1412
- },
1413
- "headers": {
1414
- "$ref": "#/definitions/PHPRequestHeaders",
1415
- "description": "Request headers."
1416
- },
1417
- "body": {
1418
- "anyOf": [
1419
- {
1420
- "type": "string"
1421
- },
1422
- {
1423
- "type": "object",
1424
- "properties": {
1425
- "BYTES_PER_ELEMENT": {
1426
- "type": "number"
1427
- },
1428
- "buffer": {
1429
- "type": "object",
1430
- "properties": {
1431
- "byteLength": {
1432
- "type": "number"
1433
- }
1434
- },
1435
- "required": ["byteLength"],
1436
- "additionalProperties": false
1437
- },
1438
- "byteLength": {
1439
- "type": "number"
1440
- },
1441
- "byteOffset": {
1442
- "type": "number"
1443
- },
1444
- "length": {
1445
- "type": "number"
1446
- }
1447
- },
1448
- "required": [
1449
- "BYTES_PER_ELEMENT",
1450
- "buffer",
1451
- "byteLength",
1452
- "byteOffset",
1453
- "length"
1454
- ],
1455
- "additionalProperties": {
1456
- "type": "number"
1457
- }
1458
- }
1459
- ],
1460
- "description": "Request body."
1461
- },
1462
- "env": {
1463
- "type": "object",
1464
- "additionalProperties": {
1465
- "type": "string"
1466
- },
1467
- "description": "Environment variables to set for this run."
1468
- },
1469
- "$_SERVER": {
1470
- "type": "object",
1471
- "additionalProperties": {
1472
- "type": "string"
1473
- },
1474
- "description": "$_SERVER entries to set for this run."
1475
- },
1476
- "code": {
1477
- "type": "string",
1478
- "description": "The code snippet to eval instead of a php file."
1479
- }
1480
- },
1481
- "additionalProperties": false
1482
- },
1483
- "WordPressInstallationOptions": {
1484
- "type": "object",
1485
- "properties": {
1486
- "adminUsername": {
1487
- "type": "string"
1488
- },
1489
- "adminPassword": {
1490
- "type": "string"
1491
- }
1492
- },
1493
- "additionalProperties": false
1494
- }
1495
- }
1496
- }
2
+ "$schema": "http://json-schema.org/schema",
3
+ "$ref": "#/definitions/Blueprint",
4
+ "definitions": {
5
+ "Blueprint": {
6
+ "type": "object",
7
+ "properties": {
8
+ "landingPage": {
9
+ "type": "string",
10
+ "description": "The URL to navigate to after the blueprint has been run."
11
+ },
12
+ "description": {
13
+ "type": "string",
14
+ "description": "Optional description. It doesn't do anything but is exposed as a courtesy to developers who may want to document which blueprint file does what.",
15
+ "deprecated": "Use meta.description instead."
16
+ },
17
+ "meta": {
18
+ "type": "object",
19
+ "properties": {
20
+ "title": {
21
+ "type": "string",
22
+ "description": "A clear and concise name for your Blueprint."
23
+ },
24
+ "description": {
25
+ "type": "string",
26
+ "description": "A brief explanation of what your Blueprint offers."
27
+ },
28
+ "author": {
29
+ "type": "string",
30
+ "description": "A GitHub username of the author of this Blueprint."
31
+ },
32
+ "categories": {
33
+ "type": "array",
34
+ "items": {
35
+ "type": "string"
36
+ },
37
+ "description": "Relevant categories to help users find your Blueprint in the future Blueprints section on WordPress.org."
38
+ }
39
+ },
40
+ "required": [
41
+ "title",
42
+ "author"
43
+ ],
44
+ "additionalProperties": false,
45
+ "description": "Optional metadata. Used by the Blueprints gallery at https://github.com/WordPress/blueprints"
46
+ },
47
+ "preferredVersions": {
48
+ "type": "object",
49
+ "properties": {
50
+ "php": {
51
+ "anyOf": [
52
+ {
53
+ "$ref": "#/definitions/SupportedPHPVersion"
54
+ },
55
+ {
56
+ "type": "string",
57
+ "const": "latest"
58
+ }
59
+ ],
60
+ "description": "The preferred PHP version to use. If not specified, the latest supported version will be used"
61
+ },
62
+ "wp": {
63
+ "type": "string",
64
+ "description": "The preferred WordPress version to use. If not specified, the latest supported version will be used"
65
+ }
66
+ },
67
+ "required": [
68
+ "php",
69
+ "wp"
70
+ ],
71
+ "additionalProperties": false,
72
+ "description": "The preferred PHP and WordPress versions to use."
73
+ },
74
+ "features": {
75
+ "type": "object",
76
+ "properties": {
77
+ "networking": {
78
+ "type": "boolean",
79
+ "description": "Should boot with support for network request via wp_safe_remote_get?"
80
+ }
81
+ },
82
+ "additionalProperties": false
83
+ },
84
+ "constants": {
85
+ "type": "object",
86
+ "additionalProperties": {
87
+ "type": "string"
88
+ },
89
+ "description": "PHP Constants to define on every request"
90
+ },
91
+ "plugins": {
92
+ "type": "array",
93
+ "items": {
94
+ "anyOf": [
95
+ {
96
+ "type": "string"
97
+ },
98
+ {
99
+ "$ref": "#/definitions/FileReference"
100
+ }
101
+ ]
102
+ },
103
+ "description": "WordPress plugins to install and activate"
104
+ },
105
+ "siteOptions": {
106
+ "type": "object",
107
+ "additionalProperties": {
108
+ "type": "string"
109
+ },
110
+ "properties": {
111
+ "blogname": {
112
+ "type": "string",
113
+ "description": "The site title"
114
+ }
115
+ },
116
+ "description": "WordPress site options to define"
117
+ },
118
+ "login": {
119
+ "anyOf": [
120
+ {
121
+ "type": "boolean"
122
+ },
123
+ {
124
+ "type": "object",
125
+ "properties": {
126
+ "username": {
127
+ "type": "string"
128
+ },
129
+ "password": {
130
+ "type": "string"
131
+ }
132
+ },
133
+ "required": [
134
+ "username",
135
+ "password"
136
+ ],
137
+ "additionalProperties": false
138
+ }
139
+ ],
140
+ "description": "User to log in as. If true, logs the user in as admin/password."
141
+ },
142
+ "phpExtensionBundles": {
143
+ "type": "array",
144
+ "items": {
145
+ "$ref": "#/definitions/SupportedPHPExtensionBundle"
146
+ },
147
+ "description": "The PHP extensions to use."
148
+ },
149
+ "steps": {
150
+ "type": "array",
151
+ "items": {
152
+ "anyOf": [
153
+ {
154
+ "$ref": "#/definitions/StepDefinition"
155
+ },
156
+ {
157
+ "type": "string"
158
+ },
159
+ {
160
+ "not": {}
161
+ },
162
+ {
163
+ "type": "boolean",
164
+ "const": false
165
+ },
166
+ {
167
+ "type": "null"
168
+ }
169
+ ]
170
+ },
171
+ "description": "The steps to run after every other operation in this Blueprint was executed."
172
+ },
173
+ "$schema": {
174
+ "type": "string"
175
+ }
176
+ },
177
+ "additionalProperties": false
178
+ },
179
+ "SupportedPHPVersion": {
180
+ "type": "string",
181
+ "enum": [
182
+ "8.3",
183
+ "8.2",
184
+ "8.1",
185
+ "8.0",
186
+ "7.4",
187
+ "7.3",
188
+ "7.2",
189
+ "7.1",
190
+ "7.0"
191
+ ]
192
+ },
193
+ "FileReference": {
194
+ "anyOf": [
195
+ {
196
+ "$ref": "#/definitions/VFSReference"
197
+ },
198
+ {
199
+ "$ref": "#/definitions/LiteralReference"
200
+ },
201
+ {
202
+ "$ref": "#/definitions/CoreThemeReference"
203
+ },
204
+ {
205
+ "$ref": "#/definitions/CorePluginReference"
206
+ },
207
+ {
208
+ "$ref": "#/definitions/UrlReference"
209
+ }
210
+ ]
211
+ },
212
+ "VFSReference": {
213
+ "type": "object",
214
+ "properties": {
215
+ "resource": {
216
+ "type": "string",
217
+ "const": "vfs",
218
+ "description": "Identifies the file resource as Virtual File System (VFS)"
219
+ },
220
+ "path": {
221
+ "type": "string",
222
+ "description": "The path to the file in the VFS"
223
+ }
224
+ },
225
+ "required": [
226
+ "resource",
227
+ "path"
228
+ ],
229
+ "additionalProperties": false
230
+ },
231
+ "LiteralReference": {
232
+ "type": "object",
233
+ "properties": {
234
+ "resource": {
235
+ "type": "string",
236
+ "const": "literal",
237
+ "description": "Identifies the file resource as a literal file"
238
+ },
239
+ "name": {
240
+ "type": "string",
241
+ "description": "The name of the file"
242
+ },
243
+ "contents": {
244
+ "anyOf": [
245
+ {
246
+ "type": "string"
247
+ },
248
+ {
249
+ "type": "object",
250
+ "properties": {
251
+ "BYTES_PER_ELEMENT": {
252
+ "type": "number"
253
+ },
254
+ "buffer": {
255
+ "type": "object",
256
+ "properties": {
257
+ "byteLength": {
258
+ "type": "number"
259
+ }
260
+ },
261
+ "required": [
262
+ "byteLength"
263
+ ],
264
+ "additionalProperties": false
265
+ },
266
+ "byteLength": {
267
+ "type": "number"
268
+ },
269
+ "byteOffset": {
270
+ "type": "number"
271
+ },
272
+ "length": {
273
+ "type": "number"
274
+ }
275
+ },
276
+ "required": [
277
+ "BYTES_PER_ELEMENT",
278
+ "buffer",
279
+ "byteLength",
280
+ "byteOffset",
281
+ "length"
282
+ ],
283
+ "additionalProperties": {
284
+ "type": "number"
285
+ }
286
+ }
287
+ ],
288
+ "description": "The contents of the file"
289
+ }
290
+ },
291
+ "required": [
292
+ "resource",
293
+ "name",
294
+ "contents"
295
+ ],
296
+ "additionalProperties": false
297
+ },
298
+ "CoreThemeReference": {
299
+ "type": "object",
300
+ "properties": {
301
+ "resource": {
302
+ "type": "string",
303
+ "const": "wordpress.org/themes",
304
+ "description": "Identifies the file resource as a WordPress Core theme"
305
+ },
306
+ "slug": {
307
+ "type": "string",
308
+ "description": "The slug of the WordPress Core theme"
309
+ }
310
+ },
311
+ "required": [
312
+ "resource",
313
+ "slug"
314
+ ],
315
+ "additionalProperties": false
316
+ },
317
+ "CorePluginReference": {
318
+ "type": "object",
319
+ "properties": {
320
+ "resource": {
321
+ "type": "string",
322
+ "const": "wordpress.org/plugins",
323
+ "description": "Identifies the file resource as a WordPress Core plugin"
324
+ },
325
+ "slug": {
326
+ "type": "string",
327
+ "description": "The slug of the WordPress Core plugin"
328
+ }
329
+ },
330
+ "required": [
331
+ "resource",
332
+ "slug"
333
+ ],
334
+ "additionalProperties": false
335
+ },
336
+ "UrlReference": {
337
+ "type": "object",
338
+ "properties": {
339
+ "resource": {
340
+ "type": "string",
341
+ "const": "url",
342
+ "description": "Identifies the file resource as a URL"
343
+ },
344
+ "url": {
345
+ "type": "string",
346
+ "description": "The URL of the file"
347
+ },
348
+ "caption": {
349
+ "type": "string",
350
+ "description": "Optional caption for displaying a progress message"
351
+ }
352
+ },
353
+ "required": [
354
+ "resource",
355
+ "url"
356
+ ],
357
+ "additionalProperties": false
358
+ },
359
+ "SupportedPHPExtensionBundle": {
360
+ "type": "string",
361
+ "enum": [
362
+ "kitchen-sink",
363
+ "light"
364
+ ]
365
+ },
366
+ "StepDefinition": {
367
+ "type": "object",
368
+ "discriminator": {
369
+ "propertyName": "step"
370
+ },
371
+ "required": [
372
+ "step"
373
+ ],
374
+ "oneOf": [
375
+ {
376
+ "type": "object",
377
+ "additionalProperties": false,
378
+ "properties": {
379
+ "progress": {
380
+ "type": "object",
381
+ "properties": {
382
+ "weight": {
383
+ "type": "number"
384
+ },
385
+ "caption": {
386
+ "type": "string"
387
+ }
388
+ },
389
+ "additionalProperties": false
390
+ },
391
+ "step": {
392
+ "type": "string",
393
+ "const": "activatePlugin"
394
+ },
395
+ "pluginPath": {
396
+ "type": "string",
397
+ "description": "Path to the plugin directory as absolute path (/wordpress/wp-content/plugins/plugin-name); or the plugin entry file relative to the plugins directory (plugin-name/plugin-name.php)."
398
+ },
399
+ "pluginName": {
400
+ "type": "string",
401
+ "description": "Optional. Plugin name to display in the progress bar."
402
+ }
403
+ },
404
+ "required": [
405
+ "pluginPath",
406
+ "step"
407
+ ]
408
+ },
409
+ {
410
+ "type": "object",
411
+ "additionalProperties": false,
412
+ "properties": {
413
+ "progress": {
414
+ "type": "object",
415
+ "properties": {
416
+ "weight": {
417
+ "type": "number"
418
+ },
419
+ "caption": {
420
+ "type": "string"
421
+ }
422
+ },
423
+ "additionalProperties": false
424
+ },
425
+ "step": {
426
+ "type": "string",
427
+ "const": "activateTheme"
428
+ },
429
+ "themeFolderName": {
430
+ "type": "string",
431
+ "description": "The name of the theme folder inside wp-content/themes/"
432
+ }
433
+ },
434
+ "required": [
435
+ "step",
436
+ "themeFolderName"
437
+ ]
438
+ },
439
+ {
440
+ "type": "object",
441
+ "additionalProperties": false,
442
+ "properties": {
443
+ "progress": {
444
+ "type": "object",
445
+ "properties": {
446
+ "weight": {
447
+ "type": "number"
448
+ },
449
+ "caption": {
450
+ "type": "string"
451
+ }
452
+ },
453
+ "additionalProperties": false
454
+ },
455
+ "step": {
456
+ "type": "string",
457
+ "const": "cp"
458
+ },
459
+ "fromPath": {
460
+ "type": "string",
461
+ "description": "Source path"
462
+ },
463
+ "toPath": {
464
+ "type": "string",
465
+ "description": "Target path"
466
+ }
467
+ },
468
+ "required": [
469
+ "fromPath",
470
+ "step",
471
+ "toPath"
472
+ ]
473
+ },
474
+ {
475
+ "type": "object",
476
+ "additionalProperties": false,
477
+ "properties": {
478
+ "progress": {
479
+ "type": "object",
480
+ "properties": {
481
+ "weight": {
482
+ "type": "number"
483
+ },
484
+ "caption": {
485
+ "type": "string"
486
+ }
487
+ },
488
+ "additionalProperties": false
489
+ },
490
+ "step": {
491
+ "type": "string",
492
+ "const": "defineWpConfigConsts"
493
+ },
494
+ "consts": {
495
+ "type": "object",
496
+ "additionalProperties": {},
497
+ "description": "The constants to define"
498
+ },
499
+ "method": {
500
+ "type": "string",
501
+ "enum": [
502
+ "rewrite-wp-config",
503
+ "define-before-run"
504
+ ],
505
+ "description": "The method of defining the constants in wp-config.php. Possible values are:\n\n- rewrite-wp-config: Default. Rewrites the wp-config.php file to explicitly call define() with the requested name and value. This method alters the file on the disk, but it doesn't conflict with existing define() calls in wp-config.php.\n\n- define-before-run: Defines the constant before running the requested script. It doesn't alter any files on the disk, but constants defined this way may conflict with existing define() calls in wp-config.php."
506
+ },
507
+ "virtualize": {
508
+ "type": "boolean",
509
+ "deprecated": "This option is noop and will be removed in a future version.\nThis option is only kept in here to avoid breaking Blueprint schema validation\nfor existing apps using this option."
510
+ }
511
+ },
512
+ "required": [
513
+ "consts",
514
+ "step"
515
+ ]
516
+ },
517
+ {
518
+ "type": "object",
519
+ "additionalProperties": false,
520
+ "properties": {
521
+ "progress": {
522
+ "type": "object",
523
+ "properties": {
524
+ "weight": {
525
+ "type": "number"
526
+ },
527
+ "caption": {
528
+ "type": "string"
529
+ }
530
+ },
531
+ "additionalProperties": false
532
+ },
533
+ "step": {
534
+ "type": "string",
535
+ "const": "defineSiteUrl"
536
+ },
537
+ "siteUrl": {
538
+ "type": "string",
539
+ "description": "The URL"
540
+ }
541
+ },
542
+ "required": [
543
+ "siteUrl",
544
+ "step"
545
+ ]
546
+ },
547
+ {
548
+ "type": "object",
549
+ "additionalProperties": false,
550
+ "properties": {
551
+ "progress": {
552
+ "type": "object",
553
+ "properties": {
554
+ "weight": {
555
+ "type": "number"
556
+ },
557
+ "caption": {
558
+ "type": "string"
559
+ }
560
+ },
561
+ "additionalProperties": false
562
+ },
563
+ "step": {
564
+ "type": "string",
565
+ "const": "enableMultisite"
566
+ }
567
+ },
568
+ "required": [
569
+ "step"
570
+ ]
571
+ },
572
+ {
573
+ "type": "object",
574
+ "additionalProperties": false,
575
+ "properties": {
576
+ "progress": {
577
+ "type": "object",
578
+ "properties": {
579
+ "weight": {
580
+ "type": "number"
581
+ },
582
+ "caption": {
583
+ "type": "string"
584
+ }
585
+ },
586
+ "additionalProperties": false
587
+ },
588
+ "step": {
589
+ "type": "string",
590
+ "const": "importWxr"
591
+ },
592
+ "file": {
593
+ "$ref": "#/definitions/FileReference",
594
+ "description": "The file to import"
595
+ }
596
+ },
597
+ "required": [
598
+ "file",
599
+ "step"
600
+ ]
601
+ },
602
+ {
603
+ "type": "object",
604
+ "additionalProperties": false,
605
+ "properties": {
606
+ "progress": {
607
+ "type": "object",
608
+ "properties": {
609
+ "weight": {
610
+ "type": "number"
611
+ },
612
+ "caption": {
613
+ "type": "string"
614
+ }
615
+ },
616
+ "additionalProperties": false
617
+ },
618
+ "step": {
619
+ "type": "string",
620
+ "const": "importThemeStarterContent",
621
+ "description": "The step identifier."
622
+ },
623
+ "themeSlug": {
624
+ "type": "string",
625
+ "description": "The name of the theme to import content from."
626
+ }
627
+ },
628
+ "required": [
629
+ "step"
630
+ ]
631
+ },
632
+ {
633
+ "type": "object",
634
+ "additionalProperties": false,
635
+ "properties": {
636
+ "progress": {
637
+ "type": "object",
638
+ "properties": {
639
+ "weight": {
640
+ "type": "number"
641
+ },
642
+ "caption": {
643
+ "type": "string"
644
+ }
645
+ },
646
+ "additionalProperties": false
647
+ },
648
+ "step": {
649
+ "type": "string",
650
+ "const": "importWordPressFiles"
651
+ },
652
+ "wordPressFilesZip": {
653
+ "$ref": "#/definitions/FileReference",
654
+ "description": "The zip file containing the top-level WordPress files and directories."
655
+ },
656
+ "pathInZip": {
657
+ "type": "string",
658
+ "description": "The path inside the zip file where the WordPress files are."
659
+ }
660
+ },
661
+ "required": [
662
+ "step",
663
+ "wordPressFilesZip"
664
+ ]
665
+ },
666
+ {
667
+ "type": "object",
668
+ "additionalProperties": false,
669
+ "properties": {
670
+ "progress": {
671
+ "type": "object",
672
+ "properties": {
673
+ "weight": {
674
+ "type": "number"
675
+ },
676
+ "caption": {
677
+ "type": "string"
678
+ }
679
+ },
680
+ "additionalProperties": false
681
+ },
682
+ "ifAlreadyInstalled": {
683
+ "type": "string",
684
+ "enum": [
685
+ "overwrite",
686
+ "skip",
687
+ "error"
688
+ ],
689
+ "description": "What to do if the asset already exists."
690
+ },
691
+ "step": {
692
+ "type": "string",
693
+ "const": "installPlugin",
694
+ "description": "The step identifier."
695
+ },
696
+ "pluginZipFile": {
697
+ "$ref": "#/definitions/FileReference",
698
+ "description": "The plugin zip file to install."
699
+ },
700
+ "options": {
701
+ "$ref": "#/definitions/InstallPluginOptions",
702
+ "description": "Optional installation options."
703
+ }
704
+ },
705
+ "required": [
706
+ "pluginZipFile",
707
+ "step"
708
+ ]
709
+ },
710
+ {
711
+ "type": "object",
712
+ "additionalProperties": false,
713
+ "properties": {
714
+ "progress": {
715
+ "type": "object",
716
+ "properties": {
717
+ "weight": {
718
+ "type": "number"
719
+ },
720
+ "caption": {
721
+ "type": "string"
722
+ }
723
+ },
724
+ "additionalProperties": false
725
+ },
726
+ "ifAlreadyInstalled": {
727
+ "type": "string",
728
+ "enum": [
729
+ "overwrite",
730
+ "skip",
731
+ "error"
732
+ ],
733
+ "description": "What to do if the asset already exists."
734
+ },
735
+ "step": {
736
+ "type": "string",
737
+ "const": "installTheme",
738
+ "description": "The step identifier."
739
+ },
740
+ "themeZipFile": {
741
+ "$ref": "#/definitions/FileReference",
742
+ "description": "The theme zip file to install."
743
+ },
744
+ "options": {
745
+ "type": "object",
746
+ "properties": {
747
+ "activate": {
748
+ "type": "boolean",
749
+ "description": "Whether to activate the theme after installing it."
750
+ },
751
+ "importStarterContent": {
752
+ "type": "boolean",
753
+ "description": "Whether to import the theme's starter content after installing it."
754
+ }
755
+ },
756
+ "additionalProperties": false,
757
+ "description": "Optional installation options."
758
+ }
759
+ },
760
+ "required": [
761
+ "step",
762
+ "themeZipFile"
763
+ ]
764
+ },
765
+ {
766
+ "type": "object",
767
+ "additionalProperties": false,
768
+ "properties": {
769
+ "progress": {
770
+ "type": "object",
771
+ "properties": {
772
+ "weight": {
773
+ "type": "number"
774
+ },
775
+ "caption": {
776
+ "type": "string"
777
+ }
778
+ },
779
+ "additionalProperties": false
780
+ },
781
+ "step": {
782
+ "type": "string",
783
+ "const": "login"
784
+ },
785
+ "username": {
786
+ "type": "string",
787
+ "description": "The user to log in as. Defaults to 'admin'."
788
+ },
789
+ "password": {
790
+ "type": "string",
791
+ "description": "The password to log in with. Defaults to 'password'."
792
+ }
793
+ },
794
+ "required": [
795
+ "step"
796
+ ]
797
+ },
798
+ {
799
+ "type": "object",
800
+ "additionalProperties": false,
801
+ "properties": {
802
+ "progress": {
803
+ "type": "object",
804
+ "properties": {
805
+ "weight": {
806
+ "type": "number"
807
+ },
808
+ "caption": {
809
+ "type": "string"
810
+ }
811
+ },
812
+ "additionalProperties": false
813
+ },
814
+ "step": {
815
+ "type": "string",
816
+ "const": "mkdir"
817
+ },
818
+ "path": {
819
+ "type": "string",
820
+ "description": "The path of the directory you want to create"
821
+ }
822
+ },
823
+ "required": [
824
+ "path",
825
+ "step"
826
+ ]
827
+ },
828
+ {
829
+ "type": "object",
830
+ "additionalProperties": false,
831
+ "properties": {
832
+ "progress": {
833
+ "type": "object",
834
+ "properties": {
835
+ "weight": {
836
+ "type": "number"
837
+ },
838
+ "caption": {
839
+ "type": "string"
840
+ }
841
+ },
842
+ "additionalProperties": false
843
+ },
844
+ "step": {
845
+ "type": "string",
846
+ "const": "mv"
847
+ },
848
+ "fromPath": {
849
+ "type": "string",
850
+ "description": "Source path"
851
+ },
852
+ "toPath": {
853
+ "type": "string",
854
+ "description": "Target path"
855
+ }
856
+ },
857
+ "required": [
858
+ "fromPath",
859
+ "step",
860
+ "toPath"
861
+ ]
862
+ },
863
+ {
864
+ "type": "object",
865
+ "additionalProperties": false,
866
+ "properties": {
867
+ "progress": {
868
+ "type": "object",
869
+ "properties": {
870
+ "weight": {
871
+ "type": "number"
872
+ },
873
+ "caption": {
874
+ "type": "string"
875
+ }
876
+ },
877
+ "additionalProperties": false
878
+ },
879
+ "step": {
880
+ "type": "string",
881
+ "const": "resetData"
882
+ }
883
+ },
884
+ "required": [
885
+ "step"
886
+ ]
887
+ },
888
+ {
889
+ "type": "object",
890
+ "additionalProperties": false,
891
+ "properties": {
892
+ "progress": {
893
+ "type": "object",
894
+ "properties": {
895
+ "weight": {
896
+ "type": "number"
897
+ },
898
+ "caption": {
899
+ "type": "string"
900
+ }
901
+ },
902
+ "additionalProperties": false
903
+ },
904
+ "step": {
905
+ "type": "string",
906
+ "const": "request"
907
+ },
908
+ "request": {
909
+ "$ref": "#/definitions/PHPRequest",
910
+ "description": "Request details (See /wordpress-playground/api/universal/interface/PHPRequest)"
911
+ }
912
+ },
913
+ "required": [
914
+ "request",
915
+ "step"
916
+ ]
917
+ },
918
+ {
919
+ "type": "object",
920
+ "additionalProperties": false,
921
+ "properties": {
922
+ "progress": {
923
+ "type": "object",
924
+ "properties": {
925
+ "weight": {
926
+ "type": "number"
927
+ },
928
+ "caption": {
929
+ "type": "string"
930
+ }
931
+ },
932
+ "additionalProperties": false
933
+ },
934
+ "step": {
935
+ "type": "string",
936
+ "const": "rm"
937
+ },
938
+ "path": {
939
+ "type": "string",
940
+ "description": "The path to remove"
941
+ }
942
+ },
943
+ "required": [
944
+ "path",
945
+ "step"
946
+ ]
947
+ },
948
+ {
949
+ "type": "object",
950
+ "additionalProperties": false,
951
+ "properties": {
952
+ "progress": {
953
+ "type": "object",
954
+ "properties": {
955
+ "weight": {
956
+ "type": "number"
957
+ },
958
+ "caption": {
959
+ "type": "string"
960
+ }
961
+ },
962
+ "additionalProperties": false
963
+ },
964
+ "step": {
965
+ "type": "string",
966
+ "const": "rmdir"
967
+ },
968
+ "path": {
969
+ "type": "string",
970
+ "description": "The path to remove"
971
+ }
972
+ },
973
+ "required": [
974
+ "path",
975
+ "step"
976
+ ]
977
+ },
978
+ {
979
+ "type": "object",
980
+ "additionalProperties": false,
981
+ "properties": {
982
+ "progress": {
983
+ "type": "object",
984
+ "properties": {
985
+ "weight": {
986
+ "type": "number"
987
+ },
988
+ "caption": {
989
+ "type": "string"
990
+ }
991
+ },
992
+ "additionalProperties": false
993
+ },
994
+ "step": {
995
+ "type": "string",
996
+ "const": "runPHP",
997
+ "description": "The step identifier."
998
+ },
999
+ "code": {
1000
+ "type": "string",
1001
+ "description": "The PHP code to run."
1002
+ }
1003
+ },
1004
+ "required": [
1005
+ "code",
1006
+ "step"
1007
+ ]
1008
+ },
1009
+ {
1010
+ "type": "object",
1011
+ "additionalProperties": false,
1012
+ "properties": {
1013
+ "progress": {
1014
+ "type": "object",
1015
+ "properties": {
1016
+ "weight": {
1017
+ "type": "number"
1018
+ },
1019
+ "caption": {
1020
+ "type": "string"
1021
+ }
1022
+ },
1023
+ "additionalProperties": false
1024
+ },
1025
+ "step": {
1026
+ "type": "string",
1027
+ "const": "runPHPWithOptions"
1028
+ },
1029
+ "options": {
1030
+ "$ref": "#/definitions/PHPRunOptions",
1031
+ "description": "Run options (See /wordpress-playground/api/universal/interface/PHPRunOptions/))"
1032
+ }
1033
+ },
1034
+ "required": [
1035
+ "options",
1036
+ "step"
1037
+ ]
1038
+ },
1039
+ {
1040
+ "type": "object",
1041
+ "additionalProperties": false,
1042
+ "properties": {
1043
+ "progress": {
1044
+ "type": "object",
1045
+ "properties": {
1046
+ "weight": {
1047
+ "type": "number"
1048
+ },
1049
+ "caption": {
1050
+ "type": "string"
1051
+ }
1052
+ },
1053
+ "additionalProperties": false
1054
+ },
1055
+ "step": {
1056
+ "type": "string",
1057
+ "const": "runWpInstallationWizard"
1058
+ },
1059
+ "options": {
1060
+ "$ref": "#/definitions/WordPressInstallationOptions"
1061
+ }
1062
+ },
1063
+ "required": [
1064
+ "options",
1065
+ "step"
1066
+ ]
1067
+ },
1068
+ {
1069
+ "type": "object",
1070
+ "additionalProperties": false,
1071
+ "properties": {
1072
+ "progress": {
1073
+ "type": "object",
1074
+ "properties": {
1075
+ "weight": {
1076
+ "type": "number"
1077
+ },
1078
+ "caption": {
1079
+ "type": "string"
1080
+ }
1081
+ },
1082
+ "additionalProperties": false
1083
+ },
1084
+ "step": {
1085
+ "type": "string",
1086
+ "const": "runSql",
1087
+ "description": "The step identifier."
1088
+ },
1089
+ "sql": {
1090
+ "$ref": "#/definitions/FileReference",
1091
+ "description": "The SQL to run. Each non-empty line must contain a valid SQL query."
1092
+ }
1093
+ },
1094
+ "required": [
1095
+ "sql",
1096
+ "step"
1097
+ ]
1098
+ },
1099
+ {
1100
+ "type": "object",
1101
+ "additionalProperties": false,
1102
+ "properties": {
1103
+ "progress": {
1104
+ "type": "object",
1105
+ "properties": {
1106
+ "weight": {
1107
+ "type": "number"
1108
+ },
1109
+ "caption": {
1110
+ "type": "string"
1111
+ }
1112
+ },
1113
+ "additionalProperties": false
1114
+ },
1115
+ "step": {
1116
+ "type": "string",
1117
+ "const": "setSiteOptions",
1118
+ "description": "The name of the step. Must be \"setSiteOptions\"."
1119
+ },
1120
+ "options": {
1121
+ "type": "object",
1122
+ "additionalProperties": {},
1123
+ "description": "The options to set on the site."
1124
+ }
1125
+ },
1126
+ "required": [
1127
+ "options",
1128
+ "step"
1129
+ ]
1130
+ },
1131
+ {
1132
+ "type": "object",
1133
+ "additionalProperties": false,
1134
+ "properties": {
1135
+ "progress": {
1136
+ "type": "object",
1137
+ "properties": {
1138
+ "weight": {
1139
+ "type": "number"
1140
+ },
1141
+ "caption": {
1142
+ "type": "string"
1143
+ }
1144
+ },
1145
+ "additionalProperties": false
1146
+ },
1147
+ "step": {
1148
+ "type": "string",
1149
+ "const": "unzip"
1150
+ },
1151
+ "zipFile": {
1152
+ "$ref": "#/definitions/FileReference",
1153
+ "description": "The zip file to extract"
1154
+ },
1155
+ "zipPath": {
1156
+ "type": "string",
1157
+ "description": "The path of the zip file to extract",
1158
+ "deprecated": "Use zipFile instead."
1159
+ },
1160
+ "extractToPath": {
1161
+ "type": "string",
1162
+ "description": "The path to extract the zip file to"
1163
+ }
1164
+ },
1165
+ "required": [
1166
+ "extractToPath",
1167
+ "step"
1168
+ ]
1169
+ },
1170
+ {
1171
+ "type": "object",
1172
+ "additionalProperties": false,
1173
+ "properties": {
1174
+ "progress": {
1175
+ "type": "object",
1176
+ "properties": {
1177
+ "weight": {
1178
+ "type": "number"
1179
+ },
1180
+ "caption": {
1181
+ "type": "string"
1182
+ }
1183
+ },
1184
+ "additionalProperties": false
1185
+ },
1186
+ "step": {
1187
+ "type": "string",
1188
+ "const": "updateUserMeta"
1189
+ },
1190
+ "meta": {
1191
+ "type": "object",
1192
+ "additionalProperties": {},
1193
+ "description": "An object of user meta values to set, e.g. { \"first_name\": \"John\" }"
1194
+ },
1195
+ "userId": {
1196
+ "type": "number",
1197
+ "description": "User ID"
1198
+ }
1199
+ },
1200
+ "required": [
1201
+ "meta",
1202
+ "step",
1203
+ "userId"
1204
+ ]
1205
+ },
1206
+ {
1207
+ "type": "object",
1208
+ "additionalProperties": false,
1209
+ "properties": {
1210
+ "progress": {
1211
+ "type": "object",
1212
+ "properties": {
1213
+ "weight": {
1214
+ "type": "number"
1215
+ },
1216
+ "caption": {
1217
+ "type": "string"
1218
+ }
1219
+ },
1220
+ "additionalProperties": false
1221
+ },
1222
+ "step": {
1223
+ "type": "string",
1224
+ "const": "writeFile"
1225
+ },
1226
+ "path": {
1227
+ "type": "string",
1228
+ "description": "The path of the file to write to"
1229
+ },
1230
+ "data": {
1231
+ "anyOf": [
1232
+ {
1233
+ "$ref": "#/definitions/FileReference"
1234
+ },
1235
+ {
1236
+ "type": "string"
1237
+ },
1238
+ {
1239
+ "type": "object",
1240
+ "properties": {
1241
+ "BYTES_PER_ELEMENT": {
1242
+ "type": "number"
1243
+ },
1244
+ "buffer": {
1245
+ "type": "object",
1246
+ "properties": {
1247
+ "byteLength": {
1248
+ "type": "number"
1249
+ }
1250
+ },
1251
+ "required": [
1252
+ "byteLength"
1253
+ ],
1254
+ "additionalProperties": false
1255
+ },
1256
+ "byteLength": {
1257
+ "type": "number"
1258
+ },
1259
+ "byteOffset": {
1260
+ "type": "number"
1261
+ },
1262
+ "length": {
1263
+ "type": "number"
1264
+ }
1265
+ },
1266
+ "required": [
1267
+ "BYTES_PER_ELEMENT",
1268
+ "buffer",
1269
+ "byteLength",
1270
+ "byteOffset",
1271
+ "length"
1272
+ ],
1273
+ "additionalProperties": {
1274
+ "type": "number"
1275
+ }
1276
+ }
1277
+ ],
1278
+ "description": "The data to write"
1279
+ }
1280
+ },
1281
+ "required": [
1282
+ "data",
1283
+ "path",
1284
+ "step"
1285
+ ]
1286
+ },
1287
+ {
1288
+ "type": "object",
1289
+ "additionalProperties": false,
1290
+ "properties": {
1291
+ "progress": {
1292
+ "type": "object",
1293
+ "properties": {
1294
+ "weight": {
1295
+ "type": "number"
1296
+ },
1297
+ "caption": {
1298
+ "type": "string"
1299
+ }
1300
+ },
1301
+ "additionalProperties": false
1302
+ },
1303
+ "step": {
1304
+ "type": "string",
1305
+ "const": "wp-cli",
1306
+ "description": "The step identifier."
1307
+ },
1308
+ "command": {
1309
+ "anyOf": [
1310
+ {
1311
+ "type": "string"
1312
+ },
1313
+ {
1314
+ "type": "array",
1315
+ "items": {
1316
+ "type": "string"
1317
+ }
1318
+ }
1319
+ ],
1320
+ "description": "The WP CLI command to run."
1321
+ },
1322
+ "wpCliPath": {
1323
+ "type": "string",
1324
+ "description": "wp-cli.phar path"
1325
+ }
1326
+ },
1327
+ "required": [
1328
+ "command",
1329
+ "step"
1330
+ ]
1331
+ },
1332
+ {
1333
+ "type": "object",
1334
+ "additionalProperties": false,
1335
+ "properties": {
1336
+ "progress": {
1337
+ "type": "object",
1338
+ "properties": {
1339
+ "weight": {
1340
+ "type": "number"
1341
+ },
1342
+ "caption": {
1343
+ "type": "string"
1344
+ }
1345
+ },
1346
+ "additionalProperties": false
1347
+ },
1348
+ "step": {
1349
+ "type": "string",
1350
+ "const": "setSiteLanguage"
1351
+ },
1352
+ "language": {
1353
+ "type": "string",
1354
+ "description": "The language to set, e.g. 'en_US'"
1355
+ }
1356
+ },
1357
+ "required": [
1358
+ "language",
1359
+ "step"
1360
+ ]
1361
+ }
1362
+ ]
1363
+ },
1364
+ "InstallPluginOptions": {
1365
+ "type": "object",
1366
+ "properties": {
1367
+ "activate": {
1368
+ "type": "boolean",
1369
+ "description": "Whether to activate the plugin after installing it."
1370
+ }
1371
+ },
1372
+ "additionalProperties": false
1373
+ },
1374
+ "PHPRequest": {
1375
+ "type": "object",
1376
+ "properties": {
1377
+ "method": {
1378
+ "$ref": "#/definitions/HTTPMethod",
1379
+ "description": "Request method. Default: `GET`."
1380
+ },
1381
+ "url": {
1382
+ "type": "string",
1383
+ "description": "Request path or absolute URL."
1384
+ },
1385
+ "headers": {
1386
+ "$ref": "#/definitions/PHPRequestHeaders",
1387
+ "description": "Request headers."
1388
+ },
1389
+ "body": {
1390
+ "anyOf": [
1391
+ {
1392
+ "type": "string"
1393
+ },
1394
+ {
1395
+ "type": "object",
1396
+ "properties": {
1397
+ "BYTES_PER_ELEMENT": {
1398
+ "type": "number"
1399
+ },
1400
+ "buffer": {
1401
+ "type": "object",
1402
+ "properties": {
1403
+ "byteLength": {
1404
+ "type": "number"
1405
+ }
1406
+ },
1407
+ "required": [
1408
+ "byteLength"
1409
+ ],
1410
+ "additionalProperties": false
1411
+ },
1412
+ "byteLength": {
1413
+ "type": "number"
1414
+ },
1415
+ "byteOffset": {
1416
+ "type": "number"
1417
+ },
1418
+ "length": {
1419
+ "type": "number"
1420
+ }
1421
+ },
1422
+ "required": [
1423
+ "BYTES_PER_ELEMENT",
1424
+ "buffer",
1425
+ "byteLength",
1426
+ "byteOffset",
1427
+ "length"
1428
+ ],
1429
+ "additionalProperties": {
1430
+ "type": "number"
1431
+ }
1432
+ },
1433
+ {
1434
+ "type": "object",
1435
+ "additionalProperties": {
1436
+ "anyOf": [
1437
+ {
1438
+ "type": "string"
1439
+ },
1440
+ {
1441
+ "type": "object",
1442
+ "properties": {
1443
+ "BYTES_PER_ELEMENT": {
1444
+ "type": "number"
1445
+ },
1446
+ "buffer": {
1447
+ "type": "object",
1448
+ "properties": {
1449
+ "byteLength": {
1450
+ "type": "number"
1451
+ }
1452
+ },
1453
+ "required": [
1454
+ "byteLength"
1455
+ ],
1456
+ "additionalProperties": false
1457
+ },
1458
+ "byteLength": {
1459
+ "type": "number"
1460
+ },
1461
+ "byteOffset": {
1462
+ "type": "number"
1463
+ },
1464
+ "length": {
1465
+ "type": "number"
1466
+ }
1467
+ },
1468
+ "required": [
1469
+ "BYTES_PER_ELEMENT",
1470
+ "buffer",
1471
+ "byteLength",
1472
+ "byteOffset",
1473
+ "length"
1474
+ ],
1475
+ "additionalProperties": {
1476
+ "type": "number"
1477
+ }
1478
+ },
1479
+ {
1480
+ "type": "object",
1481
+ "properties": {
1482
+ "size": {
1483
+ "type": "number"
1484
+ },
1485
+ "type": {
1486
+ "type": "string"
1487
+ },
1488
+ "lastModified": {
1489
+ "type": "number"
1490
+ },
1491
+ "name": {
1492
+ "type": "string"
1493
+ },
1494
+ "webkitRelativePath": {
1495
+ "type": "string"
1496
+ }
1497
+ },
1498
+ "required": [
1499
+ "lastModified",
1500
+ "name",
1501
+ "size",
1502
+ "type",
1503
+ "webkitRelativePath"
1504
+ ],
1505
+ "additionalProperties": false
1506
+ }
1507
+ ]
1508
+ }
1509
+ }
1510
+ ],
1511
+ "description": "Request body. If an object is given, the request will be encoded as multipart and sent with a `multipart/form-data` header."
1512
+ }
1513
+ },
1514
+ "required": [
1515
+ "url"
1516
+ ],
1517
+ "additionalProperties": false
1518
+ },
1519
+ "HTTPMethod": {
1520
+ "type": "string",
1521
+ "enum": [
1522
+ "GET",
1523
+ "POST",
1524
+ "HEAD",
1525
+ "OPTIONS",
1526
+ "PATCH",
1527
+ "PUT",
1528
+ "DELETE"
1529
+ ]
1530
+ },
1531
+ "PHPRequestHeaders": {
1532
+ "type": "object",
1533
+ "additionalProperties": {
1534
+ "type": "string"
1535
+ }
1536
+ },
1537
+ "PHPRunOptions": {
1538
+ "type": "object",
1539
+ "properties": {
1540
+ "relativeUri": {
1541
+ "type": "string",
1542
+ "description": "Request path following the domain:port part."
1543
+ },
1544
+ "scriptPath": {
1545
+ "type": "string",
1546
+ "description": "Path of the .php file to execute."
1547
+ },
1548
+ "protocol": {
1549
+ "type": "string",
1550
+ "description": "Request protocol."
1551
+ },
1552
+ "method": {
1553
+ "$ref": "#/definitions/HTTPMethod",
1554
+ "description": "Request method. Default: `GET`."
1555
+ },
1556
+ "headers": {
1557
+ "$ref": "#/definitions/PHPRequestHeaders",
1558
+ "description": "Request headers."
1559
+ },
1560
+ "body": {
1561
+ "anyOf": [
1562
+ {
1563
+ "type": "string"
1564
+ },
1565
+ {
1566
+ "type": "object",
1567
+ "properties": {
1568
+ "BYTES_PER_ELEMENT": {
1569
+ "type": "number"
1570
+ },
1571
+ "buffer": {
1572
+ "type": "object",
1573
+ "properties": {
1574
+ "byteLength": {
1575
+ "type": "number"
1576
+ }
1577
+ },
1578
+ "required": [
1579
+ "byteLength"
1580
+ ],
1581
+ "additionalProperties": false
1582
+ },
1583
+ "byteLength": {
1584
+ "type": "number"
1585
+ },
1586
+ "byteOffset": {
1587
+ "type": "number"
1588
+ },
1589
+ "length": {
1590
+ "type": "number"
1591
+ }
1592
+ },
1593
+ "required": [
1594
+ "BYTES_PER_ELEMENT",
1595
+ "buffer",
1596
+ "byteLength",
1597
+ "byteOffset",
1598
+ "length"
1599
+ ],
1600
+ "additionalProperties": {
1601
+ "type": "number"
1602
+ }
1603
+ }
1604
+ ],
1605
+ "description": "Request body."
1606
+ },
1607
+ "env": {
1608
+ "type": "object",
1609
+ "additionalProperties": {
1610
+ "type": "string"
1611
+ },
1612
+ "description": "Environment variables to set for this run."
1613
+ },
1614
+ "$_SERVER": {
1615
+ "type": "object",
1616
+ "additionalProperties": {
1617
+ "type": "string"
1618
+ },
1619
+ "description": "$_SERVER entries to set for this run."
1620
+ },
1621
+ "code": {
1622
+ "type": "string",
1623
+ "description": "The code snippet to eval instead of a php file."
1624
+ }
1625
+ },
1626
+ "additionalProperties": false
1627
+ },
1628
+ "WordPressInstallationOptions": {
1629
+ "type": "object",
1630
+ "properties": {
1631
+ "adminUsername": {
1632
+ "type": "string"
1633
+ },
1634
+ "adminPassword": {
1635
+ "type": "string"
1636
+ }
1637
+ },
1638
+ "additionalProperties": false
1639
+ }
1640
+ }
1641
+ }