@epilot/blueprint-manifest-client 4.6.3 → 4.6.4

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,8 +1,8 @@
1
1
  {
2
- "openapi": "3.1.0",
2
+ "openapi": "3.0.2",
3
3
  "info": {
4
4
  "title": "Blueprint Manifest API",
5
- "version": "4.6.1",
5
+ "version": "4.6.4",
6
6
  "description": "Service to create and install Blueprint Manifest files"
7
7
  },
8
8
  "tags": [
@@ -29,6 +29,14 @@
29
29
  {
30
30
  "name": "Installations",
31
31
  "description": "Manage installation jobs"
32
+ },
33
+ {
34
+ "name": "Marketplace Listings",
35
+ "description": "Manage marketplace listings for blueprints"
36
+ },
37
+ {
38
+ "name": "Marketplace Listing Versions",
39
+ "description": "Manage versions for marketplace listings"
32
40
  }
33
41
  ],
34
42
  "security": [
@@ -936,6 +944,10 @@
936
944
  "slug": {
937
945
  "type": "string",
938
946
  "description": "Slug to enforce in this blueprint. Used in marketplace blueprints to keep it consistent with webflow."
947
+ },
948
+ "auto_enable_features": {
949
+ "type": "boolean",
950
+ "description": "If true, automatically enable required features in the destination org before installing"
939
951
  }
940
952
  },
941
953
  "required": [
@@ -1124,6 +1136,90 @@
1124
1136
  }
1125
1137
  }
1126
1138
  },
1139
+ "/v2/blueprint-manifest/blueprints/{blueprint_id}:verify": {
1140
+ "post": {
1141
+ "operationId": "verifyBlueprint",
1142
+ "summary": "verifyBlueprint",
1143
+ "description": "Start a blueprint verification job. Compares resource configurations between a source org\nand a destination org to verify that a sync/install was successful.\nReturns 202 Accepted with job_id. Poll GET /jobs/{job_id} for status, summary, and resource_results.\n",
1144
+ "tags": [
1145
+ "Blueprints"
1146
+ ],
1147
+ "parameters": [
1148
+ {
1149
+ "in": "path",
1150
+ "required": true,
1151
+ "name": "blueprint_id",
1152
+ "schema": {
1153
+ "$ref": "#/components/schemas/BlueprintID"
1154
+ }
1155
+ }
1156
+ ],
1157
+ "requestBody": {
1158
+ "required": true,
1159
+ "content": {
1160
+ "application/json": {
1161
+ "schema": {
1162
+ "type": "object",
1163
+ "required": [
1164
+ "source_org_id",
1165
+ "source_blueprint_id",
1166
+ "destination_org_id",
1167
+ "destination_blueprint_id"
1168
+ ],
1169
+ "properties": {
1170
+ "source_org_id": {
1171
+ "type": "string",
1172
+ "description": "Organization ID of the source org"
1173
+ },
1174
+ "source_blueprint_id": {
1175
+ "$ref": "#/components/schemas/BlueprintID"
1176
+ },
1177
+ "destination_org_id": {
1178
+ "type": "string",
1179
+ "description": "Organization ID of the destination org"
1180
+ },
1181
+ "destination_blueprint_id": {
1182
+ "$ref": "#/components/schemas/BlueprintID"
1183
+ },
1184
+ "source_auth_token": {
1185
+ "type": "string",
1186
+ "description": "Auth token with access to the source org (e.g. pipeline token). If not provided, the caller's bearer token is used for both orgs."
1187
+ }
1188
+ }
1189
+ }
1190
+ }
1191
+ }
1192
+ },
1193
+ "responses": {
1194
+ "202": {
1195
+ "description": "Verification job started",
1196
+ "headers": {
1197
+ "Location": {
1198
+ "description": "URL to poll the job",
1199
+ "schema": {
1200
+ "type": "string"
1201
+ }
1202
+ }
1203
+ },
1204
+ "content": {
1205
+ "application/json": {
1206
+ "schema": {
1207
+ "type": "object",
1208
+ "properties": {
1209
+ "job_id": {
1210
+ "$ref": "#/components/schemas/BlueprintJobID"
1211
+ }
1212
+ }
1213
+ }
1214
+ }
1215
+ }
1216
+ },
1217
+ "404": {
1218
+ "description": "Blueprint not found"
1219
+ }
1220
+ }
1221
+ }
1222
+ },
1127
1223
  "/v2/blueprint-manifest/blueprints/{blueprint_id}:export": {
1128
1224
  "post": {
1129
1225
  "operationId": "exportBlueprint",
@@ -1874,156 +1970,608 @@
1874
1970
  }
1875
1971
  }
1876
1972
  }
