@salesforce/b2c-tooling-sdk 2.3.0 → 2.5.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.
Files changed (203) hide show
  1. package/data/guides/enrichment.json +291 -0
  2. package/data/guides/index.json +426 -37
  3. package/data/schemas/dw.schema.json +590 -0
  4. package/data/tooling/index.json +18 -9
  5. package/dist/esm/cli/base-command.d.ts +20 -1
  6. package/dist/esm/cli/base-command.js +61 -11
  7. package/dist/esm/cli/base-command.js.map +1 -1
  8. package/dist/esm/cli/cartridge-command.js +2 -1
  9. package/dist/esm/cli/cartridge-command.js.map +1 -1
  10. package/dist/esm/cli/command-search.d.ts +85 -0
  11. package/dist/esm/cli/command-search.js +147 -0
  12. package/dist/esm/cli/command-search.js.map +1 -0
  13. package/dist/esm/cli/config.d.ts +10 -1
  14. package/dist/esm/cli/config.js +18 -9
  15. package/dist/esm/cli/config.js.map +1 -1
  16. package/dist/esm/cli/hooks.d.ts +13 -0
  17. package/dist/esm/cli/hooks.js +11 -0
  18. package/dist/esm/cli/hooks.js.map +1 -1
  19. package/dist/esm/cli/index.d.ts +2 -0
  20. package/dist/esm/cli/index.js +2 -0
  21. package/dist/esm/cli/index.js.map +1 -1
  22. package/dist/esm/cli/instance-command.d.ts +1 -0
  23. package/dist/esm/cli/instance-command.js +2 -1
  24. package/dist/esm/cli/instance-command.js.map +1 -1
  25. package/dist/esm/cli/mrt-command.d.ts +3 -2
  26. package/dist/esm/cli/mrt-command.js +4 -4
  27. package/dist/esm/cli/mrt-command.js.map +1 -1
  28. package/dist/esm/cli/oauth-command.d.ts +1 -0
  29. package/dist/esm/cli/ods-command.d.ts +1 -0
  30. package/dist/esm/cli/webdav-command.d.ts +1 -0
  31. package/dist/esm/clients/custom-apis.d.ts +36 -2
  32. package/dist/esm/clients/custom-apis.js +57 -4
  33. package/dist/esm/clients/custom-apis.js.map +1 -1
  34. package/dist/esm/clients/index.d.ts +1 -1
  35. package/dist/esm/clients/index.js +1 -1
  36. package/dist/esm/clients/index.js.map +1 -1
  37. package/dist/esm/clients/scapi-backend-utils.d.ts +15 -0
  38. package/dist/esm/clients/scapi-backend-utils.js +28 -1
  39. package/dist/esm/clients/scapi-backend-utils.js.map +1 -1
  40. package/dist/esm/clients/scapi-fallback-backend.js +2 -2
  41. package/dist/esm/clients/scapi-fallback-backend.js.map +1 -1
  42. package/dist/esm/clients/scapi-schemas.generated.d.ts +2 -2
  43. package/dist/esm/compat/dispatcher.js +2 -2
  44. package/dist/esm/compat/dispatcher.js.map +1 -1
  45. package/dist/esm/config/config-origins.d.ts +19 -0
  46. package/dist/esm/config/config-origins.js +11 -0
  47. package/dist/esm/config/config-origins.js.map +1 -0
  48. package/dist/esm/config/config-write.d.ts +86 -0
  49. package/dist/esm/config/config-write.js +296 -0
  50. package/dist/esm/config/config-write.js.map +1 -0
  51. package/dist/esm/config/dw-json-schema.d.ts +14 -0
  52. package/dist/esm/config/dw-json-schema.js +269 -0
  53. package/dist/esm/config/dw-json-schema.js.map +1 -0
  54. package/dist/esm/config/dw-json.d.ts +2 -0
  55. package/dist/esm/config/dw-json.js +10 -6
  56. package/dist/esm/config/dw-json.js.map +1 -1
  57. package/dist/esm/config/index.d.ts +13 -4
  58. package/dist/esm/config/index.js +8 -3
  59. package/dist/esm/config/index.js.map +1 -1
  60. package/dist/esm/config/instance-manager.d.ts +64 -28
  61. package/dist/esm/config/instance-manager.js +145 -63
  62. package/dist/esm/config/instance-manager.js.map +1 -1
  63. package/dist/esm/config/mapping.d.ts +5 -0
  64. package/dist/esm/config/mapping.js +20 -1
  65. package/dist/esm/config/mapping.js.map +1 -1
  66. package/dist/esm/config/project-environment.d.ts +62 -0
  67. package/dist/esm/config/project-environment.js +113 -0
  68. package/dist/esm/config/project-environment.js.map +1 -1
  69. package/dist/esm/config/resolver.d.ts +22 -0
  70. package/dist/esm/config/resolver.js +106 -37
  71. package/dist/esm/config/resolver.js.map +1 -1
  72. package/dist/esm/config/sources/dw-json-source.d.ts +9 -1
  73. package/dist/esm/config/sources/dw-json-source.js +59 -23
  74. package/dist/esm/config/sources/dw-json-source.js.map +1 -1
  75. package/dist/esm/config/sources/env-source.d.ts +70 -9
  76. package/dist/esm/config/sources/env-source.js +205 -47
  77. package/dist/esm/config/sources/env-source.js.map +1 -1
  78. package/dist/esm/config/sources/index.d.ts +1 -1
  79. package/dist/esm/config/sources/index.js +1 -1
  80. package/dist/esm/config/sources/index.js.map +1 -1
  81. package/dist/esm/config/types.d.ts +53 -3
  82. package/dist/esm/docs/search.js +3 -1
  83. package/dist/esm/docs/search.js.map +1 -1
  84. package/dist/esm/docs/types.d.ts +3 -1
  85. package/dist/esm/guidance/bundle.d.ts +33 -0
  86. package/dist/esm/guidance/bundle.js +268 -0
  87. package/dist/esm/guidance/bundle.js.map +1 -0
  88. package/dist/esm/guidance/catalog.d.ts +8 -1
  89. package/dist/esm/guidance/catalog.js +48 -6
  90. package/dist/esm/guidance/catalog.js.map +1 -1
  91. package/dist/esm/guidance/index.d.ts +1 -0
  92. package/dist/esm/guidance/index.js +1 -0
  93. package/dist/esm/guidance/index.js.map +1 -1
  94. package/dist/esm/guidance/types.d.ts +17 -1
  95. package/dist/esm/guidance/types.js.map +1 -1
  96. package/dist/esm/index.d.ts +1 -1
  97. package/dist/esm/index.js +1 -1
  98. package/dist/esm/index.js.map +1 -1
  99. package/dist/esm/operations/jobs/run-system-job.js +2 -2
  100. package/dist/esm/operations/jobs/run-system-job.js.map +1 -1
  101. package/dist/esm/plugins/discovery.js +2 -1
  102. package/dist/esm/plugins/discovery.js.map +1 -1
  103. package/dist/esm/scapi/catalog.d.ts +5 -2
  104. package/dist/esm/scapi/catalog.js.map +1 -1
  105. package/dist/esm/scapi/index.d.ts +6 -2
  106. package/dist/esm/scapi/index.js +4 -2
  107. package/dist/esm/scapi/index.js.map +1 -1
  108. package/dist/esm/scapi/live.d.ts +14 -3
  109. package/dist/esm/scapi/live.js +33 -5
  110. package/dist/esm/scapi/live.js.map +1 -1
  111. package/dist/esm/scapi/local.d.ts +26 -0
  112. package/dist/esm/scapi/local.js +143 -0
  113. package/dist/esm/scapi/local.js.map +1 -0
  114. package/dist/esm/scapi/request.d.ts +2 -2
  115. package/dist/esm/scapi/request.js +4 -2
  116. package/dist/esm/scapi/request.js.map +1 -1
  117. package/dist/esm/scapi/runtime.d.ts +5 -0
  118. package/dist/esm/scapi/runtime.js.map +1 -1
  119. package/dist/esm/scapi/schema-source.d.ts +90 -0
  120. package/dist/esm/scapi/schema-source.js +146 -0
  121. package/dist/esm/scapi/schema-source.js.map +1 -0
  122. package/dist/esm/scapi/worker-source.js +31 -7
  123. package/dist/esm/scapi/worker-source.js.map +1 -1
  124. package/dist/esm/telemetry/telemetry.d.ts +1 -0
  125. package/dist/esm/telemetry/telemetry.js +18 -1
  126. package/dist/esm/telemetry/telemetry.js.map +1 -1
  127. package/dist/esm/telemetry/types.d.ts +9 -0
  128. package/dist/esm/test-utils/config-isolation.js +21 -15
  129. package/dist/esm/test-utils/config-isolation.js.map +1 -1
  130. package/dist/esm/ux/agent-context.d.ts +69 -0
  131. package/dist/esm/ux/agent-context.js +133 -0
  132. package/dist/esm/ux/agent-context.js.map +1 -0
  133. package/dist/esm/ux/confirm.d.ts +27 -0
  134. package/dist/esm/ux/confirm.js +32 -0
  135. package/dist/esm/ux/confirm.js.map +1 -1
  136. package/dist/esm/ux/index.d.ts +2 -1
  137. package/dist/esm/ux/index.js +2 -1
  138. package/dist/esm/ux/index.js.map +1 -1
  139. package/node_modules/@salesforce/b2c-api-schemas/manifest.json +83 -42
  140. package/node_modules/@salesforce/b2c-api-schemas/package.json +1 -1
  141. package/node_modules/@salesforce/b2c-api-schemas/scapi/cdn/zones/v1.json +6798 -238
  142. package/node_modules/@salesforce/b2c-api-schemas/scapi/checkout/orders/v1.json +2296 -205
  143. package/node_modules/@salesforce/b2c-api-schemas/scapi/checkout/shopper-baskets/v1.json +5571 -666
  144. package/node_modules/@salesforce/b2c-api-schemas/scapi/checkout/shopper-baskets/v2.json +6062 -371
  145. package/node_modules/@salesforce/b2c-api-schemas/scapi/checkout/shopper-orders/v1.json +3426 -360
  146. package/node_modules/@salesforce/b2c-api-schemas/scapi/checkout/shopper-payments/v1.json +351 -99
  147. package/node_modules/@salesforce/b2c-api-schemas/scapi/configuration/cors/v1.json +172 -12
  148. package/node_modules/@salesforce/b2c-api-schemas/scapi/configuration/preferences/v1.json +1497 -111
  149. package/node_modules/@salesforce/b2c-api-schemas/scapi/configuration/shopper-configurations/v1.json +202 -36
  150. package/node_modules/@salesforce/b2c-api-schemas/scapi/configuration/timeouts/v1.json +79 -10
  151. package/node_modules/@salesforce/b2c-api-schemas/scapi/custom-object/custom-objects/v1.json +785 -49
  152. package/node_modules/@salesforce/b2c-api-schemas/scapi/custom-object/shopper-custom-objects/v1.json +191 -40
  153. package/node_modules/@salesforce/b2c-api-schemas/scapi/customer/customers/v1.json +1483 -107
  154. package/node_modules/@salesforce/b2c-api-schemas/scapi/customer/shopper-customers/v1.json +4854 -787
  155. package/node_modules/@salesforce/b2c-api-schemas/scapi/dx/custom-apis/v1.json +119 -15
  156. package/node_modules/@salesforce/b2c-api-schemas/scapi/dx/object-definitions/v1.json +1699 -80
  157. package/node_modules/@salesforce/b2c-api-schemas/scapi/dx/scapi-schemas/v1.json +252 -18
  158. package/node_modules/@salesforce/b2c-api-schemas/scapi/dx/scripts/v1.json +329 -23
  159. package/node_modules/@salesforce/b2c-api-schemas/scapi/experience/experiences/v1.json +4208 -234
  160. package/node_modules/@salesforce/b2c-api-schemas/scapi/experience/shopper-experience/v1.json +1591 -247
  161. package/node_modules/@salesforce/b2c-api-schemas/scapi/intelligence/analytics/v1.json +396 -8
  162. package/node_modules/@salesforce/b2c-api-schemas/scapi/inventory/availability/v1.json +1242 -69
  163. package/node_modules/@salesforce/b2c-api-schemas/scapi/inventory/impex/v1.json +2354 -248
  164. package/node_modules/@salesforce/b2c-api-schemas/scapi/inventory/reservation/v1.json +1550 -45
  165. package/node_modules/@salesforce/b2c-api-schemas/scapi/inventory/segmentation/v1.json +6615 -0
  166. package/node_modules/@salesforce/b2c-api-schemas/scapi/merchant/roles/v1.json +1520 -59
  167. package/node_modules/@salesforce/b2c-api-schemas/scapi/merchant/users/v1.json +397 -17
  168. package/node_modules/@salesforce/b2c-api-schemas/scapi/observability/metrics/v1.json +1241 -27
  169. package/node_modules/@salesforce/b2c-api-schemas/scapi/operation/jobs/v1.json +1069 -68
  170. package/node_modules/@salesforce/b2c-api-schemas/scapi/operation/replications/v1.json +410 -23
  171. package/node_modules/@salesforce/b2c-api-schemas/scapi/pricing/assignments/v1.json +502 -102
  172. package/node_modules/@salesforce/b2c-api-schemas/scapi/pricing/campaigns/v1.json +1112 -94
  173. package/node_modules/@salesforce/b2c-api-schemas/scapi/pricing/coupons/v1.json +820 -93
  174. package/node_modules/@salesforce/b2c-api-schemas/scapi/pricing/gift-certificates/v1.json +845 -92
  175. package/node_modules/@salesforce/b2c-api-schemas/scapi/pricing/promotions/v1.json +2716 -674
  176. package/node_modules/@salesforce/b2c-api-schemas/scapi/pricing/shopper-gift-certificates/v1.json +130 -47
  177. package/node_modules/@salesforce/b2c-api-schemas/scapi/pricing/shopper-promotions/v1.json +233 -63
  178. package/node_modules/@salesforce/b2c-api-schemas/scapi/pricing/source-code-groups/v1.json +630 -70
  179. package/node_modules/@salesforce/b2c-api-schemas/scapi/product/catalogs/v1.json +2886 -348
  180. package/node_modules/@salesforce/b2c-api-schemas/scapi/product/inventory-lists/v1.json +520 -19
  181. package/node_modules/@salesforce/b2c-api-schemas/scapi/product/price-books/v1.json +3115 -293
  182. package/node_modules/@salesforce/b2c-api-schemas/scapi/product/products/v1.json +3313 -138
  183. package/node_modules/@salesforce/b2c-api-schemas/scapi/product/shopper-availability/v1.json +266 -52
  184. package/node_modules/@salesforce/b2c-api-schemas/scapi/product/shopper-delivery-estimates/v1.json +256 -48
  185. package/node_modules/@salesforce/b2c-api-schemas/scapi/product/shopper-products/v1.json +1744 -306
  186. package/node_modules/@salesforce/b2c-api-schemas/scapi/search/shopper-search/v1.json +1661 -120
  187. package/node_modules/@salesforce/b2c-api-schemas/scapi/shopper/auth/v1.json +2174 -118
  188. package/node_modules/@salesforce/b2c-api-schemas/scapi/shopper/auth-admin/v1.json +1373 -24
  189. package/node_modules/@salesforce/b2c-api-schemas/scapi/shopper/consents/v1.json +531 -20
  190. package/node_modules/@salesforce/b2c-api-schemas/scapi/shopper/shopper-agents/v1.json +154 -6
  191. package/node_modules/@salesforce/b2c-api-schemas/scapi/shopper/shopper-consents/v1.json +596 -79
  192. package/node_modules/@salesforce/b2c-api-schemas/scapi/shopper/shopper-context/v1.json +456 -42
  193. package/node_modules/@salesforce/b2c-api-schemas/scapi/site/seo/v1.json +101 -23
  194. package/node_modules/@salesforce/b2c-api-schemas/scapi/site/shopper-seo/v1.json +184 -41
  195. package/node_modules/@salesforce/b2c-api-schemas/scapi/site/sites/v1.json +995 -47
  196. package/node_modules/@salesforce/b2c-api-schemas/scapi/store/shopper-stores/v1.json +370 -67
  197. package/node_modules/@salesforce/b2c-api-schemas/scapi/store/store-redirect-mappings/v1.json +319 -11
  198. package/node_modules/@salesforce/b2c-api-schemas/scapi/store/stores/v1.json +1109 -64
  199. package/node_modules/@salesforce/b2c-api-schemas/scapi/storefront/deployments/v1.json +1442 -0
  200. package/node_modules/@salesforce/b2c-api-schemas/scapi/storefront/environments/v1.json +4293 -0
  201. package/node_modules/@salesforce/b2c-api-schemas/scapi/storefront/storefronts/v1.json +1371 -0
  202. package/package.json +5 -2
  203. package/specs/scapi-schemas-v1.yaml +4 -1
