@epilot/blueprint-manifest-client 2.9.4 → 3.0.0-beta.0

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.
package/dist/openapi.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "openapi": "3.0.3",
2
+ "openapi": "3.1.0",
3
3
  "info": {
4
4
  "title": "Blueprint Manifest API",
5
5
  "version": "0.1.0",
@@ -21,6 +21,14 @@
21
21
  {
22
22
  "name": "Manifests",
23
23
  "description": "Manage installed Manifests"
24
+ },
25
+ {
26
+ "name": "Blueprints",
27
+ "description": "Manage Custom and Installed Blueprints"
28
+ },
29
+ {
30
+ "name": "Installations",
31
+ "description": "Manage installation jobs"
24
32
  }
25
33
  ],
26
34
  "security": [
@@ -320,6 +328,16 @@
320
328
  }
321
329
  ]
322
330
  },
331
+ "job_id": {
332
+ "allOf": [
333
+ {
334
+ "description": "Continue a previous job"
335
+ },
336
+ {
337
+ "$ref": "#/components/schemas/JobID"
338
+ }
339
+ ]
340
+ },
323
341
  "source": {
324
342
  "allOf": [
325
343
  {
@@ -391,6 +409,16 @@
391
409
  }
392
410
  ]
393
411
  },
412
+ "job_id": {
413
+ "allOf": [
414
+ {
415
+ "description": "Continue a previous job"
416
+ },
417
+ {
418
+ "$ref": "#/components/schemas/JobID"
419
+ }
420
+ ]
421
+ },
394
422
  "source": {
395
423
  "allOf": [
396
424
  {
@@ -505,164 +533,1335 @@
505
533
  }
506
534
  }
507
535
  }
