[
    {
        "name": "JsonApi.Decode",
        "comment": " Library for decoding JSONAPI-compliant payloads\n\n@docs document, errors\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "document",
                "comment": " Decode a JSONAPI-compliant payload.\n",
                "type": "Decoder Document"
            },
            {
                "name": "errors",
                "comment": " Decode the errors returned from a JSON API-compliant server.\n",
                "type": "Decoder (List ErrorObject)"
            }
        ],
        "binops": []
    },
    {
        "name": "JsonApi.Resources",
        "comment": " Helper functions for working with a single JsonApi Resource\n\n# Common Helpers\n@docs id, attributes, attribute, links, relatedResource, relatedResourceCollection, meta, relatedLinks, relatedMeta\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "attribute",
                "comment": " Serialize a single attributes of a Resource. You must provide the string key of the attribute\n    and a Json Decoder to convert the attribute into a type that you define.\n",
                "type": "String -> Decoder a -> Resource -> Result String a"
            },
            {
                "name": "attributes",
                "comment": " Serialize the attributes of a Resource. Because the attributes are unstructured,\n    you must provide a Json Decoder to convert them into a type that you define.\n",
                "type": "Decoder a -> Resource -> Result String a"
            },
            {
                "name": "id",
                "comment": " Get the string ID of a Resource\n",
                "type": "Resource -> String"
            },
            {
                "name": "links",
                "comment": " Pull the attributes off of a Resource.\n",
                "type": "Resource -> Links"
            },
            {
                "name": "meta",
                "comment": " Pull the meta value off of a Resource.\n",
                "type": "Resource -> Meta"
            },
            {
                "name": "relatedLinks",
                "comment": " Retreive the links from a relationship.\n    Will return an Err if the relationship does not exist.\n",
                "type": "String -> Resource -> Result String Links"
            },
            {
                "name": "relatedMeta",
                "comment": " Retreive the meta information from a relationship.\n    Will return an Err if the relationship does not exist.\n",
                "type": "String -> Resource -> Result String Meta"
            },
            {
                "name": "relatedResource",
                "comment": " Find a related resource.\n    Will return an Err if a resource collection is found.\n",
                "type": "String -> Resource -> Result String Resource"
            },
            {
                "name": "relatedResourceCollection",
                "comment": " Find a related collection of resources.\n    Will return an Err if a single resource is found.\n",
                "type": "String -> Resource -> Result String (List Resource)"
            }
        ],
        "binops": []
    },
    {
        "name": "JsonApi.Documents",
        "comment": " Helper functions for working with a full JsonApi Document\n\n# Common Helpers\n@docs links, jsonapi, primaryResource, primaryResourceCollection, meta\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "jsonapi",
                "comment": " Fetch information from the top-level 'jsonapi' object\n",
                "type": "Document -> Maybe JsonApiObject"
            },
            {
                "name": "links",
                "comment": " Fetch the top-level links object from the document.\n",
                "type": "Document -> Links"
            },
            {
                "name": "meta",
                "comment": " Fetch the top-level meta object from the document.\n",
                "type": "Document -> Meta"
            },
            {
                "name": "primaryResource",
                "comment": " Retrieve the primary resource from a decoded Document.\n    This function assumes a singular primary resource and will return an Err\n    if the document contains a collection of primary resources.\n",
                "type": "Document -> Result String Resource"
            },
            {
                "name": "primaryResourceCollection",
                "comment": " Retrieve a collection of primary resources from a decoded Document.\n    This function assumes a collection primary resources and will return an Err\n    if the document contains a singular primary resource.\n",
                "type": "Document -> Result String (List Resource)"
            }
        ],
        "binops": []
    },
    {
        "name": "JsonApi",
        "comment": " A library for processing and working with JSON API payloads.\n\n# Generic Data Types\n@docs Document, Resource, Links, Meta, ErrorObject\n\n",
        "unions": [],
        "aliases": [
            {
                "name": "Document",
                "comment": " Data type representing the entire JsonApi document.\n",
                "args": [],
                "type": "Document"
            },
            {
                "name": "ErrorObject",
                "comment": " Data type describing the types of problems that can be encountered when processing a JSON API payload.\n\n",
                "args": [],
                "type": "{ id : Maybe String, links : Maybe ErrorLinks, status : Maybe String, code : Maybe String, title : Maybe String, detail : Maybe String, source : Maybe Source, meta : Meta }"
            },
            {
                "name": "Links",
                "comment": " Data type representing a JsonApi links object.\n    See: jsonapi.org/format/#document-links\n",
                "args": [],
                "type": "Links"
            },
            {
                "name": "Meta",
                "comment": " Data type representing a JsonApi meta object. Alias for Json.Encode.Value.\n    See: jsonapi.org/format/#document-meta\n",
                "args": [],
                "type": "Meta"
            },
            {
                "name": "Resource",
                "comment": " Data type representing a single JsonApi resource.\n",
                "args": [],
                "type": "Resource"
            }
        ],
        "values": [],
        "binops": []
    }
]