Packages
ex_aws
2.3.0
2.7.0
2.6.1
2.6.0
2.5.11
2.5.10
2.5.9
2.5.8
2.5.7
2.5.6
2.5.5
2.5.4
2.5.3
2.5.2
2.5.1
2.5.0
2.4.4
2.4.3
2.4.2
2.4.1
2.4.0
2.3.4
2.3.3
2.3.2
2.3.1
2.3.0
2.2.10
2.2.9
2.2.8
2.2.7
2.2.6
2.2.5
2.2.4
2.2.3
2.2.2
2.2.1
2.2.0
2.1.9
2.1.8
2.1.7
2.1.6
2.1.5
2.1.4
2.1.3
2.1.2
2.1.1
2.1.0
2.0.2
2.0.1
2.0.0
1.1.5
1.1.4
1.1.3
1.1.2
1.1.1
1.1.0
1.0.0
1.0.0-rc.4
1.0.0-rc.3
1.0.0-rc.1
1.0.0-beta3
1.0.0-beta2
1.0.0-beta1
1.0.0-beta0
0.5.0
0.4.19
0.4.18
0.4.17
0.4.15
0.4.14
0.4.13
0.4.11
0.4.10
0.4.9
0.4.8
0.4.7
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.1
0.3.0
0.2.0
0.1.2
0.1.1
0.1.0
0.0.5
0.0.4
0.0.3
AWS client for Elixir. Currently supports Dynamo, DynamoStreams, EC2, Firehose, Kinesis, KMS, Lambda, RRDS, Route53, S3, SES, SNS, SQS, STS and others.
Current section
Files
Jump to
Current section
Files
lib/ex_aws/operation.ex
defprotocol ExAws.Operation do
@moduledoc """
An operation to perform on AWS.
This module defines a protocol for executing operations on AWS. ExAws ships with
several different modules that each implement the `ExAws.Operation` protocol. These
modules each handle one of the broad categories of AWS service types:
- `ExAws.Operation.JSON`
- `ExAws.Operation.Query`
- `ExAws.Operation.RestQuery`
- `ExAws.Operation.S3`
ExAws works by creating a data structure that implements this protocol, and then
calling `perform/2` on it.
"""
@doc """
Perform a request on AWS.
The operation is synchronous, returning a response or an error.
## Example
%ExAws.Operation.JSON{
data: %{},
headers: [
{"x-amz-target", "DynamoDB_20120810.ListTables"},
{"content-type", "application/x-amz-json-1.0"}
],
http_method: :post,
params: %{},
path: "/",
service: :dynamodb,
} |> ExAws.Operation.perform(ExAws.Config.new(:dynamodb))
"""
def perform(operation, config)
@doc """
Perform a *streaming* request on AWS.
"""
def stream!(operation, config)
end