@epilot/blueprint-manifest-client 4.6.3 → 4.7.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,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,806 @@
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": {
2082
+ "get": {
2083
+ "operationId": "listMarketplaceListings",
2084
+ "summary": "listMarketplaceListings",
2085
+ "description": "List all marketplace listings for the authenticated organization",
2086
+ "tags": [
2087
+ "Marketplace Listings"
2088
+ ],
2089
+ "security": [
2090
+ {
2091
+ "EpilotAuth": []
2092
+ }
2093
+ ],
2094
+ "responses": {
2095
+ "200": {
2096
+ "description": "List of marketplace listings",
2097
+ "content": {
2098
+ "application/json": {
2099
+ "schema": {
2100
+ "type": "object",
2101
+ "properties": {
2102
+ "listings": {
2103
+ "type": "array",
2104
+ "items": {
2105
+ "$ref": "#/components/schemas/MarketplaceListing"
2106
+ }
2107
+ }
2108
+ }
2109
+ }
2110
+ }
2111
+ }
2112
+ }
2113
+ }
2114
+ }
2115
+ },
2116
+ "/v1/marketplace-listings/{listing_id}": {
2117
+ "get": {
2118
+ "operationId": "getMarketplaceListingById",
2119
+ "summary": "getMarketplaceListingById",
2120
+ "description": "Get marketplace listing by listing ID including all versions",
2121
+ "tags": [
2122
+ "Marketplace Listings"
2123
+ ],
2124
+ "parameters": [
2125
+ {
2126
+ "name": "listing_id",
2127
+ "in": "path",
2128
+ "required": true,
2129
+ "schema": {
2130
+ "type": "string"
2131
+ }
2132
+ }
2133
+ ],
2134
+ "responses": {
2135
+ "200": {
2136
+ "description": "Marketplace listing with versions",
2137
+ "content": {
2138
+ "application/json": {
2139
+ "schema": {
2140
+ "allOf": [
2141
+ {
2142
+ "$ref": "#/components/schemas/MarketplaceListing"
2143
+ },
2144
+ {
2145
+ "type": "object",
2146
+ "properties": {
2147
+ "versions": {
2148
+ "type": "array",
2149
+ "items": {
2150
+ "$ref": "#/components/schemas/MarketplaceListingVersion"
2151
+ }
2152
+ },
2153
+ "has_publishable_draft": {
2154
+ "type": "boolean"
2155
+ }
2156
+ }
2157
+ }
2158
+ ]
2159
+ }
2160
+ }
2161
+ }
2162
+ },
2163
+ "404": {
2164
+ "description": "Listing not found"
2165
+ }
2166
+ }
2167
+ },
2168
+ "patch": {
2169
+ "operationId": "updateMarketplaceListing",
2170
+ "summary": "updateMarketplaceListing",
2171
+ "description": "Update listing-level fields",
2172
+ "tags": [
2173
+ "Marketplace Listings"
2174
+ ],
2175
+ "parameters": [
2176
+ {
2177
+ "name": "listing_id",
2178
+ "in": "path",
2179
+ "required": true,
2180
+ "schema": {
2181
+ "type": "string"
2182
+ }
2183
+ }
2184
+ ],
2185
+ "requestBody": {
2186
+ "required": true,
2187
+ "content": {
2188
+ "application/json": {
2189
+ "schema": {
2190
+ "$ref": "#/components/schemas/MarketplaceListingUpdate"
2191
+ }
2192
+ }
2193
+ }
2194
+ },
2195
+ "responses": {
2196
+ "200": {
2197
+ "description": "Updated marketplace listing",
2198
+ "content": {
2199
+ "application/json": {
2200
+ "schema": {
2201
+ "$ref": "#/components/schemas/MarketplaceListing"
2202
+ }
2203
+ }
2204
+ }
2205
+ },
2206
+ "404": {
2207
+ "description": "Listing not found"
2208
+ }
2209
+ }
2210
+ },
2211
+ "delete": {
2212
+ "operationId": "deleteMarketplaceListing",
2213
+ "summary": "deleteMarketplaceListing",
2214
+ "description": "Delete listing and all versions",
2215
+ "tags": [
2216
+ "Marketplace Listings"
2217
+ ],
2218
+ "parameters": [
2219
+ {
2220
+ "name": "listing_id",
2221
+ "in": "path",
2222
+ "required": true,
2223
+ "schema": {
2224
+ "type": "string"
2225
+ }
2226
+ }
2227
+ ],
2228
+ "responses": {
2229
+ "204": {
2230
+ "description": "Listing deleted"
2231
+ },
2232
+ "404": {
2233
+ "description": "Listing not found"
2234
+ }
2235
+ }
2236
+ }
2237
+ },
2238
+ "/v1/marketplace-listings/{listing_id}/versions": {
2239
+ "post": {
2240
+ "operationId": "createMarketplaceListingVersion",
2241
+ "summary": "createMarketplaceListingVersion",
2242
+ "description": "Create a draft version; auto-snapshots resources, requiredFeatures, recommendedApps from current blueprint",
2243
+ "tags": [
2244
+ "Marketplace Listing Versions"
2245
+ ],
2246
+ "parameters": [
2247
+ {
2248
+ "name": "listing_id",
2249
+ "in": "path",
2250
+ "required": true,
2251
+ "schema": {
2252
+ "type": "string"
2253
+ }
2254
+ }
2255
+ ],
2256
+ "responses": {
2257
+ "201": {
2258
+ "description": "Draft version created",
2259
+ "content": {
2260
+ "application/json": {
2261
+ "schema": {
2262
+ "$ref": "#/components/schemas/MarketplaceListingVersion"
2263
+ }
2264
+ }
2265
+ }
2266
+ },
2267
+ "404": {
2268
+ "description": "Listing not found"
2269
+ }
2270
+ }
2271
+ },
2272
+ "get": {
2273
+ "operationId": "listMarketplaceListingVersions",
2274
+ "summary": "listMarketplaceListingVersions",
2275
+ "description": "List all versions for a listing, newest first",
2276
+ "tags": [
2277
+ "Marketplace Listing Versions"
2278
+ ],
2279
+ "parameters": [
2280
+ {
2281
+ "name": "listing_id",
2282
+ "in": "path",
2283
+ "required": true,
2284
+ "schema": {
2285
+ "type": "string"
2286
+ }
2287
+ }
2288
+ ],
2289
+ "responses": {
2290
+ "200": {
2291
+ "description": "List of versions",
2292
+ "content": {
2293
+ "application/json": {
2294
+ "schema": {
2295
+ "type": "object",
2296
+ "properties": {
2297
+ "versions": {
2298
+ "type": "array",
2299
+ "items": {
2300
+ "$ref": "#/components/schemas/MarketplaceListingVersion"
2301
+ }
2302
+ }
2303
+ }
2304
+ }
2305
+ }
2306
+ }
2307
+ }
2308
+ }
2309
+ }
2310
+ },
2311
+ "/v1/marketplace-listings/{listing_id}/versions/{version_id}": {
2312
+ "patch": {
2313
+ "operationId": "updateMarketplaceListingVersion",
2314
+ "summary": "updateMarketplaceListingVersion",
2315
+ "description": "Update updateNote, requiredFeatures, or recommendedApps on a draft version",
2316
+ "tags": [
2317
+ "Marketplace Listing Versions"
2318
+ ],
2319
+ "parameters": [
2320
+ {
2321
+ "name": "listing_id",
2322
+ "in": "path",
2323
+ "required": true,
2324
+ "schema": {
2325
+ "type": "string"
2326
+ }
2327
+ },
2328
+ {
2329
+ "name": "version_id",
2330
+ "in": "path",
2331
+ "required": true,
2332
+ "schema": {
2333
+ "type": "string"
2334
+ }
2335
+ }
2336
+ ],
2337
+ "requestBody": {
2338
+ "required": true,
2339
+ "content": {
2340
+ "application/json": {
2341
+ "schema": {
2342
+ "type": "object",
2343
+ "properties": {
2344
+ "update_note": {
2345
+ "type": "string",
2346
+ "nullable": true
2347
+ },
2348
+ "required_features": {
2349
+ "type": "array",
2350
+ "items": {
2351
+ "type": "string"
2352
+ }
2353
+ },
2354
+ "recommended_apps": {
2355
+ "type": "array",
2356
+ "items": {
2357
+ "type": "string"
2358
+ }
2359
+ }
2360
+ }
2361
+ }
2362
+ }
2363
+ }
2364
+ },
2365
+ "responses": {
2366
+ "200": {
2367
+ "description": "Updated version",
2368
+ "content": {
2369
+ "application/json": {
2370
+ "schema": {
2371
+ "$ref": "#/components/schemas/MarketplaceListingVersion"
2372
+ }
2373
+ }
2374
+ }
2375
+ },
2376
+ "400": {
2377
+ "description": "Cannot update non-draft version"
2378
+ },
2379
+ "404": {
2380
+ "description": "Version not found"
2381
+ }
2382
+ }
2383
+ }
2384
+ },
2385
+ "/v1/marketplace-listings/{listing_id}/versions/{version_id}/publish": {
2386
+ "post": {
2387
+ "operationId": "publishMarketplaceListingVersion",
2388
+ "summary": "publishMarketplaceListingVersion",
2389
+ "description": "Publish a draft version; archives the previous live version",
2390
+ "tags": [
2391
+ "Marketplace Listing Versions"
2392
+ ],
2393
+ "parameters": [
2394
+ {
2395
+ "name": "listing_id",
2396
+ "in": "path",
2397
+ "required": true,
2398
+ "schema": {
2399
+ "type": "string"
2400
+ }
2401
+ },
2402
+ {
2403
+ "name": "version_id",
2404
+ "in": "path",
2405
+ "required": true,
2406
+ "schema": {
2407
+ "type": "string"
2408
+ }
2409
+ }
2410
+ ],
2411
+ "requestBody": {
2412
+ "required": true,
2413
+ "content": {
2414
+ "application/json": {
2415
+ "schema": {
2416
+ "type": "object",
2417
+ "required": [
2418
+ "version_name"
2419
+ ],
2420
+ "properties": {
2421
+ "version_name": {
2422
+ "type": "string"
2423
+ },
2424
+ "update_note": {
2425
+ "type": "string",
2426
+ "nullable": true
2427
+ }
2428
+ }
2429
+ }
2430
+ }
2431
+ }
2432
+ },
2433
+ "responses": {
2434
+ "200": {
2435
+ "description": "Published version",
2436
+ "content": {
2437
+ "application/json": {
2438
+ "schema": {
2439
+ "$ref": "#/components/schemas/MarketplaceListingVersion"
2440
+ }
2441
+ }
2442
+ }
2443
+ },
2444
+ "400": {
2445
+ "description": "Version not publishable or version_name already taken"
2446
+ },
2447
+ "404": {
2448
+ "description": "Version not found"
2449
+ }
2450
+ }
2451
+ }
2452
+ },
2453
+ "/v3/blueprint-manifest/blueprint:install": {
2454
+ "post": {
2455
+ "operationId": "installBlueprintV3",
2456
+ "summary": "Install Blueprint V3",
2457
+ "description": "Install a blueprint using the V3 engine (direct API calls, no Terraform).\nCreates resources in topological order with global ID replacement.\nSupports checkpoint-based resume on failure.\n",
2458
+ "tags": [
2459
+ "Blueprints"
2460
+ ],
2461
+ "requestBody": {
2462
+ "required": true,
2463
+ "content": {
2464
+ "application/json": {
2465
+ "schema": {
2466
+ "type": "object",
2467
+ "properties": {
2468
+ "source_org_id": {
2469
+ "type": "string"
2470
+ },
2471
+ "source_blueprint_id": {
2472
+ "$ref": "#/components/schemas/BlueprintID"
2473
+ },
2474
+ "source_blueprint_file": {
2475
+ "type": "string",
2476
+ "description": "S3 key to the blueprint zip file"
2477
+ },
2478
+ "destination_org_id": {
2479
+ "type": "string"
2480
+ },
2481
+ "destination_blueprint_id": {
2482
+ "$ref": "#/components/schemas/BlueprintID"
2483
+ },
2484
+ "destination_auth_token": {
2485
+ "type": "string",
2486
+ "description": "Auth token for the destination org. Required for cross-org installs where the caller's token belongs to the source org. Defaults to the caller's bearer token."
2487
+ },
2488
+ "options": {
2489
+ "$ref": "#/components/schemas/BlueprintInstallationJobOptions"
2490
+ },
2491
+ "slug": {
2492
+ "type": "string",
2493
+ "description": "Slug for marketplace blueprint consistency"
2494
+ }
2495
+ }
2496
+ }
2497
+ }
2498
+ }
2499
+ },
2500
+ "responses": {
2501
+ "202": {
2502
+ "description": "V3 install job started",
2503
+ "headers": {
2504
+ "Location": {
2505
+ "description": "URL to poll the job",
2506
+ "schema": {
2507
+ "type": "string"
2508
+ }
2509
+ }
2510
+ },
2511
+ "content": {
2512
+ "application/json": {
2513
+ "schema": {
2514
+ "type": "object",
2515
+ "properties": {
2516
+ "job_id": {
2517
+ "$ref": "#/components/schemas/BlueprintJobID"
2518
+ },
2519
+ "destination_blueprint_id": {
2520
+ "$ref": "#/components/schemas/BlueprintID"
2521
+ }
2522
+ }
2523
+ }
2524
+ }
2525
+ }
2526
+ }
2527
+ }
2528
+ }
2529
+ },
2530
+ "/v3/blueprint-manifest/blueprints/{blueprint_id}/lineage": {
2531
+ "get": {
2532
+ "operationId": "getBlueprintLineageV3",
2533
+ "summary": "Get Blueprint Lineage V3",
2534
+ "description": "Returns the lineage registry entries for a blueprint's resources in the current org.\nShows the mapping between source lineage IDs and target resource IDs.\n",
2535
+ "tags": [
2536
+ "Blueprints"
2537
+ ],
2538
+ "parameters": [
2539
+ {
2540
+ "in": "path",
2541
+ "required": true,
2542
+ "name": "blueprint_id",
2543
+ "schema": {
2544
+ "$ref": "#/components/schemas/BlueprintID"
2545
+ }
2546
+ }
2547
+ ],
2548
+ "responses": {
2549
+ "200": {
2550
+ "description": "Lineage entries for the blueprint",
2551
+ "content": {
2552
+ "application/json": {
2553
+ "schema": {
2554
+ "type": "object",
2555
+ "properties": {
2556
+ "total": {
2557
+ "type": "integer"
2558
+ },
2559
+ "entries": {
2560
+ "type": "array",
2561
+ "items": {
2562
+ "$ref": "#/components/schemas/LineageEntry"
2563
+ }
2564
+ }
2565
+ }
2566
+ }
2567
+ }
2568
+ }
2569
+ }
2570
+ }
2571
+ }
2572
+ }
2573
+ },
2574
+ "components": {
2575
+ "schemas": {
2576
+ "LineageEntry": {
2577
+ "type": "object",
2578
+ "properties": {
2579
+ "lineage_id": {
2580
+ "type": "string",
2581
+ "description": "Immutable resource identity across orgs"
2582
+ },
2583
+ "target_id": {
2584
+ "type": "string",
2585
+ "description": "Resource ID in the destination org"
2586
+ },
2587
+ "resource_type": {
2588
+ "$ref": "#/components/schemas/ResourceNodeType"
2589
+ },
2590
+ "blueprint_instance_ids": {
2591
+ "type": "array",
2592
+ "items": {
2593
+ "type": "string"
2594
+ }
2595
+ },
2596
+ "fidelity": {
2597
+ "type": "string",
2598
+ "enum": [
2599
+ "full",
2600
+ "partial"
2601
+ ]
2602
+ },
2603
+ "last_synced_at": {
2604
+ "type": "string",
2605
+ "format": "date-time"
2606
+ }
2607
+ }
2608
+ },
2609
+ "BlueprintID": {
2610
+ "type": "string",
2611
+ "description": "ID of a blueprint",
2612
+ "example": "c2d6cac8-bdd5-4ea2-8a6c-1cbdbe77b341"
2613
+ },
2614
+ "BlueprintResourceID": {
2615
+ "type": "string",
2616
+ "description": "ID of a blueprint resource",
2617
+ "example": "c2d6cac8-bdd5-4ea2-8a6c-1cbdbe77b341"
2618
+ },
2619
+ "CommonBlueprintFields": {
2620
+ "type": "object",
2621
+ "properties": {
2622
+ "id": {
2623
+ "$ref": "#/components/schemas/BlueprintID"
2624
+ },
2625
+ "title": {
2626
+ "type": "string"
2627
+ },
2628
+ "slug": {
2629
+ "type": "string"
2630
+ },
2631
+ "description": {
2632
+ "type": "object",
2633
+ "properties": {
2634
+ "preinstall": {
2635
+ "type": "string",
2636
+ "description": "Markdown content shown before starting to install the blueprint",
2637
+ "example": "This is the content of the preinstall.md file which contains the blueprint description.\n"
2638
+ },
2639
+ "postinstall": {
2640
+ "type": "string",
2641
+ "description": "Markdown content to be displayed when showing the plan to install blueprint",
2642
+ "example": "This is the content of the postinstall.md file\n"
2643
+ }
2644
+ }
2645
+ },
2646
+ "version": {
2647
+ "type": "string"
2648
+ },
2649
+ "deployments": {
2650
+ "type": "array",
2651
+ "items": {
2652
+ "type": "object",
2653
+ "properties": {
2654
+ "source_org_id": {
2655
+ "type": "string"
2656
+ },
2657
+ "source_blueprint_id": {
2658
+ "type": "string"
2659
+ },
2660
+ "destination_org_id": {
2661
+ "type": "string"
2662
+ },
2663
+ "destination_blueprint_id": {
2664
+ "type": "string"
2665
+ },
2666
+ "triggered_at": {
2667
+ "type": "string",
2668
+ "format": "date-time"
2669
+ },
2670
+ "note": {
2671
+ "type": "string",
2672
+ "description": "User-provided note about this synchronization"
2673
+ }
2674
+ }
2675
+ }
2676
+ },
2677
+ "is_verified": {
2678
+ "type": "boolean",
2679
+ "description": "Whether the blueprint is verified by epilot"
2680
+ },
2681
+ "latest_verification": {
2682
+ "$ref": "#/components/schemas/LatestBlueprintVerification"
2683
+ },
2684
+ "ignored_resource_addresses": {
2685
+ "type": "array",
2686
+ "description": "Resource addresses excluded during the latest install/update and ignored by verification.",
2687
+ "items": {
2688
+ "type": "string"
2689
+ }
2690
+ },
2691
+ "installation_status": {
2692
+ "type": "string",
2693
+ "enum": [
2694
+ "IN_PROGRESS",
2695
+ "CANCELED",
2696
+ "PARTIAL",
2697
+ "SUCCESS",
2698
+ "FAILED"
2699
+ ]
2700
+ },
2701
+ "created_at": {
2702
+ "type": "string",
2703
+ "format": "date-time"
2704
+ },
2705
+ "updated_at": {
2706
+ "type": "string",
2707
+ "format": "date-time"
2708
+ },
2709
+ "created_by": {
2710
+ "$ref": "#/components/schemas/CallerIdentity"
2711
+ },
2712
+ "updated_by": {
2713
+ "$ref": "#/components/schemas/CallerIdentity"
2714
+ },
2715
+ "installation_job_ids": {
2716
+ "type": "array",
2717
+ "items": {
2718
+ "$ref": "#/components/schemas/BlueprintJobID"
2719
+ }
2720
+ },
2721
+ "source_blueprint_id": {
2722
+ "description": "ID of the blueprint that brought this blueprint to the destination org (deployed or installed)",
2723
+ "allOf": [
2724
+ {
2725
+ "$ref": "#/components/schemas/BlueprintID"
2726
+ }
2727
+ ]
2728
+ },
2729
+ "archived": {
2730
+ "type": "boolean",
2731
+ "description": "Whether the blueprint is archived (soft-deleted). Archived blueprints are hidden from the main list.",
2732
+ "default": false
2733
+ },
2734
+ "docs_url": {
2735
+ "type": "string",
2736
+ "description": "URL to the blueprint documentation"
2737
+ },
2738
+ "recommended_apps": {
2739
+ "type": "array",
2740
+ "items": {
2741
+ "type": "string"
2742
+ },
2743
+ "description": "List of recommended app IDs for the blueprint"
2744
+ },
2745
+ "required_features": {
2746
+ "type": "object",
2747
+ "description": "Feature constraints for blueprint installation",
2748
+ "properties": {
2749
+ "enabled": {
2750
+ "type": "array",
2751
+ "items": {
2752
+ "type": "string"
2753
+ },
2754
+ "description": "Features that must be enabled in the target org"
2755
+ },
2756
+ "disabled": {
2757
+ "type": "array",
2758
+ "items": {
2759
+ "type": "string"
2760
+ },
2761
+ "description": "Features that must be disabled in the target org"
2762
+ }
2763
+ }
2764
+ },
2765
+ "zip_file_name": {
2766
+ "type": "string",
2767
+ "description": "Custom name for the exported zip file"
2768
+ }
2769
+ },
2770
+ "required": [
2771
+ "title"
2772
+ ]
2027
2773
  },
2028
2774
  "BlueprintResource": {
2029
2775
  "type": "object",
@@ -2156,6 +2902,23 @@
2156
2902
  "type": "string"
2157
2903
  }
2158
2904
  },
2905
+ "required_features": {
2906
+ "type": "object",
2907
+ "properties": {
2908
+ "enabled": {
2909
+ "type": "array",
2910
+ "items": {
2911
+ "type": "string"
2912
+ }
2913
+ },
2914
+ "disabled": {
2915
+ "type": "array",
2916
+ "items": {
2917
+ "type": "string"
2918
+ }
2919
+ }
2920
+ }
2921
+ },
2159
2922
  "created_at": {
2160
2923
  "type": "string",
2161
2924
  "format": "date-time"
@@ -2203,7 +2966,9 @@
2203
2966
  },
2204
2967
  "source_type": {
2205
2968
  "type": "string",
2206
- "const": "custom"
2969
+ "enum": [
2970
+ "custom"
2971
+ ]
2207
2972
  }
2208
2973
  }