@@ -2,7 +2,8 @@
2
2
  "openapi": "3.0.3",
3
3
  "info": {
4
4
  "title": "Replications",
5
- "version": "1.0.7",
5
+ "description": "[Download API specification](https://developer.salesforce.com/static/commercecloud/commerce-api/replications/replications-oas-v1-public.yaml)\n\n# API Overview\n\nThe Replications API provides tools for managing content replication and synchronization across your Commerce Cloud instance. Use this API to control replication throughout your commerce infrastructure.\n\nThe API currently supports:\n- Granular Replication: Publishing individual items \n\n## Authentication & Authorization\n\nFor resource access, you must use a client ID and client secret from Account Manager to request an access token. The access token is used as a bearer token and added to the Authorization header of your API request.\n\nThis API uses OAuth 2.0 authentication via Account Manager (AmOAuth2). You must include the relevant scope(s) in the client ID used to generate the token. For details, see the [Authorization Scopes Catalog](https://developer.salesforce.com/docs/commerce/commerce-api/guide/auth-z-scope-catalog.html).\n\n- `sfcc.granular-replications.rw` - Enables the triggering of publish processes and access to details about publish processes, for example: monitoring purposes.\n- `sfcc.granular-replications` - Enables access to details about publish processes, for example: monitoring purposes.\n\nFor detailed setup instructions, see the [Authorization for Admin APIs guide](https://developer.salesforce.com/docs/commerce/commerce-api/guide/authorization-for-admin-apis.html). \n\n## Response Details\n\n### Timeouts\n\nAdmin API requests must respond within 60 seconds. If a response exceeds this threshold, an HTTP 504 status code is returned. For details, see [Timeouts and Limits.](https://developer.salesforce.com/docs/commerce/commerce-api/guide/timeouts-limits.html)\n\n### Error Handling\n\nError responses follow the [RFC 7807](https://datatracker.ietf.org/doc/html/rfc7807) problem detail format. To trace errors, include a `correlation-id` header in your request — the response returns it as `x-correlation-id`. For details, see [HTTP Status Codes and Errors.](https://developer.salesforce.com/docs/commerce/commerce-api/guide/error-response-codes.html)\n\n## Use Cases\n\n### Granular Replication\n\nThe granular replication feature addresses the need to make small updates to existing content in production on an as-needed basis. You can make granular data updates for these three replication groups:\n- Products: Update specific products from staging to production.\n- Price Books: Update specific price table entries from staging to production.\n- Content Assets: Update specific content assets from staging to production. Page Designer pages replicate as content assets with all their components.\n\nGranular Replication is meant to complement and enhance existing data replications, not replace it.\n\nAll granular replication related endpoints are available using:\n```\nhttps://{shortCode}.api.commercecloud.salesforce.com/operation/replications/v1/organizations/{organizationId}/granular-processes\n```\n\n#### Publish Items (POST /granular-processes)\nQueues an item, such as products, price tables, and content assets, for the upcoming publish operation.\n\n:::note \nThe published price table is always the table with the continuously valid period.\n:::\n\n#### List Publish Processes (GET /granular-processes)\nRetrieve a list of all publish processes with pagination support.\n\n#### Get Publish Process (GET /granular-processes/{id})\nRetrieve details of a specific publish process using its ID.\n\n### Publish Process Lifecycle\n\nAll publish processes follow this lifecycle:\n\n1. `queued`: Publish process initiated and waiting for publish operation to run.\n2. `in_progress`: Publish operation is running.\n3. `completed`: Publish operation completed and the item was successfully published.\n4. `failed`: The publish operation completed, but an error was detected.",
6
+ "version": "1.0.8",
6
7
  "x-api-type": "Admin",
7
8
  "x-api-family": "Operation"
8
9
  },
