Go Wrapper for using localstack

go-localstack

Actions Status codecov Go Report Card PkgGoDev License

Go Wrapper for using localstack in go testing

Installation

Please make sure that you have Docker installed.

go get github.com/elgohr/go-localstack

Usage

With SDK V2

func ExampleLocalstackWithContextSdkV2() {
    ctx, cancel := context.WithTimeout(context.Background(), 20*time.Second)
    defer cancel()
    
    l, err := localstack.NewInstance()
    if err != nil {
        log.Fatalf("Could not connect to Docker %v", err)
    }
    if err := l.StartWithContext(ctx); err != nil {
        log.Fatalf("Could not start localstack %v", err)
    }
    
    cfg, err := config.LoadDefaultConfig(ctx,
        config.WithRegion("us-east-1"),
        config.WithEndpointResolverWithOptions(aws.EndpointResolverWithOptionsFunc(func(_, _ string, _ ...interface{}) (aws.Endpoint, error) {
            return aws.Endpoint{
			    PartitionID:       "aws", 
			    URL:               l.EndpointV2(localstack.SQS), 
			    SigningRegion:     "us-east-1", 
			    HostnameImmutable: true,
		    }, nil
        })),
        config.WithCredentialsProvider(credentials.NewStaticCredentialsProvider("dummy", "dummy", "dummy")),
    )
    if err != nil {
        log.Fatalf("Could not get config %v", err)
    }
    
    myTestWithV2(cfg)
}

With SDK V1

