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

endpoints.mddocs/reference/

Endpoint Resolution (aws/endpoints)

Import: github.com/aws/aws-sdk-go-v2/aws/endpoints

Provides region and endpoint metadata for all AWS services, with the ability to enumerate partitions, regions, and services, and to use custom endpoints.

Default Resolver

func NewDefaultResolver() *Resolver
func DefaultPartitions() Partitions
resolver := endpoints.NewDefaultResolver()
cfg.EndpointResolver = resolver

// Enumerate partitions
for _, p := range resolver.Partitions() {
    fmt.Println(p.ID()) // "aws", "aws-cn", "aws-us-gov"
    for id := range p.Regions() {
        fmt.Println(" Region:", id)
    }
}

Resolver

type Resolver struct {
    ResolveOptions
    // unexported fields
}

type ResolveOptions struct {
    DisableSSL     bool  // force HTTP instead of HTTPS
    UseDualStack   bool  // resolve dualstack endpoints
    StrictMatching bool  // return error for unknown services/regions
}

func NewDefaultResolver() *Resolver
func DecodeModel(r io.Reader, optFns ...func(*DecodeModelOptions)) (*Resolver, error)
func (r *Resolver) ResolveEndpoint(service, region string) (aws.Endpoint, error)
func (r *Resolver) Partitions() Partitions

DecodeModelOptions

type DecodeModelOptions struct {
    // unexported fields
}

Partitions

type Partitions []Partition

func DefaultPartitions() Partitions
func (ps Partitions) ForPartition(id string) (Partition, bool)
func (ps Partitions) ForRegion(id string) (Partition, bool)

Partition

type Partition struct {
    // unexported fields
}

func (p Partition) ID() string
func (p Partition) Regions() map[string]Region
func (p Partition) Services() map[string]Service
func (p Partition) RegionsForService(id string) (map[string]Region, bool)
func (p Partition) EndpointFor(service, region string, opts ...func(*ResolveOptions)) (aws.Endpoint, error)
func (p Partition) Resolver() *Resolver

Region

type Region struct {
    // unexported fields
}

func (r Region) ID() string
func (r Region) Services() map[string]Service
func (r Region) Endpoint(service string, opts ResolveOptions) (aws.Endpoint, error)

Service

type Service struct {
    // unexported fields
}

func (s Service) ID() string
func (s Service) Regions() map[string]Region
func (s Service) Endpoints() map[string]Endpoint
func (s Service) Endpoint(region string, opts ResolveOptions) (aws.Endpoint, error)

Partition ID Constants

const (
    AwsPartitionID      = "aws"        // AWS Standard
    AwsCnPartitionID    = "aws-cn"     // AWS China
    AwsUsGovPartitionID = "aws-us-gov" // AWS GovCloud (US)
)

Region ID Constants

AWS Standard Regions

const (
    ApNortheast1RegionID = "ap-northeast-1" // Asia Pacific (Tokyo)
    ApNortheast2RegionID = "ap-northeast-2" // Asia Pacific (Seoul)
    ApSouth1RegionID     = "ap-south-1"     // Asia Pacific (Mumbai)
    ApSoutheast1RegionID = "ap-southeast-1" // Asia Pacific (Singapore)
    ApSoutheast2RegionID = "ap-southeast-2" // Asia Pacific (Sydney)
    CaCentral1RegionID   = "ca-central-1"   // Canada (Central)
    EuCentral1RegionID   = "eu-central-1"   // EU (Frankfurt)
    EuWest1RegionID      = "eu-west-1"      // EU (Ireland)
    EuWest2RegionID      = "eu-west-2"      // EU (London)
    EuWest3RegionID      = "eu-west-3"      // EU (Paris)
    SaEast1RegionID      = "sa-east-1"      // South America (Sao Paulo)
    UsEast1RegionID      = "us-east-1"      // US East (N. Virginia)
    UsEast2RegionID      = "us-east-2"      // US East (Ohio)
    UsWest1RegionID      = "us-west-1"      // US West (N. California)
    UsWest2RegionID      = "us-west-2"      // US West (Oregon)
)

AWS China Regions

const (
    CnNorth1RegionID     = "cn-north-1"     // China (Beijing)
    CnNorthwest1RegionID = "cn-northwest-1" // China (Ningxia)
)

AWS GovCloud Regions

const UsGovWest1RegionID = "us-gov-west-1" // GovCloud (US)

Service ID Constants

Use with custom endpoint resolvers to match specific services.