2209
2974
  }
@@ -2222,7 +2987,9 @@
2222
2987
  "properties": {
2223
2988
  "source_type": {
2224
2989
  "type": "string",
2225
- "const": "file"
2990
+ "enum": [
2991
+ "file"
2992
+ ]
2226
2993
  },
2227
2994
  "resources": {
2228
2995
  "type": "array",
@@ -2251,7 +3018,9 @@
2251
3018
  },
2252
3019
  "source_type": {
2253
3020
  "type": "string",
2254
- "const": "marketplace"
3021
+ "enum": [
3022
+ "marketplace"
3023
+ ]
2255
3024
  },
2256
3025
  "resources": {
2257
3026
  "type": "array",
@@ -2347,7 +3116,9 @@
2347
3116
  "properties": {
2348
3117
  "source_type": {
2349
3118
  "type": "string",
2350
- "const": "deploy"
3119
+ "enum": [
3120
+ "deploy"
3121
+ ]
2351
3122
  },
2352
3123
  "resources": {
2353
3124
  "type": "array",
@@ -2372,7 +3143,9 @@
2372
3143
  "properties": {
2373
3144
  "source_type": {
2374
3145
  "type": "string",
2375
- "const": "app"
3146
+ "enum": [
3147
+ "app"
3148
+ ]
2376
3149
  },
2377
3150
  "resources": {
2378
3151
  "type": "array",
@@ -2503,6 +3276,7 @@
2503
3276
  "WAITING_USER_ACTION",
2504
3277
  "CANCELED",
2505
3278
  "SUCCESS",
3279
+ "PARTIAL_SUCCESS",
2506
3280
  "FAILED"
2507
3281
  ]
2508
3282
  }
@@ -2523,6 +3297,9 @@
2523
3297
  },
2524
3298
  {
2525
3299
  "$ref": "#/components/schemas/BlueprintValidateJob"
3300
+ },
3301
+ {
3302
+ "$ref": "#/components/schemas/BlueprintVerificationJob"
2526
3303
  }
2527
3304
  ]
2528
3305
  },
@@ -2582,7 +3359,162 @@
2582
3359
  }
