72e35af39f
Signed-off-by: Taylor Skinner <tskinn12@gmail.com> add some comments Signed-off-by: Taylor Skinner <tskinn12@gmail.com> update readmes make test runnable Signed-off-by: Taylor Skinner <tskinn12@gmail.com> make test squash! add dynamo add glide.lock format imports gofmt update glide.lock fixes for review golint clean up and reorganize tests add dynamodb integration test remove default region. clean up tests. consistent docs forgot the region is required DRY make validate update readme and commit dependencies
110 lines
4 KiB
Go
110 lines
4 KiB
Go
// THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT.
|
|
|
|
package dynamodb
|
|
|
|
import (
|
|
"github.com/aws/aws-sdk-go/aws"
|
|
"github.com/aws/aws-sdk-go/aws/client"
|
|
"github.com/aws/aws-sdk-go/aws/client/metadata"
|
|
"github.com/aws/aws-sdk-go/aws/request"
|
|
"github.com/aws/aws-sdk-go/aws/signer/v4"
|
|
"github.com/aws/aws-sdk-go/private/protocol/jsonrpc"
|
|
)
|
|
|
|
// Amazon DynamoDB is a fully managed NoSQL database service that provides fast
|
|
// and predictable performance with seamless scalability. DynamoDB lets you
|
|
// offload the administrative burdens of operating and scaling a distributed
|
|
// database, so that you don't have to worry about hardware provisioning, setup
|
|
// and configuration, replication, software patching, or cluster scaling.
|
|
//
|
|
// With DynamoDB, you can create database tables that can store and retrieve
|
|
// any amount of data, and serve any level of request traffic. You can scale
|
|
// up or scale down your tables' throughput capacity without downtime or performance
|
|
// degradation, and use the AWS Management Console to monitor resource utilization
|
|
// and performance metrics.
|
|
//
|
|
// DynamoDB automatically spreads the data and traffic for your tables over
|
|
// a sufficient number of servers to handle your throughput and storage requirements,
|
|
// while maintaining consistent and fast performance. All of your data is stored
|
|
// on solid state disks (SSDs) and automatically replicated across multiple
|
|
// Availability Zones in an AWS region, providing built-in high availability
|
|
// and data durability.
|
|
// The service client's operations are safe to be used concurrently.
|
|
// It is not safe to mutate any of the client's properties though.
|
|
// Please also see https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10
|
|
type DynamoDB struct {
|
|
*client.Client
|
|
}
|
|
|
|
// Used for custom client initialization logic
|
|
var initClient func(*client.Client)
|
|
|
|
// Used for custom request initialization logic
|
|
var initRequest func(*request.Request)
|
|
|
|
// Service information constants
|
|
const (
|
|
ServiceName = "dynamodb" // Service endpoint prefix API calls made to.
|
|
EndpointsID = ServiceName // Service ID for Regions and Endpoints metadata.
|
|
)
|
|
|
|
// New creates a new instance of the DynamoDB client with a session.
|
|
// If additional configuration is needed for the client instance use the optional
|
|
// aws.Config parameter to add your extra config.
|
|
//
|
|
// Example:
|
|
// // Create a DynamoDB client from just a session.
|
|
// svc := dynamodb.New(mySession)
|
|
//
|
|
// // Create a DynamoDB client with additional configuration
|
|
// svc := dynamodb.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
|
|
func New(p client.ConfigProvider, cfgs ...*aws.Config) *DynamoDB {
|
|
c := p.ClientConfig(EndpointsID, cfgs...)
|
|
return newClient(*c.Config, c.Handlers, c.Endpoint, c.SigningRegion, c.SigningName)
|
|
}
|
|
|
|
// newClient creates, initializes and returns a new service client instance.
|
|
func newClient(cfg aws.Config, handlers request.Handlers, endpoint, signingRegion, signingName string) *DynamoDB {
|
|
svc := &DynamoDB{
|
|
Client: client.New(
|
|
cfg,
|
|
metadata.ClientInfo{
|
|
ServiceName: ServiceName,
|
|
SigningName: signingName,
|
|
SigningRegion: signingRegion,
|
|
Endpoint: endpoint,
|
|
APIVersion: "2012-08-10",
|
|
JSONVersion: "1.0",
|
|
TargetPrefix: "DynamoDB_20120810",
|
|
},
|
|
handlers,
|
|
),
|
|
}
|
|
|
|
// Handlers
|
|
svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
|
|
svc.Handlers.Build.PushBackNamed(jsonrpc.BuildHandler)
|
|
svc.Handlers.Unmarshal.PushBackNamed(jsonrpc.UnmarshalHandler)
|
|
svc.Handlers.UnmarshalMeta.PushBackNamed(jsonrpc.UnmarshalMetaHandler)
|
|
svc.Handlers.UnmarshalError.PushBackNamed(jsonrpc.UnmarshalErrorHandler)
|
|
|
|
// Run custom client initialization if present
|
|
if initClient != nil {
|
|
initClient(svc.Client)
|
|
}
|
|
|
|
return svc
|
|
}
|
|
|
|
// newRequest creates a new request for a DynamoDB operation and runs any
|
|
// custom request initialization.
|
|
func (c *DynamoDB) newRequest(op *request.Operation, params, data interface{}) *request.Request {
|
|
req := c.NewRequest(op, params, data)
|
|
|
|
// Run custom request initialization if present
|
|
if initRequest != nil {
|
|
initRequest(req)
|
|
}
|
|
|
|
return req
|
|
}
|