@@ -11,6 +12,7 @@
11
12
  "url": "https://{shortCode}.api.commercecloud.salesforce.com/operation/replications/v1",
12
13
  "variables": {
13
14
  "shortCode": {
15
+ "description": "An eight-character string assigned to a realm for routing purposes. See [Base URL and Request Formation.](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html)",
14
16
  "default": "123456gf"
15
17
  }
16
18
  }
@@ -19,21 +21,25 @@
19
21
  "paths": {
20
22
  "/organizations/{organizationId}/granular-processes": {
21
23
  "get": {
24
+ "summary": "Retrieve a list of all publish processes with pagination support.",
22
25
  "operationId": "listPublishProcesses",
23
26
  "parameters": [
24
27
  {
25
28
  "name": "organizationId",
26
29
  "in": "path",
30
+ "description": "An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f_ecom_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).",
27
31
  "required": true,
28
32
  "style": "simple",
29
33
  "explode": false,
30
34
  "schema": {
31
35
  "$ref": "#/components/schemas/OrganizationId"
32
- }
36
+ },
37
+ "example": "f_ecom_zzxy_prd"
33
38
  },
34
39
  {
35
40
  "name": "limit",
36
41
  "in": "query",
42
+ "description": "Number of records to retrieve per request. Must be between 1 (minimum) and 200 (maximum). Defaults to 50.",
37
43
  "required": false,
38
44
  "style": "form",
39
45
  "explode": true,
@@ -48,6 +54,7 @@
48
54
  {
49
55
  "name": "offset",
50
56
  "in": "query",
57
+ "description": "Used to retrieve the results based on a particular resource offset.",
51
58
  "required": false,
52
59
  "style": "form",
53
60
  "explode": true,
@@ -66,6 +73,11 @@
66
73
  "application/json": {
67
74
  "schema": {
68
75
  "$ref": "#/components/schemas/PublishProcessListResponse"
76
+ },
77
+ "examples": {
78
+ "listResults": {
79
+ "$ref": "#/components/examples/PaginatedResultList"
80
+ }
69
81
  }
70
82
  }
71
83
  }
@@ -90,17 +102,21 @@
90
102
  ]
91
103
  },
92
104
  "post": {
105
+ "summary": "Queue items for the upcoming publish operation.",
106
+ "description": "Queues items, such as a products, price tables, and content assets, for the upcoming publish operation. You can have multiple items in the queue, but you must send a separate request for each item.\nPage Designer (PD) pages are replicated as content assets, including all their components.\nNote: The published price table is always the table with the continuously valid period.\n## Publishing Limit\nYou can queue a maximum of 500 items for a single publish operation. Because each request queues one item, this limit applies to the total number of items queued for the upcoming publish operation across all requests, not to an individual API call. The HTTP status code 409 (Conflict) is returned if the limit is exceeded.",
93
107
  "operationId": "publishItems",
94
108
  "parameters": [
95
109
  {
96
110
  "name": "organizationId",
97
111
  "in": "path",
112
+ "description": "An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f_ecom_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).",
98
113
  "required": true,
99
114
  "style": "simple",
100
115
  "explode": false,
101
116
  "schema": {
102
117
  "$ref": "#/components/schemas/OrganizationId"
103
- }
118
+ },
119
+ "example": "f_ecom_zzxy_prd"
104
120
  }
105
121
  ],
106
122
  "requestBody": {
@@ -108,6 +124,20 @@
108
124
  "application/json": {
109
125
  "schema": {
110
126
  "$ref": "#/components/schemas/PublishItemRequest"
127
+ },
128
+ "examples": {
129
+ "productExample": {
130
+ "$ref": "#/components/examples/PostRequestProduct"
131
+ },
132
+ "priceTableExample": {
133
+ "$ref": "#/components/examples/PostRequestPriceTable"
134
+ },
135
+ "contentAssetExampleSharedLib": {
136
+ "$ref": "#/components/examples/PostRequestContentAssetSharedLib"
137
+ },
138
+ "contentAssetExamplePrivateLib": {
139
+ "$ref": "#/components/examples/PostRequestContentAssetPrivateLib"
140
+ }
111
141
  }
112
142
  }
113
143
  },
@@ -120,6 +150,11 @@
120
150
  "application/json": {
121
151
  "schema": {
122
152
  "$ref": "#/components/schemas/PublishIdResponse"
153
+ },
154
+ "examples": {
155
+ "success": {
156
+ "$ref": "#/components/examples/PublicationSuccessResponse"
157
+ }
123
158
  }
124
159
  }
125
160
  }
@@ -151,21 +186,25 @@
151
186
  },
