type Query {
    paymentMethods(options: PaymentMethodListOptions): PaymentMethodList!
    paymentMethod(id: ID!): PaymentMethod
    paymentMethodEligibilityCheckers: [ConfigurableOperationDefinition!]!
    paymentMethodHandlers: [ConfigurableOperationDefinition!]!
}

type Mutation {
    "Create existing PaymentMethod"
    createPaymentMethod(input: CreatePaymentMethodInput!): PaymentMethod!
    "Update an existing PaymentMethod"
    updatePaymentMethod(input: UpdatePaymentMethodInput!): PaymentMethod!
    "Delete a PaymentMethod"
    deletePaymentMethod(id: ID!, force: Boolean): DeletionResponse!
}

type PaymentMethodList implements PaginatedList {
    items: [PaymentMethod!]!
    totalItems: Int!
}

# generated by generateListOptions function
input PaymentMethodListOptions

input CreatePaymentMethodInput {
    name: String!
    code: String!
    description: String
    enabled: Boolean!
    checker: ConfigurableOperationInput
    handler: ConfigurableOperationInput!
}

input UpdatePaymentMethodInput {
    id: ID!
    name: String
    code: String
    description: String
    enabled: Boolean
    checker: ConfigurableOperationInput
    handler: ConfigurableOperationInput
}
