@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 ResourceIdentifier [[ResourceIdentifier.svg]]  {
    typeId: [[ReferenceTypeId.svg ReferenceTypeId]]
    id: String
    key: String
}


interface AssociateRoleResourceIdentifier [[AssociateRoleResourceIdentifier.svg]]  {
    typeId: [[ReferenceTypeId.svg ReferenceTypeId]]
    id: String
    key: String
}
interface AttributeGroupResourceIdentifier [[AttributeGroupResourceIdentifier.svg]]  {
    typeId: [[ReferenceTypeId.svg ReferenceTypeId]]
    id: String
    key: String
}
interface BusinessUnitResourceIdentifier [[BusinessUnitResourceIdentifier.svg]]  {
    typeId: [[ReferenceTypeId.svg ReferenceTypeId]]
    id: String
    key: String
}
interface CartDiscountResourceIdentifier [[CartDiscountResourceIdentifier.svg]]  {
    typeId: [[ReferenceTypeId.svg ReferenceTypeId]]
    id: String
    key: String
}
interface CartResourceIdentifier [[CartResourceIdentifier.svg]]  {
    typeId: [[ReferenceTypeId.svg ReferenceTypeId]]
    id: String
    key: String
}
interface CategoryResourceIdentifier [[CategoryResourceIdentifier.svg]]  {
    typeId: [[ReferenceTypeId.svg ReferenceTypeId]]
    id: String
    key: String
}
interface ChannelResourceIdentifier [[ChannelResourceIdentifier.svg]]  {
    typeId: [[ReferenceTypeId.svg ReferenceTypeId]]
    id: String
    key: String
}
interface CustomerGroupResourceIdentifier [[CustomerGroupResourceIdentifier.svg]]  {
    typeId: [[ReferenceTypeId.svg ReferenceTypeId]]
    id: String
    key: String
}
interface CustomerResourceIdentifier [[CustomerResourceIdentifier.svg]]  {
    typeId: [[ReferenceTypeId.svg ReferenceTypeId]]
    id: String
    key: String
}
interface DiscountCodeResourceIdentifier [[DiscountCodeResourceIdentifier.svg]]  {
    typeId: [[ReferenceTypeId.svg ReferenceTypeId]]
    id: String
    key: String
}
interface InventoryEntryResourceIdentifier [[InventoryEntryResourceIdentifier.svg]]  {
    typeId: [[ReferenceTypeId.svg ReferenceTypeId]]
    id: String
    key: String
}
interface OrderEditResourceIdentifier [[OrderEditResourceIdentifier.svg]]  {
    typeId: [[ReferenceTypeId.svg ReferenceTypeId]]
    id: String
    key: String
}
interface OrderResourceIdentifier [[OrderResourceIdentifier.svg]]  {
    typeId: [[ReferenceTypeId.svg ReferenceTypeId]]
    id: String
    key: String
}
interface PaymentResourceIdentifier [[PaymentResourceIdentifier.svg]]  {
    typeId: [[ReferenceTypeId.svg ReferenceTypeId]]
    id: String
    key: String
}
interface ProductDiscountResourceIdentifier [[ProductDiscountResourceIdentifier.svg]]  {
    typeId: [[ReferenceTypeId.svg ReferenceTypeId]]
    id: String
    key: String
}
interface ProductResourceIdentifier [[ProductResourceIdentifier.svg]]  {
    typeId: [[ReferenceTypeId.svg ReferenceTypeId]]
    id: String
    key: String
}
interface ProductSelectionResourceIdentifier [[ProductSelectionResourceIdentifier.svg]]  {
    typeId: [[ReferenceTypeId.svg ReferenceTypeId]]
    id: String
    key: String
}
interface ProductTypeResourceIdentifier [[ProductTypeResourceIdentifier.svg]]  {
    typeId: [[ReferenceTypeId.svg ReferenceTypeId]]
    id: String
    key: String
}
interface QuoteRequestResourceIdentifier [[QuoteRequestResourceIdentifier.svg]]  {
    typeId: [[ReferenceTypeId.svg ReferenceTypeId]]
    id: String
    key: String
}
interface QuoteResourceIdentifier [[QuoteResourceIdentifier.svg]]  {
    typeId: [[ReferenceTypeId.svg ReferenceTypeId]]
    id: String
    key: String
}
interface ReviewResourceIdentifier [[ReviewResourceIdentifier.svg]]  {
    typeId: [[ReferenceTypeId.svg ReferenceTypeId]]
    id: String
    key: String
}
interface ShippingMethodResourceIdentifier [[ShippingMethodResourceIdentifier.svg]]  {
    typeId: [[ReferenceTypeId.svg ReferenceTypeId]]
    id: String
    key: String
}
interface ShoppingListResourceIdentifier [[ShoppingListResourceIdentifier.svg]]  {
    typeId: [[ReferenceTypeId.svg ReferenceTypeId]]
    id: String
    key: String
}
interface StagedQuoteResourceIdentifier [[StagedQuoteResourceIdentifier.svg]]  {
    typeId: [[ReferenceTypeId.svg ReferenceTypeId]]
    id: String
    key: String
}
interface StandalonePriceResourceIdentifier [[StandalonePriceResourceIdentifier.svg]]  {
    typeId: [[ReferenceTypeId.svg ReferenceTypeId]]
    id: String
    key: String
}
interface StateResourceIdentifier [[StateResourceIdentifier.svg]]  {
    typeId: [[ReferenceTypeId.svg ReferenceTypeId]]
    id: String
    key: String
}
interface StoreResourceIdentifier [[StoreResourceIdentifier.svg]]  {
    typeId: [[ReferenceTypeId.svg ReferenceTypeId]]
    id: String
    key: String
}
interface TaxCategoryResourceIdentifier [[TaxCategoryResourceIdentifier.svg]]  {
    typeId: [[ReferenceTypeId.svg ReferenceTypeId]]
    id: String
    key: String
}
interface TypeResourceIdentifier [[TypeResourceIdentifier.svg]]  {
    typeId: [[ReferenceTypeId.svg ReferenceTypeId]]
    id: String
    key: String
}
interface ZoneResourceIdentifier [[ZoneResourceIdentifier.svg]]  {
    typeId: [[ReferenceTypeId.svg ReferenceTypeId]]
    id: String
    key: String
}