152
187
  "/organizations/{organizationId}/granular-processes/{id}": {
153
188
  "get": {
189
+ "summary": "Retrieve details of a specific publish process using its ID.",
154
190
  "operationId": "getPublishProcess",
155
191
  "parameters": [
156
192
  {
157
193
  "name": "organizationId",
158
194
  "in": "path",
195
+ "description": "An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f_ecom_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).",
159
196
  "required": true,
160
197
  "style": "simple",
161
198
  "explode": false,
162
199
  "schema": {
163
200
  "$ref": "#/components/schemas/OrganizationId"
164
- }
201
+ },
202
+ "example": "f_ecom_zzxy_prd"
165
203
  },
166
204
  {
167
205
  "name": "id",
168
206
  "in": "path",
207
+ "description": "Publish process ID of the published item.",
169
208
  "required": true,
170
209
  "style": "simple",
171
210
  "explode": false,
@@ -181,6 +220,17 @@
181
220
  "application/json": {
182
221
  "schema": {
183
222
  "$ref": "#/components/schemas/PublishProcessResponse"
223
+ },
224
+ "examples": {
225
+ "productProcess": {
226
+ "$ref": "#/components/examples/ProductProcessResponse"
227
+ },
228
+ "priceTableProcess": {
229
+ "$ref": "#/components/examples/PriceTableProcessResponse"
230
+ },
231
+ "contentAssetProcess": {
232
+ "$ref": "#/components/examples/ContentAssetProcessResponse"
233
+ }
184
234
  }
185
235
  }
186
236
  }
@@ -210,21 +260,27 @@
210
260
  "schemas": {
211
261
  "OrganizationId": {
212
262
  "type": "string",
213
- "maxLength": 32,
214
- "minLength": 1
263
+ "description": "An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f_ecom_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).",
264
+ "example": "f_ecom_zzxy_prd",
265
+ "pattern": "^f_ecom_[a-z]{4}_(prd|stg|dev|s[0-9]{2}|[0-9]{3})$"
215
266
  },
216
267
  "Total": {
217
268
  "type": "integer",
218
269
  "format": "int32",
219
270
  "default": 0,
271
+ "description": "The total number of hits that match the search's criteria. This can be greater than the number of results returned as search results are pagenated.",
272
+ "example": 10,
220
273
  "minimum": 0
221
274
  },
222
275
  "ResultBase": {
223
276
  "type": "object",
277
+ "description": "Schema defining generic list result. Each response schema of a resource requiring a list response should extend this schema. \nAdditionally it needs to be defined what data is returned.",
224
278
  "properties": {
225
279
  "limit": {
226
280
  "type": "integer",
227
- "format": "int32"
281
+ "format": "int32",
282
+ "description": "Maximum records to retrieve per request. The limit with its constraints (minimum, maximum, default) is defined by the request parameter `limit` of the endpoint returning this schema.",
283
+ "example": 10
228
284
  },
229
285
  "total": {
230
286
  "$ref": "#/components/schemas/Total"
@@ -239,6 +295,8 @@
239
295
  "type": "integer",
240
296
  "format": "int32",
241
297
  "default": 0,
298
+ "description": "The zero-based index of the first hit/data to include in the result.",
299
+ "example": 0,
242
300
  "minimum": 0
243
301
  },
244
302
  "PaginatedResultBase": {
@@ -247,6 +305,7 @@
247
305
  "$ref": "#/components/schemas/ResultBase"
248
306
  }
249
307
  ],
308
+ "description": "Schema defining generic pageable result. Each response schema of a resource requiring pagination should extend this schema. \nIf you use this extend this schema directly, it needs to be defined what data is returned. Allowed names for the data field is `data`.",
250
309
  "properties": {
251
310
  "offset": {
252
311
  "$ref": "#/components/schemas/Offset"
@@ -260,15 +319,20 @@
260
319
  },
261
320
  "id": {
262
321
  "type": "string",
322
+ "description": "Publish process ID of the published item",
323
+ "example": "xmRhi7394HymoeRkfwAAAZeg3WiM",
263
324
  "maxLength": 28
264
325
  },
265
326
  "ProductId": {
266
327
  "type": "string",
328
+ "description": "The id (SKU) of the product.",
329
+ "example": "apple-ipod-classic",
267
330
  "maxLength": 100,
268
331
  "minLength": 1
269
332
  },
270
333
  "ProductItem": {
271
334
  "type": "object",
335
+ "description": "Details of the published product (only available if a product was published)",
272
336
  "properties": {
273
337
  "productId": {
274
338
  "$ref": "#/components/schemas/ProductId"
@@ -280,12 +344,15 @@
280
344
  },
281
345
  "PriceTableItem": {
282
346
  "type": "object",
347
+ "description": "Details of the published price table (only available if a price table was published)",
283
348
  "properties": {
284
349
  "productId": {
285
350
  "$ref": "#/components/schemas/ProductId"
286
351
  },
287
352
  "priceBookId": {
288
353
  "type": "string",
354
+ "description": "ID of the price book",
355
+ "example": "USD-Retail-2024",
289
356
  "maxLength": 256
290
357
  }
291
358
  },
@@ -296,22 +363,34 @@
296
363
  },
297
364
  "SiteId": {
298
365
  "type": "string",
366
+ "description": "The identifier of the site that a request is being made in the context of. Attributes might have site specific values, and some objects may only be assigned to specific sites",
367
+ "example": "RefArch",
299
368
  "maxLength": 32,
300
369
  "minLength": 1
301
370
  },
302
371
  "ContentAssetItemPrivate": {
303
372
  "type": "object",
304
373
  "additionalProperties": false,
374
+ "description": "Details of the published content asset (only available if a content asset was published). Page Designer pages replicate as content assets, including all their components.",
375
+ "example": {
376
+ "contentId": "homepage-hero-banner",
377
+ "type": "private",
378
+ "siteId": "mySiteId"
379
+ },
305
380
  "properties": {
306
381
  "contentId": {
307
382
  "type": "string",
383
+ "description": "ID of the content asset",
384
+ "example": "homepage-hero-banner",
308
385
  "maxLength": 256
309
386
  },
310
387
  "type": {
311
388
  "type": "string",
389
+ "description": "The type of library (private) from which the content asset originates.",
312
390
  "enum": [
313
391
  "private"
314
- ]
392
+ ],
393
+ "example": "private"
315
394
  },
316
395
  "siteId": {
317
396
  "$ref": "#/components/schemas/SiteId"
@@ -326,19 +405,31 @@
326
405
  "ContentAssetItemShared": {
327
406
  "type": "object",
328
407
  "additionalProperties": false,
408
+ "description": "Details of the published content asset (only available if a content asset was published). Page Designer pages replicate as content assets, including all their components.",
409
+ "example": {
410
+ "contentId": "homepage-hero-banner",
411
+ "type": "shared",
412
+ "libraryId": "myLibrary"
413
+ },
329
414
  "properties": {
330
415
  "contentId": {
331
416
  "type": "string",
417
+ "description": "ID of the content asset",
418
+ "example": "homepage-hero-banner",
332
419
  "maxLength": 256
333
420
  },
334
421
  "type": {
335
422
  "type": "string",
423
+ "description": "The type of library (shared) from which the content asset originates.",
336
424
  "enum": [
337
425
  "shared"
338
- ]
426
+ ],
427
+ "example": "shared"
339
428
  },
340
429
  "libraryId": {
341
430
  "type": "string",
431
+ "description": "Use the library ID.",
432
+ "example": "libraryId",
342
433
  "maxLength": 256
343
434
  }
344
435
  },
@@ -366,25 +457,33 @@
366
457
  },
367
458
  "status": {
368
459
  "type": "string",
460
+ "description": "Current status of the publish process",
369
461
  "enum": [
370
462
  "completed",
371
463
  "in_progress",
372
464
  "failed",
373
465
  "queued"
374
- ]
466
+ ],
467
+ "example": "completed"
375
468
  },
376
469
  "startTime": {
377
470
  "type": "string",
378
471
  "format": "date-time",
472
+ "description": "Timestamp at which the publish process was started",
473
+ "example": "2024-03-15T10:30:00Z",
379
474
  "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{3})?Z$"
380
475
  },
381
476
  "endTime": {
382
477
  "type": "string",
383
478
  "format": "date-time",
479
+ "description": "Timestamp at which the publish process was completed (only available if the status is \"completed\" or \"failed\")",
480
+ "example": "2024-03-15T10:30:45Z",
384
481
  "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{3})?Z$"
385
482
  },
386
483
  "initiatedBy": {
387
484
  "type": "string",
485
+ "description": "User or ID of the client application that initiated the publish process",
486
+ "example": "user@example.com",
388
487
  "maxLength": 256
389
488
  },
390
489
  "productItem": {
@@ -410,9 +509,11 @@
410
509
  "$ref": "#/components/schemas/PaginatedResultBase"
411
510
  }
412
511
  ],
512
+ "description": "Paginated list of publish processes",
413
513
  "properties": {
414
514
  "data": {
415
515
  "type": "array",
516
+ "description": "Array of publish processes",
416
517
  "items": {
417
518
  "$ref": "#/components/schemas/PublishProcessResponse"
418
519
  }
@@ -428,17 +529,25 @@
428
529
  "properties": {
429
530
  "title": {
430
531
  "type": "string",
532
+ "description": "A short, human-readable summary of the problem\ntype. It will not change from occurrence to occurrence of the \nproblem, except for purposes of localization\n",
533
+ "example": "You do not have enough credit",
431
534
  "maxLength": 256
432
535
  },
433
536
  "type": {
434
537
  "type": "string",
538
+ "description": "A URI reference [RFC3986] that identifies the\nproblem type. This specification encourages that, when\ndereferenced, it provide human-readable documentation for the\nproblem type (e.g., using HTML [W3C.REC-html5-20141028]). When\nthis member is not present, its value is assumed to be\n\"about:blank\". It accepts relative URIs; this means\nthat they must be resolved relative to the document's base URI, as\nper [RFC3986], Section 5.\n",
539
+ "example": "NotEnoughMoney",
435
540
  "maxLength": 2048
436
541
  },
437
542
  "detail": {
438
- "type": "string"
543
+ "type": "string",
544
+ "description": "A human-readable explanation specific to this occurrence of the problem.",
545
+ "example": "Your current balance is 30, but that costs 50"
439
546
  },
440
547
  "instance": {
441
548
  "type": "string",
549
+ "description": "A URI reference that identifies the specific\noccurrence of the problem. It may or may not yield further\ninformation if dereferenced. It accepts relative URIs; this means\nthat they must be resolved relative to the document's base URI, as\nper [RFC3986], Section 5.\n",
550
+ "example": "/account/12345/msgs/abc",
442
551
  "maxLength": 2048
443
552
  }
444
553
  },
@@ -453,25 +562,33 @@
453
562
  {
454
563
  "$ref": "#/components/schemas/ErrorResponse"
455
564
  }
456
- ]
565
+ ],
566
+ "description": "Returned when an invalid query parameter is provided."
457
567
  },
458
568
  "FeatureNotEnabledErrorResponse": {
459
569
  "allOf": [
460
570
  {
461
571
  "$ref": "#/components/schemas/ErrorResponse"
462
572
  }
463
- ]
573
+ ],
574
+ "description": "Returned when the Granular Replication feature is disabled."
464
575
  },
465
576
  "NotOnStagingInstanceErrorResponse": {
466
577
  "allOf": [
467
578
  {
468
579
  "$ref": "#/components/schemas/ErrorResponse"
469
580
  }
470
- ]
581
+ ],
582
+ "description": "Returned when the request is sent to a non-staging instance."
471
583
  },
472
584
  "ProductPublishRequest": {
473
585
  "type": "object",
474
586
  "additionalProperties": false,
587
+ "example": {
588
+ "product": {
589
+ "productId": "PROD-12345"
590
+ }
591
+ },
475
592
  "properties": {
476
593
  "product": {
477
594
  "type": "object",
@@ -492,6 +609,12 @@
492
609
  "PriceTablePublishRequest": {
493
610
  "type": "object",
494
611
  "additionalProperties": false,
612
+ "example": {
613
+ "priceTable": {
614
+ "productId": "PROD-67890",
615
+ "priceBookId": "USD-Retail-2024"
616
+ }
617
+ },
495
618
  "properties": {
496
619
  "priceTable": {
497
620
  "type": "object",
@@ -501,6 +624,8 @@
501
624
  },
502
625
  "priceBookId": {
503
626
  "type": "string",
627
+ "description": "ID of the price book",
628
+ "example": "USD-Retail-2024",
504
629
  "maxLength": 256
505
630
  }
506
631
  },
@@ -547,6 +672,7 @@
547
672
  },
548
673
  "PublishIdResponse": {
549
674
  "type": "object",
675
+ "description": "Item successfully queued for publishing",
550
676
  "properties": {
551
677
  "id": {
552
678
  "$ref": "#/components/schemas/id"
@@ -561,42 +687,48 @@
561
687
  {
562
688
  "$ref": "#/components/schemas/ErrorResponse"
563
689
  }
564
- ]
690
+ ],
691
+ "description": "Returned when the request body is malformed or contains invalid data."
565
692
  },
566
693
  "ItemNotFoundErrorResponse": {
567
694
  "allOf": [
568
695
  {
569
696
  "$ref": "#/components/schemas/ErrorResponse"
570
697
  }
571
- ]
698
+ ],
699
+ "description": "Returned when the specified item (product, price table, or content asset) was not found."
572
700
  },
573
701
  "AlreadyQueuedErrorResponse": {
574
702
  "allOf": [
575
703
  {
576
704
  "$ref": "#/components/schemas/ErrorResponse"
577
705
  }
578
- ]
706
+ ],
707
+ "description": "Returned when attempting to queue an item that is already queued."
579
708
  },
580
709
  "TooManyQueuedErrorResponse": {
581
710
  "allOf": [
582
711
  {
583
712
  "$ref": "#/components/schemas/ErrorResponse"
584
713
  }
585
- ]
714
+ ],
715
+ "description": "Returned when the maximum number of items (50) queued for publish has been exceeded."
586
716
  },
587
717
  "ReplicationRunningErrorResponse": {
588
718
  "allOf": [
589
719
  {
590
720
  "$ref": "#/components/schemas/ErrorResponse"
591
721
  }
592
- ]
722
+ ],
723
+ "description": "Returned when attempting to queue items while a replication is running."
593
724
  },
594
725
  "FeedBasedPriceBookNotSupportedErrorResponse": {
595
726
  "allOf": [
596
727
  {
597
728
  "$ref": "#/components/schemas/ErrorResponse"
598
729
  }
599
- ]
730
+ ],
731
+ "description": "Returned when attempting to publish a price table from a feed-based price book."
600
732
  },
601
733
  "PublishProcessNotFoundErrorResponse": {
602
734
  "allOf": [
@@ -604,6 +736,7 @@
604
736
  "$ref": "#/components/schemas/ErrorResponse"
605
737
  }
606
738
  ],
739
+ "description": "Returned when the publish process for given ID was not found.",
607
740
  "properties": {
608
741
  "id": {
609
742
  "$ref": "#/components/schemas/id"
@@ -618,6 +751,11 @@
618
751
  "application/problem+json": {
619
752
  "schema": {
620
753
  "$ref": "#/components/schemas/InvalidQueryParameterErrorResponse"
754
+ },
755
+ "examples": {
756
+ "InvalidQueryParameterErrorResponseExample": {
757
+ "$ref": "#/components/examples/InvalidQueryParameterErrorResponseExample"
758
+ }
621
759
  }
622
760
  }
623
761
  }
@@ -628,6 +766,11 @@
628
766
  "application/problem+json": {
629
767
  "schema": {
630
768
  "$ref": "#/components/schemas/FeatureNotEnabledErrorResponse"
769
+ },
770
+ "examples": {
771
+ "FeatureNotEnabledErrorResponseExample": {
772
+ "$ref": "#/components/examples/FeatureNotEnabledErrorResponseExample"
773
+ }
631
774
  }
632
775
  }
633
776
  }
@@ -638,6 +781,11 @@
638
781
  "application/problem+json": {
639
782
  "schema": {
640
783
  "$ref": "#/components/schemas/NotOnStagingInstanceErrorResponse"
784
+ },
785
+ "examples": {
786
+ "NotOnStagingInstanceErrorResponseExample": {
787
+ "$ref": "#/components/examples/NotOnStagingInstanceErrorResponseExample"
788
+ }
641
789
  }
642
790
  }
643
791
  }
