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


interface ApplicableRecurrencePoliciesDraft [[ApplicableRecurrencePoliciesDraft.svg]]  {
    type: String
    recurrencePolicies: [[RecurrencePolicyResourceIdentifier.svg List<RecurrencePolicyResourceIdentifier>]]
}
interface PriceDraft [[PriceDraft.svg]]  {
    key: String
    value: [[Money.svg Money]]
    country: String
    customerGroup: [[CustomerGroupResourceIdentifier.svg CustomerGroupResourceIdentifier]]
    channel: [[ChannelResourceIdentifier.svg ChannelResourceIdentifier]]
    validFrom: DateTime
    validUntil: DateTime
    discounted: [[DiscountedPriceDraft.svg DiscountedPriceDraft]]
    tiers: [[PriceTierDraft.svg List<PriceTierDraft>]]
    custom: [[CustomFieldsDraft.svg CustomFieldsDraft]]
    recurrencePolicy: [[RecurrencePolicyResourceIdentifier.svg RecurrencePolicyResourceIdentifier]]
}
interface ValidityLockConflictError [[ValidityLockConflictError.svg]]  {
    code: String
    message: String
    sku: String
    currency: String
    country: String
    customerGroup: [[CustomerGroupResourceIdentifier.svg CustomerGroupResourceIdentifier]]
    channel: [[ChannelResourceIdentifier.svg ChannelResourceIdentifier]]
    recurrencePolicy: [[RecurrencePolicyResourceIdentifier.svg RecurrencePolicyResourceIdentifier]]
}
interface GraphQLValidityLockConflictError [[GraphQLValidityLockConflictError.svg]]  {
    code: String
    sku: String
    currency: String
    country: String
    customerGroup: [[CustomerGroupResourceIdentifier.svg CustomerGroupResourceIdentifier]]
    channel: [[ChannelResourceIdentifier.svg ChannelResourceIdentifier]]
    recurrencePolicy: [[RecurrencePolicyResourceIdentifier.svg RecurrencePolicyResourceIdentifier]]
}
interface CustomLineItemRecurrenceInfoDraft [[CustomLineItemRecurrenceInfoDraft.svg]]  {
    recurrencePolicy: [[RecurrencePolicyResourceIdentifier.svg RecurrencePolicyResourceIdentifier]]
}
interface LineItemRecurrenceInfoDraft [[LineItemRecurrenceInfoDraft.svg]]  {
    recurrencePolicy: [[RecurrencePolicyResourceIdentifier.svg RecurrencePolicyResourceIdentifier]]
    priceSelectionMode: [[PriceSelectionMode.svg PriceSelectionMode]]
}
interface RecurringOrderSetScheduleAction [[RecurringOrderSetScheduleAction.svg]]  {
    action: String
    recurrencePolicy: [[RecurrencePolicyResourceIdentifier.svg RecurrencePolicyResourceIdentifier]]
}
interface StandalonePriceDraft [[StandalonePriceDraft.svg]]  {
    key: String
    sku: String
    value: [[Money.svg Money]]
    country: String
    customerGroup: [[CustomerGroupResourceIdentifier.svg CustomerGroupResourceIdentifier]]
    channel: [[ChannelResourceIdentifier.svg ChannelResourceIdentifier]]
    validFrom: DateTime
    validUntil: DateTime
    tiers: [[PriceTierDraft.svg List<PriceTierDraft>]]
    discounted: [[DiscountedPriceDraft.svg DiscountedPriceDraft]]
    custom: [[CustomFieldsDraft.svg CustomFieldsDraft]]
    recurrencePolicy: [[RecurrencePolicyResourceIdentifier.svg RecurrencePolicyResourceIdentifier]]
    staged: [[StagedPriceDraft.svg StagedPriceDraft]]
    active: Boolean
}

RecurrencePolicyResourceIdentifier --> ApplicableRecurrencePoliciesDraft #green;text:green : "recurrencePolicies"
RecurrencePolicyResourceIdentifier --> PriceDraft #green;text:green : "recurrencePolicy"
RecurrencePolicyResourceIdentifier --> ValidityLockConflictError #green;text:green : "recurrencePolicy"
RecurrencePolicyResourceIdentifier --> GraphQLValidityLockConflictError #green;text:green : "recurrencePolicy"
RecurrencePolicyResourceIdentifier --> CustomLineItemRecurrenceInfoDraft #green;text:green : "recurrencePolicy"
RecurrencePolicyResourceIdentifier --> LineItemRecurrenceInfoDraft #green;text:green : "recurrencePolicy"
RecurrencePolicyResourceIdentifier --> RecurringOrderSetScheduleAction #green;text:green : "recurrencePolicy"
RecurrencePolicyResourceIdentifier --> StandalonePriceDraft #green;text:green : "recurrencePolicy"
@enduml
