@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 Address [[Address.svg]] extends BaseAddress {
    id: String
    key: String
    country: String
    title: String
    salutation: String
    firstName: String
    lastName: String
    streetName: String
    streetNumber: String
    additionalStreetInfo: String
    postalCode: String
    city: String
    region: String
    state: String
    company: String
    department: String
    building: String
    apartment: String
    pOBox: String
    phone: String
    mobile: String
    email: String
    fax: String
    additionalAddressInfo: String
    externalId: String
    custom: [[CustomFields.svg CustomFields]]
}
interface BaseAddress [[BaseAddress.svg]]  {
    id: String
    key: String
    country: String
    title: String
    salutation: String
    firstName: String
    lastName: String
    streetName: String
    streetNumber: String
    additionalStreetInfo: String
    postalCode: String
    city: String
    region: String
    state: String
    company: String
    department: String
    building: String
    apartment: String
    pOBox: String
    phone: String
    mobile: String
    email: String
    fax: String
    additionalAddressInfo: String
    externalId: String
}


interface BusinessUnit [[BusinessUnit.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    key: String
    status: [[BusinessUnitStatus.svg BusinessUnitStatus]]
    stores: [[StoreKeyReference.svg List<StoreKeyReference>]]
    storeMode: [[BusinessUnitStoreMode.svg BusinessUnitStoreMode]]
    unitType: [[BusinessUnitType.svg BusinessUnitType]]
    name: String
    contactEmail: String
    custom: [[CustomFields.svg CustomFields]]
    addresses: [[Address.svg List<Address>]]
    shippingAddressIds: [[String.svg List<String>]]
    defaultShippingAddressId: String
    billingAddressIds: [[String.svg List<String>]]
    defaultBillingAddressId: String
    associates: [[Associate.svg List<Associate>]]
    parentUnit: [[BusinessUnitKeyReference.svg BusinessUnitKeyReference]]
    topLevelUnit: [[BusinessUnitKeyReference.svg BusinessUnitKeyReference]]
}
interface Cart [[Cart.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    key: String
    customerId: String
    customerEmail: String
    customerGroup: [[CustomerGroupReference.svg CustomerGroupReference]]
    anonymousId: String
    businessUnit: [[BusinessUnitKeyReference.svg BusinessUnitKeyReference]]
    store: [[StoreKeyReference.svg StoreKeyReference]]
    lineItems: [[LineItem.svg List<LineItem>]]
    customLineItems: [[CustomLineItem.svg List<CustomLineItem>]]
    totalLineItemQuantity: Long
    totalPrice: [[CentPrecisionMoney.svg CentPrecisionMoney]]
    taxedPrice: [[TaxedPrice.svg TaxedPrice]]
    taxedShippingPrice: [[TaxedPrice.svg TaxedPrice]]
    taxMode: [[TaxMode.svg TaxMode]]
    taxRoundingMode: [[RoundingMode.svg RoundingMode]]
    taxCalculationMode: [[TaxCalculationMode.svg TaxCalculationMode]]
    inventoryMode: [[InventoryMode.svg InventoryMode]]
    cartState: [[CartState.svg CartState]]
    billingAddress: [[Address.svg Address]]
    shippingAddress: [[Address.svg Address]]
    shippingMode: [[ShippingMode.svg ShippingMode]]
    shippingInfo: [[ShippingInfo.svg ShippingInfo]]
    shipping: [[Shipping.svg List<Shipping>]]
    shippingRateInput: [[ShippingRateInput.svg ShippingRateInput]]
    itemShippingAddresses: [[Address.svg List<Address>]]
    discountCodes: [[DiscountCodeInfo.svg List<DiscountCodeInfo>]]
    directDiscounts: [[DirectDiscount.svg List<DirectDiscount>]]
    refusedGifts: [[CartDiscountReference.svg List<CartDiscountReference>]]
    paymentInfo: [[PaymentInfo.svg PaymentInfo]]
    country: String
    locale: String
    origin: [[CartOrigin.svg CartOrigin]]
    custom: [[CustomFields.svg CustomFields]]
    deleteDaysAfterLastModification: Integer
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
}
interface Customer [[Customer.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    key: String
    customerNumber: String
    externalId: String
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    email: String
    password: String
    firstName: String
    lastName: String
    middleName: String
    title: String
    dateOfBirth: Date
    companyName: String
    vatId: String
    addresses: [[Address.svg List<Address>]]
    defaultShippingAddressId: String
    shippingAddressIds: [[String.svg List<String>]]
    defaultBillingAddressId: String
    billingAddressIds: [[String.svg List<String>]]
    isEmailVerified: Boolean
    customerGroup: [[CustomerGroupReference.svg CustomerGroupReference]]
    custom: [[CustomFields.svg CustomFields]]
    locale: String
    salutation: String
    stores: [[StoreKeyReference.svg List<StoreKeyReference>]]
    authenticationMode: [[AuthenticationMode.svg AuthenticationMode]]
}
interface Order [[Order.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    completedAt: DateTime
    orderNumber: String
    customerId: String
    customerEmail: String
    anonymousId: String
    businessUnit: [[BusinessUnitKeyReference.svg BusinessUnitKeyReference]]
    store: [[StoreKeyReference.svg StoreKeyReference]]
    lineItems: [[LineItem.svg List<LineItem>]]
    customLineItems: [[CustomLineItem.svg List<CustomLineItem>]]
    totalPrice: [[TypedMoney.svg TypedMoney]]
    taxedPrice: [[TaxedPrice.svg TaxedPrice]]
    taxedShippingPrice: [[TaxedPrice.svg TaxedPrice]]
    shippingAddress: [[Address.svg Address]]
    billingAddress: [[Address.svg Address]]
    shippingMode: [[ShippingMode.svg ShippingMode]]
    shipping: [[Shipping.svg List<Shipping>]]
    taxMode: [[TaxMode.svg TaxMode]]
    taxRoundingMode: [[RoundingMode.svg RoundingMode]]
    customerGroup: [[CustomerGroupReference.svg CustomerGroupReference]]
    country: String
    orderState: [[OrderState.svg OrderState]]
    state: [[StateReference.svg StateReference]]
    shipmentState: [[ShipmentState.svg ShipmentState]]
    paymentState: [[PaymentState.svg PaymentState]]
    shippingInfo: [[ShippingInfo.svg ShippingInfo]]
    syncInfo: [[SyncInfo.svg List<SyncInfo>]]
    returnInfo: [[ReturnInfo.svg List<ReturnInfo>]]
    purchaseOrderNumber: String
    discountCodes: [[DiscountCodeInfo.svg List<DiscountCodeInfo>]]
    lastMessageSequenceNumber: Long
    cart: [[CartReference.svg CartReference]]
    quote: [[QuoteReference.svg QuoteReference]]
    custom: [[CustomFields.svg CustomFields]]
    paymentInfo: [[PaymentInfo.svg PaymentInfo]]
    locale: String
    inventoryMode: [[InventoryMode.svg InventoryMode]]
    origin: [[CartOrigin.svg CartOrigin]]
    taxCalculationMode: [[TaxCalculationMode.svg TaxCalculationMode]]
    shippingRateInput: [[ShippingRateInput.svg ShippingRateInput]]
    itemShippingAddresses: [[Address.svg List<Address>]]
    refusedGifts: [[CartDiscountReference.svg List<CartDiscountReference>]]
}
interface QuoteRequest [[QuoteRequest.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    key: String
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    quoteRequestState: [[QuoteRequestState.svg QuoteRequestState]]
    comment: String
    customer: [[CustomerReference.svg CustomerReference]]
    customerGroup: [[CustomerGroupReference.svg CustomerGroupReference]]
    store: [[StoreKeyReference.svg StoreKeyReference]]
    lineItems: [[LineItem.svg List<LineItem>]]
    customLineItems: [[CustomLineItem.svg List<CustomLineItem>]]
    totalPrice: [[TypedMoney.svg TypedMoney]]
    taxedPrice: [[TaxedPrice.svg TaxedPrice]]
    shippingAddress: [[Address.svg Address]]
    billingAddress: [[Address.svg Address]]
    inventoryMode: [[InventoryMode.svg InventoryMode]]
    taxMode: [[TaxMode.svg TaxMode]]
    taxRoundingMode: [[RoundingMode.svg RoundingMode]]
    taxCalculationMode: [[TaxCalculationMode.svg TaxCalculationMode]]
    country: String
    shippingInfo: [[ShippingInfo.svg ShippingInfo]]
    paymentInfo: [[PaymentInfo.svg PaymentInfo]]
    shippingRateInput: [[ShippingRateInput.svg ShippingRateInput]]
    itemShippingAddresses: [[Address.svg List<Address>]]
    directDiscounts: [[DirectDiscount.svg List<DirectDiscount>]]
    custom: [[CustomFields.svg CustomFields]]
    state: [[StateReference.svg StateReference]]
    purchaseOrderNumber: String
    businessUnit: [[BusinessUnitKeyReference.svg BusinessUnitKeyReference]]
}
interface Quote [[Quote.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    key: String
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    quoteRequest: [[QuoteRequestReference.svg QuoteRequestReference]]
    stagedQuote: [[StagedQuoteReference.svg StagedQuoteReference]]
    customer: [[CustomerReference.svg CustomerReference]]
    customerGroup: [[CustomerGroupReference.svg CustomerGroupReference]]
    validTo: DateTime
    sellerComment: String
    buyerComment: String
    store: [[StoreKeyReference.svg StoreKeyReference]]
    lineItems: [[LineItem.svg List<LineItem>]]
    customLineItems: [[CustomLineItem.svg List<CustomLineItem>]]
    totalPrice: [[TypedMoney.svg TypedMoney]]
    taxedPrice: [[TaxedPrice.svg TaxedPrice]]
    shippingAddress: [[Address.svg Address]]
    billingAddress: [[Address.svg Address]]
    inventoryMode: [[InventoryMode.svg InventoryMode]]
    taxMode: [[TaxMode.svg TaxMode]]
    taxRoundingMode: [[RoundingMode.svg RoundingMode]]
    taxCalculationMode: [[TaxCalculationMode.svg TaxCalculationMode]]
    country: String
    shippingInfo: [[ShippingInfo.svg ShippingInfo]]
    paymentInfo: [[PaymentInfo.svg PaymentInfo]]
    shippingRateInput: [[ShippingRateInput.svg ShippingRateInput]]
    itemShippingAddresses: [[Address.svg List<Address>]]
    directDiscounts: [[DirectDiscount.svg List<DirectDiscount>]]
    custom: [[CustomFields.svg CustomFields]]
    quoteState: [[QuoteState.svg QuoteState]]
    state: [[StateReference.svg StateReference]]
    purchaseOrderNumber: String
    businessUnit: [[BusinessUnitKeyReference.svg BusinessUnitKeyReference]]
}
interface Shipping [[Shipping.svg]]  {
    shippingKey: String
    shippingInfo: [[ShippingInfo.svg ShippingInfo]]
    shippingAddress: [[Address.svg Address]]
    shippingRateInput: [[ShippingRateInput.svg ShippingRateInput]]
    shippingCustomFields: [[CustomFields.svg CustomFields]]
}
interface Channel [[Channel.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    key: String
    roles: [[ChannelRoleEnum.svg List<ChannelRoleEnum>]]
    name: [[LocalizedString.svg LocalizedString]]
    description: [[LocalizedString.svg LocalizedString]]
    address: [[Address.svg Address]]
    reviewRatingStatistics: [[ReviewRatingStatistics.svg ReviewRatingStatistics]]
    custom: [[CustomFields.svg CustomFields]]
    geoLocation: [[GeoJson.svg GeoJson]]
}
interface BusinessUnitAddressAddedMessage [[BusinessUnitAddressAddedMessage.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]]
}
interface BusinessUnitAddressChangedMessage [[BusinessUnitAddressChangedMessage.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]]
}
interface BusinessUnitAddressRemovedMessage [[BusinessUnitAddressRemovedMessage.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]]
}
interface BusinessUnitBillingAddressAddedMessage [[BusinessUnitBillingAddressAddedMessage.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]]
}
interface BusinessUnitBillingAddressRemovedMessage [[BusinessUnitBillingAddressRemovedMessage.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]]
}
interface BusinessUnitDefaultBillingAddressSetMessage [[BusinessUnitDefaultBillingAddressSetMessage.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]]
}
interface BusinessUnitDefaultShippingAddressSetMessage [[BusinessUnitDefaultShippingAddressSetMessage.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]]
}
interface BusinessUnitShippingAddressAddedMessage [[BusinessUnitShippingAddressAddedMessage.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]]
}
interface BusinessUnitShippingAddressRemovedMessage [[BusinessUnitShippingAddressRemovedMessage.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]]
}
interface CustomerAddressAddedMessage [[CustomerAddressAddedMessage.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]]
}
interface CustomerAddressChangedMessage [[CustomerAddressChangedMessage.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]]
}
interface CustomerAddressRemovedMessage [[CustomerAddressRemovedMessage.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]]
}
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 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 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 BusinessUnitAddressAddedMessagePayload [[BusinessUnitAddressAddedMessagePayload.svg]]  {
    type: String
    address: [[Address.svg Address]]
}
interface BusinessUnitAddressChangedMessagePayload [[BusinessUnitAddressChangedMessagePayload.svg]]  {
    type: String
    address: [[Address.svg Address]]
}
interface BusinessUnitAddressRemovedMessagePayload [[BusinessUnitAddressRemovedMessagePayload.svg]]  {
    type: String
    address: [[Address.svg Address]]
}
interface BusinessUnitBillingAddressAddedMessagePayload [[BusinessUnitBillingAddressAddedMessagePayload.svg]]  {
    type: String
    address: [[Address.svg Address]]
}
interface BusinessUnitBillingAddressRemovedMessagePayload [[BusinessUnitBillingAddressRemovedMessagePayload.svg]]  {
    type: String
    address: [[Address.svg Address]]
}
interface BusinessUnitDefaultBillingAddressSetMessagePayload [[BusinessUnitDefaultBillingAddressSetMessagePayload.svg]]  {
    type: String
    address: [[Address.svg Address]]
}
interface BusinessUnitDefaultShippingAddressSetMessagePayload [[BusinessUnitDefaultShippingAddressSetMessagePayload.svg]]  {
    type: String
    address: [[Address.svg Address]]
}
interface BusinessUnitShippingAddressAddedMessagePayload [[BusinessUnitShippingAddressAddedMessagePayload.svg]]  {
    type: String
    address: [[Address.svg Address]]
}
interface BusinessUnitShippingAddressRemovedMessagePayload [[BusinessUnitShippingAddressRemovedMessagePayload.svg]]  {
    type: String
    address: [[Address.svg Address]]
}
interface CustomerAddressAddedMessagePayload [[CustomerAddressAddedMessagePayload.svg]]  {
    type: String
    address: [[Address.svg Address]]
}
interface CustomerAddressChangedMessagePayload [[CustomerAddressChangedMessagePayload.svg]]  {
    type: String
    address: [[Address.svg Address]]
}
interface CustomerAddressRemovedMessagePayload [[CustomerAddressRemovedMessagePayload.svg]]  {
    type: String
    address: [[Address.svg Address]]
}
interface DeliveryAddressSetMessagePayload [[DeliveryAddressSetMessagePayload.svg]]  {
    type: String
    deliveryId: String
    address: [[Address.svg Address]]
    oldAddress: [[Address.svg Address]]
    shippingKey: String
}
interface OrderBillingAddressSetMessagePayload [[OrderBillingAddressSetMessagePayload.svg]]  {
    type: String
    address: [[Address.svg Address]]
    oldAddress: [[Address.svg Address]]
}
interface OrderShippingAddressSetMessagePayload [[OrderShippingAddressSetMessagePayload.svg]]  {
    type: String
    address: [[Address.svg Address]]
    oldAddress: [[Address.svg Address]]
}
interface Delivery [[Delivery.svg]]  {
    id: String
    createdAt: DateTime
    items: [[DeliveryItem.svg List<DeliveryItem>]]
    parcels: [[Parcel.svg List<Parcel>]]
    address: [[Address.svg Address]]
    custom: [[CustomFields.svg CustomFields]]
}

