type Query {
    customAttributeMetadata(attributes: [AttributeInput!]!): CustomAttributeMetadata @resolver(class: "Magento\\EavGraphQl\\Model\\Resolver\\CustomAttributeMetadata")
    @doc(description: "Returns the attribute type, given an attribute code and entity type") @cache(cacheTag: "cat_test", cacheIdentity: "Magento\\EavGraphQl\\Model\\Resolver\\CustomAttributeMetadata")
}

type CustomAttributeMetadata {
    items: [Attribute] @doc(description: "An array of attributes")
}

input AttributeInput @doc(description: "AttributeInput specifies the attribute_code and entity_type to search") {
    attribute_code: String @doc(description: "The unique identifier for an attribute code. This value should be in lowercase letters without spaces.")
    entity_type: String @doc(description: "The type of entity that defines the attribute")
}

type Attribute @doc(description: "Attribute contains the attribute_type of the specified attribute_code and entity_type") {
    attribute_code: String @doc(description: "The unique identifier for an attribute code. This value should be in lowercase letters without spaces.")
    entity_type: String @doc(description: "The type of entity that defines the attribute")
    attribute_type: String @doc(description: "The data type of the attribute")
}
input FilterTypeInput @doc(description:"Comment for FilterTypeInput") {
    eq: String @doc(description:"Equal")
    from: String
    gt: String
    gteq: String
    in: [String]
    like: String
    lt: String
    lteq: String
    moreq: String
    neq: String
    notnull: String
    null: String
    to: String
    nin: [String]
}

type SearchResultPageInfo
@doc(description:"Comment for SearchResultPageInfo")
{
    page_size: Int @doc(description:"Comment for page_size")
    current_page: Int @doc(description:"Comment for current_page")
}

enum SortEnum @doc(description: "Comment for SortEnum.")
{
    ASC @doc(description:"Ascending Order")
    DESC @doc(description:"Descending Order")
}

interface ProductInterface {
    url_key: String @doc(description: "comment for url_key inside ProductInterface type.")
    url_path: String
}


type SimpleProduct {
    url_key: String @doc(description: "comment for url_key for simple product that implements [ProductInterface]")
    url_path: String
}
