CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/golang-github-com--aws--aws-sdk-go-v2

AWS SDK for Go v2 with 130+ service clients, Request/Send pattern, and context support.

Overview
Eval results
Files

services.mddocs/reference/

Service Clients

All 139 AWS service clients follow the same pattern. Each is in its own package under github.com/aws/aws-sdk-go-v2/service/<name>.

Common Pattern

// All service clients:
import "github.com/aws/aws-sdk-go-v2/service/<service>"

// Constructor
func New(config aws.Config) *<ServiceName>

// Each API operation:
func (c *<ServiceName>) <OperationName>Request(input *<OperationName>Input) <OperationName>Request

// Typed request
type <OperationName>Request struct {
    Input *<OperationName>Input
    Copy  func(*<OperationName>Input) <OperationName>Request
    // unexported aws.Request
}
func (r <OperationName>Request) Send() (*<OperationName>Output, error)
func (r <OperationName>Request) Presign(expireTime time.Duration) (string, error)

// Pager (for paginated operations)
type <OperationName>Pager struct { ... }
func (r <OperationName>Request) Paginate() *<OperationName>Pager
func (p *<OperationName>Pager) Next() bool
func (p *<OperationName>Pager) CurrentPage() *<OperationName>Output
func (p *<OperationName>Pager) Err() error

// Waiters (service-specific)
func (c *<ServiceName>) WaitUntil<State>(ctx aws.Context, input *<Input>, opts ...aws.WaiterOption) error

Interface Packages

Each service has a <service>iface sub-package with a <ServiceName>API interface for mocking:

import "github.com/aws/aws-sdk-go-v2/service/s3/s3iface"

// In test code:
type MockS3 struct { s3iface.S3API }
func (m *MockS3) GetObjectRequest(input *s3.GetObjectInput) s3.GetObjectRequest { ... }

Service Package Index