@@ -648,6 +796,11 @@
648
796
  "application/problem+json": {
649
797
  "schema": {
650
798
  "$ref": "#/components/schemas/InvalidRequestBodyErrorResponse"
799
+ },
800
+ "examples": {
801
+ "InvalidRequestBodyErrorResponseExample": {
802
+ "$ref": "#/components/examples/InvalidRequestBodyErrorResponseExample"
803
+ }
651
804
  }
652
805
  }
653
806
  }
@@ -658,6 +811,11 @@
658
811
  "application/problem+json": {
659
812
  "schema": {
660
813
  "$ref": "#/components/schemas/ItemNotFoundErrorResponse"
814
+ },
815
+ "examples": {
816
+ "ItemNotFoundErrorResponseExample": {
817
+ "$ref": "#/components/examples/ItemNotFoundErrorResponseExample"
818
+ }
661
819
  }
662
820
  }
663
821
  }
@@ -678,6 +836,17 @@
678
836
  "$ref": "#/components/schemas/ReplicationRunningErrorResponse"
679
837
  }
680
838
  ]
839
+ },
840
+ "examples": {
841
+ "AlreadyQueuedErrorResponseExample": {
842
+ "$ref": "#/components/examples/AlreadyQueuedErrorResponseExample"
843
+ },
844
+ "TooManyQueuedErrorResponseExample": {
845
+ "$ref": "#/components/examples/TooManyQueuedErrorResponseExample"
846
+ },
847
+ "ReplicationRunningErrorResponseExample": {
848
+ "$ref": "#/components/examples/ReplicationRunningErrorResponseExample"
849
+ }
681
850
  }
