for more information visit the package's GitHub page
Package contains the following modules:
Contacts for Support - @rupertlssmith on https://elmlang.slack.com - @rupert on https://discourse.elm-lang.org
Status
The PATCH HttpMethod was added.
The model for AWS service specs and JSON codecs for it were added.
Error handling has been implemented. A separate error decoder can be specified when building a request. There are ready implemented ones for the standard error format, and for the case where no application level error is expected.
The API has been redesigned. The intermediate .Core.
module name has been
removed. The old Encode
and Decode
modules were dropped as not very useful
and poorly designed.
A new KVEncode
module has been introduced to help with building headers and
query parameters. A KVDecoder
module has been introduced to help decoding
response headers, it is simpler than KVEncode
as less elaborate encoding
schemes are needed.
AWS URI encoding was taken from the old Encode
module and put in its own Uri
module.
ServiceConfig
and Credentials
were made into type aliases instead of opaque
custom types. This mean the accessor functions could be dropped. I don't see
any reason to make these things opaque, there is no advantage in hiding
the implementation.
Service
building was rationalized to remove some oddities. The ServiceConfig
is now a simple record and easy to understand. The defaulting is explained in
the docs. The defaulting happens behind the scenes when turning a config into a
Service
.
An amount of unused code was deleted. The API is now leaner and cleaner.
This package provides the functionality needed to make HTTP requests to AWS services.
All AWS service calls must be signed correctly, in order to pass on the authorized credentials of the caller to the service. AWS has multiple signing schemes that different services use, specifically 'S3' and 'V4'.
The AWS service portfolio is large with variations in signing schemes, AWS regions and service protocols across it. The aim of this package is to provide functions to build signed HTTP requests correctly for all of the services available on AWS. The specific service interface can then be implemented with this package as a foundational element.
ServiceConfig
describing the
protocol, signing scheme, base URL and so on for a service.ServiceConfig
into a Service
definition, needed to make HTTP calls to that service.Service
and
some Credentials
.Credentials
used to sign
requests.KVEncode
as only needed for interpreting fairly
simple response headers.