const (
    A4bServiceID                          = "a4b"
    AcmServiceID                          = "acm"
    AcmPcaServiceID                       = "acm-pca"
    ApigatewayServiceID                   = "apigateway"
    ApplicationAutoscalingServiceID       = "application-autoscaling"
    AthenaServiceID                       = "athena"
    AutoscalingServiceID                  = "autoscaling"
    BatchServiceID                        = "batch"
    BudgetsServiceID                      = "budgets"
    Cloud9ServiceID                       = "cloud9"
    CloudformationServiceID               = "cloudformation"
    CloudfrontServiceID                   = "cloudfront"
    CloudhsmServiceID                     = "cloudhsm"
    Cloudhsmv2ServiceID                   = "cloudhsmv2"
    CloudtrailServiceID                   = "cloudtrail"
    CodebuildServiceID                    = "codebuild"
    CodecommitServiceID                   = "codecommit"
    CodedeployServiceID                   = "codedeploy"
    CodepipelineServiceID                 = "codepipeline"
    CognitoIdentityServiceID              = "cognito-identity"
    CognitoIdpServiceID                   = "cognito-idp"
    ComprehendServiceID                   = "comprehend"
    ConfigServiceID                       = "config"
    DaxServiceID                          = "dax"
    DirectconnectServiceID                = "directconnect"
    DynamodbServiceID                     = "dynamodb"
    Ec2ServiceID                          = "ec2"
    Ec2metadataServiceID                  = "ec2metadata"
    EcrServiceID                          = "ecr"
    EcsServiceID                          = "ecs"
    ElasticacheServiceID                  = "elasticache"
    ElasticbeanstalkServiceID             = "elasticbeanstalk"
    ElasticfilesystemServiceID            = "elasticfilesystem"
    ElasticloadbalancingServiceID         = "elasticloadbalancing"
    ElasticmapreduceServiceID             = "elasticmapreduce"
    FirehoseServiceID                     = "firehose"
    GlacierServiceID                      = "glacier"
    GlueServiceID                         = "glue"
    GuarddutyServiceID                    = "guardduty"
    HealthServiceID                       = "health"
    IamServiceID                          = "iam"
    InspectorServiceID                    = "inspector"
    IotServiceID                          = "iot"
    KinesisServiceID                      = "kinesis"
    KmsServiceID                          = "kms"
    LambdaServiceID                       = "lambda"
    LogsServiceID                         = "logs"
    MonitoringServiceID                   = "monitoring"
    OrganizationsServiceID                = "organizations"
    PinpointServiceID                     = "pinpoint"
    PollyServiceID                        = "polly"
    RdsServiceID                          = "rds"
    RedshiftServiceID                     = "redshift"
    RekognitionServiceID                  = "rekognition"
    Route53ServiceID                      = "route53"
    S3ServiceID                           = "s3"
    SagemakerServiceID                    = "sagemaker"
    SecretManagerServiceID                = "secretsmanager"
    SnsServiceID                          = "sns"
    SqsServiceID                          = "sqs"
    SsmServiceID                          = "ssm"
    StsServiceID                          = "sts"
    // ... many more
)

Error Types

type UnknownServiceError struct {
    Partition string
    Service   string
    Known     []string  // list of known service IDs in the partition
    // unexported fields
}
func NewUnknownServiceError(p, s string, known []string) UnknownServiceError
func (e UnknownServiceError) Error() string
func (e UnknownServiceError) String() string

type UnknownEndpointError struct {
    Partition string
    Service   string
    Region    string
    Known     []string  // list of known regions for the service
    // unexported fields
}
func NewUnknownEndpointError(p, s, r string, known []string) UnknownEndpointError
func (e UnknownEndpointError) Error() string
func (e UnknownEndpointError) String() string

Custom Endpoints

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

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

// Override S3 endpoint only (e.g., for LocalStack)
defaultResolver := endpoints.NewDefaultResolver()
cfg.EndpointResolver = aws.EndpointResolverFunc(func(service, region string) (aws.Endpoint, error) {
    if service == endpoints.S3ServiceID {
        return aws.Endpoint{
            URL:           "http://localhost:4566",
            SigningRegion: region,
        }, nil
    }
    return defaultResolver.ResolveEndpoint(service, region)
})

svc := s3.New(cfg)

Static Endpoint Resolution

Use aws.ResolveWithEndpointURL or aws.ResolveWithEndpoint for simple static overrides:

// From package github.com/aws/aws-sdk-go-v2/aws
type ResolveWithEndpoint Endpoint
func ResolveWithEndpointURL(url string) ResolveWithEndpoint
func (v ResolveWithEndpoint) ResolveEndpoint(service, region string) (Endpoint, error)
cfg.EndpointResolver = aws.ResolveWithEndpointURL("https://my-endpoint.example.com")

Install with Tessl CLI

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

docs

index.md

tile.json