508
- },
509
- "responses": {
510
- "200": {
511
- "description": "Applied Import Job ID",
512
- "content": {
513
- "application/json": {
514
- "schema": {
515
- "type": "object",
516
- "properties": {
517
- "jobId": {
518
- "$ref": "#/components/schemas/JobID"
519
- }
520
- }
536
+ },
537
+ "responses": {
538
+ "200": {
539
+ "description": "Applied Import Job ID",
540
+ "content": {
541
+ "application/json": {
542
+ "schema": {
543
+ "type": "object",
544
+ "properties": {
545
+ "jobId": {
546
+ "$ref": "#/components/schemas/JobID"
547
+ }
548
+ }
549
+ }
550
+ }
551
+ }
552
+ }
553
+ }
554
+ }
555
+ },
556
+ "/v1/blueprint-manifest/manifests": {
557
+ "get": {
558
+ "operationId": "listInstalledManifests",
559
+ "summary": "listInstalledManifests",
560
+ "description": "List Blueprint Manifests installed to the organization",
561
+ "tags": [
562
+ "Manifests"
563
+ ],
564
+ "responses": {
565
+ "200": {
566
+ "description": "Installed Blueprint Manifests in the organization",
567
+ "content": {
568
+ "application/json": {
569
+ "schema": {
570
+ "type": "object",
571
+ "properties": {
572
+ "total": {
573
+ "type": "integer",
574
+ "example": 1
575
+ },
576
+ "results": {
577
+ "type": "array",
578
+ "items": {
579
+ "$ref": "#/components/schemas/ManifestItem"
580
+ }
581
+ }
582
+ }
583
+ }
584
+ }
585
+ }
586
+ }
587
+ }
588
+ }
589
+ },
590
+ "/v1/blueprint-manifest/manifests/{manifest_id}": {
591
+ "get": {
592
+ "operationId": "getManifest",
593
+ "summary": "getManifest",
594
+ "description": "Get installed Manifest by ID",
595
+ "tags": [
596
+ "Manifests"
597
+ ],
598
+ "parameters": [
599
+ {
600
+ "in": "path",
601
+ "required": true,
602
+ "name": "manifest_id",
603
+ "schema": {
604
+ "$ref": "#/components/schemas/ManifestID"
605
+ }
606
+ }
607
+ ],
608
+ "responses": {
609
+ "200": {
610
+ "description": "Installed Blueprint Manifest in the Organization",
611
+ "content": {
612
+ "application/json": {
613
+ "schema": {
614
+ "$ref": "#/components/schemas/Manifest"
615
+ }
616
+ }
617
+ }
618
+ }
619
+ }
620
+ },
621
+ "put": {
622
+ "operationId": "updateManifest",
623
+ "summary": "updateManifest",
624
+ "description": "Update an installed manifest\n",
625
+ "tags": [
626
+ "Manifests"
627
+ ],
628
+ "parameters": [
629
+ {
630
+ "in": "path",
631
+ "required": true,
632
+ "name": "manifest_id",
633
+ "schema": {
634
+ "$ref": "#/components/schemas/ManifestID"
635
+ }
636
+ }
637
+ ],
638
+ "requestBody": {
639
+ "content": {
640
+ "application/json": {
641
+ "schema": {
642
+ "$ref": "#/components/schemas/PutManifestPayload"
643
+ }
644
+ }
645
+ }
646
+ },
647
+ "responses": {
648
+ "200": {
649
+ "description": "The updated Manifest",
650
+ "content": {
651
+ "application/json": {
652
+ "schema": {
653
+ "$ref": "#/components/schemas/Manifest"
654
+ }
655
+ }
656
+ }
657
+ }
658
+ }
659
+ },
660
+ "delete": {
661
+ "operationId": "deleteManifest",
662
+ "summary": "deleteManifest",
663
+ "description": "Remove installed manifest from the org\n\nNote that this does not delete the installed resources of the Manifest!\n",
664
+ "tags": [
665
+ "Manifests"
666
+ ],
667
+ "parameters": [
668
+ {
669
+ "in": "path",
670
+ "required": true,
671
+ "name": "manifest_id",
672
+ "schema": {
673
+ "$ref": "#/components/schemas/ManifestID"
674
+ }
675
+ }
676
+ ],
677
+ "responses": {
678
+ "200": {
679
+ "description": "The deleted Manifest",
680
+ "content": {
681
+ "application/json": {
682
+ "schema": {
683
+ "$ref": "#/components/schemas/Manifest"
684
+ }
685
+ }
686
+ }
687
+ }
688
+ }
689
+ }
690
+ },
691
+ "/v2/blueprint-manifest/blueprints": {
692
+ "get": {
693
+ "operationId": "listBlueprints",
694
+ "summary": "listBlueprints",
695
+ "description": "List Custom and Installed Blueprints",
696
+ "tags": [
697
+ "Blueprints"
698
+ ],
699
+ "responses": {
700
+ "200": {
701
+ "description": "Blueprints",
702
+ "content": {
703
+ "application/json": {
704
+ "schema": {
705
+ "type": "array",
706
+ "items": {
707
+ "$ref": "#/components/schemas/Blueprint"
708
+ }
709
+ }
710
+ }
711
+ }
712
+ }
713
+ }
714
+ },
715
+ "post": {
716
+ "operationId": "createBlueprint",
717
+ "summary": "createBlueprint",
718
+ "description": "Create a Blueprint",
719
+ "tags": [
720
+ "Blueprints"
721
+ ],
722
+ "requestBody": {
723
+ "content": {
724
+ "application/json": {
725
+ "schema": {
726
+ "$ref": "#/components/schemas/CommonBlueprintFields"
727
+ }
728
+ }
729
+ }
730
+ },
731
+ "responses": {
732
+ "200": {
733
+ "description": "Created Blueprint",
734
+ "content": {
735
+ "application/json": {
736
+ "schema": {
737
+ "$ref": "#/components/schemas/CustomBlueprint"
738
+ }
739
+ }
740
+ }
741
+ }
742
+ }
743
+ }
744
+ },
745
+ "/v2/blueprint-manifest/blueprints/{blueprint_id}": {
746
+ "get": {
747
+ "operationId": "getBlueprint",
748
+ "summary": "getBlueprint",
749
+ "description": "Get Blueprint by ID",
750
+ "tags": [
751
+ "Blueprints"
752
+ ],
753
+ "parameters": [
754
+ {
755
+ "in": "path",
756
+ "required": true,
757
+ "name": "blueprint_id",
758
+ "schema": {
759
+ "$ref": "#/components/schemas/BlueprintID"
760
+ }
761
+ }
762
+ ],
763
+ "responses": {
764
+ "200": {
765
+ "description": "Blueprint",
766
+ "content": {
767
+ "application/json": {
768
+ "schema": {
769
+ "$ref": "#/components/schemas/Blueprint"
770
+ }
771
+ }
772
+ }
773
+ }
774
+ }
775
+ },
776
+ "put": {
777
+ "operationId": "updateBlueprint",
778
+ "summary": "updateBlueprint",
779
+ "description": "Update a Blueprint",
780
+ "tags": [
781
+ "Blueprints"
782
+ ],
783
+ "parameters": [
784
+ {
785
+ "in": "path",
786
+ "required": true,
787
+ "name": "blueprint_id",
788
+ "schema": {
789
+ "$ref": "#/components/schemas/BlueprintID"
790
+ }
791
+ }
792
+ ],
793
+ "requestBody": {
794
+ "content": {
795
+ "application/json": {
796
+ "schema": {
797
+ "$ref": "#/components/schemas/CommonBlueprintFields"
798
+ }
799
+ }
800
+ }
801
+ },
802
+ "responses": {
803
+ "200": {
804
+ "description": "Updated Blueprint",
805
+ "content": {
806
+ "application/json": {
807
+ "schema": {
808
+ "$ref": "#/components/schemas/Blueprint"
809
+ }
810
+ }
811
+ }
812
+ }
813
+ }
814
+ }
815
+ },
816
+ "/v2/blueprint-manifest/blueprints/{blueprint_id}:export": {
817
+ "post": {
818
+ "operationId": "exportBlueprint",
819
+ "summary": "exportBlueprint",
820
+ "description": "Zip the blueprint content and return the url to download it",
821
+ "tags": [
822
+ "Blueprints"
823
+ ],
824
+ "parameters": [
825
+ {
826
+ "in": "path",
827
+ "required": true,
828
+ "name": "blueprint_id",
829
+ "schema": {
830
+ "$ref": "#/components/schemas/BlueprintID"
831
+ }
832
+ }
833
+ ],
834
+ "responses": {
835
+ "200": {
836
+ "description": "Exported Blueprint",
837
+ "content": {
838
+ "application/json": {
839
+ "schema": {
840
+ "type": "object",
841
+ "properties": {
842
+ "url": {
843
+ "type": "string"
844
+ }
845
+ }
846
+ }
847
+ }
848
+ }
849
+ }
850
+ }
851
+ }
852
+ },
853
+ "/v2/blueprint-manifest/blueprints/{blueprint_id}/resources": {
854
+ "post": {
855
+ "operationId": "addBlueprintResource",
856
+ "summary": "addBlueprintResource",
857
+ "description": "Add a resource to a Blueprint",
858
+ "tags": [
859
+ "Blueprints"
860
+ ],
861
+ "parameters": [
862
+ {
863
+ "in": "path",
864
+ "required": true,
865
+ "name": "blueprint_id",
866
+ "schema": {
867
+ "$ref": "#/components/schemas/BlueprintID"
868
+ }
869
+ },
870
+ {
871
+ "in": "query",
872
+ "name": "add_dependencies",
873
+ "schema": {
874
+ "type": "boolean",
875
+ "default": false,
876
+ "description": "Whether to add this resource dependencies to the blueprint automatically"
877
+ }
878
+ }
879
+ ],
880
+ "requestBody": {
881
+ "content": {
882
+ "application/json": {
883
+ "schema": {
884
+ "anyOf": [
885
+ {
886
+ "$ref": "#/components/schemas/EditableBlueprintResource"
887
+ },
888
+ {
889
+ "$ref": "#/components/schemas/InstalledBlueprintResource"
890
+ }
891
+ ]
892
+ }
893
+ }
894
+ }
895
+ },
896
+ "responses": {
897
+ "200": {
898
+ "description": "Added Blueprint Resource",
899
+ "content": {
900
+ "application/json": {
901
+ "schema": {
902
+ "type": "object",
903
+ "properties": {
904
+ "resources": {
905
+ "type": "array",
906
+ "items": {
907
+ "anyOf": [
908
+ {
909
+ "$ref": "#/components/schemas/EditableBlueprintResource"
910
+ },
911
+ {
912
+ "$ref": "#/components/schemas/InstalledBlueprintResource"
913
+ }
914
+ ]
915
+ }
916
+ }
917
+ }
918
+ }
919
+ }
920
+ }
921
+ }
922
+ }
923
+ }
924
+ },
925
+ "/v2/blueprint-manifest/blueprints/{blueprint_id}/resources/bulk": {
926
+ "post": {
927
+ "operationId": "bulkAddBlueprintResources",
928
+ "summary": "bulkAddBlueprintResources",
929
+ "description": "Bulk Add resources in a Blueprint",
930
+ "tags": [
931
+ "Blueprints"
932
+ ],
933
+ "parameters": [
934
+ {
935
+ "in": "path",
936
+ "required": true,
937
+ "name": "blueprint_id",
938
+ "schema": {
939
+ "$ref": "#/components/schemas/BlueprintID"
940
+ }
941
+ },
942
+ {
943
+ "in": "query",
944
+ "name": "add_dependencies",
945
+ "schema": {
946
+ "type": "boolean",
947
+ "default": false,
948
+ "description": "Whether to add this resource dependencies to the blueprint automatically"
949
+ }
950
+ }
951
+ ],
952
+ "requestBody": {
953
+ "content": {
954
+ "application/json": {
955
+ "schema": {
956
+ "type": "array",
957
+ "items": {
958
+ "anyOf": [
959
+ {
960
+ "$ref": "#/components/schemas/EditableBlueprintResource"
961
+ },
962
+ {
963
+ "$ref": "#/components/schemas/InstalledBlueprintResource"
964
+ }
965
+ ]
966
+ }
967
+ }
968
+ }
969
+ }
970
+ },
971
+ "responses": {
972
+ "200": {
973
+ "description": "Bulk updated Blueprint Resources",
974
+ "content": {
975
+ "application/json": {
976
+ "schema": {
977
+ "type": "object",
978
+ "properties": {
979
+ "resources": {
980
+ "type": "array",
981
+ "items": {
982
+ "anyOf": [
983
+ {
984
+ "$ref": "#/components/schemas/EditableBlueprintResource"
985
+ },
986
+ {
987
+ "$ref": "#/components/schemas/InstalledBlueprintResource"
988
+ }
989
+ ]
990
+ }
991
+ }
992
+ }
993
+ }
994
+ }
995
+ }
996
+ }
997
+ }
998
+ },
999
+ "put": {
1000
+ "operationId": "bulkUpdateBlueprintResources",
1001
+ "summary": "bulkUpdateBlueprintResources",
1002
+ "description": "Bulk update resources in a Blueprint",
1003
+ "tags": [
1004
+ "Blueprints"
1005
+ ],
1006
+ "parameters": [
1007
+ {
1008
+ "in": "path",
1009
+ "required": true,
1010
+ "name": "blueprint_id",
1011
+ "schema": {
1012
+ "$ref": "#/components/schemas/BlueprintID"
1013
+ }
1014
+ }
1015
+ ],
1016
+ "requestBody": {
1017
+ "content": {
1018
+ "application/json": {
1019
+ "schema": {
1020
+ "type": "array",
1021
+ "items": {
1022
+ "anyOf": [
1023
+ {
1024
+ "$ref": "#/components/schemas/EditableBlueprintResource"
1025
+ },
1026
+ {
1027
+ "$ref": "#/components/schemas/InstalledBlueprintResource"
1028
+ }
1029
+ ]
1030
+ }
1031
+ }
1032
+ }
1033
+ }
1034
+ },
1035
+ "responses": {
1036
+ "200": {
1037
+ "description": "Bulk updated Blueprint Resources",
1038
+ "content": {
1039
+ "application/json": {
1040
+ "schema": {
1041
+ "type": "object",
1042
+ "properties": {
1043
+ "resources": {
1044
+ "type": "array",
1045
+ "items": {
1046
+ "anyOf": [
1047
+ {
1048
+ "$ref": "#/components/schemas/EditableBlueprintResource"
1049
+ },
1050
+ {
1051
+ "$ref": "#/components/schemas/InstalledBlueprintResource"
1052
+ }
1053
+ ]
1054
+ }
1055
+ }
1056
+ }
1057
+ }
1058
+ }
1059
+ }
1060
+ }
1061
+ }
1062
+ },
1063
+ "delete": {
1064
+ "operationId": "bulkDeleteBlueprintResources",
1065
+ "summary": "bulkDeleteBlueprintResources",
1066
+ "description": "Bulk delete resources in a Blueprint",
1067
+ "tags": [
1068
+ "Blueprints"
1069
+ ],
1070
+ "parameters": [
1071
+ {
1072
+ "in": "path",
1073
+ "required": true,
1074
+ "name": "blueprint_id",
1075
+ "schema": {
1076
+ "$ref": "#/components/schemas/BlueprintID"
1077
+ }
1078
+ }
1079
+ ],
1080
+ "requestBody": {
1081
+ "content": {
1082
+ "application/json": {
1083
+ "schema": {
1084
+ "type": "array",
1085
+ "items": {
1086
+ "$ref": "#/components/schemas/BlueprintResourceID"
1087
+ }
1088
+ }
1089
+ }
1090
+ }
1091
+ },
1092
+ "responses": {
1093
+ "200": {
1094
+ "description": "Bulk deleted Blueprint Resources",
1095
+ "content": {
1096
+ "application/json": {
1097
+ "schema": {
1098
+ "type": "object",
1099
+ "properties": {
1100
+ "resources": {
1101
+ "type": "array",
1102
+ "items": {
1103
+ "anyOf": [
1104
+ {
1105
+ "$ref": "#/components/schemas/EditableBlueprintResource"
1106
+ },
1107
+ {
1108
+ "$ref": "#/components/schemas/InstalledBlueprintResource"
1109
+ }
1110
+ ]
1111
+ }
1112
+ }
1113
+ }
1114
+ }
1115
+ }
1116
+ }
1117
+ }
1118
+ }
1119
+ }
1120
+ },
1121
+ "/v2/blueprint-manifest/blueprints/{blueprint_id}/resources/{resource_id}": {
1122
+ "put": {
1123
+ "operationId": "updateBlueprintResource",
1124
+ "summary": "updateBlueprintResource",
1125
+ "description": "Update a resource in a Blueprint",
1126
+ "tags": [
1127
+ "Blueprints"
1128
+ ],
1129
+ "parameters": [
1130
+ {
1131
+ "in": "path",
1132
+ "required": true,
1133
+ "name": "blueprint_id",
1134
+ "schema": {
1135
+ "$ref": "#/components/schemas/BlueprintID"
1136
+ }
1137
+ },
1138
+ {
1139
+ "in": "path",
1140
+ "required": true,
1141
+ "name": "resource_id",
1142
+ "schema": {
1143
+ "$ref": "#/components/schemas/BlueprintResourceID"
1144
+ }
1145
+ }
1146
+ ],
1147
+ "requestBody": {
1148
+ "content": {
1149
+ "application/json": {
1150
+ "schema": {
1151
+ "anyOf": [
1152
+ {
1153
+ "$ref": "#/components/schemas/EditableBlueprintResource"
1154
+ },
1155
+ {
1156
+ "$ref": "#/components/schemas/InstalledBlueprintResource"
1157
+ }
1158
+ ]
1159
+ }
1160
+ }
1161
+ }
1162
+ },
1163
+ "responses": {
1164
+ "200": {
1165
+ "description": "Updated Blueprint Resource",
1166
+ "content": {
1167
+ "application/json": {
1168
+ "schema": {
1169
+ "type": "object",
1170
+ "properties": {
1171
+ "resources": {
1172
+ "type": "array",
1173
+ "items": {
1174
+ "anyOf": [
1175
+ {
1176
+ "$ref": "#/components/schemas/EditableBlueprintResource"
1177
+ },
1178
+ {
1179
+ "$ref": "#/components/schemas/InstalledBlueprintResource"
1180
+ }
1181
+ ]
1182
+ }
1183
+ }
1184
+ }
1185
+ }
1186
+ }
1187
+ }
1188
+ }
1189
+ }
1190
+ },
1191
+ "delete": {
1192
+ "operationId": "deleteBlueprintResource",
1193
+ "summary": "deleteBlueprintResource",
1194
+ "description": "Delete a resource from a Blueprint",
1195
+ "tags": [
1196
+ "Blueprints"
1197
+ ],
1198
+ "parameters": [
1199
+ {
1200
+ "in": "path",
1201
+ "required": true,
1202
+ "name": "blueprint_id",
1203
+ "schema": {
1204
+ "$ref": "#/components/schemas/BlueprintID"
1205
+ }
1206
+ },
1207
+ {
1208
+ "in": "path",
1209
+ "required": true,
1210
+ "name": "resource_id",
1211
+ "schema": {
1212
+ "$ref": "#/components/schemas/BlueprintResourceID"
1213
+ }
1214
+ }
1215
+ ],
1216
+ "responses": {
1217
+ "200": {
1218
+ "description": "Deleted Blueprint Resource",
1219
+ "content": {
1220
+ "application/json": {
1221
+ "schema": {
1222
+ "type": "object",
1223
+ "properties": {
1224
+ "resources": {
1225
+ "type": "array",
1226
+ "items": {
1227
+ "anyOf": [
1228
+ {
1229
+ "$ref": "#/components/schemas/EditableBlueprintResource"
1230
+ },
1231
+ {
1232
+ "$ref": "#/components/schemas/InstalledBlueprintResource"
1233
+ }
1234
+ ]
1235
+ }
1236
+ }
1237
+ }
1238
+ }
1239
+ }
1240
+ }
1241
+ }
1242
+ }
1243
+ }
1244
+ },
1245
+ "/v2/blueprint-manifest/blueprints/{blueprint_id}/resources/{resource_id}:syncDependencies": {
1246
+ "post": {
1247
+ "operationId": "syncDependencies",
1248
+ "summary": "syncDependencies",
1249
+ "description": "Sync dependencies of a resource in a Blueprint",
1250
+ "tags": [
1251
+ "Blueprints"
1252
+ ],
1253
+ "parameters": [
1254
+ {
1255
+ "in": "path",
1256
+ "required": true,
1257
+ "name": "blueprint_id",
1258
+ "schema": {
1259
+ "$ref": "#/components/schemas/BlueprintID"
1260
+ }
1261
+ },
1262
+ {
1263
+ "in": "path",
1264
+ "required": true,
1265
+ "name": "resource_id",
1266
+ "schema": {
1267
+ "$ref": "#/components/schemas/BlueprintResourceID"
1268
+ }
1269
+ }
1270
+ ],
1271
+ "responses": {
1272
+ "200": {
1273
+ "description": "Synced dependencies of a resource in a Blueprint",
1274
+ "content": {
1275
+ "application/json": {
1276
+ "schema": {
1277
+ "type": "object",
1278
+ "properties": {
1279
+ "resources": {
1280
+ "type": "array",
1281
+ "items": {
1282
+ "anyOf": [
1283
+ {
1284
+ "$ref": "#/components/schemas/EditableBlueprintResource"
1285
+ },
1286
+ {
1287
+ "$ref": "#/components/schemas/InstalledBlueprintResource"
1288
+ }
1289
+ ]
1290
+ }
1291
+ }
1292
+ }
1293
+ }
1294
+ }
1295
+ }
1296
+ }
1297
+ }
1298
+ }
1299
+ },
1300
+ "/v2/blueprint-manifest/installations": {
1301
+ "post": {
1302
+ "operationId": "createInstallationJob",
1303
+ "summary": "Create Installation Job",
1304
+ "description": "Kick off a new installation job. Returns 202 Accepted with Location header pointing to the job resource and a strict idempotency-key header.\n",
1305
+ "tags": [
1306
+ "Installations"
1307
+ ],
1308
+ "requestBody": {
1309
+ "required": true,
1310
+ "content": {
1311
+ "application/json": {
1312
+ "schema": {
1313
+ "type": "object",
1314
+ "properties": {
1315
+ "source_blueprint_id": {
1316
+ "$ref": "#/components/schemas/BlueprintID"
1317
+ },
1318
+ "destination_org_id": {
1319
+ "type": "string",
1320
+ "description": "Destination organization ID"
1321
+ },
1322
+ "mode": {
1323
+ "type": "string",
1324
+ "enum": [
1325
+ "simple",
1326
+ "advanced"
1327
+ ],
1328
+ "description": "Installation mode"
1329
+ }
1330
+ },
1331
+ "required": [
1332
+ "source_blueprint_id",
1333
+ "destination_org_id",
1334
+ "mode"
1335
+ ]
1336
+ }
1337
+ }
1338
+ }
1339
+ },
1340
+ "responses": {
1341
+ "202": {
1342
+ "description": "Installation job started",
1343
+ "headers": {
1344
+ "Location": {
1345
+ "description": "URL to poll the job",
1346
+ "schema": {
1347
+ "type": "string"
1348
+ }
1349
+ },
1350
+ "Idempotency-Key": {
1351
+ "description": "Strict idempotency key",
1352
+ "schema": {
1353
+ "type": "string"
1354
+ }
1355
+ }
1356
+ },
1357
+ "content": {
1358
+ "application/json": {
1359
+ "schema": {
1360
+ "type": "object",
1361
+ "properties": {
1362
+ "job_id": {
1363
+ "$ref": "#/components/schemas/InstallationJobID"
1364
+ }
1365
+ }
1366
+ }
1367
+ }
1368
+ }
1369
+ }
1370
+ }
1371
+ }
1372
+ },
1373
+ "/v2/blueprint-manifest/installations/{job_id}": {
1374
+ "get": {
1375
+ "operationId": "getInstallationJob",
1376
+ "summary": "Get Installation Job",
1377
+ "description": "Poll current state of an installation job.",
1378
+ "tags": [
1379
+ "Installations"
1380
+ ],
1381
+ "parameters": [
1382
+ {
1383
+ "in": "path",
1384
+ "required": true,
1385
+ "name": "job_id",
1386
+ "schema": {
1387
+ "$ref": "#/components/schemas/InstallationJobID"
1388
+ }
1389
+ }
1390
+ ],
1391
+ "responses": {
1392
+ "200": {
1393
+ "description": "Installation job status",
1394
+ "content": {
1395
+ "application/json": {
1396
+ "schema": {
1397
+ "$ref": "#/components/schemas/InstallationJob"
1398
+ }
1399
+ }
1400
+ }
1401
+ }
1402
+ }
1403
+ }
1404
+ },
1405
+ "/v2/blueprint-manifest/installations/{job_id}:continue": {
1406
+ "post": {
1407
+ "operationId": "continueInstallationJob",
1408
+ "summary": "Continue Installation Job",
1409
+ "description": "Continue an installation job if it is waiting for user action.",
1410
+ "tags": [
1411
+ "Installations"
1412
+ ],
1413
+ "parameters": [
1414
+ {
1415
+ "in": "path",
1416
+ "required": true,
1417
+ "name": "job_id",
1418
+ "schema": {
1419
+ "$ref": "#/components/schemas/InstallationJobID"
1420
+ }
1421
+ }
1422
+ ],
1423
+ "responses": {
1424
+ "200": {
1425
+ "description": "Installation job continued",
1426
+ "content": {
1427
+ "application/json": {
1428
+ "schema": {
1429
+ "$ref": "#/components/schemas/InstallationJob"
1430
+ }
1431
+ }
1432
+ }
1433
+ }
1434
+ }
1435
+ }
1436
+ },
1437
+ "/v2/blueprint-manifest/installations/{job_id}:cancel": {
1438
+ "operationId": "cancelInstallationJob",
1439
+ "summary": "Cancel Installation Job",
1440
+ "description": "Cancel an installation job if it is still running.",
1441
+ "tags": [
1442
+ "Installations"
1443
+ ],
1444
+ "parameters": [
1445
+ {
1446
+ "in": "path",
1447
+ "required": true,
1448
+ "name": "job_id",
1449
+ "schema": {
1450
+ "$ref": "#/components/schemas/InstallationJobID"
1451
+ }
1452
+ }
1453
+ ],
1454
+ "responses": {
1455
+ "200": {
1456
+ "description": "Installation job cancelled",
1457
+ "content": {
1458
+ "application/json": {
1459
+ "schema": {
1460
+ "$ref": "#/components/schemas/InstallationJob"
1461
+ }
1462
+ }
1463
+ }
1464
+ }
1465
+ }
1466
+ },
1467
+ "/v2/blueprint-manifest/installations/{job_id}/events": {
1468
+ "get": {
1469
+ "operationId": "getInstallationJobEvents",
1470
+ "summary": "Get Installation Job Events",
1471
+ "description": "Event log for an installation job.",
1472
+ "tags": [
1473
+ "Installations"
1474
+ ],
1475
+ "parameters": [
1476
+ {
1477
+ "in": "path",
1478
+ "required": true,
1479
+ "name": "job_id",
1480
+ "schema": {
1481
+ "$ref": "#/components/schemas/InstallationJobID"
1482
+ }
1483
+ }
1484
+ ],
1485
+ "responses": {
1486
+ "200": {
1487
+ "description": "Event logs",
1488
+ "content": {
1489
+ "application/json": {
1490
+ "schema": {
1491
+ "type": "object",
1492
+ "properties": {
1493
+ "created_at": {
1494
+ "type": "string",
1495
+ "format": "date-time"
1496
+ },
1497
+ "status": {
1498
+ "type": "string",
1499
+ "enum": [
1500
+ "STARTED",
1501
+ "WAITING_USER_ACTION",
1502
+ "CANCELED",
1503
+ "IN_PROGRESS",
1504
+ "SUCCESS",
1505
+ "FAILED"
1506
+ ]
1507
+ },
1508
+ "errors": {
1509
+ "type": "array",
1510
+ "items": {
1511
+ "$ref": "#/components/schemas/FormattedError"
1512
+ }
1513
+ },
1514
+ "progress": {
1515
+ "type": "number",
1516
+ "format": "float",
1517
+ "minimum": 0,
1518
+ "maximum": 100,
1519
+ "description": "Progress completion (0-100)"
1520
+ },
1521
+ "events": {
1522
+ "type": "array",
1523
+ "items": {
1524
+ "$ref": "#/components/schemas/InstallationJobEvent"
1525
+ }
1526
+ }
1527
+ }
1528
+ }
1529
+ }
1530
+ }
1531
+ }
1532
+ }
1533
+ }
1534
+ }
1535
+ },
1536
+ "components": {
1537
+ "schemas": {
1538
+ "BlueprintID": {
1539
+ "type": "string",
1540
+ "description": "ID of a blueprint",
1541
+ "example": "c2d6cac8-bdd5-4ea2-8a6c-1cbdbe77b341"
1542
+ },
1543
+ "BlueprintResourceID": {
1544
+ "type": "string",
1545
+ "description": "ID of a blueprint resource",
1546
+ "example": "c2d6cac8-bdd5-4ea2-8a6c-1cbdbe77b341"
1547
+ },
1548
+ "CommonBlueprintFields": {
1549
+ "type": "object",
1550
+ "properties": {
1551
+ "id": {
1552
+ "$ref": "#/components/schemas/BlueprintID"
1553
+ },
1554
+ "title": {
1555
+ "type": "string"
1556
+ },
1557
+ "slug": {
1558
+ "type": "string"
1559
+ },
1560
+ "description": {
1561
+ "type": "object",
1562
+ "properties": {
1563
+ "preinstall": {
1564
+ "type": "string",
1565
+ "description": "Markdown content shown before starting to install the blueprint",
1566
+ "example": "This is the content of the preinstall.md file which contains the blueprint description.\n"
1567
+ },
1568
+ "postinstall": {
1569
+ "type": "string",
1570
+ "description": "Markdown content to be displayed when showing the plan to install blueprint",
1571
+ "example": "This is the content of the postinstall.md file\n"
1572
+ }
1573
+ }
1574
+ },
1575
+ "version": {
1576
+ "type": "string"
1577
+ }
1578
+ },
1579
+ "required": [
1580
+ "title"
1581
+ ]
1582
+ },
1583
+ "BlueprintResource": {
1584
+ "type": "object",
1585
+ "properties": {
1586
+ "id": {
1587
+ "$ref": "#/components/schemas/BlueprintResourceID"
1588
+ },
1589
+ "name": {
1590
+ "type": "string"
1591
+ },
1592
+ "type": {
1593
+ "$ref": "#/components/schemas/ResourceNodeType"
1594
+ },
1595
+ "address": {
1596
+ "type": "string"
1597
+ },
1598
+ "is_ready": {
1599
+ "type": "boolean",
1600
+ "description": "on EditableBlueprintResources, this indicates if the resource is ready to be exported and on InstalledBlueprintResources, this indicates if the resource is ready to be used"
1601
+ }
1602
+ },
1603
+ "required": [
1604
+ "id",
1605
+ "type"
1606
+ ]
1607
+ },
1608
+ "EditableBlueprintResource": {
1609
+ "allOf": [
1610
+ {
1611
+ "$ref": "#/components/schemas/BlueprintResource"
1612
+ },
1613
+ {
1614
+ "type": "object",
1615
+ "properties": {
1616
+ "note": {
1617
+ "type": "string",
1618
+ "description": "An internal note to help remember what's missing to export the resource"
1619
+ }
1620
+ }
1621
+ }
1622
+ ]
1623
+ },
1624
+ "InstalledBlueprintResource": {
1625
+ "allOf": [
1626
+ {
1627
+ "$ref": "#/components/schemas/BlueprintResource"
1628
+ },
1629
+ {
1630
+ "type": "object",
1631
+ "properties": {
1632
+ "impact_on_install": {
1633
+ "type": "string",
1634
+ "enum": [
1635
+ "create",
1636
+ "update",
1637
+ "no-op",
1638
+ "delete"
1639
+ ]
1640
+ }
1641
+ }
1642
+ }
1643
+ ]
1644
+ },
1645
+ "CustomBlueprint": {
1646
+ "allOf": [
1647
+ {
1648
+ "$ref": "#/components/schemas/CommonBlueprintFields"
1649
+ },
1650
+ {
1651
+ "type": "object",
1652
+ "properties": {
1653
+ "resources": {
1654
+ "type": "array",
1655
+ "items": {
1656
+ "$ref": "#/components/schemas/EditableBlueprintResource"
521
1657
  }
522
1658
  }
523
1659
  }
524
1660
  }
525
- }
526
- }
527
- },
528
- "/v1/blueprint-manifest/manifests": {
529
- "get": {
530
- "operationId": "listInstalledManifests",
531
- "summary": "listInstalledManifests",
532
- "description": "List Blueprint Manifests installed to the organization",
533
- "tags": [
534
- "Manifests"
535
- ],
536
- "responses": {
537
- "200": {
538
- "description": "Installed Blueprint Manifests in the organization",
539
- "content": {
540
- "application/json": {
541
- "schema": {
542
- "type": "object",
543
- "properties": {
544
- "total": {
545
- "type": "integer",
546
- "example": 1
547
- },
548
- "results": {
549
- "type": "array",
550
- "items": {
551
- "$ref": "#/components/schemas/ManifestItem"
552
- }
553
- }
554
- }
1661
+ ]
1662
+ },
1663
+ "FileBlueprint": {
1664
+ "allOf": [
1665
+ {
1666
+ "$ref": "#/components/schemas/CommonBlueprintFields"
1667
+ },
1668
+ {
1669
+ "type": "object",
1670
+ "properties": {
1671
+ "is_verified": {
1672
+ "type": "boolean",
1673
+ "description": "Whether the blueprint is verified by epilot"
1674
+ },
1675
+ "source_type": {
1676
+ "type": "string",
1677
+ "const": "file"
1678
+ },
1679
+ "resources": {
1680
+ "type": "array",
1681
+ "items": {
1682
+ "$ref": "#/components/schemas/InstalledBlueprintResource"
555
1683
  }
556
1684
  }
557
1685
  }
558
1686
  }
559
- }
560
- }
561
- },
562
- "/v1/blueprint-manifest/manifests/{manifest_id}": {
563
- "get": {
564
- "operationId": "getManifest",
565
- "summary": "getManifest",
566
- "description": "Get installed Manifest by ID",
567
- "tags": [
568
- "Manifests"
569
- ],
570
- "parameters": [
1687
+ ]
1688
+ },
1689
+ "MarketplaceBlueprint": {
1690
+ "allOf": [
571
1691
  {
572
- "in": "path",
573
- "required": true,
574
- "name": "manifest_id",
575
- "schema": {
576
- "$ref": "#/components/schemas/ManifestID"
577
- }
578
- }
579
- ],
580
- "responses": {
581
- "200": {
582
- "description": "Installed Blueprint Manifest in the Organization",
583
- "content": {
584
- "application/json": {
585
- "schema": {
586
- "$ref": "#/components/schemas/Manifest"
1692
+ "$ref": "#/components/schemas/CommonBlueprintFields"
1693
+ },
1694
+ {
1695
+ "type": "object",
1696
+ "properties": {
1697
+ "docs_url": {
1698
+ "type": "string",
1699
+ "description": "URL to the blueprint documentation"
1700
+ },
1701
+ "is_verified": {
1702
+ "type": "boolean",
1703
+ "description": "Whether the blueprint is verified by epilot"
1704
+ },
1705
+ "source_type": {
1706
+ "type": "string",
1707
+ "const": "marketplace"
1708
+ },
1709
+ "resources": {
1710
+ "type": "array",
1711
+ "items": {
1712
+ "$ref": "#/components/schemas/InstalledBlueprintResource"
587
1713
  }
588
1714
  }
589
1715
  }
590
1716
  }
591
- }
1717
+ ]
592
1718
  },
593
- "put": {
594
- "operationId": "updateManifest",
595
- "summary": "updateManifest",
596
- "description": "Update an installed manifest\n",
597
- "tags": [
598
- "Manifests"
599
- ],
600
- "parameters": [
1719
+ "DeployedBlueprint": {
1720
+ "allOf": [
601
1721
  {
602
- "in": "path",
603
- "required": true,
604
- "name": "manifest_id",
605
- "schema": {
606
- "$ref": "#/components/schemas/ManifestID"
607
- }
608
- }
609
- ],
610
- "requestBody": {
611
- "content": {
612
- "application/json": {
613
- "schema": {
614
- "$ref": "#/components/schemas/PutManifestPayload"
1722
+ "$ref": "#/components/schemas/CommonBlueprintFields"
1723
+ },
1724
+ {
1725
+ "type": "object",
1726
+ "properties": {
1727
+ "source_type": {
1728
+ "type": "string",
1729
+ "const": "deploy"
1730
+ },
1731
+ "resources": {
1732
+ "type": "array",
1733
+ "items": {
1734
+ "$ref": "#/components/schemas/InstalledBlueprintResource"
1735
+ }
615
1736
  }
616
1737
  }
617
1738
  }
618
- },
619
- "responses": {
620
- "200": {
621
- "description": "The updated Manifest",
622
- "content": {
623
- "application/json": {
624
- "schema": {
625
- "$ref": "#/components/schemas/Manifest"
1739
+ ]
1740
+ },
1741
+ "AppBlueprint": {
1742
+ "allOf": [
1743
+ {
1744
+ "$ref": "#/components/schemas/CommonBlueprintFields"
1745
+ },
1746
+ {
1747
+ "type": "object",
1748
+ "properties": {
1749
+ "is_verified": {
1750
+ "type": "boolean",
1751
+ "description": "Whether the blueprint is verified by epilot"
1752
+ },
1753
+ "source_type": {
1754
+ "type": "string",
1755
+ "const": "app"
1756
+ },
1757
+ "resources": {
1758
+ "type": "array",
1759
+ "items": {
1760
+ "$ref": "#/components/schemas/InstalledBlueprintResource"
626
1761
  }
627
1762
  }
628
1763
  }
629
1764
  }
630
- }
1765
+ ]
631
1766
  },
632
- "delete": {
633
- "operationId": "deleteManifest",
634
- "summary": "deleteManifest",
635
- "description": "Remove installed manifest from the org\n\nNote that this does not delete the installed resources of the Manifest!\n",
636
- "tags": [
637
- "Manifests"
638
- ],
639
- "parameters": [
1767
+ "Blueprint": {
1768
+ "oneOf": [
640
1769
  {
641
- "in": "path",
642
- "required": true,
643
- "name": "manifest_id",
644
- "schema": {
645
- "$ref": "#/components/schemas/ManifestID"
646
- }
1770
+ "$ref": "#/components/schemas/CustomBlueprint"
1771
+ },
1772
+ {
1773
+ "$ref": "#/components/schemas/FileBlueprint"
1774
+ },
1775
+ {
1776
+ "$ref": "#/components/schemas/MarketplaceBlueprint"
1777
+ },
1778
+ {
1779
+ "$ref": "#/components/schemas/DeployedBlueprint"
1780
+ },
1781
+ {
1782
+ "$ref": "#/components/schemas/AppBlueprint"
647
1783
  }
648
- ],
649
- "responses": {
650
- "200": {
651
- "description": "The deleted Manifest",
652
- "content": {
653
- "application/json": {
654
- "schema": {
655
- "$ref": "#/components/schemas/Manifest"
656
- }
657
- }
658
- }
1784
+ ]
1785
+ },
1786
+ "InstallationJobID": {
1787
+ "type": "string",
1788
+ "description": "ID of an installation job",
1789
+ "example": "c2d6cac8-bdd5-4ea2-8a6c-1cbdbe77b341"
1790
+ },
1791
+ "InstallationJob": {
1792
+ "type": "object",
1793
+ "properties": {
1794
+ "id": {
1795
+ "$ref": "#/components/schemas/InstallationJobID"
1796
+ },
1797
+ "source_blueprint_id": {
1798
+ "$ref": "#/components/schemas/BlueprintID"
1799
+ },
1800
+ "source_blueprint_type": {
1801
+ "type": "string",
1802
+ "enum": [
1803
+ "file",
1804
+ "marketplace",
1805
+ "deploy",
1806
+ "app"
1807
+ ]
1808
+ },
1809
+ "source_org_id": {
1810
+ "type": "string"
1811
+ },
1812
+ "destination_blueprint_id": {
1813
+ "$ref": "#/components/schemas/BlueprintID"
1814
+ },
1815
+ "destination_org_id": {
1816
+ "type": "string"
1817
+ },
1818
+ "status": {
1819
+ "type": "string",
1820
+ "enum": [
1821
+ "STARTED",
1822
+ "WAITING_USER_ACTION",
1823
+ "CANCELED",
1824
+ "IN_PROGRESS",
1825
+ "SUCCESS",
1826
+ "FAILED"
1827
+ ]
1828
+ },
1829
+ "triggered_at": {
1830
+ "type": "string",
1831
+ "format": "date-time"
1832
+ },
1833
+ "created_by": {
1834
+ "$ref": "#/components/schemas/CallerIdentity"
1835
+ },
1836
+ "updated_by": {
1837
+ "$ref": "#/components/schemas/CallerIdentity"
659
1838
  }
660
1839
  }
661
- }
662
- }
663
- },
664
- "components": {
665
- "schemas": {
1840
+ },
1841
+ "InstallationJobEvent": {
1842
+ "type": "object",
1843
+ "properties": {
1844
+ "timestamp": {
1845
+ "type": "string",
1846
+ "format": "date-time"
1847
+ },
1848
+ "message": {
1849
+ "type": "string"
1850
+ },
1851
+ "level": {
1852
+ "type": "string",
1853
+ "enum": [
1854
+ "info",
1855
+ "warning",
1856
+ "error"
1857
+ ]
1858
+ },
1859
+ "data": {
1860
+ "type": "object",
1861
+ "additionalProperties": {}
1862
+ }
1863
+ }
1864
+ },
666
1865
  "ManifestID": {
667
1866
  "type": "string",
668
1867
  "description": "ID of an imported / installed manifest",
@@ -1328,6 +2527,10 @@
1328
2527
  },
1329
2528
  "type": {
1330
2529
  "$ref": "#/components/schemas/ResourceNodeType"
2530
+ },
2531
+ "address": {
2532
+ "type": "string",
2533
+ "description": "Terraform address of the resource"
1331
2534
  }
1332
2535
  },
1333
2536
  "required": [