@wp-playground/blueprints 0.7.20 → 0.9.1

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