@startuml

hide empty fields
hide empty methods
legend
|= |= line |
|<back:black>   </back>| inheritance |
|<back:green>   </back>| property reference |
|<back:blue>   </back>| discriminated class |
endlegend
interface OrderMessage [[OrderMessage.svg]] extends Message {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
}
interface Message [[Message.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
}

interface CustomLineItemStateTransitionMessage [[CustomLineItemStateTransitionMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    customLineItemId: String
    transitionDate: DateTime
    quantity: Long
    fromState: [[StateReference.svg StateReference]]
    toState: [[StateReference.svg StateReference]]
}
interface DeliveryAddedMessage [[DeliveryAddedMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    delivery: [[Delivery.svg Delivery]]
    shippingKey: String
}
interface DeliveryAddressSetMessage [[DeliveryAddressSetMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    deliveryId: String
    address: [[Address.svg Address]]
    oldAddress: [[Address.svg Address]]
    shippingKey: String
}
interface DeliveryItemsUpdatedMessage [[DeliveryItemsUpdatedMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    deliveryId: String
    items: [[DeliveryItem.svg List<DeliveryItem>]]
    oldItems: [[DeliveryItem.svg List<DeliveryItem>]]
    shippingKey: String
}
interface DeliveryRemovedMessage [[DeliveryRemovedMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    delivery: [[Delivery.svg Delivery]]
    shippingKey: String
}
interface LineItemStateTransitionMessage [[LineItemStateTransitionMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    lineItemId: String
    transitionDate: DateTime
    quantity: Long
    fromState: [[StateReference.svg StateReference]]
    toState: [[StateReference.svg StateReference]]
}
interface OrderBillingAddressSetMessage [[OrderBillingAddressSetMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    address: [[Address.svg Address]]
    oldAddress: [[Address.svg Address]]
}
interface OrderCreatedMessage [[OrderCreatedMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    order: [[Order.svg Order]]
}
interface OrderCustomLineItemAddedMessage [[OrderCustomLineItemAddedMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    customLineItem: [[CustomLineItem.svg CustomLineItem]]
}
interface OrderCustomLineItemDiscountSetMessage [[OrderCustomLineItemDiscountSetMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    customLineItemId: String
    discountedPricePerQuantity: [[DiscountedLineItemPriceForQuantity.svg List<DiscountedLineItemPriceForQuantity>]]
    taxedPrice: [[TaxedItemPrice.svg TaxedItemPrice]]
}
interface OrderCustomLineItemQuantityChangedMessage [[OrderCustomLineItemQuantityChangedMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    customLineItemId: String
    quantity: Long
    oldQuantity: Long
}
interface OrderCustomLineItemRemovedMessage [[OrderCustomLineItemRemovedMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    customLineItemId: String
    customLineItem: [[CustomLineItem.svg CustomLineItem]]
}
interface OrderCustomerEmailSetMessage [[OrderCustomerEmailSetMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    email: String
    oldEmail: String
}
interface OrderCustomerGroupSetMessage [[OrderCustomerGroupSetMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    customerGroup: [[CustomerGroupReference.svg CustomerGroupReference]]
    oldCustomerGroup: [[CustomerGroupReference.svg CustomerGroupReference]]
}
interface OrderCustomerSetMessage [[OrderCustomerSetMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    customer: [[CustomerReference.svg CustomerReference]]
    customerGroup: [[CustomerGroupReference.svg CustomerGroupReference]]
    oldCustomer: [[CustomerReference.svg CustomerReference]]
    oldCustomerGroup: [[CustomerGroupReference.svg CustomerGroupReference]]
}
interface OrderDeletedMessage [[OrderDeletedMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    order: [[Order.svg Order]]
}
interface OrderDiscountCodeAddedMessage [[OrderDiscountCodeAddedMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    discountCode: [[DiscountCodeReference.svg DiscountCodeReference]]
}
interface OrderDiscountCodeRemovedMessage [[OrderDiscountCodeRemovedMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    discountCode: [[DiscountCodeReference.svg DiscountCodeReference]]
}
interface OrderDiscountCodeStateSetMessage [[OrderDiscountCodeStateSetMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    discountCode: [[DiscountCodeReference.svg DiscountCodeReference]]
    state: [[DiscountCodeState.svg DiscountCodeState]]
    oldState: [[DiscountCodeState.svg DiscountCodeState]]
}
interface OrderEditAppliedMessage [[OrderEditAppliedMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    edit: [[OrderEdit.svg OrderEdit]]
    result: [[OrderEditApplied.svg OrderEditApplied]]
}
interface OrderImportedMessage [[OrderImportedMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    order: [[Order.svg Order]]
}
interface OrderLineItemAddedMessage [[OrderLineItemAddedMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    lineItem: [[LineItem.svg LineItem]]
    addedQuantity: Long
}
interface OrderLineItemDiscountSetMessage [[OrderLineItemDiscountSetMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    lineItemId: String
    discountedPricePerQuantity: [[DiscountedLineItemPriceForQuantity.svg List<DiscountedLineItemPriceForQuantity>]]
    totalPrice: [[Money.svg Money]]
    taxedPrice: [[TaxedItemPrice.svg TaxedItemPrice]]
    taxedPricePortions: [[MethodTaxedPrice.svg List<MethodTaxedPrice>]]
}
interface OrderLineItemDistributionChannelSetMessage [[OrderLineItemDistributionChannelSetMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    lineItemId: String
    distributionChannel: [[ChannelReference.svg ChannelReference]]
}
interface OrderLineItemRemovedMessage [[OrderLineItemRemovedMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    lineItemId: String
    removedQuantity: Long
    newQuantity: Long
    newState: [[ItemState.svg List<ItemState>]]
    newTotalPrice: [[CentPrecisionMoney.svg CentPrecisionMoney]]
    newTaxedPrice: [[TaxedItemPrice.svg TaxedItemPrice]]
    newPrice: [[Price.svg Price]]
    newShippingDetail: [[ItemShippingDetails.svg ItemShippingDetails]]
}
interface OrderPaymentStateChangedMessage [[OrderPaymentStateChangedMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    paymentState: [[PaymentState.svg PaymentState]]
    oldPaymentState: [[PaymentState.svg PaymentState]]
}
interface OrderReturnShipmentStateChangedMessage [[OrderReturnShipmentStateChangedMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    returnItemId: String
    returnShipmentState: [[ReturnShipmentState.svg ReturnShipmentState]]
}
interface OrderShipmentStateChangedMessage [[OrderShipmentStateChangedMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    shipmentState: [[ShipmentState.svg ShipmentState]]
    oldShipmentState: [[ShipmentState.svg ShipmentState]]
}
interface OrderShippingAddressSetMessage [[OrderShippingAddressSetMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    address: [[Address.svg Address]]
    oldAddress: [[Address.svg Address]]
}
interface OrderShippingInfoSetMessage [[OrderShippingInfoSetMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    shippingInfo: [[ShippingInfo.svg ShippingInfo]]
    oldShippingInfo: [[ShippingInfo.svg ShippingInfo]]
}
interface OrderShippingRateInputSetMessage [[OrderShippingRateInputSetMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    shippingRateInput: [[ShippingRateInput.svg ShippingRateInput]]
    oldShippingRateInput: [[ShippingRateInput.svg ShippingRateInput]]
}
interface OrderStateChangedMessage [[OrderStateChangedMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    orderState: [[OrderState.svg OrderState]]
    oldOrderState: [[OrderState.svg OrderState]]
}
interface OrderStateTransitionMessage [[OrderStateTransitionMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    state: [[StateReference.svg StateReference]]
    oldState: [[StateReference.svg StateReference]]
    force: Boolean
}
interface OrderStoreSetMessage [[OrderStoreSetMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    store: [[StoreKeyReference.svg StoreKeyReference]]
}
interface ParcelAddedToDeliveryMessage [[ParcelAddedToDeliveryMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    delivery: [[Delivery.svg Delivery]]
    parcel: [[Parcel.svg Parcel]]
    shippingKey: String
}
interface ParcelItemsUpdatedMessage [[ParcelItemsUpdatedMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    parcelId: String
    deliveryId: String
    items: [[DeliveryItem.svg List<DeliveryItem>]]
    oldItems: [[DeliveryItem.svg List<DeliveryItem>]]
    shippingKey: String
}
interface ParcelMeasurementsUpdatedMessage [[ParcelMeasurementsUpdatedMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    deliveryId: String
    parcelId: String
    measurements: [[ParcelMeasurements.svg ParcelMeasurements]]
    shippingKey: String
}
interface ParcelRemovedFromDeliveryMessage [[ParcelRemovedFromDeliveryMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    deliveryId: String
    parcel: [[Parcel.svg Parcel]]
    shippingKey: String
}
interface ParcelTrackingDataUpdatedMessage [[ParcelTrackingDataUpdatedMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    deliveryId: String
    parcelId: String
    trackingData: [[TrackingData.svg TrackingData]]
    shippingKey: String
}
interface ReturnInfoAddedMessage [[ReturnInfoAddedMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    returnInfo: [[ReturnInfo.svg ReturnInfo]]
}
interface ReturnInfoSetMessage [[ReturnInfoSetMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    returnInfo: [[ReturnInfo.svg List<ReturnInfo>]]
}

OrderMessage --> CustomLineItemStateTransitionMessage #blue;text:blue : "type : CustomLineItemStateTransition"
OrderMessage --> DeliveryAddedMessage #blue;text:blue : "type : DeliveryAdded"
OrderMessage --> DeliveryAddressSetMessage #blue;text:blue : "type : DeliveryAddressSet"
OrderMessage --> DeliveryItemsUpdatedMessage #blue;text:blue : "type : DeliveryItemsUpdated"
OrderMessage --> DeliveryRemovedMessage #blue;text:blue : "type : DeliveryRemoved"
OrderMessage --> LineItemStateTransitionMessage #blue;text:blue : "type : LineItemStateTransition"
OrderMessage --> OrderBillingAddressSetMessage #blue;text:blue : "type : OrderBillingAddressSet"
OrderMessage --> OrderCreatedMessage #blue;text:blue : "type : OrderCreated"
OrderMessage --> OrderCustomLineItemAddedMessage #blue;text:blue : "type : OrderCustomLineItemAdded"
OrderMessage --> OrderCustomLineItemDiscountSetMessage #blue;text:blue : "type : OrderCustomLineItemDiscountSet"
OrderMessage --> OrderCustomLineItemQuantityChangedMessage #blue;text:blue : "type : OrderCustomLineItemQuantityChanged"
OrderMessage --> OrderCustomLineItemRemovedMessage #blue;text:blue : "type : OrderCustomLineItemRemoved"
OrderMessage --> OrderCustomerEmailSetMessage #blue;text:blue : "type : OrderCustomerEmailSet"
OrderMessage --> OrderCustomerGroupSetMessage #blue;text:blue : "type : OrderCustomerGroupSet"
OrderMessage --> OrderCustomerSetMessage #blue;text:blue : "type : OrderCustomerSet"
OrderMessage --> OrderDeletedMessage #blue;text:blue : "type : OrderDeleted"
OrderMessage --> OrderDiscountCodeAddedMessage #blue;text:blue : "type : OrderDiscountCodeAdded"
OrderMessage --> OrderDiscountCodeRemovedMessage #blue;text:blue : "type : OrderDiscountCodeRemoved"
OrderMessage --> OrderDiscountCodeStateSetMessage #blue;text:blue : "type : OrderDiscountCodeStateSet"
OrderMessage --> OrderEditAppliedMessage #blue;text:blue : "type : OrderEditApplied"
OrderMessage --> OrderImportedMessage #blue;text:blue : "type : OrderImported"
OrderMessage --> OrderLineItemAddedMessage #blue;text:blue : "type : OrderLineItemAdded"
OrderMessage --> OrderLineItemDiscountSetMessage #blue;text:blue : "type : OrderLineItemDiscountSet"
OrderMessage --> OrderLineItemDistributionChannelSetMessage #blue;text:blue : "type : OrderLineItemDistributionChannelSet"
OrderMessage --> OrderLineItemRemovedMessage #blue;text:blue : "type : OrderLineItemRemoved"
OrderMessage --> OrderPaymentStateChangedMessage #blue;text:blue : "type : OrderPaymentStateChanged"
OrderMessage --> OrderReturnShipmentStateChangedMessage #blue;text:blue : "type : OrderReturnShipmentStateChanged"
OrderMessage --> OrderShipmentStateChangedMessage #blue;text:blue : "type : OrderShipmentStateChanged"
OrderMessage --> OrderShippingAddressSetMessage #blue;text:blue : "type : OrderShippingAddressSet"
OrderMessage --> OrderShippingInfoSetMessage #blue;text:blue : "type : OrderShippingInfoSet"
OrderMessage --> OrderShippingRateInputSetMessage #blue;text:blue : "type : OrderShippingRateInputSet"
OrderMessage --> OrderStateChangedMessage #blue;text:blue : "type : OrderStateChanged"
OrderMessage --> OrderStateTransitionMessage #blue;text:blue : "type : OrderStateTransition"
OrderMessage --> OrderStoreSetMessage #blue;text:blue : "type : OrderStoreSet"
OrderMessage --> ParcelAddedToDeliveryMessage #blue;text:blue : "type : ParcelAddedToDelivery"
OrderMessage --> ParcelItemsUpdatedMessage #blue;text:blue : "type : ParcelItemsUpdated"
OrderMessage --> ParcelMeasurementsUpdatedMessage #blue;text:blue : "type : ParcelMeasurementsUpdated"
OrderMessage --> ParcelRemovedFromDeliveryMessage #blue;text:blue : "type : ParcelRemovedFromDelivery"
OrderMessage --> ParcelTrackingDataUpdatedMessage #blue;text:blue : "type : ParcelTrackingDataUpdated"
OrderMessage --> ReturnInfoAddedMessage #blue;text:blue : "type : ReturnInfoAdded"
OrderMessage --> ReturnInfoSetMessage #blue;text:blue : "type : ReturnInfoSet"

@enduml