Package Import PathService NameClient Type
service/acmAWS Certificate ManagerACM
service/acmpcaACM Private CAACMPCA
service/alexaforbusinessAlexa for BusinessAlexaForBusiness
service/apigatewayAmazon API GatewayAPIGateway
service/applicationautoscalingApplication Auto ScalingApplicationAutoScaling
service/applicationdiscoveryserviceAWS Application Discovery ServiceApplicationDiscoveryService
service/appstreamAmazon AppStream 2.0AppStream
service/appsyncAWS AppSyncAppSync
service/athenaAmazon AthenaAthena
service/autoscalingAuto ScalingAutoScaling
service/autoscalingplansAWS Auto Scaling PlansAutoScalingPlans
service/batchAWS BatchBatch
service/budgetsAWS BudgetsBudgets
service/cloud9AWS Cloud9Cloud9
service/clouddirectoryAmazon Cloud DirectoryCloudDirectory
service/cloudformationAWS CloudFormationCloudFormation
service/cloudfrontAmazon CloudFrontCloudFront
service/cloudhsmAWS CloudHSMCloudHSM
service/cloudhsmv2AWS CloudHSM v2CloudHSMV2
service/cloudsearchAmazon CloudSearchCloudSearch
service/cloudsearchdomainAmazon CloudSearch DomainCloudSearchDomain
service/cloudtrailAWS CloudTrailCloudTrail
service/cloudwatchAmazon CloudWatchCloudWatch
service/cloudwatcheventsAmazon CloudWatch EventsCloudWatchEvents
service/cloudwatchlogsAmazon CloudWatch LogsCloudWatchLogs
service/codebuildAWS CodeBuildCodeBuild
service/codecommitAWS CodeCommitCodeCommit
service/codedeployAWS CodeDeployCodeDeploy
service/codepipelineAWS CodePipelineCodePipeline
service/codestarAWS CodeStarCodeStar
service/cognitoidentityAmazon Cognito IdentityCognitoIdentity
service/cognitoidentityproviderAmazon Cognito Identity ProviderCognitoIdentityProvider
service/cognitosyncAmazon Cognito SyncCognitoSync
service/comprehendAmazon ComprehendComprehend
service/configserviceAWS ConfigConfigService
service/connectAmazon ConnectConnect
service/costandusagereportserviceCost and Usage ReportCostandUsageReportService
service/costexplorerAWS Cost ExplorerCostExplorer
service/databasemigrationserviceAWS Database Migration ServiceDatabaseMigrationService
service/datapipelineAWS Data PipelineDataPipeline
service/daxAmazon DynamoDB AcceleratorDAX
service/devicefarmAWS Device FarmDeviceFarm
service/directconnectAWS Direct ConnectDirectConnect
service/directoryserviceAWS Directory ServiceDirectoryService
service/dynamodbAmazon DynamoDBDynamoDB
service/dynamodbstreamsAmazon DynamoDB StreamsDynamoDBStreams
service/ec2Amazon EC2EC2
service/ecrAmazon ECRECR
service/ecsAmazon ECSECS
service/efsAmazon EFSEFS
service/elasticacheAmazon ElastiCacheElastiCache
service/elasticbeanstalkAWS Elastic BeanstalkElasticBeanstalk
service/elasticsearchserviceAmazon Elasticsearch ServiceElasticsearchService
service/elastictranscoderAmazon Elastic TranscoderElasticTranscoder
service/elbElastic Load Balancing (Classic)ELB
service/elbv2Elastic Load Balancing v2ELBV2
service/emrAmazon EMREMR
service/firehoseAmazon Kinesis Data FirehoseFirehose
service/fmsAWS Firewall ManagerFMS
service/gameliftAmazon GameLiftGameLift
service/glacierAmazon S3 GlacierGlacier
service/glueAWS GlueGlue
service/greengrassAWS IoT GreengrassGreengrass
service/guarddutyAmazon GuardDutyGuardDuty
service/healthAWS HealthHealth
service/iamAWS IAMIAM
service/inspectorAmazon InspectorInspector
service/iotAWS IoT CoreIoT
service/iot1clickdevicesserviceAWS IoT 1-Click DevicesIoT1ClickDevicesService
service/iot1clickprojectsAWS IoT 1-Click ProjectsIoT1ClickProjects
service/iotanalyticsAWS IoT AnalyticsIoTAnalytics
service/iotdataplaneAWS IoT Data PlaneIoTDataPlane
service/iotjobsdataplaneAWS IoT Jobs Data PlaneIoTJobsDataPlane
service/kinesisAmazon Kinesis Data StreamsKinesis
service/kinesisanalyticsAmazon Kinesis Data AnalyticsKinesisAnalytics
service/kinesisvideoAmazon Kinesis Video StreamsKinesisVideo
service/kinesisvideoarchivedmediaAmazon Kinesis Video Archived MediaKinesisVideoArchivedMedia
service/kinesisvideomediaAmazon Kinesis Video MediaKinesisVideoMedia
service/kmsAWS Key Management ServiceKMS
service/lambdaAWS LambdaLambda
service/lexmodelbuildingserviceAmazon Lex Model BuildingLexModelBuildingService
service/lexruntimeserviceAmazon Lex RuntimeLexRuntimeService
service/lightsailAmazon LightsailLightsail
service/machinelearningAmazon Machine LearningMachineLearning
service/marketplacecommerceanalyticsAWS Marketplace Commerce AnalyticsMarketplaceCommerceAnalytics
service/marketplaceentitlementserviceAWS Marketplace EntitlementMarketplaceEntitlementService
service/marketplacemeteringAWS Marketplace MeteringMarketplaceMetering
service/mediaconvertAWS Elemental MediaConvertMediaConvert
service/medialiveAWS Elemental MediaLiveMediaLive
service/mediapackageAWS Elemental MediaPackageMediaPackage
service/mediastoreAWS Elemental MediaStoreMediaStore
service/mediastoredataAWS Elemental MediaStore DataMediaStoreData
service/migrationhubAWS Migration HubMigrationHub
service/mobileAWS MobileMobile
service/mobileanalyticsAmazon Mobile AnalyticsMobileAnalytics
service/mqAmazon MQMQ
service/mturkAmazon Mechanical TurkMTurk
service/opsworksAWS OpsWorksOpsWorks
service/opsworkscmAWS OpsWorks CMOpsWorksCM
service/organizationsAWS OrganizationsOrganizations
service/pinpointAmazon PinpointPinpoint
service/pollyAmazon PollyPolly
service/pricingAWS Price ListPricing
service/rdsAmazon RDSRDS
service/redshiftAmazon RedshiftRedshift
service/rekognitionAmazon RekognitionRekognition
service/resourcegroupsAWS Resource GroupsResourceGroups
service/resourcegroupstaggingapiAWS Resource Groups Tagging APIResourceGroupsTaggingAPI
service/route53Amazon Route 53Route53
service/route53domainsAmazon Route 53 DomainsRoute53Domains
service/s3Amazon S3S3
service/sagemakerAmazon SageMakerSageMaker
service/sagemakerruntimeAmazon SageMaker RuntimeSageMakerRuntime
service/secretsmanagerAWS Secrets ManagerSecretsManager
service/serverlessapplicationrepositoryAWS Serverless Application RepositoryServerlessApplicationRepository
service/servicecatalogAWS Service CatalogServiceCatalog
service/servicediscoveryAWS Cloud MapServiceDiscovery
service/sesAmazon SESSES
service/sfnAWS Step FunctionsSFN
service/shieldAWS ShieldShield
service/simpledbAmazon SimpleDBSimpleDB
service/smsAWS Server Migration ServiceSMS
service/snowballAWS SnowballSnowball
service/snsAmazon SNSSNS
service/sqsAmazon SQSSQS
service/ssmAWS Systems ManagerSSM
service/storagegatewayAWS Storage GatewayStorageGateway
service/stsAWS Security Token ServiceSTS
service/supportAWS SupportSupport
service/swfAmazon Simple Workflow ServiceSWF
service/transcribeserviceAmazon TranscribeTranscribeService
service/translateAmazon TranslateTranslate
service/wafAWS WAF (Global)WAF
service/wafregionalAWS WAF RegionalWAFRegional
service/workdocsAmazon WorkDocsWorkDocs
service/workmailAmazon WorkMailWorkMail
service/workspacesAmazon WorkSpacesWorkSpaces
service/xrayAWS X-RayXRay