682
851
  }
683
852
  }
@@ -695,6 +864,14 @@
695
864
  "$ref": "#/components/schemas/NotOnStagingInstanceErrorResponse"
696
865
  }
697
866
  ]
867
+ },
868
+ "examples": {
869
+ "FeedBasedPriceBookNotSupportedErrorResponseExample": {
870
+ "$ref": "#/components/examples/FeedBasedPriceBookNotSupportedErrorResponseExample"
871
+ },
872
+ "NotOnStagingInstanceErrorResponseExample": {
873
+ "$ref": "#/components/examples/NotOnStagingInstanceErrorResponseExample"
874
+ }
698
875
  }
699
876
  }
700
877
  }
@@ -705,6 +882,11 @@
705
882
  "application/problem+json": {
706
883
  "schema": {
707
884
  "$ref": "#/components/schemas/PublishProcessNotFoundErrorResponse"
885
+ },
886
+ "examples": {
887
+ "PublishProcessNotFoundErrorResponseExample": {
888
+ "$ref": "#/components/examples/PublishProcessNotFoundErrorResponseExample"
889
+ }
708
890
  }
709
891
  }
710
892
  }
@@ -714,16 +896,19 @@
714
896
  "organizationId": {
715
897
  "name": "organizationId",
716
898
  "in": "path",
899
+ "description": "An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f_ecom_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).",
717
900
  "required": true,
718
901
  "style": "simple",
719
902
  "explode": false,
720
903
  "schema": {
721
904
  "$ref": "#/components/schemas/OrganizationId"
722
- }
905
+ },
906
+ "example": "f_ecom_zzxy_prd"
723
907
  },