func TestWithLocalStack(t *testing.T) {
    ctx, cancel := context.WithTimeout(context.Background(), 20*time.Second)
    defer cancel()

    l, err := localstack.NewInstance()
    if err != nil {
        log.Fatalf("Could not connect to Docker %v", err)
    }
    if err := l.StartWithContext(ctx); err != nil {
        log.Fatalf("Could not start localstack %v", err)
    }

    myTestWith(&aws.Config{
        Credentials: credentials.NewStaticCredentials("not", "empty", ""),
        DisableSSL:  aws.Bool(true),
        Region:      aws.String(endpoints.UsWest1RegionID),
        Endpoint:    aws.String(l.Endpoint(localstack.SQS)),
    })
}
Owner
Lars Gohr
Father, Open Source guy, Triathlete. Software engineer @ Volkswagen. Likes working in agile environments.
Lars Gohr
Comments
  • Add `WithLabels` option; Make `GetContainerId` public

    Add `WithLabels` option; Make `GetContainerId` public

    Hi. With this PR I propose two small additions to the project:

    New WithLabels option.

    The new WithLabels option allows the users to specify labels, i.e., metadata of key-value pairs, that will be applied to the created Localstack container. Labels allow to mark the created Docker containers with useful information that can be used outside of go-localstack to manage the created containers.

    For example, in my case I want to mark the containers with expiry label that will declare when the container is considered expired. I have a running process that every 5 seconds checks the existing containers and removes the expired ones. This way, if my code that uses go-localstack panics, I can be sure that another process will take care of the created containers and they won't stay running forever.

    GetContainerId is public now.

    The method GetContainerId is now public and users of go-localstack can use it to retrieve the created container's ID. This maybe useful in scenarios where the users want to manage the created container directly, without go-localstack.

    If you disagree with making GetContainerId public, I think we can revert it back to private. I personally needed GetContainerId for the WithLabels test I wrote.

  • add localstack version option, adapt behaviour based on version

    add localstack version option, adapt behaviour based on version

    Localstack had a breaking change made in v0.11.5 where all services are exposed through the same port, see https://github.com/localstack/localstack/blob/master/CHANGELOG.md.

    If the caller doesn't specify a version (preserves behaviour to use "latest") or specifies a version that's v0.11.5 or higher and the port for all services will resolve to 4566/tcp. Otherwise the old port mappings will be used.

    The configuration is made using a variadic option function argument to NewInstance() so that it doesn't break API compatability.

    localstack.NewInstance(localstack.WithVersion("v0.11.5"))
    

    New dependency for version parsing and constraints: github.com/Masterminds/semver/v3

    As I added a new dependency I also ran go mod tidy which resulted in a lot of go.sum entries for old (unused) versions of the aws-sdk being removed.

  • Add configurable logger

    Add configurable logger

    This PR adds a configurable logger. It allows the users of the package to configure the logger that the package uses. Using new method called SetLogger, the users can pass down their own logrus logger.

    In my case, I want to disable logging coming from go-localstack, but right now it's not trivial to do. With this PR, that can easily be done with:

    myLogger := &logrus.Logger{Out: io.Discard}
    localstack.SetLogger(myLogger)
    

    Apart from disabling the logger, there may be other use cases, such as customizing the log formatter or setting a specific log level.

    I also added some tests, but I'm not sure if they're enough.

  • ⬆️ Bump github.com/aws/aws-sdk-go from 1.42.7 to 1.42.8

    ⬆️ Bump github.com/aws/aws-sdk-go from 1.42.7 to 1.42.8

    Bumps github.com/aws/aws-sdk-go from 1.42.7 to 1.42.8.

    Release notes

    Sourced from github.com/aws/aws-sdk-go's releases.

    Release v1.42.8 (2021-11-18)

    Service Client Updates

    • service/appconfig: Updates service API, documentation, and examples
    • service/auditmanager: Updates service API, documentation, and paginators
    • service/chime: Updates service API and documentation
      • Adds new Transcribe API parameters to StartMeetingTranscription, including support for content identification and redaction (PII & PHI), partial results stabilization, and custom language models.
    • service/chime-sdk-meetings: Updates service API and documentation
    • service/databrew: Updates service API, documentation, and paginators
    • service/forecast: Updates service API and documentation
    • service/ivs: Updates service API, documentation, and paginators
    • service/kafka: Updates service API and documentation
    • service/lambda: Updates service API and documentation
      • Added support for CLIENT_CERTIFICATE_TLS_AUTH and SERVER_ROOT_CA_CERTIFICATE as SourceAccessType for MSK and Kafka event source mappings.
    • service/models.lex.v2: Updates service API and documentation
    • service/monitoring: Updates service API and documentation
      • CloudWatch Anomaly Detection now supports anomaly detectors that use metric math as input.
    • service/redshift-data: Updates service API and documentation
    Changelog

    Sourced from github.com/aws/aws-sdk-go's changelog.

    Release v1.42.8 (2021-11-18)

    Service Client Updates

    • service/appconfig: Updates service API, documentation, and examples
    • service/auditmanager: Updates service API, documentation, and paginators
    • service/chime: Updates service API and documentation
      • Adds new Transcribe API parameters to StartMeetingTranscription, including support for content identification and redaction (PII & PHI), partial results stabilization, and custom language models.
    • service/chime-sdk-meetings: Updates service API and documentation
    • service/databrew: Updates service API, documentation, and paginators
    • service/forecast: Updates service API and documentation
    • service/ivs: Updates service API, documentation, and paginators
    • service/kafka: Updates service API and documentation
    • service/lambda: Updates service API and documentation
      • Added support for CLIENT_CERTIFICATE_TLS_AUTH and SERVER_ROOT_CA_CERTIFICATE as SourceAccessType for MSK and Kafka event source mappings.
    • service/models.lex.v2: Updates service API and documentation
    • service/monitoring: Updates service API and documentation
      • CloudWatch Anomaly Detection now supports anomaly detectors that use metric math as input.
    • service/redshift-data: Updates service API and documentation
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.

    Dependabot will merge this PR once CI passes on it, as requested by @elgohr.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/aws/aws-sdk-go from 1.40.59 to 1.41.0

    Bump github.com/aws/aws-sdk-go from 1.40.59 to 1.41.0

    Bumps github.com/aws/aws-sdk-go from 1.40.59 to 1.41.0.

    Release notes

    Sourced from github.com/aws/aws-sdk-go's releases.

    Release v1.41.0 (2021-10-11)

    Service Client Updates

    • service/ec2: Updates service documentation
      • Documentation update for Amazon EC2.
    • service/elasticloadbalancingv2: Updates service API and documentation
    • service/frauddetector: Updates service API, documentation, and paginators
    • service/medialive: Updates service API and documentation
      • This release adds support for Transport Stream files as an input type to MediaLive encoders.

    SDK Features

    • Update SDK's serialization of REST-JSON API input and Content-Type
      • Updates the SDK's serialization of REST-JSON based API input parameters into HTTP request message payload, and Content-Type are set correctly. API operations with input structure members that are modeled to be serialized to the request payload will always have at least an empty JSON object serialized. Even if all members targeting the payload are nil. Also fixes REST-JSON serialization so that Content-Type is not sent if the input parameter has no members target the request payload.
    Changelog

    Sourced from github.com/aws/aws-sdk-go's changelog.

    Release v1.41.0 (2021-10-11)

    Service Client Updates

    • service/ec2: Updates service documentation
      • Documentation update for Amazon EC2.
    • service/elasticloadbalancingv2: Updates service API and documentation
    • service/frauddetector: Updates service API, documentation, and paginators
    • service/medialive: Updates service API and documentation
      • This release adds support for Transport Stream files as an input type to MediaLive encoders.

    SDK Features

    • Update SDK's serialization of REST-JSON API input and Content-Type
      • Updates the SDK's serialization of REST-JSON based API input parameters into HTTP request message payload, and Content-Type are set correctly. API operations with input structure members that are modeled to be serialized to the request payload will always have at least an empty JSON object serialized. Even if all members targeting the payload are nil. Also fixes REST-JSON serialization so that Content-Type is not sent if the input parameter has no members target the request payload.
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.

    Dependabot will merge this PR once CI passes on it, as requested by @elgohr.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/aws/aws-sdk-go from 1.40.51 to 1.40.53

    Bump github.com/aws/aws-sdk-go from 1.40.51 to 1.40.53

    Bumps github.com/aws/aws-sdk-go from 1.40.51 to 1.40.53.

    Release notes

    Sourced from github.com/aws/aws-sdk-go's releases.

    Release v1.40.53 (2021-09-30)

    Service Client Updates

    • service/account: Updates service API, documentation, paginators, and examples
    • service/cloudcontrol: Adds new service
    • service/dataexchange: Updates service API, documentation, and paginators
    • service/macie2: Updates service API and documentation
    • service/network-firewall: Updates service API and documentation
    • service/workmail: Updates service API, documentation, and paginators
      • This release adds support for mobile device access overrides management in Amazon WorkMail.
    • service/workspaces: Updates service API and documentation
      • Added CreateUpdatedWorkspaceImage API to update WorkSpace images with latest software and drivers. Updated DescribeWorkspaceImages API to display if there are updates available for WorkSpace images.

    Release v1.40.52 (2021-09-29)

    Service Client Updates

    • service/amp: Updates service API, documentation, waiters, and paginators
    • service/lambda: Updates service API and documentation
      • Adds support for Lambda functions powered by AWS Graviton2 processors. Customers can now select the CPU architecture for their functions.
    • service/sesv2: Updates service API and documentation
    Changelog

    Sourced from github.com/aws/aws-sdk-go's changelog.

    Release v1.40.53 (2021-09-30)

    Service Client Updates

    • service/account: Updates service API, documentation, paginators, and examples
    • service/cloudcontrol: Adds new service
    • service/dataexchange: Updates service API, documentation, and paginators
    • service/macie2: Updates service API and documentation
    • service/network-firewall: Updates service API and documentation
    • service/workmail: Updates service API, documentation, and paginators
      • This release adds support for mobile device access overrides management in Amazon WorkMail.
    • service/workspaces: Updates service API and documentation
      • Added CreateUpdatedWorkspaceImage API to update WorkSpace images with latest software and drivers. Updated DescribeWorkspaceImages API to display if there are updates available for WorkSpace images.

    Release v1.40.52 (2021-09-29)

    Service Client Updates

    • service/amp: Updates service API, documentation, waiters, and paginators
    • service/lambda: Updates service API and documentation
      • Adds support for Lambda functions powered by AWS Graviton2 processors. Customers can now select the CPU architecture for their functions.
    • service/sesv2: Updates service API and documentation
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.

    Dependabot will merge this PR once CI passes on it, as requested by @elgohr.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/aws/aws-sdk-go from 1.40.51 to 1.40.52

    Bump github.com/aws/aws-sdk-go from 1.40.51 to 1.40.52

    Bumps github.com/aws/aws-sdk-go from 1.40.51 to 1.40.52.

    Release notes

    Sourced from github.com/aws/aws-sdk-go's releases.

    Release v1.40.52 (2021-09-29)

    Service Client Updates

    • service/amp: Updates service API, documentation, waiters, and paginators
    • service/lambda: Updates service API and documentation
      • Adds support for Lambda functions powered by AWS Graviton2 processors. Customers can now select the CPU architecture for their functions.
    • service/sesv2: Updates service API and documentation
    Changelog

    Sourced from github.com/aws/aws-sdk-go's changelog.

    Release v1.40.52 (2021-09-29)

    Service Client Updates

    • service/amp: Updates service API, documentation, waiters, and paginators
    • service/lambda: Updates service API and documentation
      • Adds support for Lambda functions powered by AWS Graviton2 processors. Customers can now select the CPU architecture for their functions.
    • service/sesv2: Updates service API and documentation
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.

    Dependabot will merge this PR once CI passes on it, as requested by @elgohr.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • feat: Support init scripts

    feat: Support init scripts

    • support volume mounts, specifically to facilitate using init scripts
      • add supporting option
      • add supporting tests

    Signed-off-by: Owen Rumney [email protected]

  • AWS was not able to validate the provided access credentials

    AWS was not able to validate the provided access credentials

    When trying to use EC2 client, I get the following error:

    === RUN   TestEc2
    time="2022-06-10T14:18:43-07:00" level=info msg="starting localstack"
    time="2022-06-10T14:18:44-07:00" level=info msg="waiting for localstack to start..."
    time="2022-06-10T14:19:01-07:00" level=info msg="localstack: finished waiting"
        all_test.go:305: operation error EC2: RunInstances, https response error StatusCode: 401, RequestID: 080f9f11-67d7-4061-86d3-e581551458c1, api error AuthFailure: AWS was not able to validate the provided access credentials
    --- FAIL: TestEc2 (18.47s)
    FAIL
    FAIL    command-line-arguments  19.197s
    FAIL
    
    

    Here is the sample code:

    func TestEc2(t *testing.T) {
    	os.Setenv("AWS_ACCESS_KEY_ID", "dummy")
    	os.Setenv("AWS_SECRET_ACCESS_KEY", "dummy")
    
    	ls, err := localstack.NewInstance()
    	if err != nil {
    		log.Fatalf("could not connect to docker: %v", err)
    	}
    
    	ctx, cancel := context.WithTimeout(context.Background(), 3*time.Minute)
    	defer cancel()
    
    	if err := ls.StartWithContext(ctx); err != nil {
    		log.Fatalf("could not start Localstack: %v", err)
    	}
    
    	ec2Client = ec2.NewFromConfig(awsConfig(ctx, ls, localstack.EC2))
           
      	createInstance(t, ec2Client)
    }
    
    func awsConfig(ctx context.Context, l *localstack.Instance, s localstack.Service) aws.Config {
    	cfg, err := config.LoadDefaultConfig(ctx,
    		config.WithRegion("us-east-1"),
    		config.WithEndpointResolverWithOptions(aws.EndpointResolverWithOptionsFunc(func(_, _ string, options ...interface{}) (aws.Endpoint, error) {
    			return aws.Endpoint{
    				PartitionID:       "aws",
    				URL:               l.EndpointV2(s),
    				SigningRegion:     endpoints.UsEast1RegionID,
    				HostnameImmutable: true,
    			}, nil
    		})),
    		config.WithCredentialsProvider(credentials.NewStaticCredentialsProvider("dummy", "dummy", "dummy")),
    	)
    
    	if err != nil {
    		log.Fatalf("could not load config: %v", err)
    	}
    
    	return cfg
    }
    
    func createInstance(t *testing.T, c *ec2.Client) types.Instance {
    	t.Helper()
    
    	result, err := c.RunInstances(
    		context.TODO(),
    		&ec2.RunInstancesInput{
    			ImageId:      aws.String("ami-e7527ed7"),
    			InstanceType: types.InstanceTypeT2Micro,
    			MinCount:     aws.Int32(1),
    			MaxCount:     aws.Int32(1),
    		})
    
    	if err != nil {
    		t.Fatal(err)
    	}
    
    	if result == nil {
    		t.Fatal("empty RunInstance result")
    	}
    
    	if len(result.Instances) != 1 {
    		t.Fatalf("exptected 1 instance, got %d", len(result.Instances))
    	}
    
    	return result.Instances[0]
    }
    
  • ⬆️ Bump github.com/aws/aws-sdk-go from 1.42.12 to 1.42.13

    ⬆️ Bump github.com/aws/aws-sdk-go from 1.42.12 to 1.42.13

    Bumps github.com/aws/aws-sdk-go from 1.42.12 to 1.42.13.

    Release notes

    Sourced from github.com/aws/aws-sdk-go's releases.

    Release v1.42.13 (2021-11-26)

    Service Client Updates

    • service/autoscaling: Updates service documentation
      • Documentation updates for Amazon EC2 Auto Scaling.
    • service/ec2: Updates service documentation
      • Documentation updates for EC2.
    • service/iotdeviceadvisor: Updates service documentation
    • service/mgn: Updates service API, documentation, and paginators
    • service/outposts: Updates service API, documentation, and paginators
    • service/pinpoint: Updates service API and documentation
      • Added a One-Time Password (OTP) management feature. You can use the Amazon Pinpoint API to generate OTP codes and send them to your users as SMS messages. Your apps can then call the API to verify the OTP codes that your users input
    Changelog

    Sourced from github.com/aws/aws-sdk-go's changelog.

    Release v1.42.13 (2021-11-26)

    Service Client Updates

    • service/autoscaling: Updates service documentation
      • Documentation updates for Amazon EC2 Auto Scaling.
    • service/ec2: Updates service documentation
      • Documentation updates for EC2.
    • service/iotdeviceadvisor: Updates service documentation
    • service/mgn: Updates service API, documentation, and paginators
    • service/outposts: Updates service API, documentation, and paginators
    • service/pinpoint: Updates service API and documentation
      • Added a One-Time Password (OTP) management feature. You can use the Amazon Pinpoint API to generate OTP codes and send them to your users as SMS messages. Your apps can then call the API to verify the OTP codes that your users input
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.

    Dependabot will merge this PR once CI passes on it, as requested by @elgohr.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • ⬆️ Bump github.com/aws/aws-sdk-go from 1.42.10 to 1.42.11

    ⬆️ Bump github.com/aws/aws-sdk-go from 1.42.10 to 1.42.11

    Bumps github.com/aws/aws-sdk-go from 1.42.10 to 1.42.11.

    Release notes

    Sourced from github.com/aws/aws-sdk-go's releases.

    Release v1.42.11 (2021-11-23)

    Service Client Updates

    • service/backup: Updates service API and documentation
    • service/dynamodb: Updates service API, documentation, waiters, paginators, and examples
      • DynamoDB PartiQL now supports ReturnConsumedCapacity, which returns capacity units consumed by PartiQL APIs if the request specified returnConsumedCapacity parameter. PartiQL APIs include ExecuteStatement, BatchExecuteStatement, and ExecuteTransaction.
    • service/ec2: Updates service API and documentation
      • This release adds a new parameter ipv6Native to the allow creation of IPv6-only subnets using the CreateSubnet operation, and the operation ModifySubnetAttribute includes new parameters to modify subnet attributes to use resource-based naming and enable DNS resolutions for Private DNS name.
    • service/ecs: Updates service documentation
      • Documentation update for ARM support on Amazon ECS.
    • service/elasticache: Updates service API and documentation
      • Adding support for r6gd instances for Redis with data tiering. In a cluster with data tiering enabled, when available memory capacity is exhausted, the least recently used data is automatically tiered to solid state drives for cost-effective capacity scaling with minimal performance impact.
    • service/elasticloadbalancingv2: Updates service documentation
    • service/finspace-data: Updates service documentation
    • service/iot: Updates service API and documentation
      • This release introduces a new feature, Managed Job Template, for AWS IoT Jobs Service. Customers can now use service provided managed job templates to easily create jobs for supported standard job actions.
    • service/iotdeviceadvisor: Updates service API and documentation
    • service/iotwireless: Updates service API and documentation
    • service/lambda: Updates service API and documentation
      • Release Lambda event source filtering for SQS, Kinesis Streams, and DynamoDB Streams.
    • service/macie2: Updates service documentation
    • service/opensearch: Updates service API and documentation
    • service/rds: Updates service API, documentation, waiters, paginators, and examples
      • Adds support for Multi-AZ DB clusters for RDS for MySQL and RDS for PostgreSQL.
    • service/redshift: Updates service API, documentation, and paginators
      • This release adds support for reserved node exchange with restore/resize
    • service/s3: Updates service API, documentation, and examples
      • Introduce two new Filters to S3 Lifecycle configurations - ObjectSizeGreaterThan and ObjectSizeLessThan. Introduce a new way to trigger actions on noncurrent versions by providing the number of newer noncurrent versions along with noncurrent days.
    • service/sqs: Updates service API and documentation
      • Amazon SQS adds a new queue attribute, SqsManagedSseEnabled, which enables server-side queue encryption using SQS owned encryption keys.
    • service/sts: Updates service documentation
      • Documentation updates for AWS Security Token Service.
    • service/workspaces: Updates service documentation
      • Documentation updates for Amazon WorkSpaces
    Changelog

    Sourced from github.com/aws/aws-sdk-go's changelog.

    Release v1.42.11 (2021-11-23)

    Service Client Updates

    • service/backup: Updates service API and documentation
    • service/dynamodb: Updates service API, documentation, waiters, paginators, and examples
      • DynamoDB PartiQL now supports ReturnConsumedCapacity, which returns capacity units consumed by PartiQL APIs if the request specified returnConsumedCapacity parameter. PartiQL APIs include ExecuteStatement, BatchExecuteStatement, and ExecuteTransaction.
    • service/ec2: Updates service API and documentation
      • This release adds a new parameter ipv6Native to the allow creation of IPv6-only subnets using the CreateSubnet operation, and the operation ModifySubnetAttribute includes new parameters to modify subnet attributes to use resource-based naming and enable DNS resolutions for Private DNS name.
    • service/ecs: Updates service documentation
      • Documentation update for ARM support on Amazon ECS.
    • service/elasticache: Updates service API and documentation
      • Adding support for r6gd instances for Redis with data tiering. In a cluster with data tiering enabled, when available memory capacity is exhausted, the least recently used data is automatically tiered to solid state drives for cost-effective capacity scaling with minimal performance impact.
    • service/elasticloadbalancingv2: Updates service documentation
    • service/finspace-data: Updates service documentation
    • service/iot: Updates service API and documentation
      • This release introduces a new feature, Managed Job Template, for AWS IoT Jobs Service. Customers can now use service provided managed job templates to easily create jobs for supported standard job actions.
    • service/iotdeviceadvisor: Updates service API and documentation
    • service/iotwireless: Updates service API and documentation
    • service/lambda: Updates service API and documentation
      • Release Lambda event source filtering for SQS, Kinesis Streams, and DynamoDB Streams.
    • service/macie2: Updates service documentation
    • service/opensearch: Updates service API and documentation
    • service/rds: Updates service API, documentation, waiters, paginators, and examples
      • Adds support for Multi-AZ DB clusters for RDS for MySQL and RDS for PostgreSQL.
    • service/redshift: Updates service API, documentation, and paginators
      • This release adds support for reserved node exchange with restore/resize
    • service/s3: Updates service API, documentation, and examples
      • Introduce two new Filters to S3 Lifecycle configurations - ObjectSizeGreaterThan and ObjectSizeLessThan. Introduce a new way to trigger actions on noncurrent versions by providing the number of newer noncurrent versions along with noncurrent days.
    • service/sqs: Updates service API and documentation
      • Amazon SQS adds a new queue attribute, SqsManagedSseEnabled, which enables server-side queue encryption using SQS owned encryption keys.
    • service/sts: Updates service documentation
      • Documentation updates for AWS Security Token Service.
    • service/workspaces: Updates service documentation
      • Documentation updates for Amazon WorkSpaces
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.

    Dependabot will merge this PR once CI passes on it, as requested by @elgohr.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