Address --> BusinessUnit #green;text:green : "addresses"
Address --> Cart #green;text:green : "itemShippingAddresses"
Address --> Customer #green;text:green : "addresses"
Address --> Order #green;text:green : "itemShippingAddresses"
Address --> QuoteRequest #green;text:green : "itemShippingAddresses"
Address --> Quote #green;text:green : "itemShippingAddresses"
Address --> Cart #green;text:green : "billingAddress"
Address --> Cart #green;text:green : "shippingAddress"
Address --> Shipping #green;text:green : "shippingAddress"
Address --> Channel #green;text:green : "address"
Address --> BusinessUnitAddressAddedMessage #green;text:green : "address"
Address --> BusinessUnitAddressChangedMessage #green;text:green : "address"
Address --> BusinessUnitAddressRemovedMessage #green;text:green : "address"
Address --> BusinessUnitBillingAddressAddedMessage #green;text:green : "address"
Address --> BusinessUnitBillingAddressRemovedMessage #green;text:green : "address"
Address --> BusinessUnitDefaultBillingAddressSetMessage #green;text:green : "address"
Address --> BusinessUnitDefaultShippingAddressSetMessage #green;text:green : "address"
Address --> BusinessUnitShippingAddressAddedMessage #green;text:green : "address"
Address --> BusinessUnitShippingAddressRemovedMessage #green;text:green : "address"
Address --> CustomerAddressAddedMessage #green;text:green : "address"
Address --> CustomerAddressChangedMessage #green;text:green : "address"
Address --> CustomerAddressRemovedMessage #green;text:green : "address"
Address --> DeliveryAddressSetMessage #green;text:green : "address"
Address --> DeliveryAddressSetMessage #green;text:green : "oldAddress"
Address --> OrderBillingAddressSetMessage #green;text:green : "address"
Address --> OrderBillingAddressSetMessage #green;text:green : "oldAddress"
Address --> OrderShippingAddressSetMessage #green;text:green : "address"
Address --> OrderShippingAddressSetMessage #green;text:green : "oldAddress"
Address --> BusinessUnitAddressAddedMessagePayload #green;text:green : "address"
Address --> BusinessUnitAddressChangedMessagePayload #green;text:green : "address"
Address --> BusinessUnitAddressRemovedMessagePayload #green;text:green : "address"
Address --> BusinessUnitBillingAddressAddedMessagePayload #green;text:green : "address"
Address --> BusinessUnitBillingAddressRemovedMessagePayload #green;text:green : "address"
Address --> BusinessUnitDefaultBillingAddressSetMessagePayload #green;text:green : "address"
Address --> BusinessUnitDefaultShippingAddressSetMessagePayload #green;text:green : "address"
Address --> BusinessUnitShippingAddressAddedMessagePayload #green;text:green : "address"
Address --> BusinessUnitShippingAddressRemovedMessagePayload #green;text:green : "address"
Address --> CustomerAddressAddedMessagePayload #green;text:green : "address"
Address --> CustomerAddressChangedMessagePayload #green;text:green : "address"
Address --> CustomerAddressRemovedMessagePayload #green;text:green : "address"
Address --> DeliveryAddressSetMessagePayload #green;text:green : "address"
Address --> DeliveryAddressSetMessagePayload #green;text:green : "oldAddress"
Address --> OrderBillingAddressSetMessagePayload #green;text:green : "address"
Address --> OrderBillingAddressSetMessagePayload #green;text:green : "oldAddress"
Address --> OrderShippingAddressSetMessagePayload #green;text:green : "address"
Address --> OrderShippingAddressSetMessagePayload #green;text:green : "oldAddress"
Address --> Delivery #green;text:green : "address"
Address --> Order #green;text:green : "shippingAddress"
Address --> Order #green;text:green : "billingAddress"
Address --> QuoteRequest #green;text:green : "shippingAddress"
Address --> QuoteRequest #green;text:green : "billingAddress"
Address --> Quote #green;text:green : "shippingAddress"
Address --> Quote #green;text:green : "billingAddress"
@enduml