724
908
  "id": {
725
909
  "name": "id",
726
910
  "in": "path",
911
+ "description": "Publish process ID of the published item.",
727
912
  "required": true,
728
913
  "style": "simple",
729
914
  "explode": false,
@@ -732,14 +917,216 @@
732
917
  }
733
918
  }
734
919
  },
920
+ "examples": {
921
+ "PaginatedResultList": {
922
+ "summary": "List results example",
923
+ "value": {
924
+ "total": 3,
925
+ "offset": 0,
926
+ "limit": 50,
927
+ "data": [
928
+ {
929
+ "id": "xmRhi7394HymoeRkfwAAAZeg3WiM",
930
+ "status": "completed",
931
+ "startTime": "2024-03-15T10:30:00Z",
932
+ "endTime": "2024-03-15T10:30:45Z",
933
+ "initiatedBy": "user@example.com",
934
+ "productItem": {
935
+ "productId": "PROD-12345"
936
+ }
937
+ },
938
+ {
939
+ "id": "xmRhi7394HymoeRkfwAAAZeg3WiN",
940
+ "status": "completed",
941
+ "startTime": "2024-03-15T10:35:00Z",
942
+ "endTime": "2024-03-15T10:35:30Z",
943
+ "initiatedBy": "user@example.com",
944
+ "productItem": {
945
+ "productId": "PROD-67890"
946
+ }
947
+ },
948
+ {
949
+ "id": "xmRhi7394HymoeRkfwAAAZeg3WiK",
950
+ "status": "failed",
951
+ "startTime": "2024-03-15T10:40:00Z",
952
+ "initiatedBy": "api-client-xyz",
953
+ "contentAssetItem": {
954
+ "contentId": "homepage-hero-banner",
955
+ "type": "shared",
956
+ "libraryId": "sharedLibrary"
957
+ }
958
+ }
959
+ ]
960
+ }
961
+ },
962
+ "PostRequestProduct": {
963
+ "summary": "Publish a product",
964
+ "description": "Example of publishing a product",
965
+ "value": {
966
+ "product": {
967
+ "productId": "PROD-12345"
968
+ }
969
+ }
970
+ },
971
+ "PostRequestPriceTable": {
972
+ "summary": "Publish a price table",
973
+ "description": "Example of publishing a price table for a product.\nNote: The published price table is always the one with the continuously valid period.",
974
+ "value": {
975
+ "priceTable": {
976
+ "productId": "PROD-67890",
977
+ "priceBookId": "USD-Retail-2024"
978
+ }
979
+ }
980
+ },
981
+ "PostRequestContentAssetSharedLib": {
982
+ "summary": "Publish a content asset from a shared library",
983
+ "description": "Publish a content asset from a shared library",
984
+ "value": {
985
+ "contentAsset": {
986
+ "contentId": "homepage-hero-banner",
987
+ "type": "shared",
988
+ "libraryId": "mySharedLibrary"
989
+ }
990
+ }
991
+ },
992
+ "PostRequestContentAssetPrivateLib": {
993
+ "summary": "Publish a content asset from a site's private library",
994
+ "description": "Publish a content asset from a site's private library.",
995
+ "value": {
996
+ "contentAsset": {
997
+ "contentId": "homepage-hero-banner",
998
+ "type": "private",
999
+ "siteId": "mySiteID"
1000
+ }
1001
+ }
1002
+ },
1003
+ "PublicationSuccessResponse": {
1004
+ "summary": "Successfully queued response",
1005
+ "value": {
1006
+ "id": "xmRhi7394HymoeRkfwAAAZeg3WiM"
1007
+ }
1008
+ },
1009
+ "ProductProcessResponse": {
1010
+ "summary": "Product publish process",
1011
+ "value": {
1012
+ "id": "xmRhi7394HymoeRkfwAAAZeg3WiM",
1013
+ "status": "completed",
1014
+ "startTime": "2024-03-15T10:30:00Z",
1015
+ "endTime": "2024-03-15T10:30:45Z",
1016
+ "initiatedBy": "user@example.com",
1017
+ "productItem": {
1018
+ "productId": "PROD-12345"
1019
+ }
1020
+ }
1021
+ },
1022
+ "PriceTableProcessResponse": {
1023
+ "summary": "Price table publish process; \nNote: The published price table is always the one with the continuously valid period.",
1024
+ "value": {
1025
+ "id": "xmRhi7394HymoeRkfwAAAZeg3WiN",
1026
+ "status": "completed",
1027
+ "startTime": "2024-03-15T10:35:00Z",
1028
+ "endTime": "2024-03-15T10:35:30Z",
1029
+ "initiatedBy": "1af8e314-60c7-46f0-b7b4-c88aecd3449d",
1030
+ "priceTableItem": {
1031
+ "productId": "PROD-67890",
1032
+ "priceBookId": "USD-Retail-2024"
1033
+ }
1034
+ }
1035
+ },
1036
+ "ContentAssetProcessResponse": {
1037
+ "summary": "Content asset publish process",
1038
+ "value": {
1039
+ "id": "xmRhi7394HymoeRkfwAAAZeg3Wik",
1040
+ "status": "in_progress",
1041
+ "startTime": "2024-03-15T10:40:00Z",
1042
+ "initiatedBy": "api-client-xyz",
1043
+ "contentAssetItem": {
1044
+ "contentId": "homepage-hero-banner",
1045
+ "siteId": "mySiteId",
1046
+ "type": "private"
1047
+ }
1048
+ }
1049
+ },
1050
+ "InvalidQueryParameterErrorResponseExample": {
1051
+ "value": {
1052
+ "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/invalid-query-parameter",
1053
+ "detail": "Invalid query parameter.",
1054
+ "title": "Invalid Query Parameter"
1055
+ }
1056
+ },
1057
+ "FeatureNotEnabledErrorResponseExample": {
1058
+ "value": {
1059
+ "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/feature-not-enabled",
1060
+ "detail": "The Granular Replication feature is not enabled in your staging and production environments.",
1061
+ "title": "Feature Not Enabled"
1062
+ }
1063
+ },
1064
+ "NotOnStagingInstanceErrorResponseExample": {
1065
+ "value": {
1066
+ "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/not-on-staging-instance",
1067
+ "detail": "The request was not sent to a staging instance.",
1068
+ "title": "Not On Staging Instance"
1069
+ }
1070
+ },
1071
+ "InvalidRequestBodyErrorResponseExample": {
1072
+ "value": {
1073
+ "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/invalid-request-body",
1074
+ "detail": "Invalid request body. Must provide valid properties for either a product, price table, or content asset.",
1075
+ "title": "Invalid Request Body"
1076
+ }
1077
+ },
1078
+ "ItemNotFoundErrorResponseExample": {
1079
+ "value": {
1080
+ "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/item-not-found",
1081
+ "detail": "The specified item was not found.",
1082
+ "title": "Item Not Found"
1083
+ }
1084
+ },
1085
+ "AlreadyQueuedErrorResponseExample": {
1086
+ "value": {
1087
+ "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/already-queued",
1088
+ "detail": "The item was already queued for the upcoming publish operation.",
1089
+ "title": "Already Queued"
1090
+ }
1091
+ },
1092
+ "TooManyQueuedErrorResponseExample": {
1093
+ "value": {
1094
+ "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/too-many-queued",
1095
+ "detail": "The maximum number of items queued for the upcoming publish operation has been exceeded.",
1096
+ "title": "Too Many Queued"
1097
+ }
1098
+ },
1099
+ "ReplicationRunningErrorResponseExample": {
1100
+ "value": {
1101
+ "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/replication-running",
1102
+ "detail": "A replication is running. Granular Replication is not possible during a running replication.",
1103
+ "title": "Replication Running"
1104
+ }
1105
+ },
1106
+ "FeedBasedPriceBookNotSupportedErrorResponseExample": {
1107
+ "value": {
1108
+ "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/feed-based-price-book-not-supported",
1109
+ "detail": "The price table belongs to a feed based price book. Feed based price books are not supported.",
1110
+ "title": "Feed Based Price Book Not Supported"
1111
+ }
1112
+ },
1113
+ "PublishProcessNotFoundErrorResponseExample": {
1114
+ "value": {
1115
+ "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/publish-process-not-found",
1116
+ "detail": "Publish process with ID 'xmRhi7394HymoeRkfwAAAZeg3WiM' was not found.",
1117
+ "title": "Publish Process Not Found"
1118
+ }
1119
+ }
1120
+ },
735
1121
  "securitySchemes": {
736
1122
  "AmOAuth2": {
737
1123
  "type": "oauth2",
1124
+ "description": "AccountManager OAuth 2.0 bearer token Authentication.",
738
1125
  "flows": {
739
1126
  "clientCredentials": {
740
1127
  "tokenUrl": "https://account.demandware.com/dwsso/oauth2/access_token",
741
1128
  "scopes": {
742
- "c.example": "custom scopes mus start with c. used for custom APIs [MAX length of scope 49 characters]",
1129
+ "c_example": "custom scopes must start with c_ used for custom APIs [MAX length of scope 49 characters]",
743
1130
  "sfcc.example": "standard salesforce commerce apis scopes must start with \"sfcc.\". Without suffix \".rw\" scopes grants READONLY access. [MAX length of scope 49 characters]",
744
1131
  "sfcc.example.rw": "salesforce commerce apis scopes must start with \"sfcc.\". The suffix \".rw\" scopes grants READ and WRITE access. [MAX length of scope 49 characters]"
745
1132
  }
@@ -748,7 +1135,7 @@
748
1135
  "authorizationUrl": "https://account.demandware.com/dwsso/oauth2/authorize",
749
1136
  "tokenUrl": "https://account.demandware.com/dwsso/oauth2/access_token",
750
1137
  "scopes": {
751
- "c.example": "custom scopes mus start with c. used for custom APIs [MAX length of scope 49 characters]",
1138
+ "c_example": "custom scopes mus start with c_ used for custom APIs [MAX length of scope 49 characters]",
752
1139
  "sfcc.example": "standard salesforce commerce apis scopes must start with \"sfcc.\". Without suffix \".rw\" scopes grants READONLY access. [MAX length of scope 49 characters]",
753
1140
  "sfcc.example.rw": "salesforce commerce apis scopes must start with \"sfcc.\". The suffix \".rw\" scopes grants READ and WRITE access. [MAX length of scope 49 characters]"
754
1141
  }