⚡️ SharePoint authentication, HTTP client & fluent API wrapper for Go (Golang)
⚡️ SharePoint authentication, HTTP client & fluent API wrapper for Go (Golang)

Gosip - SharePoint authentication, HTTP client & fluent API wrapper for Go (Golang) Main features Unattended authentication using different strategies

Jan 2, 2023
Trello API wrapper for Go
Trello API wrapper for Go

Go Trello API A #golang package to access the Trello API. Nearly 100% of the read-only surface area of the API is covered, as is creation and modifica

Jan 4, 2023
Nov 28, 2022
The fantastic Reddit API wrapper for gophers
The fantastic Reddit API wrapper for gophers

mira is a Reddit Api Wrapper written in beautiful Go. It is super simple to use the bot as we also provide you with simple but fully extensive interfaces. Currently, mira is a project that is considered more or less complete.

Dec 18, 2022
A wrapper for DogeHouse made in Go 💨
 A wrapper for DogeHouse made in Go 💨

A wrapper for DogeHouse made in Go ?? Website · Tracker · Discord · Documentation Need help or support? Join our Discord.

Dec 5, 2021
A small, fast, reliable pastemyst API wrapper written in Golang

A small, fast, reliable pastemyst API wrapper written in Golang. Official pastemyst API docs found here.