ResourceIdentifier --> AssociateRoleResourceIdentifier #blue;text:blue : "typeId : associate-role"
ResourceIdentifier --> AttributeGroupResourceIdentifier #blue;text:blue : "typeId : attribute-group"
ResourceIdentifier --> BusinessUnitResourceIdentifier #blue;text:blue : "typeId : business-unit"
ResourceIdentifier --> CartDiscountResourceIdentifier #blue;text:blue : "typeId : cart-discount"
ResourceIdentifier --> CartResourceIdentifier #blue;text:blue : "typeId : cart"
ResourceIdentifier --> CategoryResourceIdentifier #blue;text:blue : "typeId : category"
ResourceIdentifier --> ChannelResourceIdentifier #blue;text:blue : "typeId : channel"
ResourceIdentifier --> CustomerGroupResourceIdentifier #blue;text:blue : "typeId : customer-group"
ResourceIdentifier --> CustomerResourceIdentifier #blue;text:blue : "typeId : customer"
ResourceIdentifier --> DiscountCodeResourceIdentifier #blue;text:blue : "typeId : discount-code"
ResourceIdentifier --> InventoryEntryResourceIdentifier #blue;text:blue : "typeId : inventory-entry"
ResourceIdentifier --> OrderEditResourceIdentifier #blue;text:blue : "typeId : order-edit"
ResourceIdentifier --> OrderResourceIdentifier #blue;text:blue : "typeId : order"
ResourceIdentifier --> PaymentResourceIdentifier #blue;text:blue : "typeId : payment"
ResourceIdentifier --> ProductDiscountResourceIdentifier #blue;text:blue : "typeId : product-discount"
ResourceIdentifier --> ProductResourceIdentifier #blue;text:blue : "typeId : product"
ResourceIdentifier --> ProductSelectionResourceIdentifier #blue;text:blue : "typeId : product-selection"
ResourceIdentifier --> ProductTypeResourceIdentifier #blue;text:blue : "typeId : product-type"
ResourceIdentifier --> QuoteRequestResourceIdentifier #blue;text:blue : "typeId : quote-request"
ResourceIdentifier --> QuoteResourceIdentifier #blue;text:blue : "typeId : quote"
ResourceIdentifier --> ReviewResourceIdentifier #blue;text:blue : "typeId : review"
ResourceIdentifier --> ShippingMethodResourceIdentifier #blue;text:blue : "typeId : shipping-method"
ResourceIdentifier --> ShoppingListResourceIdentifier #blue;text:blue : "typeId : shopping-list"
ResourceIdentifier --> StagedQuoteResourceIdentifier #blue;text:blue : "typeId : staged-quote"
ResourceIdentifier --> StandalonePriceResourceIdentifier #blue;text:blue : "typeId : standalone-price"
ResourceIdentifier --> StateResourceIdentifier #blue;text:blue : "typeId : state"
ResourceIdentifier --> StoreResourceIdentifier #blue;text:blue : "typeId : store"
ResourceIdentifier --> TaxCategoryResourceIdentifier #blue;text:blue : "typeId : tax-category"
ResourceIdentifier --> TypeResourceIdentifier #blue;text:blue : "typeId : type"
ResourceIdentifier --> ZoneResourceIdentifier #blue;text:blue : "typeId : zone"

@enduml
