[{"name":"AWS","comment":" AWS SDK for elm.\n\nThe elm-aws-core package provides functions and types that facilitate making\nHTTP requests to AWS services. Use it to create user-friendly clients to\nspecific AWS services.\n\n\n## Modules in this package\n\n  - [AWS.Core.Service](AWS-Core-Service): Create a service definition. Every service client should define its own `Service` definition.\n  - [AWS.Core.Credentials](AWS-Core-Credentials): Create AWS credentials used to sign requests.\n  - [AWS.Core.Http](AWS-Core-Http): Create requests, sign, and send them. Signing and sending a request requires both a `Service` and `Credentials`.\n  - [AWS.Core.Enum](AWS-Core-Enum): Many AWS services define enumerations. This small module provides functions to convert from Elm types to string values.\n\n\n## Usage example\n\n    import AWS.Core.Credentials as Credentials\n    import AWS.Core.Http as Http exposing (Method(..))\n    import AWS.Core.Service as Service\n    import Json.Decode\n    import Task\n\n    let\n        creds =\n            Credentials.fromAccessKeys\n                \"ACCESS KEY ID\"\n                \"SECRET ACCESS KEY\"\n        service =\n            Service.defineGlobal\n                \"sts\"\n                \"2011-06-15\"\n                Service.query\n                Service.signV4\n                (Service.setXmlNamespace \"https://sts.amazonaws.com/doc/2011-06-15/\")\n        handler =\n            \\result ->\n                case result of\n                    Ok someValue ->\n                        -- someValue is what you get from the decoder\n                        -- that is provided to the request call below.\n                        -- In this case, it would be an Int because\n                        -- we are using Json.Decode.int as the decoder.\n                        someValue /= -1\n                    Err err ->\n                        -- err is an Http.Error\n                        -- See: http://package.elm-lang.org/packages/elm-lang/http/latest/Http#Error\n                        False\n    in\n    Http.request\n        GET\n        \"/some/path\"\n        Http.emptyBody\n        Json.Decode.int\n        |> Http.send service creds\n        |> Task.attempt handler\n        |> (/=) Cmd.none\n    --> True\n\n@docs version\n\n","unions":[],"aliases":[],"values":[{"name":"version","comment":" elm-aws-core package version.\n\n    AWS.version\n    --> \"1.1.0\"\n\n","type":"String.String"}],"binops":[]},{"name":"AWS.Core.Credentials","comment":" AWS credentials.\n\n\n# Types\n\n@docs Credentials, AccessKeyId, SecretAccessKey, SessionToken\n\n\n# Building\n\n@docs fromAccessKeys, setSessionToken\n\n\n# Accessing\n\n@docs accessKeyId, secretAccessKey, sessionToken\n\n","unions":[{"name":"Credentials","comment":" Holds AWS credentials.\n","args":[],"cases":[]}],"aliases":[{"name":"AccessKeyId","comment":" The AWS access key ID.\n","args":[],"type":"String.String"},{"name":"SecretAccessKey","comment":" The AWS secret access key.\n","args":[],"type":"String.String"},{"name":"SessionToken","comment":" An optional AWS session token.\n","args":[],"type":"String.String"}],"values":[{"name":"accessKeyId","comment":" Gets the access key.\n","type":"AWS.Core.Credentials.Credentials -> AWS.Core.Credentials.AccessKeyId"},{"name":"fromAccessKeys","comment":" Create AWS credentials given an access key and secret key.\n","type":"AWS.Core.Credentials.AccessKeyId -> AWS.Core.Credentials.SecretAccessKey -> AWS.Core.Credentials.Credentials"},{"name":"secretAccessKey","comment":" Gets the secret.\n","type":"AWS.Core.Credentials.Credentials -> AWS.Core.Credentials.SecretAccessKey"},{"name":"sessionToken","comment":" Gets the session token.\n","type":"AWS.Core.Credentials.Credentials -> Maybe.Maybe AWS.Core.Credentials.SessionToken"},{"name":"setSessionToken","comment":" Set the session token.\n","type":"AWS.Core.Credentials.SessionToken -> AWS.Core.Credentials.Credentials -> AWS.Core.Credentials.Credentials"}],"binops":[]},{"name":"AWS.Core.Decode","comment":" Helper functions for decoding AWS calls.\n\n\n# Helpers\n\n@docs Metadata, Response, ResponseWrapper, ResultDecoder, dict, optional, required, responseWrapperDecoder\n\n","unions":[{"name":"ResultDecoder","comment":" Decoder type that can take a constant value or decode some string.\n","args":["a"],"cases":[["ResultDecoder",["String.String","Json.Decode.Decoder a"]],["FixedResult",["a"]]]}],"aliases":[{"name":"Metadata","comment":" Response meta-data.\n","args":[],"type":"{ requestId : String.String }"},{"name":"Response","comment":" A response consisting of data and meta-data.\n","args":["a"],"type":"{ data : a, metadata : AWS.Core.Decode.Metadata }"},{"name":"ResponseWrapper","comment":" A wrapped response\n","args":["a"],"type":"{ response : AWS.Core.Decode.Response a }"}],"values":[{"name":"dict","comment":" Decodes into a dict using either the standard Dict encoding as records of\n\"Name\" and \"Value\" field pairs.\n","type":"Json.Decode.Decoder a -> Json.Decode.Decoder (Dict.Dict String.String a)"},{"name":"optional","comment":" Tries to decode one of an optional set of field names against a decoder. If no\nmatching field succeeds with the decoder, Nothing will be decoded.\n","type":"List.List String.String -> Json.Decode.Decoder a -> Json.Decode.Decoder (Maybe.Maybe a)"},{"name":"required","comment":" Tries to decode one of an set of field names against a decoder. If no\nmatching field succeeds with the decoder, the decoding will fail.\n","type":"List.List String.String -> Json.Decode.Decoder a -> Json.Decode.Decoder a"},{"name":"responseWrapperDecoder","comment":" Decodes a ResponseWrapper.\n","type":"String.String -> AWS.Core.Decode.ResultDecoder a -> Json.Decode.Decoder (AWS.Core.Decode.ResponseWrapper a)"}],"binops":[]},{"name":"AWS.Core.Encode","comment":" Helper functions for building AWS calls.\n\n\n# Helpers\n\n@docs addListToQueryArgs, addDictToQueryArgs, addOneToQueryArgs, addRecordToQueryArgs, bool, optionalMember, unchangedQueryArgs, uri\n\n","unions":[],"aliases":[],"values":[{"name":"addDictToQueryArgs","comment":" Adds a dict of key/value pairs to another list.\n","type":"(a -> String.String) -> String.String -> Dict.Dict String.String a -> List.List ( String.String, String.String ) -> List.List ( String.String, String.String )"},{"name":"addListToQueryArgs","comment":" Adds a list of key/value pairs to another list, optioanlly flattening them.\n","type":"Basics.Bool -> (a -> List.List ( String.String, String.String ) -> List.List ( String.String, String.String )) -> String.String -> List.List a -> List.List ( String.String, String.String ) -> List.List ( String.String, String.String )"},{"name":"addOneToQueryArgs","comment":" Adds a key value pair to a list.\n","type":"(a -> String.String) -> String.String -> a -> List.List ( String.String, String.String ) -> List.List ( String.String, String.String )"},{"name":"addRecordToQueryArgs","comment":" Adds a record of key/value pairs to a list.\n","type":"(record -> List.List ( String.String, String.String )) -> String.String -> record -> List.List ( String.String, String.String ) -> List.List ( String.String, String.String )"},{"name":"bool","comment":" Turn a bool into a stirng.\n","type":"Basics.Bool -> String.String"},{"name":"optionalMember","comment":" Adds an optional key/value pair to a list.\n","type":"(a -> b) -> ( String.String, Maybe.Maybe a ) -> List.List ( String.String, b ) -> List.List ( String.String, b )"},{"name":"unchangedQueryArgs","comment":" Identity function\n","type":"List.List ( String.String, String.String ) -> List.List ( String.String, String.String )"},{"name":"uri","comment":" We don't use Http.encodeUri because it misses some characters. It uses the\nnative `encodeURIComponent` under the hood:\n\n    encodeURIComponent escapes all characters except the following:\n    alphabetic, decimal digits, - _ . ! ~ * ' ( )\n\n    - from https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent\n\nFor AWS only \"Unreserved Characters\" are allowed.\nSee <http://tools.ietf.org/html/rfc3986>\nSection 2.3\n\nSo basically we need to also cover: ! \\* ' ( )\n\n","type":"String.String -> String.String"}],"binops":[]},{"name":"AWS.Core.Http","comment":" AWS requests and responses.\n\n\n# Table of Contents\n\n  - [Requests](#requests)\n  - [Body](#body)\n\nExamples assume the following imports:\n\n    import Json.Decode\n\n\n# Requests\n\n@docs Request, request, addHeaders, addQuery, setResponseParser, send, Method, Path\n\n\n# Body\n\n@docs Body, MimeType, emptyBody, stringBody, jsonBody\n\n","unions":[{"name":"Method","comment":" HTTP request methods.\n","args":[],"cases":[["DELETE",[]],["GET",[]],["HEAD",[]],["OPTIONS",[]],["POST",[]],["PUT",[]]]}],"aliases":[{"name":"Body","comment":" Holds a request body.\n","args":[],"type":"AWS.Core.Body.Body"},{"name":"MimeType","comment":" MIME type.\n\nSee <https://en.wikipedia.org/wiki/Media_type>\n\n","args":[],"type":"String.String"},{"name":"Path","comment":" Request path.\n","args":[],"type":"String.String"},{"name":"Request","comment":" Holds an unsigned AWS HTTP request.\n","args":["a"],"type":"AWS.Core.Request.Unsigned a"}],"values":[{"name":"addHeaders","comment":" Appends headers to an AWS HTTP unsigned request.\n\n    request GET \"/\" emptyBody Json.Decode.value\n        |> addHeaders\n            [ ( \"x-custom-1\", \"value 1\" )\n            , ( \"x-Custom-2\", \"value 2\" )\n            ]\n        |> addHeaders\n            [ ( \"x-custom-3\", \"value 3\" )\n            ]\n        |> toString\n    --> \"{ method = \\\"GET\\\", path = \\\"/\\\", body = Empty, decoder = <decoder>, headers = [(\\\"x-custom-1\\\",\\\"value 1\\\"),(\\\"x-Custom-2\\\",\\\"value 2\\\"),(\\\"x-custom-3\\\",\\\"value 3\\\")], query = [], responseParser = Nothing }\"\n\n","type":"List.List ( String.String, String.String ) -> AWS.Core.Http.Request a -> AWS.Core.Http.Request a"},{"name":"addQuery","comment":" Appends query arguments to an AWS HTTP unsigned request.\n\n    request GET \"/\" emptyBody Json.Decode.value\n        |> addQuery\n            [ ( \"key1\", \"value 1\" )\n            , ( \"Key2\", \"value 2\" )\n            ]\n        |> addQuery\n            [ ( \"key3\", \"value 3\" )\n            ]\n        |> toString\n    --> \"{ method = \\\"GET\\\", path = \\\"/\\\", body = Empty, decoder = <decoder>, headers = [], query = [(\\\"key1\\\",\\\"value 1\\\"),(\\\"Key2\\\",\\\"value 2\\\"),(\\\"key3\\\",\\\"value 3\\\")], responseParser = Nothing }\"\n\n","type":"List.List ( String.String, String.String ) -> AWS.Core.Http.Request a -> AWS.Core.Http.Request a"},{"name":"emptyBody","comment":" Create an empty body.\n","type":"AWS.Core.Http.Body"},{"name":"jsonBody","comment":" Create a body containing a JSON value.\n\nThis will automatically add the `Content-Type: application/json` header.\n\n","type":"Json.Encode.Value -> AWS.Core.Http.Body"},{"name":"request","comment":" Create an AWS HTTP unsigned request.\n\n    request GET \"/\" emptyBody Json.Decode.value\n        |> toString\n    --> \"{ method = \\\"GET\\\", path = \\\"/\\\", body = Empty, decoder = <decoder>, headers = [], query = [], responseParser = Nothing }\"\n\n","type":"String.String -> AWS.Core.Http.Method -> AWS.Core.Http.Path -> AWS.Core.Http.Body -> Json.Decode.Decoder a -> AWS.Core.Http.Request a"},{"name":"send","comment":" Signs and sends an AWS Request.\n","type":"AWS.Core.Service.Service -> AWS.Core.Credentials.Credentials -> AWS.Core.Http.Request a -> Task.Task Http.Error a"},{"name":"setResponseParser","comment":" Set a parser for the entire Http.Response. Overrides the request decoder.\n","type":"(Http.Response String.String -> Result.Result Http.Error a) -> AWS.Core.Http.Request a -> AWS.Core.Http.Request a"},{"name":"stringBody","comment":" Create a body with a custom MIME type and the given string as content.\n\n    stringBody \"text/html\" \"<html><body><h1>Hello</h1></body></html>\"\n\n","type":"AWS.Core.Http.MimeType -> String.String -> AWS.Core.Http.Body"}],"binops":[]},{"name":"AWS.Core.Service","comment":" AWS service configuration.\n\n\n# Table of Contents\n\n  - [Types](#types)\n  - [Constructors](#constructors)\n  - [Property Setters](#property-setters)\n  - [Protocols](#protocols)\n  - [Signatures](#signatures)\n  - [Timestamp Formats](#timestamp-formats)\n  - [Attributes](#attributes)\n\n\n# Types\n\n@docs Service, ApiVersion, Region, Protocol, Signer, TimestampFormat, Endpoint\n@docs signerEnum, protocolEnum, timestampFormatEnum\n\n\n# Constructors\n\nUse either one of these to create a service definition.\n\n@docs defineGlobal, defineRegional\n\n\n# Property Setters\n\n@docs setJsonVersion, setSigningName, setTargetPrefix, setTimestampFormat, setXmlNamespace, toDigitalOceanSpaces\n\n\n# Attributes\n\nThese functions are exposed so that [AWS.Core.Http](AWS-Core-Http) can properly\nsign requests. They can be useful for debugging, testing, and logging, but\notherwise are not required.\n\n@docs endpointPrefix, region, host, protocol, signer, targetPrefix, jsonContentType, acceptType\n\n","unions":[{"name":"Endpoint","comment":" Defines an AWS service endpoint.\n","args":[],"cases":[["GlobalEndpoint",[]],["RegionalEndpoint",["AWS.Core.Service.Region"]]]},{"name":"Protocol","comment":" Defines the different protocols that AWS services can use.\n","args":[],"cases":[["EC2",[]],["JSON",[]],["QUERY",[]],["REST_JSON",[]],["REST_XML",[]]]},{"name":"Service","comment":" Defines an AWS service.\n","args":[],"cases":[]},{"name":"Signer","comment":" Defines the different signing schemes that AWS services can use.\n","args":[],"cases":[["SignV4",[]],["SignS3",[]]]},{"name":"TimestampFormat","comment":" Defines the different timestamp formats that AWS services can use.\n","args":[],"cases":[["ISO8601",[]],["RFC822",[]],["UnixTimestamp",[]]]}],"aliases":[{"name":"ApiVersion","comment":" Version of a service.\n","args":[],"type":"String.String"},{"name":"Region","comment":" An AWS region string.\n\nFor example `\"us-east-1\"`.\n\n","args":[],"type":"String.String"}],"values":[{"name":"acceptType","comment":" Gets the service Accept header value.\n","type":"AWS.Core.Service.Service -> String.String"},{"name":"defineGlobal","comment":" Creates a global service definition.\n\n    let\n        service = defineGlobal \"sts\" \"2011-06-15\" query signV4\n            (setXmlNamespace \"https://sts.amazonaws.com/doc/2011-06-15/\")\n    in\n    ( service |> endpointPrefix\n    , service |> host\n    , service |> targetPrefix\n    )\n    --> ( \"sts\"\n    --> , \"sts.amazonaws.com\"\n    --> , \"AWSSTS_20110615\"\n    --> )\n\n","type":"String.String -> AWS.Core.Service.ApiVersion -> AWS.Core.Service.Protocol -> AWS.Core.Service.Signer -> (AWS.Core.Service.Service -> AWS.Core.Service.Service) -> AWS.Core.Service.Service"},{"name":"defineRegional","comment":" Creates a regional service definition.\n\n    let\n        acm = defineRegional \"acm\" \"2015-12-08\" json signV4\n            (setJsonVersion \"1.1\" >> setTargetPrefix \"CertificateManager\")\n        service = acm \"ca-central-1\"\n    in\n    ( service |> endpointPrefix\n    , service |> host\n    , service |> targetPrefix\n    )\n    --> ( \"acm\"\n    --> , \"acm.ca-central-1.amazonaws.com\"\n    --> , \"CertificateManager\"\n    --> )\n\nYour client library should not provide the region. Instead it should expose\na function `Region -> Service` by leaving out the last argument.\n\n","type":"String.String -> AWS.Core.Service.ApiVersion -> AWS.Core.Service.Protocol -> AWS.Core.Service.Signer -> (AWS.Core.Service.Service -> AWS.Core.Service.Service) -> AWS.Core.Service.Region -> AWS.Core.Service.Service"},{"name":"endpointPrefix","comment":" Name of the service.\n","type":"AWS.Core.Service.Service -> String.String"},{"name":"host","comment":" Service endpoint as a hostname.\n","type":"AWS.Core.Service.Service -> String.String"},{"name":"jsonContentType","comment":" Gets the service JSON content type header value.\n","type":"AWS.Core.Service.Service -> String.String"},{"name":"protocol","comment":" Protocol of the service.\n","type":"AWS.Core.Service.Service -> AWS.Core.Service.Protocol"},{"name":"protocolEnum","comment":" Enumerates the protocols.\n","type":"Enum.Enum AWS.Core.Service.Protocol"},{"name":"region","comment":" Service region.\n","type":"AWS.Core.Service.Service -> String.String"},{"name":"setJsonVersion","comment":" Set the JSON apiVersion.\n\nUse this if `jsonVersion` is provided in the metadata.\n\n","type":"String.String -> AWS.Core.Service.Service -> AWS.Core.Service.Service"},{"name":"setSigningName","comment":" Set the signing name for the service.\n\nUse this if `signingName` is provided in the metadata.\n\n","type":"String.String -> AWS.Core.Service.Service -> AWS.Core.Service.Service"},{"name":"setTargetPrefix","comment":" Set the target prefix for the service.\n\nUse this if `targetPrefix` is provided in the metadata.\n\n","type":"String.String -> AWS.Core.Service.Service -> AWS.Core.Service.Service"},{"name":"setTimestampFormat","comment":" Set the timestamp format for the service.\n\nUse this if `timestampFormat` is provided in the metadata.\n\n","type":"AWS.Core.Service.TimestampFormat -> AWS.Core.Service.Service -> AWS.Core.Service.Service"},{"name":"setXmlNamespace","comment":" Set the XML namespace for the service.\n\nUse this if `xmlNamespace` is provided in the metadata.\n\n","type":"String.String -> AWS.Core.Service.Service -> AWS.Core.Service.Service"},{"name":"signer","comment":" Service signature version.\n","type":"AWS.Core.Service.Service -> AWS.Core.Service.Signer"},{"name":"signerEnum","comment":" Enumerates the signing schemes.\n","type":"Enum.Enum AWS.Core.Service.Signer"},{"name":"targetPrefix","comment":" Set the target prefix.\n","type":"AWS.Core.Service.Service -> String.String"},{"name":"timestampFormatEnum","comment":" Enumerates the timestamp formats.\n","type":"Enum.Enum AWS.Core.Service.TimestampFormat"},{"name":"toDigitalOceanSpaces","comment":" Use Digital Ocean Spaces as the backend service provider.\n\nChanges the way hostnames are resolved.\n\n","type":"AWS.Core.Service.Service -> AWS.Core.Service.Service"}],"binops":[]}]