Dec 12, 2022
SpamProtection-Go is an Official golang wrapper for Intellivoid SpamProtection API
SpamProtection-Go is an Official golang wrapper for Intellivoid SpamProtection API

SpamProtection-Go is an Official golang wrapper for Intellivoid SpamProtection API, which is fast, secure and requires no additional packages to be installed.

Feb 26, 2022
A Telegraph API wrapper in Go

Telegra.ph is a minimalist publishing tool that allows you to create richly formatted posts and push them to the Web in just a click. Telegraph posts also get beautiful Instant View pages on Telegram. So, this Go wrapper enables you to do all that easily.

Oct 29, 2022
Unofficial Anilist.co GraphQL API wrapper for GoLang.

anilistWrapGo Unofficial Anilist.co GraphQL API wrapper for GoLang. Examples All examples are present as tests in test directory. Below are a few snip

Dec 20, 2022
Pterodactyl API wrapper written in Golang

WARNING That repository isn't available for production environment. Many endpoints aren't yet implemented. Be careful if you are using that module. pt

Oct 4, 2022
💻 Quotable.io API Wrapper + CLI App
💻 Quotable.io API Wrapper + CLI App

?? Quotable.io API Wrapper + CLI App

Sep 27, 2022
A Wrapper of the Piston API in Golang