2583
3360
  }
2584
3361
  }
2585
- ]
3362
+ ]
3363
+ },
3364
+ "BlueprintVerificationJob": {
3365
+ "allOf": [
3366
+ {
3367
+ "$ref": "#/components/schemas/CommonBlueprintJobFields"
3368
+ },
3369
+ {
3370
+ "type": "object",
3371
+ "properties": {
3372
+ "source_org_id": {
3373
+ "type": "string"
3374
+ },
3375
+ "source_blueprint_id": {
3376
+ "$ref": "#/components/schemas/BlueprintID"
3377
+ },
3378
+ "destination_org_id": {
3379
+ "type": "string"
3380
+ },
3381
+ "destination_blueprint_id": {
3382
+ "$ref": "#/components/schemas/BlueprintID"
3383
+ },
3384
+ "status": {
3385
+ "type": "string",
3386
+ "enum": [
3387
+ "IN_PROGRESS",
3388
+ "SUCCESS",
3389
+ "FAILED"
3390
+ ]
3391
+ },
3392
+ "summary": {
3393
+ "$ref": "#/components/schemas/VerificationSummary"
3394
+ },
3395
+ "resource_results": {
3396
+ "type": "array",
3397
+ "items": {
3398
+ "$ref": "#/components/schemas/ResourceVerificationResult"
3399
+ }
3400
+ },
3401
+ "resource_results_s3_key": {
3402
+ "type": "string",
3403
+ "description": "S3 key for detailed results when too large for inline storage."
3404
+ }
3405
+ }
3406
+ }
3407
+ ]
3408
+ },
3409
+ "LatestBlueprintVerification": {
3410
+ "type": "object",
3411
+ "properties": {
3412
+ "job_id": {
3413
+ "$ref": "#/components/schemas/BlueprintJobID"
3414
+ },
3415
+ "status": {
3416
+ "type": "string",
3417
+ "enum": [
3418
+ "IN_PROGRESS",
3419
+ "SUCCESS",
3420
+ "FAILED"
3421
+ ]
3422
+ },
3423
+ "triggered_at": {
3424
+ "type": "string",
3425
+ "format": "date-time"
3426
+ },
3427
+ "source_org_id": {
3428
+ "type": "string"
3429
+ },
3430
+ "source_blueprint_id": {
3431
+ "$ref": "#/components/schemas/BlueprintID"
3432
+ },
3433
+ "destination_org_id": {
3434
+ "type": "string"
3435
+ },
3436
+ "destination_blueprint_id": {
3437
+ "$ref": "#/components/schemas/BlueprintID"
3438
+ },
3439
+ "summary": {
3440
+ "$ref": "#/components/schemas/VerificationSummary"
3441
+ }
3442
+ }
3443
+ },
3444
+ "VerificationSummary": {
3445
+ "type": "object",
3446
+ "properties": {
3447
+ "total_resources": {
3448
+ "type": "integer"
3449
+ },
3450
+ "matched": {
3451
+ "type": "integer"
3452
+ },
3453
+ "mismatched": {
3454
+ "type": "integer"
3455
+ },
3456
+ "missing_in_destination": {
3457
+ "type": "integer"
3458
+ },
3459
+ "fetch_errors": {
3460
+ "type": "integer"
3461
+ }
3462
+ }
3463
+ },
3464
+ "ResourceVerificationResult": {
3465
+ "type": "object",
3466
+ "properties": {
3467
+ "resource_type": {
3468
+ "$ref": "#/components/schemas/ResourceNodeType"
3469
+ },
3470
+ "resource_name": {
3471
+ "type": "string"
3472
+ },
3473
+ "source_resource_id": {
3474
+ "type": "string"
3475
+ },
3476
+ "destination_resource_id": {
3477
+ "type": "string"
3478
+ },
3479
+ "status": {
3480
+ "type": "string",
3481
+ "enum": [
3482
+ "matched",
3483
+ "mismatched",
3484
+ "missing_in_destination",
3485
+ "fetch_error"
3486
+ ]
3487
+ },
3488
+ "field_diffs": {
3489
+ "type": "array",
3490
+ "items": {
3491
+ "$ref": "#/components/schemas/FieldDiff"
3492
+ }
3493
+ },
3494
+ "error": {
3495
+ "type": "string"
3496
+ }
3497
+ }
3498
+ },
3499
+ "FieldDiff": {
3500
+ "type": "object",
3501
+ "properties": {
3502
+ "path": {
3503
+ "type": "string",
3504
+ "description": "JSON path to the differing field (e.g. \"steps[2].name\")"
3505
+ },
3506
+ "source_value": {},
3507
+ "destination_value": {},
3508
+ "diff_type": {
3509
+ "type": "string",
3510
+ "enum": [
3511
+ "value_changed",
3512
+ "field_missing_in_destination",
3513
+ "field_missing_in_source",
3514
+ "type_mismatch"
3515
+ ]
3516
+ }
3517
+ }
2586
3518
  },