1877
- }
1878
- },
1879
- "components": {
1880
- "schemas": {
1881
- "BlueprintID": {
1882
- "type": "string",
1883
- "description": "ID of a blueprint",
1884
- "example": "c2d6cac8-bdd5-4ea2-8a6c-1cbdbe77b341"
1885
- },
1886
- "BlueprintResourceID": {
1887
- "type": "string",
1888
- "description": "ID of a blueprint resource",
1889
- "example": "c2d6cac8-bdd5-4ea2-8a6c-1cbdbe77b341"
1890
- },
1891
- "CommonBlueprintFields": {
1892
- "type": "object",
1893
- "properties": {
1894
- "id": {
1895
- "$ref": "#/components/schemas/BlueprintID"
1896
- },
1897
- "title": {
1898
- "type": "string"
1899
- },
1900
- "slug": {
1901
- "type": "string"
1902
- },
1903
- "description": {
1904
- "type": "object",
1905
- "properties": {
1906
- "preinstall": {
1907
- "type": "string",
1908
- "description": "Markdown content shown before starting to install the blueprint",
1909
- "example": "This is the content of the preinstall.md file which contains the blueprint description.\n"
1910
- },
1911
- "postinstall": {
1912
- "type": "string",
1913
- "description": "Markdown content to be displayed when showing the plan to install blueprint",
1914
- "example": "This is the content of the postinstall.md file\n"
1915
- }
1973
+ },
1974
+ "/v1/blueprints/{blueprint_id}/marketplace-listing": {
1975
+ "post": {
1976
+ "operationId": "createMarketplaceListing",
1977
+ "summary": "createMarketplaceListing",
1978
+ "description": "Create a marketplace listing for a blueprint. Returns 409 if one already exists.",
1979
+ "tags": [
1980
+ "Marketplace Listings"
1981
+ ],
1982
+ "parameters": [
1983
+ {
1984
+ "name": "blueprint_id",
1985
+ "in": "path",
1986
+ "required": true,
1987
+ "schema": {
1988
+ "type": "string"
1916
1989
  }
1917
- },
1918
- "version": {
1919
- "type": "string"
1920
- },
1921
- "deployments": {
1922
- "type": "array",
1923
- "items": {
1924
- "type": "object",
1925
- "properties": {
1926
- "source_org_id": {
1927
- "type": "string"
1928
- },
1929
- "source_blueprint_id": {
1930
- "type": "string"
1931
- },
1932
- "destination_org_id": {
1933
- "type": "string"
1934
- },
1935
- "destination_blueprint_id": {
1936
- "type": "string"
1937
- },
1938
- "triggered_at": {
1939
- "type": "string",
1940
- "format": "date-time"
1990
+ }
1991
+ ],
1992
+ "requestBody": {
1993
+ "required": true,
1994
+ "content": {
1995
+ "application/json": {
1996
+ "schema": {
1997
+ "type": "object",
1998
+ "required": [
1999
+ "name"
2000
+ ],
2001
+ "properties": {
2002
+ "name": {
2003
+ "type": "string"
2004
+ },
2005
+ "slug": {
2006
+ "type": "string"
2007
+ }
1941
2008
  }
1942
2009
  }
1943
2010
  }
1944
- },
1945
- "is_verified": {
1946
- "type": "boolean",
1947
- "description": "Whether the blueprint is verified by epilot"
1948
- },
1949
- "installation_status": {
1950
- "type": "string",
1951
- "enum": [
1952
- "IN_PROGRESS",
1953
- "CANCELED",
1954
- "PARTIAL",
1955
- "SUCCESS",
1956
- "FAILED"
1957
- ]
1958
- },
1959
- "created_at": {
1960
- "type": "string",
1961
- "format": "date-time"
1962
- },
1963
- "updated_at": {
1964
- "type": "string",
1965
- "format": "date-time"
1966
- },
1967
- "created_by": {
1968
- "$ref": "#/components/schemas/CallerIdentity"
1969
- },
1970
- "updated_by": {
1971
- "$ref": "#/components/schemas/CallerIdentity"
1972
- },
1973
- "installation_job_ids": {
1974
- "type": "array",
1975
- "items": {
1976
- "$ref": "#/components/schemas/BlueprintJobID"
1977
- }
1978
- },
1979
- "source_blueprint_id": {
1980
- "description": "ID of the blueprint that brought this blueprint to the destination org (deployed or installed)",
1981
- "$ref": "#/components/schemas/BlueprintID"
1982
- },
1983
- "archived": {
1984
- "type": "boolean",
1985
- "description": "Whether the blueprint is archived (soft-deleted). Archived blueprints are hidden from the main list.",
1986
- "default": false
1987
- },
1988
- "docs_url": {
1989
- "type": "string",
1990
- "description": "URL to the blueprint documentation"
1991
- },
1992
- "recommended_apps": {
1993
- "type": "array",
1994
- "items": {
1995
- "type": "string"
1996
- },
1997
- "description": "List of recommended app IDs for the blueprint"
1998
- },
1999
- "required_features": {
2000
- "type": "object",
2001
- "description": "Feature constraints for blueprint installation",
2002
- "properties": {
2003
- "enabled": {
2004
- "type": "array",
2005
- "items": {
2006
- "type": "string"
2007
- },
2008
- "description": "Features that must be enabled in the target org"
2009
- },
2010
- "disabled": {
2011
- "type": "array",
2012
- "items": {
2013
- "type": "string"
2014
- },
2015
- "description": "Features that must be disabled in the target org"
2011
+ }
2012
+ },
2013
+ "responses": {
2014
+ "201": {
2015
+ "description": "Marketplace listing created",
2016
+ "content": {
2017
+ "application/json": {
2018
+ "schema": {
2019
+ "$ref": "#/components/schemas/MarketplaceListing"
2020
+ }
2016
2021
  }
2017
2022
  }
2018
2023
  },
2019
- "zip_file_name": {
2020
- "type": "string",
2021
- "description": "Custom name for the exported zip file"
2024
+ "409": {
2025
+ "description": "Listing already exists for this blueprint"
2022
2026
  }
2023
- },
2024
- "required": [
2025
- "title"
2026
- ]
2027
+ }
2028
+ },
2029
+ "get": {
2030
+ "operationId": "getMarketplaceListing",
2031
+ "summary": "getMarketplaceListing",
2032
+ "description": "Get marketplace listing for a blueprint including all versions",
2033
+ "tags": [
2034
+ "Marketplace Listings"
2035
+ ],
2036
+ "parameters": [
2037
+ {
2038
+ "name": "blueprint_id",
2039
+ "in": "path",
2040
+ "required": true,
2041
+ "schema": {
2042
+ "type": "string"
2043
+ }
2044
+ }
2045
+ ],
2046
+ "responses": {
2047
+ "200": {
2048
+ "description": "Marketplace listing with versions",
2049
+ "content": {
2050
+ "application/json": {
2051
+ "schema": {
2052
+ "allOf": [
2053
+ {
2054
+ "$ref": "#/components/schemas/MarketplaceListing"
2055
+ },
2056
+ {
2057
+ "type": "object",
2058
+ "properties": {
2059
+ "versions": {
2060
+ "type": "array",
2061
+ "items": {
2062
+ "$ref": "#/components/schemas/MarketplaceListingVersion"
2063
+ }
2064
+ },
2065
+ "has_publishable_draft": {
2066
+ "type": "boolean"
2067
+ }
2068
+ }
2069
+ }
2070
+ ]
2071
+ }
2072
+ }
2073
+ }
2074
+ },
2075
+ "404": {
2076
+ "description": "Listing not found"
2077
+ }
2078
+ }
2079
+ }
2080
+ },
2081
+ "/v1/marketplace-listings/{listing_id}": {
2082
+ "get": {
2083
+ "operationId": "getMarketplaceListingById",
2084
+ "summary": "getMarketplaceListingById",
2085
+ "description": "Get marketplace listing by listing ID including all versions",
2086
+ "tags": [
2087
+ "Marketplace Listings"
2088
+ ],
2089
+ "parameters": [
2090
+ {
2091
+ "name": "listing_id",
2092
+ "in": "path",
2093
+ "required": true,
2094
+ "schema": {
2095
+ "type": "string"
2096
+ }
2097
+ }
2098
+ ],
2099
+ "responses": {
2100
+ "200": {
2101
+ "description": "Marketplace listing with versions",
2102
+ "content": {
2103
+ "application/json": {
2104
+ "schema": {
2105
+ "allOf": [
2106
+ {
2107
+ "$ref": "#/components/schemas/MarketplaceListing"
2108
+ },
2109
+ {
2110
+ "type": "object",
2111
+ "properties": {
2112
+ "versions": {
2113
+ "type": "array",
2114
+ "items": {
2115
+ "$ref": "#/components/schemas/MarketplaceListingVersion"
2116
+ }
2117
+ },
2118
+ "has_publishable_draft": {
2119
+ "type": "boolean"
2120
+ }
2121
+ }
2122
+ }
2123
+ ]
2124
+ }
2125
+ }
2126
+ }
2127
+ },
2128
+ "404": {
2129
+ "description": "Listing not found"
2130
+ }
2131
+ }
2132
+ },
2133
+ "patch": {
2134
+ "operationId": "updateMarketplaceListing",
2135
+ "summary": "updateMarketplaceListing",
2136
+ "description": "Update listing-level fields",
2137
+ "tags": [
2138
+ "Marketplace Listings"
2139
+ ],
2140
+ "parameters": [
2141
+ {
2142
+ "name": "listing_id",
2143
+ "in": "path",
2144
+ "required": true,
2145
+ "schema": {
2146
+ "type": "string"
2147
+ }
2148
+ }
2149
+ ],
2150
+ "requestBody": {
2151
+ "required": true,
2152
+ "content": {
2153
+ "application/json": {
2154
+ "schema": {
2155
+ "$ref": "#/components/schemas/MarketplaceListingUpdate"
2156
+ }
2157
+ }
2158
+ }
2159
+ },
2160
+ "responses": {
2161
+ "200": {
2162
+ "description": "Updated marketplace listing",
2163
+ "content": {
2164
+ "application/json": {
2165
+ "schema": {
2166
+ "$ref": "#/components/schemas/MarketplaceListing"
2167
+ }
2168
+ }
2169
+ }
2170
+ },
2171
+ "404": {
2172
+ "description": "Listing not found"
2173
+ }
2174
+ }
2175
+ },
2176
+ "delete": {
2177
+ "operationId": "deleteMarketplaceListing",
2178
+ "summary": "deleteMarketplaceListing",
2179
+ "description": "Delete listing and all versions",
2180
+ "tags": [
2181
+ "Marketplace Listings"
2182
+ ],
2183
+ "parameters": [
2184
+ {
2185
+ "name": "listing_id",
2186
+ "in": "path",
2187
+ "required": true,
2188
+ "schema": {
2189
+ "type": "string"
2190
+ }
2191
+ }
2192
+ ],
2193
+ "responses": {
2194
+ "204": {
2195
+ "description": "Listing deleted"
2196
+ },
2197
+ "404": {
2198
+ "description": "Listing not found"
2199
+ }
2200
+ }
2201
+ }
2202
+ },
2203
+ "/v1/marketplace-listings/{listing_id}/versions": {
2204
+ "post": {
2205
+ "operationId": "createMarketplaceListingVersion",
2206
+ "summary": "createMarketplaceListingVersion",
2207
+ "description": "Create a draft version; auto-snapshots resources, requiredFeatures, recommendedApps from current blueprint",
2208
+ "tags": [
2209
+ "Marketplace Listing Versions"
2210
+ ],
2211
+ "parameters": [
2212
+ {
2213
+ "name": "listing_id",
2214
+ "in": "path",
2215
+ "required": true,
2216
+ "schema": {
2217
+ "type": "string"
2218
+ }
2219
+ }
2220
+ ],
2221
+ "responses": {
2222
+ "201": {
2223
+ "description": "Draft version created",
2224
+ "content": {
2225
+ "application/json": {
2226
+ "schema": {
2227
+ "$ref": "#/components/schemas/MarketplaceListingVersion"
2228
+ }
2229
+ }
2230
+ }
2231
+ },
2232
+ "404": {
2233
+ "description": "Listing not found"
2234
+ }
2235
+ }
2236
+ },
2237
+ "get": {
2238
+ "operationId": "listMarketplaceListingVersions",
2239
+ "summary": "listMarketplaceListingVersions",
2240
+ "description": "List all versions for a listing, newest first",
2241
+ "tags": [
2242
+ "Marketplace Listing Versions"
2243
+ ],
2244
+ "parameters": [
2245
+ {
2246
+ "name": "listing_id",
2247
+ "in": "path",
2248
+ "required": true,
2249
+ "schema": {
2250
+ "type": "string"
2251
+ }
2252
+ }
2253
+ ],
2254
+ "responses": {
2255
+ "200": {
2256
+ "description": "List of versions",
2257
+ "content": {
2258
+ "application/json": {
2259
+ "schema": {
2260
+ "type": "object",
2261
+ "properties": {
2262
+ "versions": {
2263
+ "type": "array",
2264
+ "items": {
2265
+ "$ref": "#/components/schemas/MarketplaceListingVersion"
2266
+ }
2267
+ }
2268
+ }
2269
+ }
2270
+ }
2271
+ }
2272
+ }
2273
+ }
2274
+ }
2275
+ },
2276
+ "/v1/marketplace-listings/{listing_id}/versions/{version_id}": {
2277
+ "patch": {
2278
+ "operationId": "updateMarketplaceListingVersion",
2279
+ "summary": "updateMarketplaceListingVersion",
2280
+ "description": "Update updateNote, requiredFeatures, or recommendedApps on a draft version",
2281
+ "tags": [
2282
+ "Marketplace Listing Versions"
2283
+ ],
2284
+ "parameters": [
2285
+ {
2286
+ "name": "listing_id",
2287
+ "in": "path",
2288
+ "required": true,
2289
+ "schema": {
2290
+ "type": "string"
2291
+ }
2292
+ },
2293
+ {
2294
+ "name": "version_id",
2295
+ "in": "path",
2296
+ "required": true,
2297
+ "schema": {
2298
+ "type": "string"
2299
+ }
2300
+ }
2301
+ ],
2302
+ "requestBody": {
2303
+ "required": true,
2304
+ "content": {
2305
+ "application/json": {
2306
+ "schema": {
2307
+ "type": "object",
2308
+ "properties": {
2309
+ "update_note": {
2310
+ "type": "string",
2311
+ "nullable": true
2312
+ },
2313
+ "required_features": {
2314
+ "type": "array",
2315
+ "items": {
2316
+ "type": "string"
2317
+ }
2318
+ },
2319
+ "recommended_apps": {
2320
+ "type": "array",
2321
+ "items": {
2322
+ "type": "string"
2323
+ }
2324
+ }
2325
+ }
2326
+ }
2327
+ }
2328
+ }
2329
+ },
2330
+ "responses": {
2331
+ "200": {
2332
+ "description": "Updated version",
2333
+ "content": {
2334
+ "application/json": {
2335
+ "schema": {
2336
+ "$ref": "#/components/schemas/MarketplaceListingVersion"
2337
+ }
2338
+ }
2339
+ }
2340
+ },
2341
+ "400": {
2342
+ "description": "Cannot update non-draft version"
2343
+ },
2344
+ "404": {
2345
+ "description": "Version not found"
2346
+ }
2347
+ }
2348
+ }
2349
+ },
2350
+ "/v1/marketplace-listings/{listing_id}/versions/{version_id}/publish": {
2351
+ "post": {
2352
+ "operationId": "publishMarketplaceListingVersion",
2353
+ "summary": "publishMarketplaceListingVersion",
2354
+ "description": "Publish a draft version; archives the previous live version",
2355
+ "tags": [
2356
+ "Marketplace Listing Versions"
2357
+ ],
2358
+ "parameters": [
2359
+ {
2360
+ "name": "listing_id",
2361
+ "in": "path",
2362
+ "required": true,
2363
+ "schema": {
2364
+ "type": "string"
2365
+ }
2366
+ },
2367
+ {
2368
+ "name": "version_id",
2369
+ "in": "path",
2370
+ "required": true,
2371
+ "schema": {
2372
+ "type": "string"
2373
+ }
2374
+ }
2375
+ ],
2376
+ "requestBody": {
2377
+ "required": true,
2378
+ "content": {
2379
+ "application/json": {
2380
+ "schema": {
2381
+ "type": "object",
2382
+ "required": [
2383
+ "version_name"
2384
+ ],
2385
+ "properties": {
2386
+ "version_name": {
2387
+ "type": "string"
2388
+ },
2389
+ "update_note": {
2390
+ "type": "string",
2391
+ "nullable": true
2392
+ }
2393
+ }
2394
+ }
2395
+ }
2396
+ }
2397
+ },
2398
+ "responses": {
2399
+ "200": {
2400
+ "description": "Published version",
2401
+ "content": {
2402
+ "application/json": {
2403
+ "schema": {
2404
+ "$ref": "#/components/schemas/MarketplaceListingVersion"
2405
+ }
2406
+ }
2407
+ }
2408
+ },
2409
+ "400": {
2410
+ "description": "Version not publishable or version_name already taken"
2411
+ },
2412
+ "404": {
2413
+ "description": "Version not found"
2414
+ }
2415
+ }
2416
+ }
2417
+ }
2418
+ },
2419
+ "components": {
2420
+ "schemas": {
2421
+ "BlueprintID": {
2422
+ "type": "string",
2423
+ "description": "ID of a blueprint",
2424
+ "example": "c2d6cac8-bdd5-4ea2-8a6c-1cbdbe77b341"
2425
+ },
2426
+ "BlueprintResourceID": {
2427
+ "type": "string",
2428
+ "description": "ID of a blueprint resource",
2429
+ "example": "c2d6cac8-bdd5-4ea2-8a6c-1cbdbe77b341"
2430
+ },
2431
+ "CommonBlueprintFields": {
2432
+ "type": "object",
2433
+ "properties": {
2434
+ "id": {
2435
+ "$ref": "#/components/schemas/BlueprintID"
2436
+ },
2437
+ "title": {
2438
+ "type": "string"
2439
+ },
2440
+ "slug": {
2441
+ "type": "string"
2442
+ },
2443
+ "description": {
2444
+ "type": "object",
2445
+ "properties": {
2446
+ "preinstall": {
2447
+ "type": "string",
2448
+ "description": "Markdown content shown before starting to install the blueprint",
2449
+ "example": "This is the content of the preinstall.md file which contains the blueprint description.\n"
2450
+ },
2451
+ "postinstall": {
2452
+ "type": "string",
2453
+ "description": "Markdown content to be displayed when showing the plan to install blueprint",
2454
+ "example": "This is the content of the postinstall.md file\n"
2455
+ }
2456
+ }
2457
+ },
2458
+ "version": {
2459
+ "type": "string"
2460
+ },
2461
+ "deployments": {
2462
+ "type": "array",
2463
+ "items": {
2464
+ "type": "object",
2465
+ "properties": {
2466
+ "source_org_id": {
2467
+ "type": "string"
2468
+ },
2469
+ "source_blueprint_id": {
2470
+ "type": "string"
2471
+ },
2472
+ "destination_org_id": {
2473
+ "type": "string"
2474
+ },
2475
+ "destination_blueprint_id": {
2476
+ "type": "string"
2477
+ },
2478
+ "triggered_at": {
2479
+ "type": "string",
2480
+ "format": "date-time"
2481
+ },
2482
+ "note": {
2483
+ "type": "string",
2484
+ "description": "User-provided note about this synchronization"
2485
+ }
2486
+ }
2487
+ }
2488
+ },
2489
+ "is_verified": {
2490
+ "type": "boolean",
2491
+ "description": "Whether the blueprint is verified by epilot"
2492
+ },
2493
+ "installation_status": {
2494
+ "type": "string",
2495
+ "enum": [
2496
+ "IN_PROGRESS",
2497
+ "CANCELED",
2498
+ "PARTIAL",
2499
+ "SUCCESS",
2500
+ "FAILED"
2501
+ ]
2502
+ },
2503
+ "created_at": {
2504
+ "type": "string",
2505
+ "format": "date-time"
2506
+ },
2507
+ "updated_at": {
2508
+ "type": "string",
2509
+ "format": "date-time"
2510
+ },
2511
+ "created_by": {
2512
+ "$ref": "#/components/schemas/CallerIdentity"
2513
+ },
2514
+ "updated_by": {
2515
+ "$ref": "#/components/schemas/CallerIdentity"
2516
+ },
2517
+ "installation_job_ids": {
2518
+ "type": "array",
2519
+ "items": {
2520
+ "$ref": "#/components/schemas/BlueprintJobID"
2521
+ }
2522
+ },
2523
+ "source_blueprint_id": {
2524
+ "description": "ID of the blueprint that brought this blueprint to the destination org (deployed or installed)",
2525
+ "allOf": [
2526
+ {
2527
+ "$ref": "#/components/schemas/BlueprintID"
2528
+ }
2529
+ ]
2530
+ },
2531
+ "archived": {
2532
+ "type": "boolean",
2533
+ "description": "Whether the blueprint is archived (soft-deleted). Archived blueprints are hidden from the main list.",
2534
+ "default": false
2535
+ },
2536
+ "docs_url": {
2537
+ "type": "string",
2538
+ "description": "URL to the blueprint documentation"
2539
+ },
2540
+ "recommended_apps": {
2541
+ "type": "array",
2542
+ "items": {
2543
+ "type": "string"
2544
+ },
2545
+ "description": "List of recommended app IDs for the blueprint"
2546
+ },
2547
+ "required_features": {
2548
+ "type": "object",
2549
+ "description": "Feature constraints for blueprint installation",
2550
+ "properties": {
2551
+ "enabled": {
2552
+ "type": "array",
2553
+ "items": {
2554
+ "type": "string"
2555
+ },
2556
+ "description": "Features that must be enabled in the target org"
2557
+ },
2558
+ "disabled": {
2559
+ "type": "array",
2560
+ "items": {
2561
+ "type": "string"
2562
+ },
2563
+ "description": "Features that must be disabled in the target org"
2564
+ }
2565
+ }
2566
+ },
2567
+ "zip_file_name": {
2568
+ "type": "string",
2569
+ "description": "Custom name for the exported zip file"
2570
+ }
2571
+ },
2572
+ "required": [
2573
+ "title"
2574
+ ]
2027
2575
  },
2028
2576
  "BlueprintResource": {
2029
2577
  "type": "object",
@@ -2156,6 +2704,23 @@
2156
2704
  "type": "string"
2157
2705
  }
2158
2706
  },
2707
+ "required_features": {
2708
+ "type": "object",
2709
+ "properties": {
2710
+ "enabled": {
2711
+ "type": "array",
2712
+ "items": {
2713
+ "type": "string"
2714
+ }
2715
+ },
2716
+ "disabled": {
2717
+ "type": "array",
2718
+ "items": {
2719
+ "type": "string"
2720
+ }
2721
+ }
2722
+ }
2723
+ },
2159
2724
  "created_at": {
2160
2725
  "type": "string",
2161
2726
  "format": "date-time"
@@ -2203,7 +2768,9 @@
2203
2768
  },
2204
2769
  "source_type": {
2205
2770
  "type": "string",
2206
- "const": "custom"
2771
+ "enum": [
2772
+ "custom"
2773
+ ]
2207
2774
  }
2208
2775
  }
2209
2776
  }
@@ -2222,7 +2789,9 @@
2222
2789
  "properties": {
2223
2790
  "source_type": {
2224
2791
  "type": "string",
2225
- "const": "file"
2792
+ "enum": [
2793
+ "file"
2794
+ ]
2226
2795
  },
2227
2796
  "resources": {
2228
2797
  "type": "array",
@@ -2251,7 +2820,9 @@
2251
2820
  },
2252
2821
  "source_type": {
2253
2822
  "type": "string",
2254
- "const": "marketplace"
2823
+ "enum": [
2824
+ "marketplace"
2825
+ ]
2255
2826
  },
2256
2827
  "resources": {
2257
2828
  "type": "array",
@@ -2347,7 +2918,9 @@
2347
2918
  "properties": {
2348
2919
  "source_type": {
2349
2920
  "type": "string",
2350
- "const": "deploy"
2921
+ "enum": [
2922
+ "deploy"
2923
+ ]
2351
2924
  },
2352
2925
  "resources": {
2353
2926
  "type": "array",
@@ -2372,7 +2945,9 @@
2372
2945
  "properties": {
2373
2946
  "source_type": {
2374
2947
  "type": "string",
2375
- "const": "app"
2948
+ "enum": [
2949
+ "app"
2950
+ ]
2376
2951
  },
2377
2952
  "resources": {
2378
2953
  "type": "array",
@@ -2523,6 +3098,9 @@
2523
3098
  },
2524
3099
  {
2525
3100
  "$ref": "#/components/schemas/BlueprintValidateJob"
3101
+ },
3102
+ {
3103
+ "$ref": "#/components/schemas/BlueprintVerificationJob"
2526
3104
  }
2527
3105
  ]
2528
3106
  },
@@ -2582,7 +3160,131 @@
2582
3160
  }
2583
3161
  }
2584
3162
  }
2585
- ]
3163
+ ]
3164
+ },
3165
+ "BlueprintVerificationJob": {
3166
+ "allOf": [
3167
+ {
3168
+ "$ref": "#/components/schemas/CommonBlueprintJobFields"
3169
+ },
3170
+ {
3171
+ "type": "object",
3172
+ "properties": {
3173
+ "source_org_id": {
3174
+ "type": "string"
3175
+ },
3176
+ "source_blueprint_id": {
3177
+ "$ref": "#/components/schemas/BlueprintID"
3178
+ },
3179
+ "destination_org_id": {
3180
+ "type": "string"
3181
+ },
3182
+ "destination_blueprint_id": {
3183
+ "$ref": "#/components/schemas/BlueprintID"
3184
+ },
3185
+ "status": {
3186
+ "type": "string",
3187
+ "enum": [
3188
+ "IN_PROGRESS",
3189
+ "SUCCESS",
3190
+ "FAILED"
3191
+ ]
3192
+ },
3193
+ "summary": {
3194
+ "$ref": "#/components/schemas/VerificationSummary"
3195
+ },
3196
+ "resource_results": {
3197
+ "type": "array",
3198
+ "items": {
3199
+ "$ref": "#/components/schemas/ResourceVerificationResult"
3200
+ }
3201
+ },
3202
+ "resource_results_s3_key": {
3203
+ "type": "string",
3204
+ "description": "S3 key for detailed results when too large for inline storage."
3205
+ }
3206
+ }
3207
+ }
3208
+ ]
3209
+ },
3210
+ "VerificationSummary": {
3211
+ "type": "object",
3212
+ "properties": {
3213
+ "total_resources": {
3214
+ "type": "integer"
3215
+ },
3216
+ "matched": {
3217
+ "type": "integer"
3218
+ },
3219
+ "mismatched": {
3220
+ "type": "integer"
3221
+ },
3222
+ "missing_in_destination": {
3223
+ "type": "integer"
3224
+ },
3225
+ "missing_in_source": {
3226
+ "type": "integer"
3227
+ },
3228
+ "fetch_errors": {
3229
+ "type": "integer"
3230
+ }
3231
+ }
3232
+ },
3233
+ "ResourceVerificationResult": {
3234
+ "type": "object",
3235
+ "properties": {
3236
+ "resource_type": {
3237
+ "$ref": "#/components/schemas/ResourceNodeType"
3238
+ },
3239
+ "resource_name": {
3240
+ "type": "string"
3241
+ },
3242
+ "source_resource_id": {
3243
+ "type": "string"
3244
+ },
3245
+ "destination_resource_id": {
3246
+ "type": "string"
3247
+ },
3248
+ "status": {
3249
+ "type": "string",
3250
+ "enum": [
3251
+ "matched",
3252
+ "mismatched",
3253
+ "missing_in_destination",
3254
+ "missing_in_source",
3255
+ "fetch_error"
3256
+ ]
3257
+ },
3258
+ "field_diffs": {
3259
+ "type": "array",
3260
+ "items": {
3261
+ "$ref": "#/components/schemas/FieldDiff"
3262
+ }
3263
+ },
3264
+ "error": {
3265
+ "type": "string"
3266
+ }
3267
+ }
3268
+ },
3269
+ "FieldDiff": {
3270
+ "type": "object",
3271
+ "properties": {
3272
+ "path": {
3273
+ "type": "string",
3274
+ "description": "JSON path to the differing field (e.g. \"steps[2].name\")"
3275
+ },
3276
+ "source_value": {},
3277
+ "destination_value": {},
3278
+ "diff_type": {
3279
+ "type": "string",
3280
+ "enum": [
3281
+ "value_changed",
3282
+ "field_missing_in_destination",
3283
+ "field_missing_in_source",
3284
+ "type_mismatch"
3285
+ ]
3286
+ }
3287
+ }
2586
3288
  },
2587
3289
  "BlueprintJobEvent": {
2588
3290
  "type": "object",
@@ -2751,7 +3453,8 @@
2751
3453
  "validation_rule",
2752
3454
  "flow_template",
2753
3455
  "taxonomy",
2754
- "notification_template"
3456
+ "notification_template",
3457
+ "environment_variable"
2755
3458
  ]
2756
3459
  },
2757
3460
  "PlanChanges": {
@@ -3471,6 +4174,426 @@
3471
4174
  }
3472
4175
  }
3473
4176
  }
4177
+ },
4178
+ "MarketplaceListing": {
4179
+ "type": "object",
4180
+ "required": [
4181
+ "id",
4182
+ "blueprint_id",
4183
+ "name",
4184
+ "slug",
4185
+ "status"
4186
+ ],
4187
+ "properties": {
4188
+ "id": {
4189
+ "type": "string",
4190
+ "format": "uuid"
4191
+ },
4192
+ "blueprint_id": {
4193
+ "type": "string"
4194
+ },
4195
+ "name": {
4196
+ "type": "string"
4197
+ },
4198
+ "slug": {
4199
+ "type": "string"
4200
+ },
4201
+ "logo": {
4202
+ "type": "string",
4203
+ "nullable": true
4204
+ },
4205
+ "documentation_url": {
4206
+ "type": "string",
4207
+ "nullable": true
4208
+ },
4209
+ "pricing_type": {
4210
+ "type": "string",
4211
+ "enum": [
4212
+ "free",
4213
+ "paid",
4214
+ "freemium",
4215
+ "contact_us"
4216
+ ],
4217
+ "nullable": true
4218
+ },
4219
+ "support_email": {
4220
+ "type": "string",
4221
+ "nullable": true
4222
+ },
4223
+ "portal_description": {
4224
+ "type": "string",
4225
+ "nullable": true
4226
+ },
4227
+ "teaser_name": {
4228
+ "type": "string",
4229
+ "nullable": true
4230
+ },
4231
+ "teaser_short_description": {
4232
+ "type": "string",
4233
+ "nullable": true
4234
+ },
4235
+ "teaser_thumbnail": {
4236
+ "type": "string",
4237
+ "nullable": true
4238
+ },
4239
+ "details_page_title": {
4240
+ "type": "string",
4241
+ "nullable": true
4242
+ },
4243
+ "details_page_description": {
4244
+ "type": "string",
4245
+ "nullable": true
4246
+ },
4247
+ "details_page_hero_image": {
4248
+ "type": "string",
4249
+ "nullable": true
4250
+ },
4251
+ "details_page_carousel": {
4252
+ "type": "array",
4253
+ "items": {
4254
+ "type": "string"
4255
+ },
4256
+ "nullable": true
4257
+ },
4258
+ "documentation_link": {
4259
+ "type": "string",
4260
+ "nullable": true
4261
+ },
4262
+ "resources_section_description": {
4263
+ "type": "string",
4264
+ "nullable": true
4265
+ },
4266
+ "resources_section_benefits_title": {
4267
+ "type": "string",
4268
+ "nullable": true
4269
+ },
4270
+ "resources_section_benefits_list": {
4271
+ "type": "string",
4272
+ "nullable": true
4273
+ },
4274
+ "resources_section_process_details": {
4275
+ "type": "string",
4276
+ "nullable": true
4277
+ },
4278
+ "partner": {
4279
+ "type": "string",
4280
+ "nullable": true
4281
+ },
4282
+ "partner_subtext": {
4283
+ "type": "string",
4284
+ "nullable": true
4285
+ },
4286
+ "partner_logo": {
4287
+ "type": "string",
4288
+ "nullable": true
4289
+ },
4290
+ "partner_website_link": {
4291
+ "type": "string",
4292
+ "nullable": true
4293
+ },
4294
+ "last_updated_on": {
4295
+ "type": "string",
4296
+ "nullable": true
4297
+ },
4298
+ "requires_customer_portal": {
4299
+ "type": "boolean",
4300
+ "nullable": true
4301
+ },
4302
+ "process_details_section_title": {
4303
+ "type": "string",
4304
+ "nullable": true
4305
+ },
4306
+ "is_new_blueprint": {
4307
+ "type": "boolean",
4308
+ "nullable": true
4309
+ },
4310
+ "available_in": {
4311
+ "type": "string",
4312
+ "nullable": true
4313
+ },
4314
+ "testimonials": {
4315
+ "type": "array",
4316
+ "items": {
4317
+ "type": "string"
4318
+ },
4319
+ "nullable": true
4320
+ },
4321
+ "installation_link": {
4322
+ "type": "string",
4323
+ "nullable": true
4324
+ },
4325
+ "installation_slug": {
4326
+ "type": "string",
4327
+ "nullable": true
4328
+ },
4329
+ "demo_form_link": {
4330
+ "type": "string",
4331
+ "nullable": true
4332
+ },
4333
+ "order": {
4334
+ "type": "number",
4335
+ "nullable": true
4336
+ },
4337
+ "categories": {
4338
+ "type": "array",
4339
+ "items": {
4340
+ "type": "string"
4341
+ },
4342
+ "nullable": true
4343
+ },
4344
+ "main_category": {
4345
+ "type": "array",
4346
+ "items": {
4347
+ "type": "string"
4348
+ },
4349
+ "nullable": true
4350
+ },
4351
+ "status": {
4352
+ "type": "string",
4353
+ "enum": [
4354
+ "draft",
4355
+ "live",
4356
+ "archived"
4357
+ ]
4358
+ },
4359
+ "created_at": {
4360
+ "type": "string",
4361
+ "format": "date-time"
4362
+ },
4363
+ "updated_at": {
4364
+ "type": "string",
4365
+ "format": "date-time"
4366
+ }
4367
+ }
4368
+ },
4369
+ "MarketplaceListingUpdate": {
4370
+ "type": "object",
4371
+ "properties": {
4372
+ "name": {
4373
+ "type": "string"
4374
+ },
4375
+ "slug": {
4376
+ "type": "string"
4377
+ },
4378
+ "logo": {
4379
+ "type": "string",
4380
+ "nullable": true
4381
+ },
4382
+ "documentation_url": {
4383
+ "type": "string",
4384
+ "nullable": true
4385
+ },
4386
+ "pricing_type": {
4387
+ "type": "string",
4388
+ "enum": [
4389
+ "free",
4390
+ "paid",
4391
+ "freemium",
4392
+ "contact_us"
4393
+ ],
4394
+ "nullable": true
4395
+ },
4396
+ "support_email": {
4397
+ "type": "string",
4398
+ "nullable": true
4399
+ },
4400
+ "portal_description": {
4401
+ "type": "string",
4402
+ "nullable": true
4403
+ },
4404
+ "teaser_name": {
4405
+ "type": "string",
4406
+ "nullable": true
4407
+ },
4408
+ "teaser_short_description": {
4409
+ "type": "string",
4410
+ "nullable": true
4411
+ },
4412
+ "teaser_thumbnail": {
4413
+ "type": "string",
4414
+ "nullable": true
4415
+ },
4416
+ "details_page_title": {
4417
+ "type": "string",
4418
+ "nullable": true
4419
+ },
4420
+ "details_page_description": {
4421
+ "type": "string",
4422
+ "nullable": true
4423
+ },
4424
+ "details_page_hero_image": {
4425
+ "type": "string",
4426
+ "nullable": true
4427
+ },
4428
+ "details_page_carousel": {
4429
+ "type": "array",
4430
+ "items": {
4431
+ "type": "string"
4432
+ },
4433
+ "nullable": true
4434
+ },
4435
+ "documentation_link": {
4436
+ "type": "string",
4437
+ "nullable": true
4438
+ },
4439
+ "resources_section_description": {
4440
+ "type": "string",
4441
+ "nullable": true
4442
+ },
4443
+ "resources_section_benefits_title": {
4444
+ "type": "string",
4445
+ "nullable": true
4446
+ },
4447
+ "resources_section_benefits_list": {
4448
+ "type": "string",
4449
+ "nullable": true
4450
+ },
4451
+ "resources_section_process_details": {
4452
+ "type": "string",
4453
+ "nullable": true
4454
+ },
4455
+ "partner": {
4456
+ "type": "string",
4457
+ "nullable": true
4458
+ },
4459
+ "partner_subtext": {
4460
+ "type": "string",
4461
+ "nullable": true
4462
+ },
4463
+ "partner_logo": {
4464
+ "type": "string",
4465
+ "nullable": true
4466
+ },
4467
+ "partner_website_link": {
4468
+ "type": "string",
4469
+ "nullable": true
4470
+ },
4471
+ "last_updated_on": {
4472
+ "type": "string",
4473
+ "nullable": true
4474
+ },
4475
+ "requires_customer_portal": {
4476
+ "type": "boolean",
4477
+ "nullable": true
4478
+ },
4479
+ "process_details_section_title": {
4480
+ "type": "string",
4481
+ "nullable": true
4482
+ },
4483
+ "is_new_blueprint": {
4484
+ "type": "boolean",
4485
+ "nullable": true
4486
+ },
4487
+ "available_in": {
4488
+ "type": "string",
4489
+ "nullable": true
4490
+ },
4491
+ "testimonials": {
4492
+ "type": "array",
4493
+ "items": {
4494
+ "type": "string"
4495
+ },
4496
+ "nullable": true
4497
+ },
4498
+ "installation_link": {
4499
+ "type": "string",
4500
+ "nullable": true
4501
+ },
4502
+ "installation_slug": {
4503
+ "type": "string",
4504
+ "nullable": true
4505
+ },
4506
+ "demo_form_link": {
4507
+ "type": "string",
4508
+ "nullable": true
4509
+ },
4510
+ "order": {
4511
+ "type": "number",
4512
+ "nullable": true
4513
+ },
4514
+ "categories": {
4515
+ "type": "array",
4516
+ "items": {
4517
+ "type": "string"
4518
+ },
4519
+ "nullable": true
4520
+ },
4521
+ "main_category": {
4522
+ "type": "array",
4523
+ "items": {
4524
+ "type": "string"
4525
+ },
4526
+ "nullable": true
4527
+ }
4528
+ }
4529
+ },
4530
+ "MarketplaceListingVersion": {
4531
+ "type": "object",
4532
+ "required": [
4533
+ "id",
4534
+ "listing_id",
4535
+ "status",
4536
+ "draft_label",
4537
+ "created_at"
4538
+ ],
4539
+ "properties": {
4540
+ "id": {
4541
+ "type": "string",
4542
+ "format": "uuid"
4543
+ },
4544
+ "listing_id": {
4545
+ "type": "string"
4546
+ },
4547
+ "status": {
4548
+ "type": "string",
4549
+ "enum": [
4550
+ "draft",
4551
+ "published",
4552
+ "archived"
4553
+ ]
4554
+ },
4555
+ "version_name": {
4556
+ "type": "string",
4557
+ "nullable": true
4558
+ },
4559
+ "draft_label": {
4560
+ "type": "string"
4561
+ },
4562
+ "update_note": {
4563
+ "type": "string",
4564
+ "nullable": true
4565
+ },
4566
+ "resources": {
4567
+ "type": "array",
4568
+ "items": {
4569
+ "type": "object"
4570
+ },
4571
+ "nullable": true
4572
+ },
4573
+ "required_features": {
4574
+ "type": "array",
4575
+ "items": {
4576
+ "type": "string"
4577
+ },
4578
+ "nullable": true
4579
+ },
4580
+ "recommended_apps": {
4581
+ "type": "array",
4582
+ "items": {
4583
+ "type": "string"
4584
+ },
4585
+ "nullable": true
4586
+ },
4587
+ "created_at": {
4588
+ "type": "string",
4589
+ "format": "date-time"
4590
+ },
4591
+ "published_at": {
4592
+ "type": "string",
4593
+ "format": "date-time",
4594
+ "nullable": true
4595
+ }
4596
+ }
3474
4597
  }
3475
4598
  },
3476
4599
  "parameters": {