@epilot/blueprint-manifest-client 2.11.0 → 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": [
@@ -679,10 +687,1181 @@
679
687
  }
680
688
  }
681
689
  }
682
- }
683
- },
684
- "components": {
685
- "schemas": {
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"
1657
+ }
1658
+ }
1659
+ }
1660
+ }
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"
1683
+ }
1684
+ }
1685
+ }
1686
+ }
1687
+ ]
1688
+ },
1689
+ "MarketplaceBlueprint": {
1690
+ "allOf": [
1691
+ {
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"
1713
+ }
1714
+ }
1715
+ }
1716
+ }
1717
+ ]
1718
+ },
1719
+ "DeployedBlueprint": {
1720
+ "allOf": [
1721
+ {
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
+ }
1736
+ }
1737
+ }
1738
+ }
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"
1761
+ }
1762
+ }
1763
+ }
1764
+ }
1765
+ ]
1766
+ },
1767
+ "Blueprint": {
1768
+ "oneOf": [
1769
+ {
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"
1783
+ }
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"
1838
+ }
1839
+ }
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
+ },
686
1865
  "ManifestID": {
687
1866
  "type": "string",
688
1867
  "description": "ID of an imported / installed manifest",