Go-Piston! This is a Go wrapper for working with the Piston API. It supports both the endpoints, namely runtimes and execute, mentioned here. ?? Insta

Aug 28, 2022
Golang wrapper for the FiveM natives API

Golang wrapper for the FiveM natives API

Dec 2, 2022
The NVD API is an unofficial Go wrapper around the NVD API.

NVD API The NVD API is an unofficial Go wrapper around the NVD API. Supports: CVE CPE How to use The following shows how to basically use the wrapper

Jan 7, 2023
spamwatch-go is official Go wrapper for SpamWatch API
spamwatch-go is official Go wrapper for SpamWatch API

SpamWatch API Go Wrapper spamwatch-go is official Go wrapper for SpamWatch API, which is fast, secure and requires no additional packages to be instal

Feb 17, 2022
Unofficial but convenient Go wrapper around the NVD API

NVD API The NVD API is an unofficial Go wrapper around the NVD API. Supports: CVE CPE How to use The following shows how to basically use the wrapper

Nov 1, 2021
A Wrapper Client for Google Spreadsheet API (Sheets API)

Senmai A Wrapper Client for Google Spreadsheet API (Sheets API) PREPARATION Service Account and Key File Create a service account on Google Cloud Plat

Nov 5, 2021
A Go wrapper around the Notion API

go-notion A Go wrapper around the Notion API. | ⚠ This package is new and under active development. How to Use Install the package go get github.com/b

Nov 19, 2021
A complete and simple wrapper for the Hypixel API

Gopixel A simple and complete1 wrapper for the hypixel API Key features Full API coverage1 Autocomplete for fields Near complete structs MIT license I

Apr 26, 2022