Usage Example (DynamoDB)

import (
    "github.com/aws/aws-sdk-go-v2/aws"
    "github.com/aws/aws-sdk-go-v2/aws/external"
    "github.com/aws/aws-sdk-go-v2/service/dynamodb"
)

cfg, _ := external.LoadDefaultAWSConfig()
cfg.Region = "us-east-1"
svc := dynamodb.New(cfg)

// PutItem
req := svc.PutItemRequest(&dynamodb.PutItemInput{
    TableName: aws.String("my-table"),
    Item: map[string]dynamodb.AttributeValue{
        "id": {S: aws.String("123")},
        "name": {S: aws.String("example")},
    },
})
resp, err := req.Send()

// GetItem
getReq := svc.GetItemRequest(&dynamodb.GetItemInput{
    TableName: aws.String("my-table"),
    Key: map[string]dynamodb.AttributeValue{
        "id": {S: aws.String("123")},
    },
})
getResp, err := getReq.Send()
if name, ok := getResp.Item["name"]; ok {
    fmt.Println(*name.S)
}

// Paginate Scan
scanReq := svc.ScanRequest(&dynamodb.ScanInput{
    TableName: aws.String("my-table"),
})
p := scanReq.Paginate()
for p.Next() {
    page := p.CurrentPage()
    for _, item := range page.Items {
        fmt.Println(item)
    }
}

Usage Example (Lambda)

import (
    "github.com/aws/aws-sdk-go-v2/aws"
    "github.com/aws/aws-sdk-go-v2/aws/external"
    "github.com/aws/aws-sdk-go-v2/service/lambda"
)

cfg, _ := external.LoadDefaultAWSConfig()
cfg.Region = "us-east-1"
svc := lambda.New(cfg)

req := svc.InvokeRequest(&lambda.InvokeInput{
    FunctionName:   aws.String("my-function"),
    Payload:        []byte(`{"key": "value"}`),
    InvocationType: lambda.InvocationTypeRequestResponse,
})
resp, err := req.Send()
if err != nil { panic(err) }
fmt.Println("Status:", *resp.StatusCode)
fmt.Println("Response:", string(resp.Payload))

Usage Example (SQS)

import (
    "github.com/aws/aws-sdk-go-v2/aws"
    "github.com/aws/aws-sdk-go-v2/aws/external"
    "github.com/aws/aws-sdk-go-v2/service/sqs"
)

cfg, _ := external.LoadDefaultAWSConfig()
cfg.Region = "us-east-1"
svc := sqs.New(cfg)

// Send message
sendReq := svc.SendMessageRequest(&sqs.SendMessageInput{
    QueueUrl:    aws.String("https://sqs.us-east-1.amazonaws.com/123456789012/my-queue"),
    MessageBody: aws.String("Hello, SQS!"),
})
sendResp, err := sendReq.Send()

// Receive messages
recvReq := svc.ReceiveMessageRequest(&sqs.ReceiveMessageInput{
    QueueUrl:            aws.String("https://sqs.us-east-1.amazonaws.com/123456789012/my-queue"),
    MaxNumberOfMessages: aws.Int64(10),
    WaitTimeSeconds:     aws.Int64(20), // long polling
})
recvResp, err := recvReq.Send()
for _, msg := range recvResp.Messages {
    fmt.Println(*msg.Body)
    // Delete message after processing
    delReq := svc.DeleteMessageRequest(&sqs.DeleteMessageInput{
        QueueUrl:      aws.String("..."),
        ReceiptHandle: msg.ReceiptHandle,
    })
    delReq.Send()
}

Usage Example (EC2)

import (
    "github.com/aws/aws-sdk-go-v2/aws"
    "github.com/aws/aws-sdk-go-v2/aws/external"
    "github.com/aws/aws-sdk-go-v2/service/ec2"
)

cfg, _ := external.LoadDefaultAWSConfig()
cfg.Region = "us-east-1"
svc := ec2.New(cfg)

// Describe instances with pagination
req := svc.DescribeInstancesRequest(&ec2.DescribeInstancesInput{})
p := req.Paginate()
for p.Next() {
    page := p.CurrentPage()
    for _, r := range page.Reservations {
        for _, i := range r.Instances {
            fmt.Println(*i.InstanceId, i.State.Name)
        }
    }
}

// Wait until instance is running
err := svc.WaitUntilInstanceRunning(aws.BackgroundContext(), &ec2.DescribeInstancesInput{
    InstanceIds: []string{"i-1234567890abcdef0"},
})

ServiceName Constants

Each service package exports a ServiceName constant:

// Example service name constants (each in its respective package)
const ServiceName = "s3"       // service/s3
const ServiceName = "ec2"      // service/ec2
const ServiceName = "dynamodb" // service/dynamodb
const ServiceName = "iam"      // service/iam
// etc.

Install with Tessl CLI

npx tessl i tessl/golang-github-com--aws--aws-sdk-go-v2

docs

index.md

tile.json