type Query {
    collections(languageCode: LanguageCode, options: CollectionListOptions): CollectionList!
    collection(id: ID!, languageCode: LanguageCode): Collection
    collectionFilters: [ConfigurableOperation!]!
}

type Mutation {
    "Create a new Collection"
    createCollection(input: CreateCollectionInput!): Collection!

    "Update an existing Collection"
    updateCollection(input: UpdateCollectionInput!): Collection!

    "Move a Collection to a different parent or index"
    moveCollection(input: MoveCollectionInput!): Collection!
}

# generated by generateListOptions function
input CollectionListOptions

input MoveCollectionInput {
    collectionId: ID!
    parentId: ID!
    index: Int!
}

input CollectionTranslationInput {
    id: ID
    languageCode: LanguageCode!
    name: String
    description: String
}

input CreateCollectionInput {
    featuredAssetId: ID
    assetIds: [ID!]
    parentId: ID
    filters: [ConfigurableOperationInput!]!
    translations: [CollectionTranslationInput!]!
}

input UpdateCollectionInput {
    id: ID!
    featuredAssetId: ID
    parentId: ID
    assetIds: [ID!]
    filters: [ConfigurableOperationInput!]
    translations: [CollectionTranslationInput!]
}
