type Query {
    customerGroups(options: CustomerGroupListOptions): CustomerGroupList!
    customerGroup(id: ID!): CustomerGroup
}

type Mutation {
    "Create a new CustomerGroup"
    createCustomerGroup(input: CreateCustomerGroupInput!): CustomerGroup!
    "Update an existing CustomerGroup"
    updateCustomerGroup(input: UpdateCustomerGroupInput!): CustomerGroup!
    "Delete a CustomerGroup"
    deleteCustomerGroup(id: ID!): DeletionResponse!
    "Delete multiple CustomerGroups"
    deleteCustomerGroups(ids: [ID!]!): [DeletionResponse!]!
    "Add Customers to a CustomerGroup"
    addCustomersToGroup(customerGroupId: ID!, customerIds: [ID!]!): CustomerGroup!
    "Remove Customers from a CustomerGroup"
    removeCustomersFromGroup(customerGroupId: ID!, customerIds: [ID!]!): CustomerGroup!
}

type CustomerGroupList implements PaginatedList {
    items: [CustomerGroup!]!
    totalItems: Int!
}

# generated by generateListOptions function
input CustomerGroupListOptions

input CreateCustomerGroupInput {
    name: String!
    customerIds: [ID!]
}

input UpdateCustomerGroupInput {
    id: ID!
    name: String
}
