Schema Changes - 2025-06-05
This document contains the changes to the schema files compared to the main branch.
Changes
diff --git a/schema/Api/CustomerBroker/GetCustomerResponse.json b/schema/Api/CustomerBroker/GetCustomerResponse.json
index 539ea54..970fe2c 100644
--- a/schema/Api/CustomerBroker/GetCustomerResponse.json
+++ b/schema/Api/CustomerBroker/GetCustomerResponse.json
@@ -5,7 +5,11 @@
{"$ref": "../../Common/ApiResponseBase.json"},
{
"type": "object",
- "properties": { "data": { "oneOf": [ {"type": "null"}, {"$ref": "parts/Customer.json"} ] } }
+ "properties": {
+ "data": {
+ "oneOf": [ {"type": "null"}, {"$ref": "parts/CustomerFromGetCustomerResponse.json"} ]
+ }
+ }
}
]
}
diff --git a/schema/Api/CustomerBroker/parts/Customer.json b/schema/Api/CustomerBroker/parts/Customer.json
index 648f705..392f9e5 100644
--- a/schema/Api/CustomerBroker/parts/Customer.json
+++ b/schema/Api/CustomerBroker/parts/Customer.json
@@ -9,6 +9,7 @@
"type": ["string", "null"],
"minLength": 1
},
+ "brokerScopes": { "type": ["array", "null"], "items": {"type": "string"} },
"contactEmailAddress": {
"description": "Optional. Contact email address. Must be a valid email if provided.",
"type": ["string", "null"],
diff --git a/schema/Api/CustomerBroker/parts/CustomerFromCreateCustomerRequest.json b/schema/Api/CustomerBroker/parts/CustomerFromCreateCustomerRequest.json
index 00ef500..7c0be8f 100644
--- a/schema/Api/CustomerBroker/parts/CustomerFromCreateCustomerRequest.json
+++ b/schema/Api/CustomerBroker/parts/CustomerFromCreateCustomerRequest.json
@@ -25,7 +25,8 @@
"description": "Optional. Ship method mappings for the customer.",
"type": ["array", "null"],
"items": {"$ref": "ShipMethodMapping.json"}
- }
+ },
+ "sourceSystems": { "type": ["array", "null"], "items": {"$ref": "SourceSystem.json"} }
}
}
]
diff --git a/schema/Api/CustomerBroker/parts/CustomerFromGetCustomerResponse.json b/schema/Api/CustomerBroker/parts/CustomerFromGetCustomerResponse.json
new file mode 100644
index 0000000..481167a
--- /dev/null
+++ b/schema/Api/CustomerBroker/parts/CustomerFromGetCustomerResponse.json
@@ -0,0 +1,22 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "$id": "CustomerFromGetCustomerResponse.json",
+ "type": "object",
+ "allOf": [
+ {"$ref": "Customer.json"},
+ {
+ "type": "object",
+ "properties": {
+ "clientSecret": { "type": ["string", "null"] },
+ "contactAddress": {"$ref": "ContactAddress.json"},
+ "emailNotificationSubscriptions": {
+ "type": ["array", "null"],
+ "items": {"$ref": "EmailNotificationSubscription.json"}
+ },
+ "parent": {"$ref": "Parent.json"},
+ "shipMethodMappings": { "type": ["array", "null"], "items": {"$ref": "ShipMethodMapping.json"} },
+ "sourceSystems": { "type": ["array", "null"], "items": {"$ref": "SourceSystem.json"} }
+ }
+ }
+ ]
+}
diff --git a/schema/Api/CustomerBroker/parts/CustomerFromUpdateCustomerRequest.json b/schema/Api/CustomerBroker/parts/CustomerFromUpdateCustomerRequest.json
index 4c93d37..bcffa4d 100644
--- a/schema/Api/CustomerBroker/parts/CustomerFromUpdateCustomerRequest.json
+++ b/schema/Api/CustomerBroker/parts/CustomerFromUpdateCustomerRequest.json
@@ -14,6 +14,7 @@
},
"parent": {"$ref": "Parent.json"},
"shipMethodMappings": { "type": ["array", "null"], "items": {"$ref": "ShipMethodMapping.json"} },
+ "sourceSystems": { "type": ["array", "null"], "items": {"$ref": "SourceSystem.json"} },
"updateDateTimeUtc": { "type": ["string", "null"] }
}
}
diff --git a/schema/Api/CustomerBroker/parts/SourceSystem.json b/schema/Api/CustomerBroker/parts/SourceSystem.json
index 0f9b0c1..042a9d9 100644
--- a/schema/Api/CustomerBroker/parts/SourceSystem.json
+++ b/schema/Api/CustomerBroker/parts/SourceSystem.json
@@ -2,7 +2,10 @@
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "SourceSystem.json",
"type": "object",
- "additionalProperties": false,
- "properties": { "id": {"type": "integer", "format": "int32"}, "name": {"type": "string"} },
+ "properties": {
+ "id": { "type": ["integer", "null"], "format": "int32" },
+ "sourceSystemCustomerId": { "type": ["string", "null"] },
+ "name": { "type": ["string", "null"] }
+ },
"required": ["id", "name"]
}
diff --git a/schema/Api/OfferBroker/CreateOfferRequest.json b/schema/Api/OfferBroker/CreateOfferRequest.json
index d80675c..b6aaef4 100644
--- a/schema/Api/OfferBroker/CreateOfferRequest.json
+++ b/schema/Api/OfferBroker/CreateOfferRequest.json
@@ -1,6 +1,6 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "CreateOfferRequest.json",
- "$ref": "parts/Offer.json",
+ "$ref": "parts/OfferFromCreateOfferRequest.json",
"type": "object"
}
diff --git a/schema/Api/OfferBroker/InternalGetOffersParameters.json b/schema/Api/OfferBroker/InternalGetOffersParameters.json
new file mode 100644
index 0000000..b942284
--- /dev/null
+++ b/schema/Api/OfferBroker/InternalGetOffersParameters.json
@@ -0,0 +1,25 @@
+{
+ "CorrelationId": {
+ "description": "Correlation ID. This is added by the API Management service if not present. Once added, it should be propagated to any downstream services.",
+ "in": "header",
+ "name": "x-correlation-id",
+ "schema": {"type": "string"},
+ "required": false
+ },
+ "CustomerId": {
+ "in": "path",
+ "name": "customerId",
+ "schema": {"type": "string"},
+ "required": true
+ },
+ "DoIncludeDeletedItems": {
+ "in": "query",
+ "name": "doIncludeDeletedItems",
+ "schema": {"type": "boolean"}
+ },
+ "UpdatedSinceDateTime": {
+ "in": "query",
+ "name": "updatedSinceDateTime",
+ "schema": {"type": "string", "format": "date-time"}
+ }
+}
diff --git a/schema/Api/OfferBroker/InternalGetOffersResponse.json b/schema/Api/OfferBroker/InternalGetOffersResponse.json
new file mode 100644
index 0000000..976dff3
--- /dev/null
+++ b/schema/Api/OfferBroker/InternalGetOffersResponse.json
@@ -0,0 +1,11 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "$id": "InternalGetOffersResponse.json",
+ "allOf": [
+ {"$ref": "../../Common/ApiResponseBase.json"},
+ {
+ "type": "object",
+ "properties": { "data": { "type": ["array", "null"], "items": {"$ref": "parts/Offer.json"} } }
+ }
+ ]
+}
diff --git a/schema/Api/OfferBroker/UpdateOfferRequest.json b/schema/Api/OfferBroker/UpdateOfferRequest.json
index fd5b0da..ceb1f66 100644
--- a/schema/Api/OfferBroker/UpdateOfferRequest.json
+++ b/schema/Api/OfferBroker/UpdateOfferRequest.json
@@ -1,7 +1,7 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "UpdateOfferRequest.json",
- "$ref": "parts/Offer.json",
+ "$ref": "parts/OfferFromUpdateOfferRequest.json",
"type": "object",
"additionalProperties": false
}
diff --git a/schema/Api/OfferBroker/parts/OfferFromCreateOfferRequest.json b/schema/Api/OfferBroker/parts/OfferFromCreateOfferRequest.json
new file mode 100644
index 0000000..ddfa673
--- /dev/null
+++ b/schema/Api/OfferBroker/parts/OfferFromCreateOfferRequest.json
@@ -0,0 +1,24 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "$id": "OfferFromCreateOfferRequest.json",
+ "type": "object",
+ "allOf": [
+ {"$ref": "Offer.json"},
+ {
+ "type": "object",
+ "properties": {
+ "description": { "type": ["string", "null"] },
+ "additionalPropsRequiredOnOrder": {
+ "type": ["array", "null"],
+ "items": {"$ref": "AdditionalPropsRequiredOnOrderInput.json"}
+ },
+ "priceClasses": { "type": ["array", "null"], "items": {"$ref": "PriceClass.json"} },
+ "productClusters": {
+ "description": "Required if offerType is 'Product List'. Must contain at least one ProductCluster with at least one Product, each with a non-empty productId and pageCount >= 1 if provided.",
+ "type": ["array", "null"],
+ "items": {"$ref": "ProductClusterInput.json"}
+ }
+ }
+ }
+ ]
+}
diff --git a/schema/Api/OfferBroker/parts/OfferFromUpdateOfferRequest.json b/schema/Api/OfferBroker/parts/OfferFromUpdateOfferRequest.json
new file mode 100644
index 0000000..2582c8a
--- /dev/null
+++ b/schema/Api/OfferBroker/parts/OfferFromUpdateOfferRequest.json
@@ -0,0 +1,25 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "$id": "OfferFromUpdateOfferRequest.json",
+ "type": "object",
+ "allOf": [
+ {"$ref": "Offer.json"},
+ {
+ "type": "object",
+ "properties": {
+ "description": { "type": ["string", "null"] },
+ "additionalPropsRequiredOnOrder": {
+ "type": ["array", "null"],
+ "items": {"$ref": "AdditionalPropsRequiredOnOrderInput.json"}
+ },
+ "isDeleted": { "type": ["boolean", "null"] },
+ "priceClasses": { "type": ["array", "null"], "items": {"$ref": "PriceClass.json"} },
+ "productClusters": {
+ "description": "Required if offerType is 'Product List'. Must contain at least one ProductCluster with at least one Product, each with a non-empty productId and pageCount >= 1 if provided.",
+ "type": ["array", "null"],
+ "items": {"$ref": "ProductClusterInput.json"}
+ }
+ }
+ }
+ ]
+}
diff --git a/schema/Api/OrderBroker/InternalNewOrderRequest.json b/schema/Api/OrderBroker/InternalNewOrderRequest.json
index 8fd75a8..e5094ab 100644
--- a/schema/Api/OrderBroker/InternalNewOrderRequest.json
+++ b/schema/Api/OrderBroker/InternalNewOrderRequest.json
@@ -13,11 +13,11 @@
},
"referenceId": { "type": ["string", "null"], "maxLength": 255, "examples": ["REF123456"] },
"sourceSystemCustomerId": { "type": ["string", "null"], "maxLength": 100, "examples": ["CUST123456"] },
- "sourceSystemId": { "type": "integer", "format": "int32" },
+ "sourceSystemId": {"type": "integer", "format": "int32"},
"accessGroups": {
"type": ["array", "null"],
- "items": { "type": "string", "maxLength": 255 },
- "examples": [["Group1", "Group2"]]
+ "items": {"type": "string", "maxLength": 255},
+ "examples": [ ["Group1", "Group2"] ]
},
"affiliateIdentifier": {
"description": "Unique ID for affiliate within source system (system where order was originally placed)",
@@ -34,10 +34,10 @@
"billTos": {
"description": "Bill to addresses array for Order",
"oneOf": [
- { "type": "null" },
+ {"type": "null"},
{
"type": "array",
- "items": { "$ref": "parts/BillToFromNewOrderRequest.json" },
+ "items": {"$ref": "parts/BillToFromNewOrderRequest.json"},
"minItems": 1,
"examples": [
[
@@ -102,7 +102,7 @@
"lineItems": {
"description": "Order level line item details",
"type": "array",
- "items": { "$ref": "parts/LineItem.json" },
+ "items": {"$ref": "parts/LineItem.json"},
"minItems": 1,
"examples": [
[
@@ -127,12 +127,12 @@
"orderVariables": {
"$ref": "parts/OrderVariable.json",
"description": "Manually entered variables for order within order management system (system where order lifecycle will be managed in)",
- "examples": [{ "key": "CUSTOM_FIELD", "value": "Custom Value" }]
+ "examples": [ {"key": "CUSTOM_FIELD", "value": "Custom Value"} ]
},
"orderedBys": {
"description": "Order level ordered by contact and address details",
"type": ["array", "null"],
- "items": { "$ref": "parts/OrderedBy.json" },
+ "items": {"$ref": "parts/OrderedBy.json"},
"examples": [
[
{
@@ -154,7 +154,7 @@
"paymentMethods": {
"description": "Order.ShipTos level payment method details",
"type": ["array", "null"],
- "items": { "$ref": "parts/PaymentMethod.json" },
+ "items": {"$ref": "parts/PaymentMethod.json"},
"examples": [
[
{
@@ -188,7 +188,7 @@
"shipTos": {
"description": "Order level ship to details",
"type": "array",
- "items": { "$ref": "parts/ShipToFromNewOrderRequest.json" },
+ "items": {"$ref": "parts/ShipToFromNewOrderRequest.json"},
"minItems": 1,
"examples": [
[
@@ -230,22 +230,25 @@
"examples": [10.0]
}
},
- "required": ["orderId", "lineItems", "shippingHandlingTax", "billTos", "sourceSystemCustomerId", "sourceSystemId"],
+ "required": [
+ "orderId", "lineItems", "shippingHandlingTax", "billTos",
+ "sourceSystemCustomerId", "sourceSystemId"
+ ],
"allOf": [
{
"oneOf": [
{
- "properties": { "defaultBillToKey": { "type": "integer" } },
+ "properties": { "defaultBillToKey": {"type": "integer"} },
"required": ["defaultBillToKey"]
},
{
"not": {
- "properties": { "defaultBillToKey": { "type": "integer" } },
+ "properties": { "defaultBillToKey": {"type": "integer"} },
"required": ["defaultBillToKey"]
},
"properties": {
- "billTos": { "type": "array", "minItems": 1 },
- "defaultBillToKey": { "type": ["null", "integer"] }
+ "billTos" : { "type": "array" , "minItems": 1 },
+ "defaultBillToKey": { "type": ["null", "integer"] }
},
"required": ["billTos"]
}
@@ -254,17 +257,17 @@
{
"oneOf": [
{
- "properties": { "defaultShipToKey": { "type": "integer" } },
+ "properties": { "defaultShipToKey": {"type": "integer"} },
"required": ["defaultShipToKey"]
},
{
"not": {
- "properties": { "defaultShipToKey": { "type": "integer" } },
+ "properties": { "defaultShipToKey": {"type": "integer"} },
"required": ["defaultShipToKey"]
},
"properties": {
- "defaultShipToKey": { "type": ["null", "integer"] },
- "shipTos": { "type": "array", "minItems": 1 }
+ "defaultShipToKey": { "type": ["null", "integer"] },
+ "shipTos" : { "type": "array" , "minItems": 1 }
},
"required": ["shipTos"]
}
@@ -274,7 +277,7 @@
"description": "LineItem BillToKey validation - If defaultBillToKey is not provided, all lineItems must specify a billToKey",
"oneOf": [
{
- "properties": { "defaultBillToKey": { "type": "integer" } },
+ "properties": { "defaultBillToKey": {"type": "integer"} },
"required": ["defaultBillToKey"]
},
{
@@ -283,7 +286,7 @@
"type": "array",
"items": {
"type": "object",
- "properties": { "billToKey": { "type": "integer", "minimum": 0 } },
+ "properties": { "billToKey": {"type": "integer", "minimum": 0} },
"required": ["billToKey"]
}
}
@@ -295,7 +298,7 @@
"description": "LineItem ShipToKey validation - If defaultShipToKey is not provided, all lineItems must specify a shipToKey",
"oneOf": [
{
- "properties": { "defaultShipToKey": { "type": "integer" } },
+ "properties": { "defaultShipToKey": {"type": "integer"} },
"required": ["defaultShipToKey"]
},
{
@@ -304,7 +307,7 @@
"type": "array",
"items": {
"type": "object",
- "properties": { "shipToKey": { "type": "integer", "minimum": 0 } },
+ "properties": { "shipToKey": {"type": "integer", "minimum": 0} },
"required": ["shipToKey"]
}
}
@@ -319,7 +322,7 @@
"type": "array",
"items": {
"type": "object",
- "properties": { "offerLineNumber": { "type": "string", "minLength": 1 } },
+ "properties": { "offerLineNumber": {"type": "string", "minLength": 1} },
"required": ["offerLineNumber"]
}
}
diff --git a/schema/Api/OrderBroker/NewOrderRequest.json b/schema/Api/OrderBroker/NewOrderRequest.json
index ff83308..3c57025 100644
--- a/schema/Api/OrderBroker/NewOrderRequest.json
+++ b/schema/Api/OrderBroker/NewOrderRequest.json
@@ -21,7 +21,7 @@
"type": "integer",
"format": "int32"
},
- "accessGroups": { "type": ["array", "null"], "items": { "type": "string" } },
+ "accessGroups": { "type": ["array", "null"], "items": {"type": "string"} },
"affiliateIdentifier": {
"description": "Unique ID for affiliate within source system (system where order was originally placed)",
"type": ["string", "null"]
@@ -33,10 +33,10 @@
"billTos": {
"description": "Bill to addresses array for Order. Required, must not be empty. Each item must have required address fields and a non-null key.",
"oneOf": [
- { "type": "null" },
+ {"type": "null"},
{
"type": "array",
- "items": { "$ref": "parts/BillToFromNewOrderRequest.json" },
+ "items": {"$ref": "parts/BillToFromNewOrderRequest.json"},
"minItems": 1
}
],
@@ -90,7 +90,7 @@
"lineItems": {
"description": "Order level line item details. Required, must not be empty. Each item must have offerId, quantityOrdered > 0, price >= 0, taxAmount >= 0, lineItemFee >= 0. If defaultBillToKey, defaultOrderedByKey, or defaultShipToKey are null, corresponding keys must be set on each line item.",
"type": ["array"],
- "items": { "$ref": "parts/LineItem.json" },
+ "items": {"$ref": "parts/LineItem.json"},
"minItems": 1,
"uniqueItems": false
},
@@ -106,7 +106,10 @@
"orderedBys": {
"description": "Order level ordered by contact and address details. Not required, but if present, each item must have required address fields and a non-null key.",
"type": ["array", "null"],
- "oneOf": [{ "type": "null" }, { "type": "array", "items": { "$ref": "parts/OrderedBy.json" }, "minItems": 1 }],
+ "oneOf": [
+ {"type": "null"},
+ { "type": "array", "items": {"$ref": "parts/OrderedBy.json"}, "minItems": 1 }
+ ],
"examples": [
{
"address1": "106 Tyler Street Suite 175",
@@ -127,7 +130,7 @@
"paymentMethods": {
"description": "Order.ShipTos level payment method details",
"type": ["array", "null"],
- "items": { "$ref": "parts/PaymentMethod.json" }
+ "items": {"$ref": "parts/PaymentMethod.json"}
},
"pickPackHandlingFee": {
"description": "Sum of pick & pack handling fees for all Order.ShipTos",
@@ -139,11 +142,11 @@
"type": ["string", "null"],
"maxLength": 20
},
- "rushOrder": { "description": "True/false indicator if Order is expedited", "type": "boolean" },
+ "rushOrder": {"description": "True/false indicator if Order is expedited", "type": "boolean"},
"shipTos": {
"description": "Order level ship to details. Required, must not be empty. Each item must have required address fields and a non-null key.",
"type": ["array"],
- "items": { "$ref": "parts/ShipToFromNewOrderRequest.json" },
+ "items": {"$ref": "parts/ShipToFromNewOrderRequest.json"},
"minItems": 1,
"uniqueItems": false
},
@@ -168,17 +171,17 @@
{
"oneOf": [
{
- "properties": { "defaultBillToKey": { "type": "integer" } },
+ "properties": { "defaultBillToKey": {"type": "integer"} },
"required": ["defaultBillToKey"]
},
{
"not": {
- "properties": { "defaultBillToKey": { "type": "integer" } },
+ "properties": { "defaultBillToKey": {"type": "integer"} },
"required": ["defaultBillToKey"]
},
"properties": {
- "billTos": { "type": "array", "minItems": 1 },
- "defaultBillToKey": { "type": ["null", "integer"] }
+ "billTos" : { "type": "array" , "minItems": 1 },
+ "defaultBillToKey": { "type": ["null", "integer"] }
},
"required": ["billTos"]
}
@@ -187,17 +190,17 @@
{
"oneOf": [
{
- "properties": { "defaultShipToKey": { "type": "integer" } },
+ "properties": { "defaultShipToKey": {"type": "integer"} },
"required": ["defaultShipToKey"]
},
{
"not": {
- "properties": { "defaultShipToKey": { "type": "integer" } },
+ "properties": { "defaultShipToKey": {"type": "integer"} },
"required": ["defaultShipToKey"]
},
"properties": {
- "DefaultShipToKey": { "type": ["null", "integer"] },
- "ShipTos": { "type": "array", "minItems": 1 }
+ "DefaultShipToKey": { "type": ["null", "integer"] },
+ "ShipTos" : { "type": "array" , "minItems": 1 }
},
"required": ["shipTos"]
}
@@ -305,7 +308,7 @@
"stateProvince": "California"
}
],
- "paymentMethods": [{ "amount": 35.8, "methodName": "invoice" }],
+ "paymentMethods": [ {"amount": 35.8, "methodName": "invoice"} ],
"pickPackHandlingFee": 0.75,
"poNumber": null,
"rushOrder": false,
@@ -448,7 +451,7 @@
"stateProvince": "Alaska"
}
],
- "paymentMethods": [{ "amount": 35.8, "methodName": "invoice" }],
+ "paymentMethods": [ {"amount": 35.8, "methodName": "invoice"} ],
"pickPackHandlingFee": 0.75,
"poNumber": null,
"rushOrder": false,