@wp-playground/blueprints 0.9.29 → 0.9.31

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