2587
3519
  "BlueprintJobEvent": {
2588
3520
  "type": "object",
@@ -2711,6 +3643,7 @@
2711
3643
  "CANCELED",
2712
3644
  "IN_PROGRESS",
2713
3645
  "SUCCESS",
3646
+ "PARTIAL_SUCCESS",
2714
3647
  "FAILED"
2715
3648
  ]
2716
3649
  },
@@ -2751,7 +3684,8 @@
2751
3684
  "validation_rule",
2752
3685
  "flow_template",
2753
3686
  "taxonomy",
2754
- "notification_template"
3687
+ "notification_template",
3688
+ "environment_variable"
2755
3689
  ]
2756
3690
  },
2757
3691
  "PlanChanges": {
@@ -3471,6 +4405,418 @@
3471
4405
  }
3472
4406
  }
3473
4407
  }
4408
+ },
4409
+ "MarketplaceListing": {
4410
+ "type": "object",
4411
+ "required": [
4412
+ "id",
4413
+ "blueprint_id",
4414
+ "name",
4415
+ "slug",
4416
+ "status"
4417
+ ],
4418
+ "properties": {
4419
+ "id": {
4420
+ "type": "string",
4421
+ "format": "uuid"
4422
+ },
4423
+ "blueprint_id": {
4424
+ "type": "string"
4425
+ },
4426
+ "name": {
4427
+ "type": "string"
4428
+ },
4429
+ "slug": {
4430
+ "type": "string"
4431
+ },
4432
+ "logo": {
4433
+ "type": "string",
4434
+ "nullable": true
4435
+ },
4436
+ "documentation_url": {
4437
+ "type": "string",
4438
+ "nullable": true
4439
+ },
4440
+ "pricing_type": {
4441
+ "type": "string",
4442
+ "enum": [
4443
+ "free",
4444
+ "paid",
4445
+ "freemium",
4446
+ "contact_us"
4447
+ ],
4448
+ "nullable": true
4449
+ },
4450
+ "support_email": {
4451
+ "type": "string",
4452
+ "nullable": true
4453
+ },
4454
+ "portal_description": {
4455
+ "type": "string",
4456
+ "nullable": true
4457
+ },
4458
+ "teaser_name": {
4459
+ "type": "string",
4460
+ "nullable": true
4461
+ },
4462
+ "teaser_short_description": {
4463
+ "type": "string",
4464
+ "nullable": true
4465
+ },
4466
+ "teaser_thumbnail": {
4467
+ "type": "string",
4468
+ "nullable": true
4469
+ },
4470
+ "details_page_title": {
4471
+ "type": "string",
4472
+ "nullable": true
4473
+ },
4474
+ "details_page_description": {
4475
+ "type": "string",
4476
+ "nullable": true
4477
+ },
4478
+ "details_page_hero_image": {
4479
+ "type": "string",
4480
+ "nullable": true
4481
+ },
4482
+ "details_page_carousel": {
4483
+ "type": "array",
4484
+ "items": {
4485
+ "type": "string"
4486
+ },
4487
+ "nullable": true
4488
+ },
4489
+ "resources_section_description": {
4490
+ "type": "string",
4491
+ "nullable": true
4492
+ },
4493
+ "resources_section_benefits_title": {
4494
+ "type": "string",
4495
+ "nullable": true
4496
+ },
4497
+ "resources_section_benefits_list": {
4498
+ "type": "string",
4499
+ "nullable": true
4500
+ },
4501
+ "resources_section_process_details": {
4502
+ "type": "string",
4503
+ "nullable": true
4504
+ },
4505
+ "partner": {
4506
+ "type": "string",
4507
+ "nullable": true
4508
+ },
4509
+ "partner_subtext": {
4510
+ "type": "string",
4511
+ "nullable": true
4512
+ },
4513
+ "partner_logo": {
4514
+ "type": "string",
4515
+ "nullable": true
4516
+ },
4517
+ "partner_website_link": {
4518
+ "type": "string",
4519
+ "nullable": true
4520
+ },
4521
+ "last_updated_on": {
4522
+ "type": "string",
4523
+ "nullable": true
4524
+ },
4525
+ "requires_customer_portal": {
4526
+ "type": "boolean",
4527
+ "nullable": true
4528
+ },
4529
+ "process_details_section_title": {
4530
+ "type": "string",
4531
+ "nullable": true
4532
+ },
4533
+ "is_new_blueprint": {
4534
+ "type": "boolean",
4535
+ "nullable": true
4536
+ },
4537
+ "available_in": {
4538
+ "type": "string",
4539
+ "nullable": true
4540
+ },
4541
+ "testimonials": {
4542
+ "type": "array",
4543
+ "items": {
4544
+ "type": "string"
4545
+ },
4546
+ "nullable": true
4547
+ },
4548
+ "installation_link": {
4549
+ "type": "string",
4550
+ "nullable": true
4551
+ },
4552
+ "installation_slug": {
4553
+ "type": "string",
4554
+ "nullable": true
4555
+ },
4556
+ "demo_form_link": {
4557
+ "type": "string",
4558
+ "nullable": true
4559
+ },
4560
+ "order": {
4561
+ "type": "number",
4562
+ "nullable": true
4563
+ },
4564
+ "categories": {
4565
+ "type": "array",
4566
+ "items": {
4567
+ "type": "string"
4568
+ },
4569
+ "nullable": true
4570
+ },
4571
+ "main_category": {
4572
+ "type": "array",
4573
+ "items": {
4574
+ "type": "string"
4575
+ },
4576
+ "nullable": true
4577
+ },
4578
+ "status": {
4579
+ "type": "string",
4580
+ "enum": [
4581
+ "draft",
4582
+ "live",
4583
+ "archived"
4584
+ ]
4585
+ },
4586
+ "created_at": {
4587
+ "type": "string",
4588
+ "format": "date-time"
4589
+ },
4590
+ "updated_at": {
4591
+ "type": "string",
4592
+ "format": "date-time"
4593
+ }
4594
+ }
4595
+ },
4596
+ "MarketplaceListingUpdate": {
4597
+ "type": "object",
4598
+ "properties": {
4599
+ "name": {
4600
+ "type": "string"
4601
+ },
4602
+ "slug": {
4603
+ "type": "string"
4604
+ },
4605
+ "logo": {
4606
+ "type": "string",
4607
+ "nullable": true
4608
+ },
4609
+ "documentation_url": {
4610
+ "type": "string",
4611
+ "nullable": true
4612
+ },
4613
+ "pricing_type": {
4614
+ "type": "string",
4615
+ "enum": [
4616
+ "free",
4617
+ "paid",
4618
+ "freemium",
4619
+ "contact_us"
4620
+ ],
4621
+ "nullable": true
4622
+ },
4623
+ "support_email": {
4624
+ "type": "string",
4625
+ "nullable": true
4626
+ },
4627
+ "portal_description": {
4628
+ "type": "string",
4629
+ "nullable": true
4630
+ },
4631
+ "teaser_name": {
4632
+ "type": "string",
4633
+ "nullable": true
4634
+ },
4635
+ "teaser_short_description": {
4636
+ "type": "string",
4637
+ "nullable": true
4638
+ },
4639
+ "teaser_thumbnail": {
4640
+ "type": "string",
4641
+ "nullable": true
4642
+ },
4643
+ "details_page_title": {
4644
+ "type": "string",
4645
+ "nullable": true
4646
+ },
4647
+ "details_page_description": {
4648
+ "type": "string",
4649
+ "nullable": true
4650
+ },
4651
+ "details_page_hero_image": {
4652
+ "type": "string",
4653
+ "nullable": true
4654
+ },
4655
+ "details_page_carousel": {
4656
+ "type": "array",
4657
+ "items": {
4658
+ "type": "string"
4659
+ },
4660
+ "nullable": true
4661
+ },
4662
+ "resources_section_description": {
4663
+ "type": "string",
4664
+ "nullable": true
4665
+ },
4666
+ "resources_section_benefits_title": {
4667
+ "type": "string",
4668
+ "nullable": true
4669
+ },
4670
+ "resources_section_benefits_list": {
4671
+ "type": "string",
4672
+ "nullable": true
4673
+ },
4674
+ "resources_section_process_details": {
4675
+ "type": "string",
4676
+ "nullable": true
4677
+ },
4678
+ "partner": {
4679
+ "type": "string",
4680
+ "nullable": true
4681
+ },
4682
+ "partner_subtext": {
4683
+ "type": "string",
4684
+ "nullable": true
4685
+ },
4686
+ "partner_logo": {
4687
+ "type": "string",
4688
+ "nullable": true
4689
+ },
4690
+ "partner_website_link": {
4691
+ "type": "string",
4692
+ "nullable": true
4693
+ },
4694
+ "last_updated_on": {
4695
+ "type": "string",
4696
+ "nullable": true
4697
+ },
4698
+ "requires_customer_portal": {
4699
+ "type": "boolean",
4700
+ "nullable": true
4701
+ },
4702
+ "process_details_section_title": {
4703
+ "type": "string",
4704
+ "nullable": true
4705
+ },
4706
+ "is_new_blueprint": {
4707
+ "type": "boolean",
4708
+ "nullable": true
4709
+ },
4710
+ "available_in": {
4711
+ "type": "string",
4712
+ "nullable": true
4713
+ },
4714
+ "testimonials": {
4715
+ "type": "array",
4716
+ "items": {
4717
+ "type": "string"
4718
+ },
4719
+ "nullable": true
4720
+ },
4721
+ "installation_link": {
4722
+ "type": "string",
4723
+ "nullable": true
4724
+ },
4725
+ "installation_slug": {
4726
+ "type": "string",
4727
+ "nullable": true
4728
+ },
4729
+ "demo_form_link": {
4730
+ "type": "string",
4731
+ "nullable": true
4732
+ },
4733
+ "order": {
4734
+ "type": "number",
4735
+ "nullable": true
4736
+ },
4737
+ "categories": {
4738
+ "type": "array",
4739
+ "items": {
4740
+ "type": "string"
4741
+ },
4742
+ "nullable": true
4743
+ },
4744
+ "main_category": {
4745
+ "type": "array",
4746
+ "items": {
4747
+ "type": "string"
4748
+ },
4749
+ "nullable": true
4750
+ }
4751
+ }
4752
+ },
4753
+ "MarketplaceListingVersion": {
4754
+ "type": "object",
4755
+ "required": [
4756
+ "id",
4757
+ "listing_id",
4758
+ "status",
4759
+ "draft_label",
4760
+ "created_at"
4761
+ ],
4762
+ "properties": {
4763
+ "id": {
4764
+ "type": "string",
4765
+ "format": "uuid"
4766
+ },
4767
+ "listing_id": {
4768
+ "type": "string"
4769
+ },
4770
+ "status": {
4771
+ "type": "string",
4772
+ "enum": [
4773
+ "draft",
4774
+ "published",
4775
+ "archived"
4776
+ ]
4777
+ },
4778
+ "version_name": {
4779
+ "type": "string",
4780
+ "nullable": true
4781
+ },
4782
+ "draft_label": {
4783
+ "type": "string"
4784
+ },
4785
+ "update_note": {
4786
+ "type": "string",
4787
+ "nullable": true
4788
+ },
4789
+ "resources": {
4790
+ "type": "array",
4791
+ "items": {
4792
+ "type": "object"
4793
+ },
4794
+ "nullable": true
4795
+ },
4796
+ "required_features": {
4797
+ "type": "array",
4798
+ "items": {
4799
+ "type": "string"
4800
+ },
4801
+ "nullable": true
4802
+ },
4803
+ "recommended_apps": {
4804
+ "type": "array",
4805
+ "items": {
4806
+ "type": "string"
4807
+ },
4808
+ "nullable": true
4809
+ },
4810
+ "created_at": {
4811
+ "type": "string",
4812
+ "format": "date-time"
4813
+ },
4814
+ "published_at": {
4815
+ "type": "string",
4816
+ "format": "date-time",
4817
+ "nullable": true
4818
+ }
4819
+ }
3474
4820
  }
3475
4821
  },
3476
4822
  "parameters": {