diff --git a/CHANGELOG/CHANGELOG-1.5.md b/CHANGELOG/CHANGELOG-1.5.md index fe5c9fafa..a34b03daa 100644 --- a/CHANGELOG/CHANGELOG-1.5.md +++ b/CHANGELOG/CHANGELOG-1.5.md @@ -3,6 +3,36 @@
+## [v1.5.4](https://github.com/aws/aws-k8s-tester/releases/tag/v1.5.4) (2020-11-11) + +See [code changes](https://github.com/aws/aws-k8s-tester/compare/v1.5.3...v1.5.4). + +### `eks` + +- Fix [configuration file overwrite permission errors](https://github.com/aws/aws-k8s-tester/pull/185). +- Fix [VPC creation for us-west-1 region](https://github.com/aws/aws-k8s-tester/pull/183). +- Increase [`clusterloader2` test timeouts](https://github.com/aws/aws-k8s-tester/pull/181). + +### `eksconfig` + +- Fix [EC2 service principals checks](https://github.com/aws/aws-k8s-tester/pull/184). + +### `pkg/aws` + +- Fix [S3 bucket creation for us-east-1 region](https://github.com/aws/aws-k8s-tester/pull/182). + +### Dependency + +- Upgrade [`github.com/aws/aws-sdk-go`](https://github.com/aws/aws-sdk-go/releases) from [`v1.35.10`](https://github.com/aws/aws-sdk-go/releases/tag/v1.35.10) to [`v1.35.25`](https://github.com/aws/aws-sdk-go/releases/tag/v1.35.25). + +### Go + +- Compile with [*Go 1.15.4*](https://golang.org/doc/devel/release.html#go1.15). + + +
+ + ## [v1.5.3](https://github.com/aws/aws-k8s-tester/releases/tag/v1.5.3) (2020-10-20) See [code changes](https://github.com/aws/aws-k8s-tester/compare/v1.5.2...v1.5.3). diff --git a/eks/app-mesh/app-mesh.go b/eks/app-mesh/app-mesh.go index 6e7ca882e..ca611be83 100644 --- a/eks/app-mesh/app-mesh.go +++ b/eks/app-mesh/app-mesh.go @@ -232,7 +232,8 @@ func (ts *tester) createPolicy() error { return errors.New("roles not found from node group or managed node group") } - if err := ioutil.WriteFile(ts.cfg.EKSConfig.AddOnAppMesh.PolicyCFNStackYAMLPath, []byte(templatePolicy), 0400); err != nil { + // grant write permission in case of overwrites + if err := ioutil.WriteFile(ts.cfg.EKSConfig.AddOnAppMesh.PolicyCFNStackYAMLPath, []byte(templatePolicy), 0600); err != nil { return err } if err := aws_s3.Upload( diff --git a/eks/cluster/cluster.go b/eks/cluster/cluster.go index 27f71ef37..c5a521fc4 100644 --- a/eks/cluster/cluster.go +++ b/eks/cluster/cluster.go @@ -391,7 +391,8 @@ func (ts *tester) createEKS() (err error) { return err } - if err := ioutil.WriteFile(ts.cfg.EKSConfig.Status.ClusterCFNStackYAMLPath, buf.Bytes(), 0400); err != nil { + // grant write permission in case of overwrites + if err := ioutil.WriteFile(ts.cfg.EKSConfig.Status.ClusterCFNStackYAMLPath, buf.Bytes(), 0600); err != nil { return err } if err := aws_s3.Upload( diff --git a/eks/cluster/role.go b/eks/cluster/role.go index 0cca2b4c3..316320df5 100644 --- a/eks/cluster/role.go +++ b/eks/cluster/role.go @@ -237,7 +237,8 @@ func (ts *tester) createClusterRole() error { return errors.New("cannot create a cluster role with an empty Parameters.RoleName") } - if err := ioutil.WriteFile(ts.cfg.EKSConfig.Parameters.RoleCFNStackYAMLPath, []byte(TemplateClusterRole), 0400); err != nil { + // grant write permission in case of overwrites + if err := ioutil.WriteFile(ts.cfg.EKSConfig.Parameters.RoleCFNStackYAMLPath, []byte(TemplateClusterRole), 0600); err != nil { return err } if err := aws_s3.Upload( diff --git a/eks/cluster/vpc.go b/eks/cluster/vpc.go index b1a27c565..1e171d503 100644 --- a/eks/cluster/vpc.go +++ b/eks/cluster/vpc.go @@ -757,7 +757,8 @@ func (ts *tester) createVPC() error { vpcName := ts.cfg.EKSConfig.Name + "-vpc" - if err := ioutil.WriteFile(ts.cfg.EKSConfig.Parameters.VPCCFNStackYAMLPath, []byte(TemplateVPCPublicPrivate), 0400); err != nil { + // grant write permission in case of overwrites + if err := ioutil.WriteFile(ts.cfg.EKSConfig.Parameters.VPCCFNStackYAMLPath, []byte(TemplateVPCPublicPrivate), 0600); err != nil { return err } if err := aws_s3.Upload( diff --git a/eks/fargate/fargate.go b/eks/fargate/fargate.go index e15b1a234..657e7b2ec 100644 --- a/eks/fargate/fargate.go +++ b/eks/fargate/fargate.go @@ -260,7 +260,8 @@ func (ts *tester) createRole() error { return errors.New("cannot create a cluster role with an empty AddOnFargate.RoleName") } - if err := ioutil.WriteFile(ts.cfg.EKSConfig.AddOnFargate.RoleCFNStackYAMLPath, []byte(TemplateRole), 0400); err != nil { + // grant write permission in case of overwrites + if err := ioutil.WriteFile(ts.cfg.EKSConfig.AddOnFargate.RoleCFNStackYAMLPath, []byte(TemplateRole), 0600); err != nil { return err } if err := aws_s3.Upload( diff --git a/eks/irsa-fargate/irsa-fargate.go b/eks/irsa-fargate/irsa-fargate.go index 878303d18..2bae8322d 100644 --- a/eks/irsa-fargate/irsa-fargate.go +++ b/eks/irsa-fargate/irsa-fargate.go @@ -404,7 +404,8 @@ func (ts *tester) createRole() error { return err } - if err := ioutil.WriteFile(ts.cfg.EKSConfig.AddOnIRSAFargate.RoleCFNStackYAMLPath, buf.Bytes(), 0400); err != nil { + // grant write permission in case of overwrites + if err := ioutil.WriteFile(ts.cfg.EKSConfig.AddOnIRSAFargate.RoleCFNStackYAMLPath, buf.Bytes(), 0600); err != nil { return err } if err := aws_s3.Upload( diff --git a/eks/irsa/irsa.go b/eks/irsa/irsa.go index c91aa3e7a..d891e9a54 100644 --- a/eks/irsa/irsa.go +++ b/eks/irsa/irsa.go @@ -381,7 +381,8 @@ func (ts *tester) createRole() error { return err } - if err := ioutil.WriteFile(ts.cfg.EKSConfig.AddOnIRSA.RoleCFNStackYAMLPath, buf.Bytes(), 0400); err != nil { + // grant write permission in case of overwrites + if err := ioutil.WriteFile(ts.cfg.EKSConfig.AddOnIRSA.RoleCFNStackYAMLPath, buf.Bytes(), 0600); err != nil { return err } if err := aws_s3.Upload( diff --git a/eks/key-pair.go b/eks/key-pair.go index 481418b73..088c98f1b 100644 --- a/eks/key-pair.go +++ b/eks/key-pair.go @@ -67,7 +67,7 @@ func (ts *Tester) createKeyPair() (err error) { if err = ioutil.WriteFile( ts.cfg.RemoteAccessPrivateKeyPath, []byte(*output.KeyMaterial), - 0400, + 0600, // grant write permission in case of overwrites ); err != nil { return err } diff --git a/eks/mng/nodes.go b/eks/mng/nodes.go index 53965c4ca..6b098fc37 100644 --- a/eks/mng/nodes.go +++ b/eks/mng/nodes.go @@ -319,7 +319,8 @@ func (ts *tester) createASGs() (err error) { } stackInput.TemplateBody = aws.String(buf.String()) - if err = ioutil.WriteFile(cur.MNGCFNStackYAMLPath, buf.Bytes(), 0400); err != nil { + // grant write permission in case of overwrites + if err = ioutil.WriteFile(cur.MNGCFNStackYAMLPath, buf.Bytes(), 0600); err != nil { return err } if err = aws_s3.Upload( diff --git a/eks/mng/role.go b/eks/mng/role.go index a0cef630e..ba1a6ea8d 100644 --- a/eks/mng/role.go +++ b/eks/mng/role.go @@ -286,7 +286,8 @@ func (ts *tester) createRole() error { if err := tpl.Execute(buf, tr); err != nil { return err } - if err := ioutil.WriteFile(ts.cfg.EKSConfig.AddOnManagedNodeGroups.RoleCFNStackYAMLPath, buf.Bytes(), 0400); err != nil { + // grant write permission in case of overwrites + if err := ioutil.WriteFile(ts.cfg.EKSConfig.AddOnManagedNodeGroups.RoleCFNStackYAMLPath, buf.Bytes(), 0600); err != nil { return err } if err := aws_s3.Upload( diff --git a/eks/mng/security-groups.go b/eks/mng/security-groups.go index cadf1c088..c56afc3ef 100644 --- a/eks/mng/security-groups.go +++ b/eks/mng/security-groups.go @@ -223,7 +223,8 @@ func (ts *tester) createSG(name string) error { return err } - if err := ioutil.WriteFile(cur.RemoteAccessSecurityCFNStackYAMLPath, buf.Bytes(), 0400); err != nil { + // grant write permission in case of overwrites + if err := ioutil.WriteFile(cur.RemoteAccessSecurityCFNStackYAMLPath, buf.Bytes(), 0600); err != nil { return err } if err := aws_s3.Upload( diff --git a/eks/ng/nodes.go b/eks/ng/nodes.go index cc5d0db73..44550caf0 100644 --- a/eks/ng/nodes.go +++ b/eks/ng/nodes.go @@ -466,7 +466,8 @@ func (ts *tester) createASGs() error { return err } - if err := ioutil.WriteFile(cur.ASGCFNStackYAMLPath, buf.Bytes(), 0400); err != nil { + // grant write permission in case of overwrites + if err := ioutil.WriteFile(cur.ASGCFNStackYAMLPath, buf.Bytes(), 0600); err != nil { return err } ts.cfg.Logger.Info("creating a new NG using CFN", diff --git a/eks/ng/role.go b/eks/ng/role.go index d94f12515..556ffd659 100644 --- a/eks/ng/role.go +++ b/eks/ng/role.go @@ -304,7 +304,8 @@ func (ts *tester) createRole() error { if err := tpl.Execute(buf, tr); err != nil { return err } - if err := ioutil.WriteFile(ts.cfg.EKSConfig.AddOnNodeGroups.RoleCFNStackYAMLPath, buf.Bytes(), 0400); err != nil { + // grant write permission in case of overwrites + if err := ioutil.WriteFile(ts.cfg.EKSConfig.AddOnNodeGroups.RoleCFNStackYAMLPath, buf.Bytes(), 0600); err != nil { return err } if err := aws_s3.Upload( diff --git a/eks/ng/security-groups.go b/eks/ng/security-groups.go index 4f1601def..a031dc6b4 100644 --- a/eks/ng/security-groups.go +++ b/eks/ng/security-groups.go @@ -193,7 +193,8 @@ func (ts *tester) createSG() error { return err } - if err := ioutil.WriteFile(ts.cfg.EKSConfig.AddOnNodeGroups.NodeGroupSecurityGroupCFNStackYAMLPath, buf.Bytes(), 0400); err != nil { + // grant write permission in case of overwrites + if err := ioutil.WriteFile(ts.cfg.EKSConfig.AddOnNodeGroups.NodeGroupSecurityGroupCFNStackYAMLPath, buf.Bytes(), 0600); err != nil { return err } if err := aws_s3.Upload( diff --git a/eks/ng/ssm.go b/eks/ng/ssm.go index e4bc2dc12..b1d334a9e 100644 --- a/eks/ng/ssm.go +++ b/eks/ng/ssm.go @@ -112,7 +112,8 @@ func (ts *tester) createSSMDocument() error { continue } - if err := ioutil.WriteFile(cur.SSMDocumentCFNStackYAMLPath, []byte(TemplateSSMDocument), 0400); err != nil { + // grant write permission in case of overwrites + if err := ioutil.WriteFile(cur.SSMDocumentCFNStackYAMLPath, []byte(TemplateSSMDocument), 0600); err != nil { return err } if err := aws_s3.Upload( diff --git a/eksconfig/config.go b/eksconfig/config.go index 20e374493..e8c2f21b9 100644 --- a/eksconfig/config.go +++ b/eksconfig/config.go @@ -560,6 +560,7 @@ func (cfg *Config) evaluateCommandRefs() error { } // Sync persists current configuration and states to disk. +// Every call overwrites the previous contents if any. func (cfg *Config) Sync() (err error) { cfg.mu.Lock() defer cfg.mu.Unlock() diff --git a/go.mod b/go.mod index 6049eee65..dbac6a14b 100644 --- a/go.mod +++ b/go.mod @@ -43,7 +43,7 @@ replace ( ) require ( - github.com/aws/aws-sdk-go v1.35.10 + github.com/aws/aws-sdk-go v1.35.25 github.com/briandowns/spinner v1.11.1 github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 github.com/davecgh/go-spew v1.1.1 diff --git a/go.sum b/go.sum index 1fba48ad3..8eb741811 100644 --- a/go.sum +++ b/go.sum @@ -102,8 +102,8 @@ github.com/auth0/go-jwt-middleware v0.0.0-20170425171159-5493cabe49f7/go.mod h1: github.com/aws/aws-sdk-go v1.6.10/go.mod h1:ZRmQr0FajVIyZ4ZzBYKG5P3ZqPz9IHG41ZoMu1ADI3k= github.com/aws/aws-sdk-go v1.15.11/go.mod h1:mFuSZ37Z9YOHbQEwBWztmVzqXrEkub65tZoCYDt7FT0= github.com/aws/aws-sdk-go v1.28.2/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.35.10 h1:FsJtrOS7P+Qmq1rPTGgS/+qC1Y9eGuAJHvAZpZlhmb4= -github.com/aws/aws-sdk-go v1.35.10/go.mod h1:tlPOdRjfxPBpNIwqDj61rmsnA85v9jc0Ps9+muhnW+k= +github.com/aws/aws-sdk-go v1.35.25 h1:0+UC6ZquMOLvYABoz0olShCAe+M9oKllgPfr2hnv9zE= +github.com/aws/aws-sdk-go v1.35.25/go.mod h1:tlPOdRjfxPBpNIwqDj61rmsnA85v9jc0Ps9+muhnW+k= github.com/bazelbuild/bazel-gazelle v0.18.2/go.mod h1:D0ehMSbS+vesFsLGiD6JXu3mVEzOlfUl8wNnq+x/9p0= github.com/bazelbuild/bazel-gazelle v0.19.1-0.20191105222053-70208cbdc798/go.mod h1:rPwzNHUqEzngx1iVBfO/2X2npKaT3tqPqqHW6rVsn/A= github.com/bazelbuild/buildtools v0.0.0-20190731111112-f720930ceb60/go.mod h1:5JP0TXzWDHXv8qvxRC4InIazwdyDseBDbzESUMKk1yU= diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/credentials.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/credentials.go index c43b1bc0a..a880a3de8 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/credentials.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/credentials/credentials.go @@ -50,7 +50,7 @@ package credentials import ( "fmt" - "sync/atomic" + "sync" "time" "github.com/aws/aws-sdk-go/aws/awserr" @@ -207,9 +207,10 @@ func (e *Expiry) ExpiresAt() time.Time { // first instance of the credentials Value. All calls to Get() after that // will return the cached credentials Value until IsExpired() returns true. type Credentials struct { - creds atomic.Value - sf singleflight.Group + sf singleflight.Group + m sync.RWMutex + creds Value provider Provider } @@ -218,7 +219,6 @@ func NewCredentials(provider Provider) *Credentials { c := &Credentials{ provider: provider, } - c.creds.Store(Value{}) return c } @@ -235,8 +235,17 @@ func NewCredentials(provider Provider) *Credentials { // // Passed in Context is equivalent to aws.Context, and context.Context. func (c *Credentials) GetWithContext(ctx Context) (Value, error) { - if curCreds := c.creds.Load(); !c.isExpired(curCreds) { - return curCreds.(Value), nil + // Check if credentials are cached, and not expired. + select { + case curCreds, ok := <-c.asyncIsExpired(): + // ok will only be true, of the credentials were not expired. ok will + // be false and have no value if the credentials are expired. + if ok { + return curCreds, nil + } + case <-ctx.Done(): + return Value{}, awserr.New("RequestCanceled", + "request context canceled", ctx.Err()) } // Cannot pass context down to the actual retrieve, because the first @@ -254,18 +263,23 @@ func (c *Credentials) GetWithContext(ctx Context) (Value, error) { } } -func (c *Credentials) singleRetrieve(ctx Context) (creds interface{}, err error) { - if curCreds := c.creds.Load(); !c.isExpired(curCreds) { - return curCreds.(Value), nil +func (c *Credentials) singleRetrieve(ctx Context) (interface{}, error) { + c.m.Lock() + defer c.m.Unlock() + + if curCreds := c.creds; !c.isExpiredLocked(curCreds) { + return curCreds, nil } + var creds Value + var err error if p, ok := c.provider.(ProviderWithContext); ok { creds, err = p.RetrieveWithContext(ctx) } else { creds, err = c.provider.Retrieve() } if err == nil { - c.creds.Store(creds) + c.creds = creds } return creds, err @@ -290,7 +304,10 @@ func (c *Credentials) Get() (Value, error) { // This will override the Provider's expired state, and force Credentials // to call the Provider's Retrieve(). func (c *Credentials) Expire() { - c.creds.Store(Value{}) + c.m.Lock() + defer c.m.Unlock() + + c.creds = Value{} } // IsExpired returns if the credentials are no longer valid, and need @@ -299,11 +316,32 @@ func (c *Credentials) Expire() { // If the Credentials were forced to be expired with Expire() this will // reflect that override. func (c *Credentials) IsExpired() bool { - return c.isExpired(c.creds.Load()) + c.m.RLock() + defer c.m.RUnlock() + + return c.isExpiredLocked(c.creds) } -// isExpired helper method wrapping the definition of expired credentials. -func (c *Credentials) isExpired(creds interface{}) bool { +// asyncIsExpired returns a channel of credentials Value. If the channel is +// closed the credentials are expired and credentials value are not empty. +func (c *Credentials) asyncIsExpired() <-chan Value { + ch := make(chan Value, 1) + go func() { + c.m.RLock() + defer c.m.RUnlock() + + if curCreds := c.creds; !c.isExpiredLocked(curCreds) { + ch <- curCreds + } + + close(ch) + }() + + return ch +} + +// isExpiredLocked helper method wrapping the definition of expired credentials. +func (c *Credentials) isExpiredLocked(creds interface{}) bool { return creds == nil || creds.(Value) == Value{} || c.provider.IsExpired() } @@ -311,13 +349,17 @@ func (c *Credentials) isExpired(creds interface{}) bool { // the underlying Provider, if it supports that interface. Otherwise, it returns // an error. func (c *Credentials) ExpiresAt() (time.Time, error) { + c.m.RLock() + defer c.m.RUnlock() + expirer, ok := c.provider.(Expirer) if !ok { return time.Time{}, awserr.New("ProviderNotExpirer", - fmt.Sprintf("provider %s does not support ExpiresAt()", c.creds.Load().(Value).ProviderName), + fmt.Sprintf("provider %s does not support ExpiresAt()", + c.creds.ProviderName), nil) } - if c.creds.Load().(Value) == (Value{}) { + if c.creds == (Value{}) { // set expiration time to the distant past return time.Time{}, nil } diff --git a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go index 4e5bdbb75..c30391084 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go @@ -723,6 +723,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, @@ -837,6 +838,7 @@ var awsPartition = partition{ Protocols: []string{"http", "https"}, }, Endpoints: endpoints{ + "af-south-1": endpoint{}, "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, @@ -846,6 +848,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, @@ -860,6 +863,7 @@ var awsPartition = partition{ "backup": service{ Endpoints: endpoints{ + "af-south-1": endpoint{}, "ap-east-1": endpoint{}, "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, @@ -869,6 +873,7 @@ var awsPartition = partition{ "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-north-1": endpoint{}, + "eu-south-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, @@ -2036,12 +2041,42 @@ var awsPartition = partition{ "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, - "me-south-1": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, + "fips-ca-central-1": endpoint{ + Hostname: "ebs-fips.ca-central-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ca-central-1", + }, + }, + "fips-us-east-1": endpoint{ + Hostname: "ebs-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-east-2": endpoint{ + Hostname: "ebs-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "fips-us-west-1": endpoint{ + Hostname: "ebs-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, + "fips-us-west-2": endpoint{ + Hostname: "ebs-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + "me-south-1": endpoint{}, + "sa-east-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, }, }, "ec2": service{ @@ -2192,6 +2227,12 @@ var awsPartition = partition{ Region: "us-east-2", }, }, + "fips-us-west-1": endpoint{ + Hostname: "fips.eks.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, "fips-us-west-2": endpoint{ Hostname: "fips.eks.us-west-2.amazonaws.com", CredentialScope: credentialScope{ @@ -3455,6 +3496,7 @@ var awsPartition = partition{ "sa-east-1": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, + "us-west-1": endpoint{}, "us-west-2": endpoint{}, }, }, @@ -3518,11 +3560,35 @@ var awsPartition = partition{ "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, + "fips-us-east-1": endpoint{ + Hostname: "lakeformation-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-east-2": endpoint{ + Hostname: "lakeformation-fips.us-east-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-2", + }, + }, + "fips-us-west-1": endpoint{ + Hostname: "lakeformation-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + }, + "fips-us-west-2": endpoint{ + Hostname: "lakeformation-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + "sa-east-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, }, }, "lambda": service{ @@ -4408,6 +4474,7 @@ var awsPartition = partition{ "ap-northeast-1": endpoint{}, "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, + "ap-southeast-1": endpoint{}, "ap-southeast-2": endpoint{}, "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, @@ -4828,6 +4895,12 @@ var awsPartition = partition{ Region: "us-east-1", }, }, + "fips-aws-global": endpoint{ + Hostname: "route53-fips.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, }, }, "route53domains": service{ @@ -5436,10 +5509,16 @@ var awsPartition = partition{ "eu-west-3": endpoint{}, "me-south-1": endpoint{}, "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, + "servicediscovery-fips": endpoint{ + Hostname: "servicediscovery-fips.ca-central-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ca-central-1", + }, + }, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, }, }, "servicequotas": service{ @@ -5795,6 +5874,12 @@ var awsPartition = partition{ "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, + "fips-ca-central-1": endpoint{ + Hostname: "ssm-fips.ca-central-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "ca-central-1", + }, + }, "fips-us-east-1": endpoint{ Hostname: "ssm-fips.us-east-1.amazonaws.com", CredentialScope: credentialScope{ @@ -5821,34 +5906,10 @@ var awsPartition = partition{ }, "me-south-1": endpoint{}, "sa-east-1": endpoint{}, - "ssm-facade-fips-us-east-1": endpoint{ - Hostname: "ssm-facade-fips.us-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-1", - }, - }, - "ssm-facade-fips-us-east-2": endpoint{ - Hostname: "ssm-facade-fips.us-east-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-east-2", - }, - }, - "ssm-facade-fips-us-west-1": endpoint{ - Hostname: "ssm-facade-fips.us-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-1", - }, - }, - "ssm-facade-fips-us-west-2": endpoint{ - Hostname: "ssm-facade-fips.us-west-2.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-west-2", - }, - }, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-1": endpoint{}, - "us-west-2": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-1": endpoint{}, + "us-west-2": endpoint{}, }, }, "states": service{ @@ -6190,7 +6251,9 @@ var awsPartition = partition{ Endpoints: endpoints{ "ap-southeast-2": endpoint{}, "ca-central-1": endpoint{}, + "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, + "eu-west-2": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, "us-west-2": endpoint{}, @@ -7014,6 +7077,13 @@ var awscnPartition = partition{ "cn-northwest-1": endpoint{}, }, }, + "fsx": service{ + + Endpoints: endpoints{ + "cn-north-1": endpoint{}, + "cn-northwest-1": endpoint{}, + }, + }, "gamelift": service{ Endpoints: endpoints{ @@ -7076,6 +7146,12 @@ var awscnPartition = partition{ "cn-northwest-1": endpoint{}, }, }, + "iotanalytics": service{ + + Endpoints: endpoints{ + "cn-north-1": endpoint{}, + }, + }, "iotevents": service{ Endpoints: endpoints{ @@ -7297,6 +7373,13 @@ var awscnPartition = partition{ "cn-northwest-1": endpoint{}, }, }, + "securityhub": service{ + + Endpoints: endpoints{ + "cn-north-1": endpoint{}, + "cn-northwest-1": endpoint{}, + }, + }, "serverlessrepo": service{ Defaults: endpoint{ Protocols: []string{"https"}, @@ -7622,8 +7705,12 @@ var awsusgovPartition = partition{ }, }, Endpoints: endpoints{ - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, + "us-gov-east-1": endpoint{ + Protocols: []string{"http", "https"}, + }, + "us-gov-west-1": endpoint{ + Protocols: []string{"http", "https"}, + }, }, }, "appstream2": service{ @@ -7678,8 +7765,12 @@ var awsusgovPartition = partition{ Protocols: []string{"http", "https"}, }, Endpoints: endpoints{ - "us-gov-east-1": endpoint{}, - "us-gov-west-1": endpoint{}, + "us-gov-east-1": endpoint{ + Protocols: []string{"http", "https"}, + }, + "us-gov-west-1": endpoint{ + Protocols: []string{"http", "https"}, + }, }, }, "backup": service{ @@ -7831,6 +7922,12 @@ var awsusgovPartition = partition{ "cognito-identity": service{ Endpoints: endpoints{ + "fips-us-gov-west-1": endpoint{ + Hostname: "cognito-identity-fips.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, "us-gov-west-1": endpoint{}, }, }, @@ -8036,6 +8133,18 @@ var awsusgovPartition = partition{ Protocols: []string{"http", "https"}, }, Endpoints: endpoints{ + "fips-us-gov-east-1": endpoint{ + Hostname: "eks.us-gov-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-east-1", + }, + }, + "fips-us-gov-west-1": endpoint{ + Hostname: "eks.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, "us-gov-east-1": endpoint{}, "us-gov-west-1": endpoint{}, }, @@ -8235,6 +8344,12 @@ var awsusgovPartition = partition{ Protocols: []string{"https"}, }, Endpoints: endpoints{ + "dataplane-us-gov-west-1": endpoint{ + Hostname: "greengrass-ats.iot.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, "us-gov-west-1": endpoint{ Hostname: "greengrass.us-gov-west-1.amazonaws.com", CredentialScope: credentialScope{ @@ -8249,6 +8364,7 @@ var awsusgovPartition = partition{ Protocols: []string{"https"}, }, Endpoints: endpoints{ + "us-gov-east-1": endpoint{}, "us-gov-west-1": endpoint{}, "us-gov-west-1-fips": endpoint{ Hostname: "guardduty.us-gov-west-1.amazonaws.com", @@ -8636,6 +8752,12 @@ var awsusgovPartition = partition{ Region: "us-gov-west-1", }, }, + "fips-aws-us-gov-global": endpoint{ + Hostname: "route53.us-gov.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, }, }, "route53resolver": service{ @@ -8882,18 +9004,6 @@ var awsusgovPartition = partition{ Region: "us-gov-west-1", }, }, - "ssm-facade-fips-us-gov-east-1": endpoint{ - Hostname: "ssm-facade.us-gov-east-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-east-1", - }, - }, - "ssm-facade-fips-us-gov-west-1": endpoint{ - Hostname: "ssm-facade.us-gov-west-1.amazonaws.com", - CredentialScope: credentialScope{ - Region: "us-gov-west-1", - }, - }, "us-gov-east-1": endpoint{}, "us-gov-west-1": endpoint{}, }, @@ -9518,6 +9628,17 @@ var awsisobPartition = partition{ }, }, Services: services{ + "api.ecr": service{ + + Endpoints: endpoints{ + "us-isob-east-1": endpoint{ + Hostname: "api.ecr.us-isob-east-1.sc2s.sgov.gov", + CredentialScope: credentialScope{ + Region: "us-isob-east-1", + }, + }, + }, + }, "application-autoscaling": service{ Defaults: endpoint{ Protocols: []string{"http", "https"}, @@ -9597,6 +9718,12 @@ var awsisobPartition = partition{ }, }, }, + "ecs": service{ + + Endpoints: endpoints{ + "us-isob-east-1": endpoint{}, + }, + }, "elasticache": service{ Endpoints: endpoints{ diff --git a/vendor/github.com/aws/aws-sdk-go/aws/version.go b/vendor/github.com/aws/aws-sdk-go/aws/version.go index 3e11d66f8..838170451 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/version.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/version.go @@ -5,4 +5,4 @@ package aws const SDKName = "aws-sdk-go" // SDKVersion is the version of this SDK -const SDKVersion = "1.35.10" +const SDKVersion = "1.35.25" diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/ini_parser.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/ini_parser.go index cf9fad81e..55fa73ebc 100644 --- a/vendor/github.com/aws/aws-sdk-go/internal/ini/ini_parser.go +++ b/vendor/github.com/aws/aws-sdk-go/internal/ini/ini_parser.go @@ -63,9 +63,10 @@ var parseTable = map[ASTKind]map[TokenType]int{ TokenNone: MarkCompleteState, }, ASTKindEqualExpr: map[TokenType]int{ - TokenLit: ValueState, - TokenWS: SkipTokenState, - TokenNL: SkipState, + TokenLit: ValueState, + TokenWS: SkipTokenState, + TokenNL: SkipState, + TokenNone: SkipState, }, ASTKindStatement: map[TokenType]int{ TokenLit: SectionState, diff --git a/vendor/github.com/aws/aws-sdk-go/service/autoscaling/api.go b/vendor/github.com/aws/aws-sdk-go/service/autoscaling/api.go index bea102a88..0f409dca2 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/autoscaling/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/autoscaling/api.go @@ -70,7 +70,7 @@ func (c *AutoScaling) AttachInstancesRequest(input *AttachInstancesInput) (req * // groups attached to your Auto Scaling group, the instances are also registered // with the target groups. // -// For more information, see Attach EC2 Instances to Your Auto Scaling Group +// For more information, see Attach EC2 instances to your Auto Scaling group // (https://docs.aws.amazon.com/autoscaling/ec2/userguide/attach-instance-asg.html) // in the Amazon EC2 Auto Scaling User Guide. // @@ -165,7 +165,7 @@ func (c *AutoScaling) AttachLoadBalancerTargetGroupsRequest(input *AttachLoadBal // With Application Load Balancers and Network Load Balancers, instances are // registered as targets with a target group. With Classic Load Balancers, instances // are registered with the load balancer. For more information, see Attaching -// a Load Balancer to Your Auto Scaling Group (https://docs.aws.amazon.com/autoscaling/ec2/userguide/attach-load-balancer-asg.html) +// a load balancer to your Auto Scaling group (https://docs.aws.amazon.com/autoscaling/ec2/userguide/attach-load-balancer-asg.html) // in the Amazon EC2 Auto Scaling User Guide. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -262,8 +262,8 @@ func (c *AutoScaling) AttachLoadBalancersRequest(input *AttachLoadBalancersInput // API. To detach the load balancer from the Auto Scaling group, call the DetachLoadBalancers // API. // -// For more information, see Attaching a Load Balancer to Your Auto Scaling -// Group (https://docs.aws.amazon.com/autoscaling/ec2/userguide/attach-load-balancer-asg.html) +// For more information, see Attaching a load balancer to your Auto Scaling +// group (https://docs.aws.amazon.com/autoscaling/ec2/userguide/attach-load-balancer-asg.html) // in the Amazon EC2 Auto Scaling User Guide. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -637,7 +637,7 @@ func (c *AutoScaling) CompleteLifecycleActionRequest(input *CompleteLifecycleAct // // If you finish before the timeout period ends, complete the lifecycle action. // -// For more information, see Amazon EC2 Auto Scaling Lifecycle Hooks (https://docs.aws.amazon.com/autoscaling/ec2/userguide/lifecycle-hooks.html) +// For more information, see Amazon EC2 Auto Scaling lifecycle hooks (https://docs.aws.amazon.com/autoscaling/ec2/userguide/lifecycle-hooks.html) // in the Amazon EC2 Auto Scaling User Guide. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -723,14 +723,14 @@ func (c *AutoScaling) CreateAutoScalingGroupRequest(input *CreateAutoScalingGrou // // If you exceed your maximum limit of Auto Scaling groups, the call fails. // To query this limit, call the DescribeAccountLimits API. For information -// about updating this limit, see Amazon EC2 Auto Scaling Service Quotas (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-account-limits.html) +// about updating this limit, see Amazon EC2 Auto Scaling service quotas (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-account-limits.html) // in the Amazon EC2 Auto Scaling User Guide. // // For introductory exercises for creating an Auto Scaling group, see Getting -// Started with Amazon EC2 Auto Scaling (https://docs.aws.amazon.com/autoscaling/ec2/userguide/GettingStartedTutorial.html) -// and Tutorial: Set Up a Scaled and Load-Balanced Application (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-register-lbs-with-asg.html) +// started with Amazon EC2 Auto Scaling (https://docs.aws.amazon.com/autoscaling/ec2/userguide/GettingStartedTutorial.html) +// and Tutorial: Set up a scaled and load-balanced application (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-register-lbs-with-asg.html) // in the Amazon EC2 Auto Scaling User Guide. For more information, see Auto -// Scaling Groups (https://docs.aws.amazon.com/autoscaling/ec2/userguide/AutoScalingGroup.html) +// Scaling groups (https://docs.aws.amazon.com/autoscaling/ec2/userguide/AutoScalingGroup.html) // in the Amazon EC2 Auto Scaling User Guide. // // Every Auto Scaling group has three size parameters (DesiredCapacity, MaxSize, @@ -835,10 +835,10 @@ func (c *AutoScaling) CreateLaunchConfigurationRequest(input *CreateLaunchConfig // // If you exceed your maximum limit of launch configurations, the call fails. // To query this limit, call the DescribeAccountLimits API. For information -// about updating this limit, see Amazon EC2 Auto Scaling Service Quotas (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-account-limits.html) +// about updating this limit, see Amazon EC2 Auto Scaling service quotas (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-account-limits.html) // in the Amazon EC2 Auto Scaling User Guide. // -// For more information, see Launch Configurations (https://docs.aws.amazon.com/autoscaling/ec2/userguide/LaunchConfiguration.html) +// For more information, see Launch configurations (https://docs.aws.amazon.com/autoscaling/ec2/userguide/LaunchConfiguration.html) // in the Amazon EC2 Auto Scaling User Guide. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -935,7 +935,7 @@ func (c *AutoScaling) CreateOrUpdateTagsRequest(input *CreateOrUpdateTagsInput) // When you specify a tag with a key that already exists, the operation overwrites // the previous tag definition, and you do not get an error message. // -// For more information, see Tagging Auto Scaling Groups and Instances (https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-tagging.html) +// For more information, see Tagging Auto Scaling groups and instances (https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-tagging.html) // in the Amazon EC2 Auto Scaling User Guide. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -1392,7 +1392,7 @@ func (c *AutoScaling) DeletePolicyRequest(input *DeletePolicyInput) (req *reques // the underlying alarm action, but does not delete the alarm, even if it no // longer has an associated action. // -// For more information, see Deleting a Scaling Policy (https://docs.aws.amazon.com/autoscaling/ec2/userguide/deleting-scaling-policy.html) +// For more information, see Deleting a scaling policy (https://docs.aws.amazon.com/autoscaling/ec2/userguide/deleting-scaling-policy.html) // in the Amazon EC2 Auto Scaling User Guide. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -1645,7 +1645,7 @@ func (c *AutoScaling) DescribeAccountLimitsRequest(input *DescribeAccountLimitsI // account. // // For information about requesting an increase, see Amazon EC2 Auto Scaling -// Service Quotas (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-account-limits.html) +// service quotas (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-account-limits.html) // in the Amazon EC2 Auto Scaling User Guide. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -3504,7 +3504,7 @@ func (c *AutoScaling) DescribeTagsRequest(input *DescribeTagsInput) (req *reques // a particular tag only if it matches all the filters. If there's no match, // no special message is returned. // -// For more information, see Tagging Auto Scaling Groups and Instances (https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-tagging.html) +// For more information, see Tagging Auto Scaling groups and instances (https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-tagging.html) // in the Amazon EC2 Auto Scaling User Guide. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -3642,8 +3642,8 @@ func (c *AutoScaling) DescribeTerminationPolicyTypesRequest(input *DescribeTermi // // Describes the termination policies supported by Amazon EC2 Auto Scaling. // -// For more information, see Controlling Which Auto Scaling Instances Terminate -// During Scale In (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html) +// For more information, see Controlling which Auto Scaling instances terminate +// during scale in (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html) // in the Amazon EC2 Auto Scaling User Guide. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -3737,7 +3737,7 @@ func (c *AutoScaling) DetachInstancesRequest(input *DetachInstancesInput) (req * // attached to the Auto Scaling group, the instances are deregistered from the // target groups. // -// For more information, see Detach EC2 Instances from Your Auto Scaling Group +// For more information, see Detach EC2 instances from your Auto Scaling group // (https://docs.aws.amazon.com/autoscaling/ec2/userguide/detach-instance-asg.html) // in the Amazon EC2 Auto Scaling User Guide. // @@ -4074,7 +4074,8 @@ func (c *AutoScaling) EnableMetricsCollectionRequest(input *EnableMetricsCollect // EnableMetricsCollection API operation for Auto Scaling. // // Enables group metrics for the specified Auto Scaling group. For more information, -// see Monitoring Your Auto Scaling Groups and Instances (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-monitoring.html) +// see Monitoring CloudWatch metrics for your Auto Scaling groups and instances +// (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-monitoring.html) // in the Amazon EC2 Auto Scaling User Guide. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -4166,8 +4167,8 @@ func (c *AutoScaling) EnterStandbyRequest(input *EnterStandbyInput) (req *reques // the Auto Scaling group launches new instances to replace the instances on // standby. // -// For more information, see Temporarily Removing Instances from Your Auto Scaling -// Group (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-enter-exit-standby.html) +// For more information, see Temporarily removing instances from your Auto Scaling +// group (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-enter-exit-standby.html) // in the Amazon EC2 Auto Scaling User Guide. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -4338,8 +4339,8 @@ func (c *AutoScaling) ExitStandbyRequest(input *ExitStandbyInput) (req *request. // // After you put the instances back in service, the desired capacity is incremented. // -// For more information, see Temporarily Removing Instances from Your Auto Scaling -// Group (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-enter-exit-standby.html) +// For more information, see Temporarily removing instances from your Auto Scaling +// group (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-enter-exit-standby.html) // in the Amazon EC2 Auto Scaling User Guide. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -4448,7 +4449,7 @@ func (c *AutoScaling) PutLifecycleHookRequest(input *PutLifecycleHookInput) (req // If you finish before the timeout period ends, complete the lifecycle action // using the CompleteLifecycleAction API call. // -// For more information, see Amazon EC2 Auto Scaling Lifecycle Hooks (https://docs.aws.amazon.com/autoscaling/ec2/userguide/lifecycle-hooks.html) +// For more information, see Amazon EC2 Auto Scaling lifecycle hooks (https://docs.aws.amazon.com/autoscaling/ec2/userguide/lifecycle-hooks.html) // in the Amazon EC2 Auto Scaling User Guide. // // If you exceed your maximum limit of lifecycle hooks, which by default is @@ -4549,10 +4550,13 @@ func (c *AutoScaling) PutNotificationConfigurationRequest(input *PutNotification // // This configuration overwrites any existing configuration. // -// For more information, see Getting Amazon SNS Notifications When Your Auto -// Scaling Group Scales (https://docs.aws.amazon.com/autoscaling/ec2/userguide/ASGettingNotifications.html) +// For more information, see Getting Amazon SNS notifications when your Auto +// Scaling group scales (https://docs.aws.amazon.com/autoscaling/ec2/userguide/ASGettingNotifications.html) // in the Amazon EC2 Auto Scaling User Guide. // +// If you exceed your maximum limit of SNS topics, which is 10 per Auto Scaling +// group, the call fails. +// // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. @@ -4643,8 +4647,8 @@ func (c *AutoScaling) PutScalingPolicyRequest(input *PutScalingPolicyInput) (req // Creates or updates a scaling policy for an Auto Scaling group. // // For more information about using scaling policies to scale your Auto Scaling -// group, see Target Tracking Scaling Policies (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-target-tracking.html) -// and Step and Simple Scaling Policies (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-simple-step.html) +// group, see Target tracking scaling policies (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-target-tracking.html) +// and Step and simple scaling policies (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-simple-step.html) // in the Amazon EC2 Auto Scaling User Guide. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -4739,7 +4743,7 @@ func (c *AutoScaling) PutScheduledUpdateGroupActionRequest(input *PutScheduledUp // If you leave a parameter unspecified when updating a scheduled scaling action, // the corresponding value remains unchanged. // -// For more information, see Scheduled Scaling (https://docs.aws.amazon.com/autoscaling/ec2/userguide/schedule_time.html) +// For more information, see Scheduled scaling (https://docs.aws.amazon.com/autoscaling/ec2/userguide/schedule_time.html) // in the Amazon EC2 Auto Scaling User Guide. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -4854,7 +4858,7 @@ func (c *AutoScaling) RecordLifecycleActionHeartbeatRequest(input *RecordLifecyc // // If you finish before the timeout period ends, complete the lifecycle action. // -// For more information, see Auto Scaling Lifecycle (https://docs.aws.amazon.com/autoscaling/ec2/userguide/AutoScalingGroupLifecycle.html) +// For more information, see Auto Scaling lifecycle (https://docs.aws.amazon.com/autoscaling/ec2/userguide/AutoScalingGroupLifecycle.html) // in the Amazon EC2 Auto Scaling User Guide. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -4936,10 +4940,10 @@ func (c *AutoScaling) ResumeProcessesRequest(input *ScalingProcessQuery) (req *r // ResumeProcesses API operation for Auto Scaling. // -// Resumes the specified suspended automatic scaling processes, or all suspended +// Resumes the specified suspended auto scaling processes, or all suspended // process, for the specified Auto Scaling group. // -// For more information, see Suspending and Resuming Scaling Processes (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-suspend-resume-processes.html) +// For more information, see Suspending and resuming scaling processes (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-suspend-resume-processes.html) // in the Amazon EC2 Auto Scaling User Guide. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -5030,7 +5034,7 @@ func (c *AutoScaling) SetDesiredCapacityRequest(input *SetDesiredCapacityInput) // that is lower than the current size of the group, the Auto Scaling group // uses its termination policy to determine which instances to terminate. // -// For more information, see Manual Scaling (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-manual-scaling.html) +// For more information, see Manual scaling (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-manual-scaling.html) // in the Amazon EC2 Auto Scaling User Guide. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -5118,7 +5122,7 @@ func (c *AutoScaling) SetInstanceHealthRequest(input *SetInstanceHealthInput) (r // // Sets the health status of the specified instance. // -// For more information, see Health Checks for Auto Scaling Instances (https://docs.aws.amazon.com/autoscaling/ec2/userguide/healthcheck.html) +// For more information, see Health checks for Auto Scaling instances (https://docs.aws.amazon.com/autoscaling/ec2/userguide/healthcheck.html) // in the Amazon EC2 Auto Scaling User Guide. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -5203,9 +5207,13 @@ func (c *AutoScaling) SetInstanceProtectionRequest(input *SetInstanceProtectionI // Updates the instance protection settings of the specified instances. // // For more information about preventing instances that are part of an Auto -// Scaling group from terminating on scale in, see Instance Protection (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection) +// Scaling group from terminating on scale in, see Instance scale-in protection +// (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection) // in the Amazon EC2 Auto Scaling User Guide. // +// If you exceed your maximum limit of instance IDs, which is 50 per Auto Scaling +// group, the call fails. +// // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. @@ -5392,12 +5400,12 @@ func (c *AutoScaling) SuspendProcessesRequest(input *ScalingProcessQuery) (req * // SuspendProcesses API operation for Auto Scaling. // -// Suspends the specified automatic scaling processes, or all processes, for -// the specified Auto Scaling group. +// Suspends the specified auto scaling processes, or all processes, for the +// specified Auto Scaling group. // // If you suspend either the Launch or Terminate process types, it can prevent // other process types from functioning properly. For more information, see -// Suspending and Resuming Scaling Processes (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-suspend-resume-processes.html) +// Suspending and resuming scaling processes (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-suspend-resume-processes.html) // in the Amazon EC2 Auto Scaling User Guide. // // To resume processes that have been suspended, call the ResumeProcesses API. @@ -5498,7 +5506,7 @@ func (c *AutoScaling) TerminateInstanceInAutoScalingGroupRequest(input *Terminat // Zones. If you decrement the desired capacity, your Auto Scaling group can // become unbalanced between Availability Zones. Amazon EC2 Auto Scaling tries // to rebalance the group, and rebalancing might terminate instances in other -// zones. For more information, see Rebalancing Activities (https://docs.aws.amazon.com/autoscaling/ec2/userguide/auto-scaling-benefits.html#AutoScalingBehavior.InstanceUsage) +// zones. For more information, see Rebalancing activities (https://docs.aws.amazon.com/autoscaling/ec2/userguide/auto-scaling-benefits.html#AutoScalingBehavior.InstanceUsage) // in the Amazon EC2 Auto Scaling User Guide. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -6487,110 +6495,100 @@ type CreateAutoScalingGroupInput struct { // AutoScalingGroupName is a required field AutoScalingGroupName *string `min:"1" type:"string" required:"true"` - // One or more Availability Zones for the group. This parameter is optional - // if you specify one or more subnets for VPCZoneIdentifier. + // A list of Availability Zones where instances in the Auto Scaling group can + // be created. This parameter is optional if you specify one or more subnets + // for VPCZoneIdentifier. // // Conditional: If your account supports EC2-Classic and VPC, this parameter // is required to launch instances into EC2-Classic. AvailabilityZones []*string `min:"1" type:"list"` + // Indicates whether Capacity Rebalancing is enabled. Otherwise, Capacity Rebalancing + // is disabled. When you turn on Capacity Rebalancing, Amazon EC2 Auto Scaling + // attempts to launch a Spot Instance whenever Amazon EC2 notifies that a Spot + // Instance is at an elevated risk of interruption. After launching a new instance, + // it then terminates an old instance. For more information, see Amazon EC2 + // Auto Scaling Capacity Rebalancing (https://docs.aws.amazon.com/autoscaling/ec2/userguide/capacity-rebalance.html) + // in the Amazon EC2 Auto Scaling User Guide. + CapacityRebalance *bool `type:"boolean"` + // The amount of time, in seconds, after a scaling activity completes before - // another scaling activity can start. The default value is 300. - // - // This setting applies when using simple scaling policies, but not when using - // other scaling policies or scheduled scaling. For more information, see Scaling - // Cooldowns for Amazon EC2 Auto Scaling (https://docs.aws.amazon.com/autoscaling/ec2/userguide/Cooldown.html) + // another scaling activity can start. The default value is 300. This setting + // applies when using simple scaling policies, but not when using other scaling + // policies or scheduled scaling. For more information, see Scaling cooldowns + // for Amazon EC2 Auto Scaling (https://docs.aws.amazon.com/autoscaling/ec2/userguide/Cooldown.html) // in the Amazon EC2 Auto Scaling User Guide. DefaultCooldown *int64 `type:"integer"` // The desired capacity is the initial capacity of the Auto Scaling group at // the time of its creation and the capacity it attempts to maintain. It can - // scale beyond this capacity if you configure automatic scaling. - // - // This number must be greater than or equal to the minimum size of the group - // and less than or equal to the maximum size of the group. If you do not specify - // a desired capacity, the default is the minimum size of the group. + // scale beyond this capacity if you configure auto scaling. This number must + // be greater than or equal to the minimum size of the group and less than or + // equal to the maximum size of the group. If you do not specify a desired capacity, + // the default is the minimum size of the group. DesiredCapacity *int64 `type:"integer"` // The amount of time, in seconds, that Amazon EC2 Auto Scaling waits before // checking the health status of an EC2 instance that has come into service. // During this time, any health check failures for the instance are ignored. - // The default value is 0. - // - // For more information, see Health Check Grace Period (https://docs.aws.amazon.com/autoscaling/ec2/userguide/healthcheck.html#health-check-grace-period) + // The default value is 0. For more information, see Health check grace period + // (https://docs.aws.amazon.com/autoscaling/ec2/userguide/healthcheck.html#health-check-grace-period) // in the Amazon EC2 Auto Scaling User Guide. // - // Required if you are adding an ELB health check. + // Conditional: Required if you are adding an ELB health check. HealthCheckGracePeriod *int64 `type:"integer"` - // The service to use for the health checks. The valid values are EC2 and ELB. - // The default value is EC2. If you configure an Auto Scaling group to use ELB + // The service to use for the health checks. The valid values are EC2 (default) + // and ELB. If you configure an Auto Scaling group to use load balancer (ELB) // health checks, it considers the instance unhealthy if it fails either the - // EC2 status checks or the load balancer health checks. - // - // For more information, see Health Checks for Auto Scaling Instances (https://docs.aws.amazon.com/autoscaling/ec2/userguide/healthcheck.html) + // EC2 status checks or the load balancer health checks. For more information, + // see Health checks for Auto Scaling instances (https://docs.aws.amazon.com/autoscaling/ec2/userguide/healthcheck.html) // in the Amazon EC2 Auto Scaling User Guide. HealthCheckType *string `min:"1" type:"string"` - // The ID of the instance used to create a launch configuration for the group. - // To get the instance ID, use the Amazon EC2 DescribeInstances (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html) - // API operation. - // - // When you specify an ID of an instance, Amazon EC2 Auto Scaling creates a - // new launch configuration and associates it with the group. This launch configuration - // derives its attributes from the specified instance, except for the block - // device mapping. - // - // You must specify one of the following parameters in your request: LaunchConfigurationName, - // LaunchTemplate, InstanceId, or MixedInstancesPolicy. + // The ID of the instance used to base the launch configuration on. If specified, + // Amazon EC2 Auto Scaling uses the configuration values from the specified + // instance to create a new launch configuration. To get the instance ID, use + // the Amazon EC2 DescribeInstances (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html) + // API operation. For more information, see Creating an Auto Scaling group using + // an EC2 instance (https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-from-instance.html) + // in the Amazon EC2 Auto Scaling User Guide. InstanceId *string `min:"1" type:"string"` - // The name of the launch configuration to use when an instance is launched. - // To get the launch configuration name, use the DescribeLaunchConfigurations - // API operation. New launch configurations can be created with the CreateLaunchConfiguration - // API. + // The name of the launch configuration to use to launch instances. // - // You must specify one of the following parameters in your request: LaunchConfigurationName, - // LaunchTemplate, InstanceId, or MixedInstancesPolicy. + // Conditional: You must specify either a launch template (LaunchTemplate or + // MixedInstancesPolicy) or a launch configuration (LaunchConfigurationName + // or InstanceId). LaunchConfigurationName *string `min:"1" type:"string"` - // Parameters used to specify the launch template and version to use when an - // instance is launched. - // - // For more information, see LaunchTemplateSpecification (https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_LaunchTemplateSpecification.html) - // in the Amazon EC2 Auto Scaling API Reference. + // Parameters used to specify the launch template (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html) + // and version to use to launch instances. // - // You can alternatively associate a launch template to the Auto Scaling group - // by using the MixedInstancesPolicy parameter. + // Conditional: You must specify either a launch template (LaunchTemplate or + // MixedInstancesPolicy) or a launch configuration (LaunchConfigurationName + // or InstanceId). // - // You must specify one of the following parameters in your request: LaunchConfigurationName, - // LaunchTemplate, InstanceId, or MixedInstancesPolicy. + // The launch template that is specified must be configured for use with an + // Auto Scaling group. For more information, see Creating a launch template + // for an Auto Scaling group (https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-template.html) + // in the Amazon EC2 Auto Scaling User Guide. LaunchTemplate *LaunchTemplateSpecification `type:"structure"` - // One or more lifecycle hooks. + // One or more lifecycle hooks for the group, which specify actions to perform + // when Amazon EC2 Auto Scaling launches or terminates instances. LifecycleHookSpecificationList []*LifecycleHookSpecification `type:"list"` // A list of Classic Load Balancers associated with this Auto Scaling group. - // For Application Load Balancers and Network Load Balancers, specify a list - // of target groups using the TargetGroupARNs property instead. - // - // For more information, see Using a Load Balancer with an Auto Scaling Group - // (https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-load-balancer.html) - // in the Amazon EC2 Auto Scaling User Guide. + // For Application Load Balancers and Network Load Balancers, specify TargetGroupARNs + // instead. LoadBalancerNames []*string `type:"list"` // The maximum amount of time, in seconds, that an instance can be in service. - // The default is null. - // - // This parameter is optional, but if you specify a value for it, you must specify - // a value of at least 604,800 seconds (7 days). To clear a previously set value, - // specify a new value of 0. - // - // For more information, see Replacing Auto Scaling Instances Based on Maximum - // Instance Lifetime (https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-max-instance-lifetime.html) + // The default is null. If specified, the value must be either 0 or a number + // equal to or greater than 86,400 seconds (1 day). For more information, see + // Replacing Auto Scaling instances based on maximum instance lifetime (https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-max-instance-lifetime.html) // in the Amazon EC2 Auto Scaling User Guide. - // - // Valid Range: Minimum value of 0. MaxInstanceLifetime *int64 `type:"integer"` // The maximum size of the group. @@ -6616,75 +6614,67 @@ type CreateAutoScalingGroupInput struct { // The policy includes parameters that not only define the distribution of On-Demand // Instances and Spot Instances, the maximum price to pay for Spot Instances, // and how the Auto Scaling group allocates instance types to fulfill On-Demand - // and Spot capacity, but also the parameters that specify the instance configuration - // information—the launch template and instance types. - // - // For more information, see MixedInstancesPolicy (https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_MixedInstancesPolicy.html) - // in the Amazon EC2 Auto Scaling API Reference and Auto Scaling Groups with - // Multiple Instance Types and Purchase Options (https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-purchase-options.html) + // and Spot capacities, but also the parameters that specify the instance configuration + // information—the launch template and instance types. The policy can also + // include a weight for each instance type. For more information, see Auto Scaling + // groups with multiple instance types and purchase options (https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-purchase-options.html) // in the Amazon EC2 Auto Scaling User Guide. // - // You must specify one of the following parameters in your request: LaunchConfigurationName, - // LaunchTemplate, InstanceId, or MixedInstancesPolicy. + // Conditional: You must specify either a launch template (LaunchTemplate or + // MixedInstancesPolicy) or a launch configuration (LaunchConfigurationName + // or InstanceId). MixedInstancesPolicy *MixedInstancesPolicy `type:"structure"` // Indicates whether newly launched instances are protected from termination - // by Amazon EC2 Auto Scaling when scaling in. - // - // For more information about preventing instances from terminating on scale - // in, see Instance Protection (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection) + // by Amazon EC2 Auto Scaling when scaling in. For more information about preventing + // instances from terminating on scale in, see Instance scale-in protection + // (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection) // in the Amazon EC2 Auto Scaling User Guide. NewInstancesProtectedFromScaleIn *bool `type:"boolean"` - // The name of the placement group into which to launch your instances, if any. - // A placement group is a logical grouping of instances within a single Availability - // Zone. You cannot specify multiple Availability Zones and a placement group. - // For more information, see Placement Groups (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html) + // The name of an existing placement group into which to launch your instances, + // if any. A placement group is a logical grouping of instances within a single + // Availability Zone. You cannot specify multiple Availability Zones and a placement + // group. For more information, see Placement Groups (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html) // in the Amazon EC2 User Guide for Linux Instances. PlacementGroup *string `min:"1" type:"string"` // The Amazon Resource Name (ARN) of the service-linked role that the Auto Scaling // group uses to call other AWS services on your behalf. By default, Amazon // EC2 Auto Scaling uses a service-linked role named AWSServiceRoleForAutoScaling, - // which it creates if it does not exist. For more information, see Service-Linked - // Roles (https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-service-linked-role.html) + // which it creates if it does not exist. For more information, see Service-linked + // roles (https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-service-linked-role.html) // in the Amazon EC2 Auto Scaling User Guide. ServiceLinkedRoleARN *string `min:"1" type:"string"` // One or more tags. You can tag your Auto Scaling group and propagate the tags - // to the Amazon EC2 instances it launches. - // - // Tags are not propagated to Amazon EBS volumes. To add tags to Amazon EBS - // volumes, specify the tags in a launch template but use caution. If the launch - // template specifies an instance tag with a key that is also specified for - // the Auto Scaling group, Amazon EC2 Auto Scaling overrides the value of that - // instance tag with the value specified by the Auto Scaling group. - // - // For more information, see Tagging Auto Scaling Groups and Instances (https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-tagging.html) + // to the Amazon EC2 instances it launches. Tags are not propagated to Amazon + // EBS volumes. To add tags to Amazon EBS volumes, specify the tags in a launch + // template but use caution. If the launch template specifies an instance tag + // with a key that is also specified for the Auto Scaling group, Amazon EC2 + // Auto Scaling overrides the value of that instance tag with the value specified + // by the Auto Scaling group. For more information, see Tagging Auto Scaling + // groups and instances (https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-tagging.html) // in the Amazon EC2 Auto Scaling User Guide. Tags []*Tag `type:"list"` // The Amazon Resource Names (ARN) of the target groups to associate with the // Auto Scaling group. Instances are registered as targets in a target group, - // and traffic is routed to the target group. - // - // For more information, see Using a Load Balancer with an Auto Scaling Group - // (https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-load-balancer.html) + // and traffic is routed to the target group. For more information, see Elastic + // Load Balancing and Amazon EC2 Auto Scaling (https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-load-balancer.html) // in the Amazon EC2 Auto Scaling User Guide. TargetGroupARNs []*string `type:"list"` - // One or more termination policies used to select the instance to terminate. - // These policies are executed in the order that they are listed. - // - // For more information, see Controlling Which Instances Auto Scaling Terminates - // During Scale In (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html) + // A policy or a list of policies that are used to select the instance to terminate. + // These policies are executed in the order that you list them. For more information, + // see Controlling which Auto Scaling instances terminate during scale in (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html) // in the Amazon EC2 Auto Scaling User Guide. TerminationPolicies []*string `type:"list"` - // A comma-separated list of subnet IDs for your virtual private cloud (VPC). - // - // If you specify VPCZoneIdentifier with AvailabilityZones, the subnets that - // you specify for this parameter must reside in those Availability Zones. + // A comma-separated list of subnet IDs for a virtual private cloud (VPC) where + // instances in the Auto Scaling group can be created. If you specify VPCZoneIdentifier + // with AvailabilityZones, the subnets that you specify for this parameter must + // reside in those Availability Zones. // // Conditional: If your account supports EC2-Classic and VPC, this parameter // is required to launch instances into a VPC. @@ -6786,6 +6776,12 @@ func (s *CreateAutoScalingGroupInput) SetAvailabilityZones(v []*string) *CreateA return s } +// SetCapacityRebalance sets the CapacityRebalance field's value. +func (s *CreateAutoScalingGroupInput) SetCapacityRebalance(v bool) *CreateAutoScalingGroupInput { + s.CapacityRebalance = &v + return s +} + // SetDefaultCooldown sets the DefaultCooldown field's value. func (s *CreateAutoScalingGroupInput) SetDefaultCooldown(v int64) *CreateAutoScalingGroupInput { s.DefaultCooldown = &v @@ -6926,7 +6922,7 @@ type CreateLaunchConfigurationInput struct { // For Auto Scaling groups that are running in a virtual private cloud (VPC), // specifies whether to assign a public IP address to the group's instances. // If you specify true, each instance in the Auto Scaling group receives a unique - // public IP address. For more information, see Launching Auto Scaling Instances + // public IP address. For more information, see Launching Auto Scaling instances // in a VPC (https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html) // in the Amazon EC2 Auto Scaling User Guide. // @@ -6949,7 +6945,7 @@ type CreateLaunchConfigurationInput struct { // The ID of a ClassicLink-enabled VPC to link your EC2-Classic instances to. // For more information, see ClassicLink (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html) // in the Amazon EC2 User Guide for Linux Instances and Linking EC2-Classic - // Instances to a VPC (https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html#as-ClassicLink) + // instances to a VPC (https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html#as-ClassicLink) // in the Amazon EC2 Auto Scaling User Guide. // // This parameter can only be used if you are launching EC2-Classic instances. @@ -6958,7 +6954,7 @@ type CreateLaunchConfigurationInput struct { // The IDs of one or more security groups for the specified ClassicLink-enabled // VPC. For more information, see ClassicLink (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html) // in the Amazon EC2 User Guide for Linux Instances and Linking EC2-Classic - // Instances to a VPC (https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html#as-ClassicLink) + // instances to a VPC (https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html#as-ClassicLink) // in the Amazon EC2 Auto Scaling User Guide. // // If you specify the ClassicLinkVPCId parameter, you must specify this parameter. @@ -6980,8 +6976,8 @@ type CreateLaunchConfigurationInput struct { // with the IAM role for the instance. The instance profile contains the IAM // role. // - // For more information, see IAM Role for Applications That Run on Amazon EC2 - // Instances (https://docs.aws.amazon.com/autoscaling/ec2/userguide/us-iam-role.html) + // For more information, see IAM role for applications that run on Amazon EC2 + // instances (https://docs.aws.amazon.com/autoscaling/ec2/userguide/us-iam-role.html) // in the Amazon EC2 Auto Scaling User Guide. IamInstanceProfile *string `min:"1" type:"string"` @@ -6999,7 +6995,7 @@ type CreateLaunchConfigurationInput struct { // To create a launch configuration with a block device mapping or override // any other instance attributes, specify them as part of the same request. // - // For more information, see Create a Launch Configuration Using an EC2 Instance + // For more information, see Creating a launch configuration using an EC2 instance // (https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-lc-with-instanceID.html) // in the Amazon EC2 Auto Scaling User Guide. // @@ -7014,7 +7010,7 @@ type CreateLaunchConfigurationInput struct { // When detailed monitoring is enabled, Amazon CloudWatch generates metrics // every minute and your account is charged a fee. When you disable detailed // monitoring, CloudWatch generates metrics every 5 minutes. For more information, - // see Configure Monitoring for Auto Scaling Instances (https://docs.aws.amazon.com/autoscaling/latest/userguide/as-instance-monitoring.html#enable-as-instance-metrics) + // see Configure Monitoring for Auto Scaling Instances (https://docs.aws.amazon.com/autoscaling/latest/userguide/enable-as-instance-metrics.html) // in the Amazon EC2 Auto Scaling User Guide. InstanceMonitoring *InstanceMonitoring `type:"structure"` @@ -7041,9 +7037,9 @@ type CreateLaunchConfigurationInput struct { // LaunchConfigurationName is a required field LaunchConfigurationName *string `min:"1" type:"string" required:"true"` - // The metadata options for the instances. For more information, see Instance - // Metadata and User Data (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) - // in the Amazon EC2 User Guide for Linux Instances. + // The metadata options for the instances. For more information, see Configuring + // the Instance Metadata Options (https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-config.html#launch-configurations-imds) + // in the Amazon EC2 Auto Scaling User Guide. MetadataOptions *InstanceMetadataOptions `type:"structure"` // The tenancy of the instance. An instance with dedicated tenancy runs on isolated, @@ -7056,7 +7052,8 @@ type CreateLaunchConfigurationInput struct { // If you specify PlacementTenancy, you must specify at least one subnet for // VPCZoneIdentifier when you create your group. // - // For more information, see Instance Placement Tenancy (https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html#as-vpc-tenancy) + // For more information, see Configuring instance tenancy with Amazon EC2 Auto + // Scaling (https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling/ec2/userguide/auto-scaling-dedicated-instances.html) // in the Amazon EC2 Auto Scaling User Guide. // // Valid Values: default | dedicated @@ -7079,8 +7076,8 @@ type CreateLaunchConfigurationInput struct { // The maximum hourly price to be paid for any Spot Instance launched to fulfill // the request. Spot Instances are launched when the price you specify exceeds - // the current Spot price. For more information, see Launching Spot Instances - // in Your Auto Scaling Group (https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-launch-spot-instances.html) + // the current Spot price. For more information, see Requesting Spot Instances + // (https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-launch-spot-instances.html) // in the Amazon EC2 Auto Scaling User Guide. // // When you change your maximum price by creating a new launch configuration, @@ -7089,7 +7086,7 @@ type CreateLaunchConfigurationInput struct { SpotPrice *string `min:"1" type:"string"` // The Base64-encoded user data to make available to the launched EC2 instances. - // For more information, see Instance Metadata and User Data (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) + // For more information, see Instance metadata and user data (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) // in the Amazon EC2 User Guide for Linux Instances. UserData *string `type:"string"` } @@ -8042,9 +8039,9 @@ func (s *DescribeAdjustmentTypesOutput) SetAdjustmentTypes(v []*AdjustmentType) type DescribeAutoScalingGroupsInput struct { _ struct{} `type:"structure"` - // The names of the Auto Scaling groups. Each name can be a maximum of 1600 - // characters. By default, you can only specify up to 50 names. You can optionally - // increase this limit using the MaxRecords parameter. + // The names of the Auto Scaling groups. By default, you can only specify up + // to 50 names. You can optionally increase this limit using the MaxRecords + // parameter. // // If you omit this parameter, all Auto Scaling groups are described. AutoScalingGroupNames []*string `type:"list"` @@ -9700,8 +9697,8 @@ type Ebs struct { // customer managed CMK, whether or not the snapshot was encrypted. // // For more information, see Using Encryption with EBS-Backed AMIs (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIEncryption.html) - // in the Amazon EC2 User Guide for Linux Instances and Required CMK Key Policy - // for Use with Encrypted Volumes (https://docs.aws.amazon.com/autoscaling/ec2/userguide/key-policy-requirements-EBS-encryption.html) + // in the Amazon EC2 User Guide for Linux Instances and Required CMK key policy + // for use with encrypted volumes (https://docs.aws.amazon.com/autoscaling/ec2/userguide/key-policy-requirements-EBS-encryption.html) // in the Amazon EC2 Auto Scaling User Guide. Encrypted *bool `type:"boolean"` @@ -10085,7 +10082,7 @@ type ExecutePolicyInput struct { // complete before executing the policy. // // Valid only if the policy type is SimpleScaling. For more information, see - // Scaling Cooldowns for Amazon EC2 Auto Scaling (https://docs.aws.amazon.com/autoscaling/ec2/userguide/Cooldown.html) + // Scaling cooldowns for Amazon EC2 Auto Scaling (https://docs.aws.amazon.com/autoscaling/ec2/userguide/Cooldown.html) // in the Amazon EC2 Auto Scaling User Guide. HonorCooldown *bool `type:"boolean"` @@ -10300,7 +10297,7 @@ func (s *FailedScheduledUpdateGroupActionRequest) SetScheduledActionName(v strin // Describes a filter that is used to return a more specific list of results // when describing tags. // -// For more information, see Tagging Auto Scaling Groups and Instances (https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-tagging.html) +// For more information, see Tagging Auto Scaling groups and instances (https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-tagging.html) // in the Amazon EC2 Auto Scaling User Guide. type Filter struct { _ struct{} `type:"structure"` @@ -10352,6 +10349,9 @@ type Group struct { // AvailabilityZones is a required field AvailabilityZones []*string `min:"1" type:"list" required:"true"` + // Indicates whether Capacity Rebalancing is enabled. + CapacityRebalance *bool `type:"boolean"` + // The date and time the group was created. // // CreatedTime is a required field @@ -10471,6 +10471,12 @@ func (s *Group) SetAvailabilityZones(v []*string) *Group { return s } +// SetCapacityRebalance sets the CapacityRebalance field's value. +func (s *Group) SetCapacityRebalance(v bool) *Group { + s.CapacityRebalance = &v + return s +} + // SetCreatedTime sets the CreatedTime field's value. func (s *Group) SetCreatedTime(v time.Time) *Group { s.CreatedTime = &v @@ -10848,9 +10854,9 @@ func (s *InstanceDetails) SetWeightedCapacity(v string) *InstanceDetails { return s } -// The metadata options for the instances. For more information, see Instance -// Metadata and User Data (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) -// in the Amazon EC2 User Guide for Linux Instances. +// The metadata options for the instances. For more information, see Configuring +// the Instance Metadata Options (https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-config.html#launch-configurations-imds) +// in the Amazon EC2 Auto Scaling User Guide. type InstanceMetadataOptions struct { _ struct{} `type:"structure"` @@ -11062,7 +11068,7 @@ func (s *InstanceRefresh) SetStatusReason(v string) *InstanceRefresh { // The instances distribution specifies the distribution of On-Demand Instances // and Spot Instances, the maximum price to pay for Spot Instances, and how // the Auto Scaling group allocates instance types to fulfill On-Demand and -// Spot capacity. +// Spot capacities. // // When you update SpotAllocationStrategy, SpotInstancePools, or SpotMaxPrice, // this update action does not deploy any changes across the running Amazon @@ -11074,75 +11080,49 @@ func (s *InstanceRefresh) SetStatusReason(v string) *InstanceRefresh { type InstancesDistribution struct { _ struct{} `type:"structure"` - // Indicates how to allocate instance types to fulfill On-Demand capacity. - // - // The only valid value is prioritized, which is also the default value. This - // strategy uses the order of instance type overrides for the LaunchTemplate - // to define the launch priority of each instance type. The first instance type - // in the array is prioritized higher than the last. If all your On-Demand capacity - // cannot be fulfilled using your highest priority instance, then the Auto Scaling - // groups launches the remaining capacity using the second priority instance - // type, and so on. + // Indicates how to allocate instance types to fulfill On-Demand capacity. The + // only valid value is prioritized, which is also the default value. This strategy + // uses the order of instance types in the overrides to define the launch priority + // of each instance type. The first instance type in the array is prioritized + // higher than the last. If all your On-Demand capacity cannot be fulfilled + // using your highest priority instance, then the Auto Scaling groups launches + // the remaining capacity using the second priority instance type, and so on. OnDemandAllocationStrategy *string `type:"string"` // The minimum amount of the Auto Scaling group's capacity that must be fulfilled // by On-Demand Instances. This base portion is provisioned first as your group - // scales. - // - // Default if not set is 0. If you leave it set to 0, On-Demand Instances are - // launched as a percentage of the Auto Scaling group's desired capacity, per - // the OnDemandPercentageAboveBaseCapacity setting. - // - // An update to this setting means a gradual replacement of instances to maintain - // the specified number of On-Demand Instances for your base capacity. When - // replacing instances, Amazon EC2 Auto Scaling launches new instances before - // terminating the old ones. + // scales. Defaults to 0 if not specified. If you specify weights for the instance + // types in the overrides, set the value of OnDemandBaseCapacity in terms of + // the number of capacity units, and not the number of instances. OnDemandBaseCapacity *int64 `type:"integer"` // Controls the percentages of On-Demand Instances and Spot Instances for your - // additional capacity beyond OnDemandBaseCapacity. - // - // Default if not set is 100. If you leave it set to 100, the percentages are - // 100% for On-Demand Instances and 0% for Spot Instances. - // - // An update to this setting means a gradual replacement of instances to maintain - // the percentage of On-Demand Instances for your additional capacity above - // the base capacity. When replacing instances, Amazon EC2 Auto Scaling launches - // new instances before terminating the old ones. - // - // Valid Range: Minimum value of 0. Maximum value of 100. + // additional capacity beyond OnDemandBaseCapacity. Expressed as a number (for + // example, 20 specifies 20% On-Demand Instances, 80% Spot Instances). Defaults + // to 100 if not specified. If set to 100, only On-Demand Instances are provisioned. OnDemandPercentageAboveBaseCapacity *int64 `type:"integer"` - // Indicates how to allocate instances across Spot Instance pools. - // - // If the allocation strategy is lowest-price, the Auto Scaling group launches - // instances using the Spot pools with the lowest price, and evenly allocates - // your instances across the number of Spot pools that you specify. If the allocation - // strategy is capacity-optimized, the Auto Scaling group launches instances - // using Spot pools that are optimally chosen based on the available Spot capacity. - // - // The default Spot allocation strategy for calls that you make through the - // API, the AWS CLI, or the AWS SDKs is lowest-price. The default Spot allocation - // strategy for the AWS Management Console is capacity-optimized. - // - // Valid values: lowest-price | capacity-optimized + // Indicates how to allocate instances across Spot Instance pools. If the allocation + // strategy is lowest-price, the Auto Scaling group launches instances using + // the Spot pools with the lowest price, and evenly allocates your instances + // across the number of Spot pools that you specify. If the allocation strategy + // is capacity-optimized, the Auto Scaling group launches instances using Spot + // pools that are optimally chosen based on the available Spot capacity. Defaults + // to lowest-price if not specified. SpotAllocationStrategy *string `type:"string"` // The number of Spot Instance pools across which to allocate your Spot Instances. - // The Spot pools are determined from the different instance types in the Overrides - // array of LaunchTemplate. Default if not set is 2. - // - // Used only when the Spot allocation strategy is lowest-price. + // The Spot pools are determined from the different instance types in the overrides. + // Defaults to 2 if not specified. Valid only when the Spot allocation strategy + // is lowest-price. // // Valid Range: Minimum value of 1. Maximum value of 20. SpotInstancePools *int64 `type:"integer"` // The maximum price per unit hour that you are willing to pay for a Spot Instance. // If you leave the value of this parameter blank (which is the default), the - // maximum Spot price is set at the On-Demand price. - // - // To remove a value that you previously set, include the parameter but leave - // the value blank. + // maximum Spot price is set at the On-Demand price. To remove a value that + // you previously set, include the parameter but leave the value blank. SpotMaxPrice *string `type:"string"` } @@ -11197,23 +11177,20 @@ type LaunchConfiguration struct { _ struct{} `type:"structure"` // For Auto Scaling groups that are running in a VPC, specifies whether to assign - // a public IP address to the group's instances. - // - // For more information, see Launching Auto Scaling Instances in a VPC (https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html) + // a public IP address to the group's instances. For more information, see Launching + // Auto Scaling instances in a VPC (https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html) // in the Amazon EC2 Auto Scaling User Guide. AssociatePublicIpAddress *bool `type:"boolean"` // A block device mapping, which specifies the block devices for the instance. - // // For more information, see Block Device Mapping (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html) // in the Amazon EC2 User Guide for Linux Instances. BlockDeviceMappings []*BlockDeviceMapping `type:"list"` // The ID of a ClassicLink-enabled VPC to link your EC2-Classic instances to. - // // For more information, see ClassicLink (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html) // in the Amazon EC2 User Guide for Linux Instances and Linking EC2-Classic - // Instances to a VPC (https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html#as-ClassicLink) + // instances to a VPC (https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html#as-ClassicLink) // in the Amazon EC2 Auto Scaling User Guide. ClassicLinkVPCId *string `min:"1" type:"string"` @@ -11221,7 +11198,7 @@ type LaunchConfiguration struct { // // For more information, see ClassicLink (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html) // in the Amazon EC2 User Guide for Linux Instances and Linking EC2-Classic - // Instances to a VPC (https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html#as-ClassicLink) + // instances to a VPC (https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html#as-ClassicLink) // in the Amazon EC2 Auto Scaling User Guide. ClassicLinkVPCSecurityGroups []*string `type:"list"` @@ -11231,23 +11208,19 @@ type LaunchConfiguration struct { CreatedTime *time.Time `type:"timestamp" required:"true"` // Specifies whether the launch configuration is optimized for EBS I/O (true) - // or not (false). - // - // For more information, see Amazon EBS-Optimized Instances (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) - // in the Amazon EC2 User Guide for Linux Instances. + // or not (false). For more information, see Amazon EBS-Optimized Instances + // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) in + // the Amazon EC2 User Guide for Linux Instances. EbsOptimized *bool `type:"boolean"` // The name or the Amazon Resource Name (ARN) of the instance profile associated // with the IAM role for the instance. The instance profile contains the IAM - // role. - // - // For more information, see IAM Role for Applications That Run on Amazon EC2 - // Instances (https://docs.aws.amazon.com/autoscaling/ec2/userguide/us-iam-role.html) + // role. For more information, see IAM role for applications that run on Amazon + // EC2 instances (https://docs.aws.amazon.com/autoscaling/ec2/userguide/us-iam-role.html) // in the Amazon EC2 Auto Scaling User Guide. IamInstanceProfile *string `min:"1" type:"string"` // The ID of the Amazon Machine Image (AMI) to use to launch your EC2 instances. - // // For more information, see Finding an AMI (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html) // in the Amazon EC2 User Guide for Linux Instances. // @@ -11258,7 +11231,7 @@ type LaunchConfiguration struct { // or basic (false) monitoring. // // For more information, see Configure Monitoring for Auto Scaling Instances - // (https://docs.aws.amazon.com/autoscaling/latest/userguide/as-instance-monitoring.html#enable-as-instance-metrics) + // (https://docs.aws.amazon.com/autoscaling/latest/userguide/enable-as-instance-metrics.html) // in the Amazon EC2 Auto Scaling User Guide. InstanceMonitoring *InstanceMonitoring `type:"structure"` @@ -11288,16 +11261,17 @@ type LaunchConfiguration struct { // LaunchConfigurationName is a required field LaunchConfigurationName *string `min:"1" type:"string" required:"true"` - // The metadata options for the instances. For more information, see Instance - // Metadata and User Data (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) - // in the Amazon EC2 User Guide for Linux Instances. + // The metadata options for the instances. For more information, see Configuring + // the Instance Metadata Options (https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-config.html#launch-configurations-imds) + // in the Amazon EC2 Auto Scaling User Guide. MetadataOptions *InstanceMetadataOptions `type:"structure"` // The tenancy of the instance, either default or dedicated. An instance with // dedicated tenancy runs on isolated, single-tenant hardware and can only be // launched into a VPC. // - // For more information, see Instance Placement Tenancy (https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-in-vpc.html#as-vpc-tenancy) + // For more information, see Configuring instance tenancy with Amazon EC2 Auto + // Scaling (https://docs.aws.amazon.com/autoscaling/ec2/userguide/auto-scaling-dedicated-instances.html) // in the Amazon EC2 Auto Scaling User Guide. PlacementTenancy *string `min:"1" type:"string"` @@ -11305,24 +11279,20 @@ type LaunchConfiguration struct { RamdiskId *string `min:"1" type:"string"` // A list that contains the security groups to assign to the instances in the - // Auto Scaling group. - // - // For more information, see Security Groups for Your VPC (https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html) + // Auto Scaling group. For more information, see Security Groups for Your VPC + // (https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html) // in the Amazon Virtual Private Cloud User Guide. SecurityGroups []*string `type:"list"` // The maximum hourly price to be paid for any Spot Instance launched to fulfill // the request. Spot Instances are launched when the price you specify exceeds - // the current Spot price. - // - // For more information, see Launching Spot Instances in Your Auto Scaling Group + // the current Spot price. For more information, see Requesting Spot Instances // (https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-launch-spot-instances.html) // in the Amazon EC2 Auto Scaling User Guide. SpotPrice *string `min:"1" type:"string"` // The Base64-encoded user data to make available to the launched EC2 instances. - // - // For more information, see Instance Metadata and User Data (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) + // For more information, see Instance metadata and user data (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) // in the Amazon EC2 User Guide for Linux Instances. UserData *string `type:"string"` } @@ -11470,16 +11440,14 @@ func (s *LaunchConfiguration) SetUserData(v string) *LaunchConfiguration { type LaunchTemplate struct { _ struct{} `type:"structure"` - // The launch template to use. You must specify either the launch template ID - // or launch template name in the request. + // The launch template to use. LaunchTemplateSpecification *LaunchTemplateSpecification `type:"structure"` // Any parameters that you specify override the same parameters in the launch // template. Currently, the only supported override is instance type. You can - // specify between 1 and 20 instance types. - // - // If not provided, Amazon EC2 Auto Scaling will use the instance type specified - // in the launch template to launch instances. + // specify between 1 and 20 instance types. If not provided, Amazon EC2 Auto + // Scaling will use the instance type specified in the launch template when + // it launches an instance. Overrides []*LaunchTemplateOverrides `type:"list"` } @@ -11538,22 +11506,22 @@ func (s *LaunchTemplate) SetOverrides(v []*LaunchTemplateOverrides) *LaunchTempl type LaunchTemplateOverrides struct { _ struct{} `type:"structure"` - // The instance type. You must use an instance type that is supported in your - // requested Region and Availability Zones. - // - // For information about available instance types, see Available Instance Types - // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#AvailableInstanceTypes) + // The instance type, such as m3.xlarge. You must use an instance type that + // is supported in your requested Region and Availability Zones. For information + // about available instance types, see Available instance types (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#AvailableInstanceTypes) // in the Amazon Elastic Compute Cloud User Guide. InstanceType *string `min:"1" type:"string"` - // The number of capacity units, which gives the instance type a proportional - // weight to other instance types. For example, larger instance types are generally - // weighted more than smaller instance types. These are the same units that - // you chose to set the desired capacity in terms of instances, or a performance - // attribute such as vCPUs, memory, or I/O. - // - // For more information, see Instance Weighting for Amazon EC2 Auto Scaling - // (https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-instance-weighting.html) + // The number of capacity units provided by the specified instance type in terms + // of virtual CPUs, memory, storage, throughput, or other relative performance + // characteristic. When a Spot or On-Demand Instance is provisioned, the capacity + // units count toward the desired capacity. Amazon EC2 Auto Scaling provisions + // instances until the desired capacity is totally fulfilled, even if this results + // in an overage. For example, if there are 2 units remaining to fulfill capacity, + // and Amazon EC2 Auto Scaling can only provision an instance with a WeightedCapacity + // of 5 units, the instance is provisioned, and the desired capacity is exceeded + // by 3 units. For more information, see Instance weighting for Amazon EC2 Auto + // Scaling (https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-instance-weighting.html) // in the Amazon EC2 Auto Scaling User Guide. // // Valid Range: Minimum value of 1. Maximum value of 999. @@ -11602,8 +11570,8 @@ func (s *LaunchTemplateOverrides) SetWeightedCapacity(v string) *LaunchTemplateO // that can be used by an Auto Scaling group to configure Amazon EC2 instances. // // The launch template that is specified must be configured for use with an -// Auto Scaling group. For more information, see Creating a Launch Template -// for an Auto Scaling Group (https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-template.html) +// Auto Scaling group. For more information, see Creating a launch template +// for an Auto Scaling group (https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-template.html) // in the Amazon EC2 Auto Scaling User Guide. type LaunchTemplateSpecification struct { _ struct{} `type:"structure"` @@ -11612,30 +11580,24 @@ type LaunchTemplateSpecification struct { // DescribeLaunchTemplates (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeLaunchTemplates.html) // API operation. New launch templates can be created using the Amazon EC2 CreateLaunchTemplate // (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateLaunchTemplate.html) - // API. - // - // You must specify either a template ID or a template name. + // API. You must specify either a LaunchTemplateId or a LaunchTemplateName. LaunchTemplateId *string `min:"1" type:"string"` // The name of the launch template. To get the template name, use the Amazon // EC2 DescribeLaunchTemplates (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeLaunchTemplates.html) // API operation. New launch templates can be created using the Amazon EC2 CreateLaunchTemplate // (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateLaunchTemplate.html) - // API. - // - // You must specify either a template ID or a template name. + // API. You must specify either a LaunchTemplateId or a LaunchTemplateName. LaunchTemplateName *string `min:"3" type:"string"` // The version number, $Latest, or $Default. To get the version number, use // the Amazon EC2 DescribeLaunchTemplateVersions (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeLaunchTemplateVersions.html) // API operation. New launch template versions can be created using the Amazon // EC2 CreateLaunchTemplateVersion (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateLaunchTemplateVersion.html) - // API. - // - // If the value is $Latest, Amazon EC2 Auto Scaling selects the latest version - // of the launch template when launching instances. If the value is $Default, - // Amazon EC2 Auto Scaling selects the default version of the launch template - // when launching instances. The default value is $Default. + // API. If the value is $Latest, Amazon EC2 Auto Scaling selects the latest + // version of the launch template when launching instances. If the value is + // $Default, Amazon EC2 Auto Scaling selects the default version of the launch + // template when launching instances. The default value is $Default. Version *string `min:"1" type:"string"` } @@ -11824,7 +11786,7 @@ func (s *LifecycleHook) SetRoleARN(v string) *LifecycleHook { // // If you finish before the timeout period ends, complete the lifecycle action. // -// For more information, see Amazon EC2 Auto Scaling Lifecycle Hooks (https://docs.aws.amazon.com/autoscaling/ec2/userguide/lifecycle-hooks.html) +// For more information, see Amazon EC2 Auto Scaling lifecycle hooks (https://docs.aws.amazon.com/autoscaling/ec2/userguide/lifecycle-hooks.html) // in the Amazon EC2 Auto Scaling User Guide. type LifecycleHookSpecification struct { _ struct{} `type:"structure"` @@ -12200,19 +12162,16 @@ func (s *MetricGranularityType) SetGranularity(v string) *MetricGranularityType // You can create a mixed instances policy for a new Auto Scaling group, or // you can create it for an existing group by updating the group to specify // MixedInstancesPolicy as the top-level parameter instead of a launch configuration -// or launch template. For more information, see CreateAutoScalingGroup and -// UpdateAutoScalingGroup. +// or launch template. type MixedInstancesPolicy struct { _ struct{} `type:"structure"` - // The instances distribution to use. - // - // If you leave this parameter unspecified, the value for each parameter in - // InstancesDistribution uses a default value. + // Specifies the instances distribution. If not provided, the value for each + // parameter in InstancesDistribution uses a default value. InstancesDistribution *InstancesDistribution `type:"structure"` - // The launch template and instance types (overrides). - // + // Specifies the launch template to use and optionally the instance types (overrides) + // that are used to provision EC2 instances to fulfill On-Demand and Spot capacities. // Required when creating a mixed instances policy. LaunchTemplate *LaunchTemplate `type:"structure"` } @@ -12333,16 +12292,18 @@ type PredefinedMetricSpecification struct { // a resource label unless the metric type is ALBRequestCountPerTarget and there // is a target group attached to the Auto Scaling group. // - // Elastic Load Balancing sends data about your load balancers to Amazon CloudWatch. - // CloudWatch collects the data and specifies the format to use to access the - // data. The format is app/load-balancer-name/load-balancer-id/targetgroup/target-group-name/target-group-id - // , where + // You create the resource label by appending the final portion of the load + // balancer ARN and the final portion of the target group ARN into a single + // value, separated by a forward slash (/). The format is app///targetgroup//, + // where: + // + // * app// is the final portion of + // the load balancer ARN // - // * app/load-balancer-name/load-balancer-id is the final portion of the - // load balancer ARN, and + // * targetgroup// is the final portion + // of the target group ARN. // - // * targetgroup/target-group-name/target-group-id is the final portion of - // the target group ARN. + // This is an example: app/EC2Co-EcsEl-1TKLTMITMM0EO/f37c06a68c1748aa/targetgroup/EC2Co-Defau-LDNM7Q3ZH1ZN/6d4ea56ca2d6a18d. // // To find the ARN for an Application Load Balancer, use the DescribeLoadBalancers // (https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) @@ -12392,7 +12353,7 @@ func (s *PredefinedMetricSpecification) SetResourceLabel(v string) *PredefinedMe // Describes a process type. // -// For more information, see Scaling Processes (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-suspend-resume-processes.html#process-types) +// For more information, see Scaling processes (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-suspend-resume-processes.html#process-types) // in the Amazon EC2 Auto Scaling User Guide. type ProcessType struct { _ struct{} `type:"structure"` @@ -12698,7 +12659,7 @@ type PutScalingPolicyInput struct { // and PercentChangeInCapacity. // // Required if the policy type is StepScaling or SimpleScaling. For more information, - // see Scaling Adjustment Types (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-simple-step.html#as-scaling-adjustment) + // see Scaling adjustment types (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-simple-step.html#as-scaling-adjustment) // in the Amazon EC2 Auto Scaling User Guide. AdjustmentType *string `min:"1" type:"string"` @@ -12712,13 +12673,13 @@ type PutScalingPolicyInput struct { // for the Auto Scaling group. // // Valid only if the policy type is SimpleScaling. For more information, see - // Scaling Cooldowns for Amazon EC2 Auto Scaling (https://docs.aws.amazon.com/autoscaling/ec2/userguide/Cooldown.html) + // Scaling cooldowns for Amazon EC2 Auto Scaling (https://docs.aws.amazon.com/autoscaling/ec2/userguide/Cooldown.html) // in the Amazon EC2 Auto Scaling User Guide. Cooldown *int64 `type:"integer"` // Indicates whether the scaling policy is enabled or disabled. The default - // is enabled. For more information, see Disabling a Scaling Policy for an Auto - // Scaling Group (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-enable-disable-scaling-policy.html) + // is enabled. For more information, see Disabling a scaling policy for an Auto + // Scaling group (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-enable-disable-scaling-policy.html) // in the Amazon EC2 Auto Scaling User Guide. Enabled *bool `type:"boolean"` @@ -12744,7 +12705,7 @@ type PutScalingPolicyInput struct { // of 2, Amazon EC2 Auto Scaling scales out the group by 2 instances. // // Valid only if the policy type is StepScaling or SimpleScaling. For more information, - // see Scaling Adjustment Types (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-simple-step.html#as-scaling-adjustment) + // see Scaling adjustment types (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-simple-step.html#as-scaling-adjustment) // in the Amazon EC2 Auto Scaling User Guide. // // Some Auto Scaling groups use instance weights. In this case, set the MinAdjustmentMagnitude @@ -13329,8 +13290,8 @@ type ScalingPolicy struct { // // * SimpleScaling (default) // - // For more information, see Target Tracking Scaling Policies (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-target-tracking.html) - // and Step and Simple Scaling Policies (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-simple-step.html) + // For more information, see Target tracking scaling policies (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-target-tracking.html) + // and Step and simple scaling policies (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-simple-step.html) // in the Amazon EC2 Auto Scaling User Guide. PolicyType *string `min:"1" type:"string"` @@ -13926,7 +13887,7 @@ type SetInstanceProtectionInput struct { // AutoScalingGroupName is a required field AutoScalingGroupName *string `min:"1" type:"string" required:"true"` - // One or more instance IDs. + // One or more instance IDs. You can specify up to 50 instances. // // InstanceIds is a required field InstanceIds []*string `type:"list" required:"true"` @@ -14125,7 +14086,7 @@ func (s *StartInstanceRefreshOutput) SetInstanceRefreshId(v string) *StartInstan // // * The upper and lower bound can't be null in the same step adjustment. // -// For more information, see Step Adjustments (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-simple-step.html#as-scaling-steps) +// For more information, see Step adjustments (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-simple-step.html#as-scaling-steps) // in the Amazon EC2 Auto Scaling User Guide. type StepAdjustment struct { _ struct{} `type:"structure"` @@ -14210,9 +14171,9 @@ func (s SuspendProcessesOutput) GoString() string { return s.String() } -// Describes an automatic scaling process that has been suspended. +// Describes an auto scaling process that has been suspended. // -// For more information, see Scaling Processes (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-suspend-resume-processes.html#process-types) +// For more information, see Scaling processes (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-suspend-resume-processes.html#process-types) // in the Amazon EC2 Auto Scaling User Guide. type SuspendedProcess struct { _ struct{} `type:"structure"` @@ -14558,30 +14519,32 @@ type UpdateAutoScalingGroupInput struct { // One or more Availability Zones for the group. AvailabilityZones []*string `min:"1" type:"list"` + // Enables or disables Capacity Rebalancing. For more information, see Amazon + // EC2 Auto Scaling Capacity Rebalancing (https://docs.aws.amazon.com/autoscaling/ec2/userguide/capacity-rebalance.html) + // in the Amazon EC2 Auto Scaling User Guide. + CapacityRebalance *bool `type:"boolean"` + // The amount of time, in seconds, after a scaling activity completes before - // another scaling activity can start. The default value is 300. - // - // This setting applies when using simple scaling policies, but not when using - // other scaling policies or scheduled scaling. For more information, see Scaling - // Cooldowns for Amazon EC2 Auto Scaling (https://docs.aws.amazon.com/autoscaling/ec2/userguide/Cooldown.html) + // another scaling activity can start. The default value is 300. This setting + // applies when using simple scaling policies, but not when using other scaling + // policies or scheduled scaling. For more information, see Scaling cooldowns + // for Amazon EC2 Auto Scaling (https://docs.aws.amazon.com/autoscaling/ec2/userguide/Cooldown.html) // in the Amazon EC2 Auto Scaling User Guide. DefaultCooldown *int64 `type:"integer"` // The desired capacity is the initial capacity of the Auto Scaling group after - // this operation completes and the capacity it attempts to maintain. - // - // This number must be greater than or equal to the minimum size of the group - // and less than or equal to the maximum size of the group. + // this operation completes and the capacity it attempts to maintain. This number + // must be greater than or equal to the minimum size of the group and less than + // or equal to the maximum size of the group. DesiredCapacity *int64 `type:"integer"` // The amount of time, in seconds, that Amazon EC2 Auto Scaling waits before // checking the health status of an EC2 instance that has come into service. - // The default value is 0. - // - // For more information, see Health Check Grace Period (https://docs.aws.amazon.com/autoscaling/ec2/userguide/healthcheck.html#health-check-grace-period) + // The default value is 0. For more information, see Health check grace period + // (https://docs.aws.amazon.com/autoscaling/ec2/userguide/healthcheck.html#health-check-grace-period) // in the Amazon EC2 Auto Scaling User Guide. // - // Required if you are adding an ELB health check. + // Conditional: Required if you are adding an ELB health check. HealthCheckGracePeriod *int64 `type:"integer"` // The service to use for the health checks. The valid values are EC2 and ELB. @@ -14597,23 +14560,14 @@ type UpdateAutoScalingGroupInput struct { // The launch template and version to use to specify the updates. If you specify // LaunchTemplate in your update request, you can't specify LaunchConfigurationName // or MixedInstancesPolicy. - // - // For more information, see LaunchTemplateSpecification (https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_LaunchTemplateSpecification.html) - // in the Amazon EC2 Auto Scaling API Reference. LaunchTemplate *LaunchTemplateSpecification `type:"structure"` // The maximum amount of time, in seconds, that an instance can be in service. - // The default is null. - // - // This parameter is optional, but if you specify a value for it, you must specify - // a value of at least 604,800 seconds (7 days). To clear a previously set value, - // specify a new value of 0. - // - // For more information, see Replacing Auto Scaling Instances Based on Maximum - // Instance Lifetime (https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-max-instance-lifetime.html) + // The default is null. If specified, the value must be either 0 or a number + // equal to or greater than 86,400 seconds (1 day). To clear a previously set + // value, specify a new value of 0. For more information, see Replacing Auto + // Scaling instances based on maximum instance lifetime (https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-max-instance-lifetime.html) // in the Amazon EC2 Auto Scaling User Guide. - // - // Valid Range: Minimum value of 0. MaxInstanceLifetime *int64 `type:"integer"` // The maximum size of the Auto Scaling group. @@ -14628,51 +14582,42 @@ type UpdateAutoScalingGroupInput struct { // The minimum size of the Auto Scaling group. MinSize *int64 `type:"integer"` - // An embedded object that specifies a mixed instances policy. - // - // In your call to UpdateAutoScalingGroup, you can make changes to the policy - // that is specified. All optional parameters are left unchanged if not specified. - // - // For more information, see MixedInstancesPolicy (https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_MixedInstancesPolicy.html) - // in the Amazon EC2 Auto Scaling API Reference and Auto Scaling Groups with - // Multiple Instance Types and Purchase Options (https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-purchase-options.html) + // An embedded object that specifies a mixed instances policy. When you make + // changes to an existing policy, all optional parameters are left unchanged + // if not specified. For more information, see Auto Scaling Groups with Multiple + // Instance Types and Purchase Options (https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-purchase-options.html) // in the Amazon EC2 Auto Scaling User Guide. MixedInstancesPolicy *MixedInstancesPolicy `type:"structure"` // Indicates whether newly launched instances are protected from termination - // by Amazon EC2 Auto Scaling when scaling in. - // - // For more information about preventing instances from terminating on scale - // in, see Instance Protection (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection) + // by Amazon EC2 Auto Scaling when scaling in. For more information about preventing + // instances from terminating on scale in, see Instance scale-in protection + // (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection) // in the Amazon EC2 Auto Scaling User Guide. NewInstancesProtectedFromScaleIn *bool `type:"boolean"` - // The name of the placement group into which to launch your instances, if any. - // A placement group is a logical grouping of instances within a single Availability - // Zone. You cannot specify multiple Availability Zones and a placement group. - // For more information, see Placement Groups (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html) + // The name of an existing placement group into which to launch your instances, + // if any. A placement group is a logical grouping of instances within a single + // Availability Zone. You cannot specify multiple Availability Zones and a placement + // group. For more information, see Placement Groups (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html) // in the Amazon EC2 User Guide for Linux Instances. PlacementGroup *string `min:"1" type:"string"` // The Amazon Resource Name (ARN) of the service-linked role that the Auto Scaling // group uses to call other AWS services on your behalf. For more information, - // see Service-Linked Roles (https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-service-linked-role.html) + // see Service-linked roles (https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-service-linked-role.html) // in the Amazon EC2 Auto Scaling User Guide. ServiceLinkedRoleARN *string `min:"1" type:"string"` - // A standalone termination policy or a list of termination policies used to - // select the instance to terminate. The policies are executed in the order - // that they are listed. - // - // For more information, see Controlling Which Instances Auto Scaling Terminates - // During Scale In (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html) + // A policy or a list of policies that are used to select the instances to terminate. + // The policies are executed in the order that you list them. For more information, + // see Controlling which Auto Scaling instances terminate during scale in (https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html) // in the Amazon EC2 Auto Scaling User Guide. TerminationPolicies []*string `type:"list"` - // A comma-separated list of subnet IDs for virtual private cloud (VPC). - // - // If you specify VPCZoneIdentifier with AvailabilityZones, the subnets that - // you specify for this parameter must reside in those Availability Zones. + // A comma-separated list of subnet IDs for a virtual private cloud (VPC). If + // you specify VPCZoneIdentifier with AvailabilityZones, the subnets that you + // specify for this parameter must reside in those Availability Zones. VPCZoneIdentifier *string `min:"1" type:"string"` } @@ -14742,6 +14687,12 @@ func (s *UpdateAutoScalingGroupInput) SetAvailabilityZones(v []*string) *UpdateA return s } +// SetCapacityRebalance sets the CapacityRebalance field's value. +func (s *UpdateAutoScalingGroupInput) SetCapacityRebalance(v bool) *UpdateAutoScalingGroupInput { + s.CapacityRebalance = &v + return s +} + // SetDefaultCooldown sets the DefaultCooldown field's value. func (s *UpdateAutoScalingGroupInput) SetDefaultCooldown(v int64) *UpdateAutoScalingGroupInput { s.DefaultCooldown = &v diff --git a/vendor/github.com/aws/aws-sdk-go/service/cloudwatch/api.go b/vendor/github.com/aws/aws-sdk-go/service/cloudwatch/api.go index 7a2d4b2d1..ae1dc7b93 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/cloudwatch/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/cloudwatch/api.go @@ -699,6 +699,10 @@ func (c *CloudWatch) DescribeAlarmsForMetricRequest(input *DescribeAlarmsForMetr // Retrieves the alarms for the specified metric. To filter the results, specify // a statistic, period, or unit. // +// This operation retrieves only standard alarms that are based on the specified +// metric. It does not return alarms based on math expressions that use the +// specified metric, or composite alarms that use the specified metric. +// // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. @@ -864,8 +868,7 @@ func (c *CloudWatch) DescribeInsightRulesRequest(input *DescribeInsightRulesInpu // DescribeInsightRules API operation for Amazon CloudWatch. // -// Returns a list of all the Contributor Insights rules in your account. All -// rules in your account are returned with a single operation. +// Returns a list of all the Contributor Insights rules in your account. // // For more information about Contributor Insights, see Using Contributor Insights // to Analyze High-Cardinality Data (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContributorInsights.html). @@ -2868,6 +2871,10 @@ func (c *CloudWatch) PutMetricDataRequest(input *PutMetricDataInput) (req *reque // information about specifying dimensions, see Publishing Metrics (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html) // in the Amazon CloudWatch User Guide. // +// You specify the time stamp to be associated with each data point. You can +// specify time stamps that are as much as two weeks before the current date, +// and as much as 2 hours after the current day and time. +// // Data points with time stamps from 24 hours ago or longer can take at least // 48 hours to become available for GetMetricData (https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html) // or GetMetricStatistics (https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricStatistics.html) @@ -4625,11 +4632,12 @@ func (s *DescribeAnomalyDetectorsOutput) SetNextToken(v string) *DescribeAnomaly type DescribeInsightRulesInput struct { _ struct{} `type:"structure"` - // This parameter is not currently used. Reserved for future use. If it is used - // in the future, the maximum value might be different. + // The maximum number of results to return in one operation. If you omit this + // parameter, the default of 500 is used. MaxResults *int64 `min:"1" type:"integer"` - // Reserved for future use. + // Include this value, if it was returned by the previous operation, to get + // the next set of rules. NextToken *string `type:"string"` } @@ -4674,7 +4682,8 @@ type DescribeInsightRulesOutput struct { // The rules returned by the operation. InsightRules []*InsightRule `type:"list"` - // Reserved for future use. + // If this parameter is present, it is a token that marks the start of the next + // batch of returned results. NextToken *string `type:"string"` } @@ -4713,7 +4722,8 @@ type Dimension struct { // Name is a required field Name *string `min:"1" type:"string" required:"true"` - // The value of the dimension. + // The value of the dimension. Dimension values cannot contain blank spaces + // or non-ASCII characters. // // Value is a required field Value *string `min:"1" type:"string" required:"true"` @@ -5379,8 +5389,8 @@ type GetMetricDataInput struct { // MetricDataQueries is a required field MetricDataQueries []*MetricDataQuery `type:"list" required:"true"` - // Include this value, if it was returned by the previous call, to get the next - // set of data points. + // Include this value, if it was returned by the previous GetMetricData operation, + // to get the next set of data points. NextToken *string `type:"string"` // The order in which data points should be returned. TimestampDescending returns @@ -6257,13 +6267,16 @@ func (s *ListDashboardsOutput) SetNextToken(v string) *ListDashboardsOutput { type ListMetricsInput struct { _ struct{} `type:"structure"` - // The dimensions to filter against. + // The dimensions to filter against. Only the dimensions that match exactly + // will be returned. Dimensions []*DimensionFilter `type:"list"` - // The name of the metric to filter against. + // The name of the metric to filter against. Only the metrics with names that + // match exactly will be returned. MetricName *string `min:"1" type:"string"` - // The namespace to filter against. + // The metric namespace to filter against. Only the namespace that matches exactly + // will be returned. Namespace *string `min:"1" type:"string"` // The token returned by a previous call to indicate that there is more data @@ -6610,7 +6623,7 @@ type MetricAlarm struct { // An array of MetricDataQuery structures, used in an alarm based on a metric // math expression. Each structure either retrieves a metric or performs a math // expression. One item in the Metrics array is the math expression that the - // alarm watches. This expression by designated by having ReturnValue set to + // alarm watches. This expression by designated by having ReturnData set to // true. Metrics []*MetricDataQuery `type:"list"` @@ -7400,8 +7413,6 @@ type PutAnomalyDetectorInput struct { // the model. You can specify as many as 10 time ranges. // // The configuration can also include the time zone to use for the metric. - // - // You can in Configuration *AnomalyDetectorConfiguration `type:"structure"` // The metric dimensions to create the anomaly detection model for. @@ -8029,8 +8040,8 @@ type PutMetricAlarmInput struct { // expression. // // One item in the Metrics array is the expression that the alarm watches. You - // designate this expression by setting ReturnValue to true for this object - // in the array. For more information, see MetricDataQuery (https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDataQuery.html). + // designate this expression by setting ReturnData to true for this object in + // the array. For more information, see MetricDataQuery (https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDataQuery.html). // // If you use the Metrics parameter, you cannot include the MetricName, Dimensions, // Period, Namespace, Statistic, or ExtendedStatistic parameters of PutMetricAlarm diff --git a/vendor/github.com/aws/aws-sdk-go/service/ec2/api.go b/vendor/github.com/aws/aws-sdk-go/service/ec2/api.go index a0bb5c159..e42da3f3a 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/ec2/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/ec2/api.go @@ -1190,6 +1190,98 @@ func (c *EC2) AssociateDhcpOptionsWithContext(ctx aws.Context, input *AssociateD return out, req.Send() } +const opAssociateEnclaveCertificateIamRole = "AssociateEnclaveCertificateIamRole" + +// AssociateEnclaveCertificateIamRoleRequest generates a "aws/request.Request" representing the +// client's request for the AssociateEnclaveCertificateIamRole operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See AssociateEnclaveCertificateIamRole for more information on using the AssociateEnclaveCertificateIamRole +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the AssociateEnclaveCertificateIamRoleRequest method. +// req, resp := client.AssociateEnclaveCertificateIamRoleRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateEnclaveCertificateIamRole +func (c *EC2) AssociateEnclaveCertificateIamRoleRequest(input *AssociateEnclaveCertificateIamRoleInput) (req *request.Request, output *AssociateEnclaveCertificateIamRoleOutput) { + op := &request.Operation{ + Name: opAssociateEnclaveCertificateIamRole, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &AssociateEnclaveCertificateIamRoleInput{} + } + + output = &AssociateEnclaveCertificateIamRoleOutput{} + req = c.newRequest(op, input, output) + return +} + +// AssociateEnclaveCertificateIamRole API operation for Amazon Elastic Compute Cloud. +// +// Associates an AWS Identity and Access Management (IAM) role with an AWS Certificate +// Manager (ACM) certificate. This enables the certificate to be used by the +// ACM for Nitro Enclaves application inside an enclave. For more information, +// see AWS Certificate Manager for Nitro Enclaves (https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave-refapp.html) +// in the AWS Nitro Enclaves User Guide. +// +// When the IAM role is associated with the ACM certificate, places the certificate, +// certificate chain, and encrypted private key in an Amazon S3 bucket that +// only the associated IAM role can access. The private key of the certificate +// is encrypted with an AWS-managed KMS customer master (CMK) that has an attached +// attestation-based CMK policy. +// +// To enable the IAM role to access the Amazon S3 object, you must grant it +// permission to call s3:GetObject on the Amazon S3 bucket returned by the command. +// To enable the IAM role to access the AWS KMS CMK, you must grant it permission +// to call kms:Decrypt on AWS KMS CMK returned by the command. For more information, +// see Grant the role permission to access the certificate and encryption key +// (https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave-refapp.html#add-policy) +// in the AWS Nitro Enclaves User Guide. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Elastic Compute Cloud's +// API operation AssociateEnclaveCertificateIamRole for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateEnclaveCertificateIamRole +func (c *EC2) AssociateEnclaveCertificateIamRole(input *AssociateEnclaveCertificateIamRoleInput) (*AssociateEnclaveCertificateIamRoleOutput, error) { + req, out := c.AssociateEnclaveCertificateIamRoleRequest(input) + return out, req.Send() +} + +// AssociateEnclaveCertificateIamRoleWithContext is the same as AssociateEnclaveCertificateIamRole with the addition of +// the ability to pass a context and additional request options. +// +// See AssociateEnclaveCertificateIamRole for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *EC2) AssociateEnclaveCertificateIamRoleWithContext(ctx aws.Context, input *AssociateEnclaveCertificateIamRoleInput, opts ...request.Option) (*AssociateEnclaveCertificateIamRoleOutput, error) { + req, out := c.AssociateEnclaveCertificateIamRoleRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opAssociateIamInstanceProfile = "AssociateIamInstanceProfile" // AssociateIamInstanceProfileRequest generates a "aws/request.Request" representing the @@ -7532,6 +7624,10 @@ func (c *EC2) CreateVpcEndpointRequest(input *CreateVpcEndpointInput) (req *requ // the subnets in which to create an endpoint, and the security groups to associate // with the endpoint network interface. // +// A GatewayLoadBalancer endpoint is a network interface in your subnet that +// serves an endpoint for communicating with a Gateway Load Balancer that you've +// configured as a VPC endpoint service. +// // Use DescribeVpcEndpointServices to get a list of supported services. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -7687,12 +7783,19 @@ func (c *EC2) CreateVpcEndpointServiceConfigurationRequest(input *CreateVpcEndpo // CreateVpcEndpointServiceConfiguration API operation for Amazon Elastic Compute Cloud. // // Creates a VPC endpoint service configuration to which service consumers (AWS -// accounts, IAM users, and IAM roles) can connect. Service consumers can create -// an interface VPC endpoint to connect to your service. +// accounts, IAM users, and IAM roles) can connect. +// +// To create an endpoint service configuration, you must first create one of +// the following for your service: // -// To create an endpoint service configuration, you must first create a Network -// Load Balancer for your service. For more information, see VPC Endpoint Services -// (https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-service.html) +// * A Network Load Balancer (https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html). +// Service consumers connect to your service using an interface endpoint. +// +// * A Gateway Load Balancer (https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/introduction.html). +// Service consumers connect to your service using a Gateway Load Balancer +// endpoint. +// +// For more information, see VPC Endpoint Services (https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-service.html) // in the Amazon Virtual Private Cloud User Guide. // // If you set the private DNS name, you must prove that you own the private @@ -11545,8 +11648,10 @@ func (c *EC2) DeleteVpcEndpointsRequest(input *DeleteVpcEndpointsInput) (req *re // // Deletes one or more specified VPC endpoints. Deleting a gateway endpoint // also deletes the endpoint routes in the route tables that were associated -// with the endpoint. Deleting an interface endpoint deletes the endpoint network -// interfaces. +// with the endpoint. Deleting an interface endpoint or a Gateway Load Balancer +// endpoint deletes the endpoint network interfaces. Gateway Load Balancer endpoints +// can only be deleted if the routes that are associated with the endpoint are +// deleted. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -25354,6 +25459,13 @@ func (c *EC2) DescribeVpcEndpointServicesRequest(input *DescribeVpcEndpointServi // // Describes available services to which you can create a VPC endpoint. // +// When the service provider and the consumer have different accounts multiple +// Availability Zones, and the consumer views the VPC endpoint service information, +// the response only includes the common Availability Zones. For example, when +// the service provider account uses us-east-1a and us-east-1c and the consumer +// uses us-east-1a and us-east-1a and us-east-1b, the response includes the +// VPC endpoint services in the common Availability Zone, us-east-1a. +// // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. @@ -26960,6 +27072,86 @@ func (c *EC2) DisassociateClientVpnTargetNetworkWithContext(ctx aws.Context, inp return out, req.Send() } +const opDisassociateEnclaveCertificateIamRole = "DisassociateEnclaveCertificateIamRole" + +// DisassociateEnclaveCertificateIamRoleRequest generates a "aws/request.Request" representing the +// client's request for the DisassociateEnclaveCertificateIamRole operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See DisassociateEnclaveCertificateIamRole for more information on using the DisassociateEnclaveCertificateIamRole +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the DisassociateEnclaveCertificateIamRoleRequest method. +// req, resp := client.DisassociateEnclaveCertificateIamRoleRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateEnclaveCertificateIamRole +func (c *EC2) DisassociateEnclaveCertificateIamRoleRequest(input *DisassociateEnclaveCertificateIamRoleInput) (req *request.Request, output *DisassociateEnclaveCertificateIamRoleOutput) { + op := &request.Operation{ + Name: opDisassociateEnclaveCertificateIamRole, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DisassociateEnclaveCertificateIamRoleInput{} + } + + output = &DisassociateEnclaveCertificateIamRoleOutput{} + req = c.newRequest(op, input, output) + return +} + +// DisassociateEnclaveCertificateIamRole API operation for Amazon Elastic Compute Cloud. +// +// Disassociates an IAM role from an AWS Certificate Manager (ACM) certificate. +// Disassociating an IAM role from an ACM certificate removes the Amazon S3 +// object that contains the certificate, certificate chain, and encrypted private +// key from the Amazon S3 bucket. It also revokes the IAM role's permission +// to use the AWS Key Management Service (KMS) customer master key (CMK) used +// to encrypt the private key. This effectively revokes the role's permission +// to use the certificate. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Elastic Compute Cloud's +// API operation DisassociateEnclaveCertificateIamRole for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateEnclaveCertificateIamRole +func (c *EC2) DisassociateEnclaveCertificateIamRole(input *DisassociateEnclaveCertificateIamRoleInput) (*DisassociateEnclaveCertificateIamRoleOutput, error) { + req, out := c.DisassociateEnclaveCertificateIamRoleRequest(input) + return out, req.Send() +} + +// DisassociateEnclaveCertificateIamRoleWithContext is the same as DisassociateEnclaveCertificateIamRole with the addition of +// the ability to pass a context and additional request options. +// +// See DisassociateEnclaveCertificateIamRole for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *EC2) DisassociateEnclaveCertificateIamRoleWithContext(ctx aws.Context, input *DisassociateEnclaveCertificateIamRoleInput, opts ...request.Option) (*DisassociateEnclaveCertificateIamRoleOutput, error) { + req, out := c.DisassociateEnclaveCertificateIamRoleRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDisassociateIamInstanceProfile = "DisassociateIamInstanceProfile" // DisassociateIamInstanceProfileRequest generates a "aws/request.Request" representing the @@ -28289,6 +28481,85 @@ func (c *EC2) ExportTransitGatewayRoutesWithContext(ctx aws.Context, input *Expo return out, req.Send() } +const opGetAssociatedEnclaveCertificateIamRoles = "GetAssociatedEnclaveCertificateIamRoles" + +// GetAssociatedEnclaveCertificateIamRolesRequest generates a "aws/request.Request" representing the +// client's request for the GetAssociatedEnclaveCertificateIamRoles operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See GetAssociatedEnclaveCertificateIamRoles for more information on using the GetAssociatedEnclaveCertificateIamRoles +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the GetAssociatedEnclaveCertificateIamRolesRequest method. +// req, resp := client.GetAssociatedEnclaveCertificateIamRolesRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetAssociatedEnclaveCertificateIamRoles +func (c *EC2) GetAssociatedEnclaveCertificateIamRolesRequest(input *GetAssociatedEnclaveCertificateIamRolesInput) (req *request.Request, output *GetAssociatedEnclaveCertificateIamRolesOutput) { + op := &request.Operation{ + Name: opGetAssociatedEnclaveCertificateIamRoles, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetAssociatedEnclaveCertificateIamRolesInput{} + } + + output = &GetAssociatedEnclaveCertificateIamRolesOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetAssociatedEnclaveCertificateIamRoles API operation for Amazon Elastic Compute Cloud. +// +// Returns the IAM roles that are associated with the specified AWS Certificate +// Manager (ACM) certificate. It also returns the name of the Amazon S3 bucket +// and the Amazon S3 object key where the certificate, certificate chain, and +// encrypted private key bundle are stored, and the ARN of the AWS Key Management +// Service (KMS) customer master key (CMK) that's used to encrypt the private +// key. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Elastic Compute Cloud's +// API operation GetAssociatedEnclaveCertificateIamRoles for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetAssociatedEnclaveCertificateIamRoles +func (c *EC2) GetAssociatedEnclaveCertificateIamRoles(input *GetAssociatedEnclaveCertificateIamRolesInput) (*GetAssociatedEnclaveCertificateIamRolesOutput, error) { + req, out := c.GetAssociatedEnclaveCertificateIamRolesRequest(input) + return out, req.Send() +} + +// GetAssociatedEnclaveCertificateIamRolesWithContext is the same as GetAssociatedEnclaveCertificateIamRoles with the addition of +// the ability to pass a context and additional request options. +// +// See GetAssociatedEnclaveCertificateIamRoles for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *EC2) GetAssociatedEnclaveCertificateIamRolesWithContext(ctx aws.Context, input *GetAssociatedEnclaveCertificateIamRolesInput, opts ...request.Option) (*GetAssociatedEnclaveCertificateIamRolesOutput, error) { + req, out := c.GetAssociatedEnclaveCertificateIamRolesRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opGetAssociatedIpv6PoolCidrs = "GetAssociatedIpv6PoolCidrs" // GetAssociatedIpv6PoolCidrsRequest generates a "aws/request.Request" representing the @@ -33616,8 +33887,8 @@ func (c *EC2) ModifyVpcEndpointRequest(input *ModifyVpcEndpointInput) (req *requ // ModifyVpcEndpoint API operation for Amazon Elastic Compute Cloud. // // Modifies attributes of a specified VPC endpoint. The attributes that you -// can modify depend on the type of VPC endpoint (interface or gateway). For -// more information, see VPC Endpoints (https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html) +// can modify depend on the type of VPC endpoint (interface, gateway, or Gateway +// Load Balancer). For more information, see VPC Endpoints (https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html) // in the Amazon Virtual Private Cloud User Guide. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -33769,9 +34040,9 @@ func (c *EC2) ModifyVpcEndpointServiceConfigurationRequest(input *ModifyVpcEndpo // ModifyVpcEndpointServiceConfiguration API operation for Amazon Elastic Compute Cloud. // // Modifies the attributes of your VPC endpoint service configuration. You can -// change the Network Load Balancers for your service, and you can specify whether -// acceptance is required for requests to connect to your endpoint service through -// an interface VPC endpoint. +// change the Network Load Balancers or Gateway Load Balancers for your service, +// and you can specify whether acceptance is required for requests to connect +// to your endpoint service through an interface VPC endpoint. // // If you set or modify the private DNS name, you must prove that you own the // private DNS domain name. For more information, see VPC Endpoint Service Private @@ -34958,7 +35229,7 @@ func (c *EC2) RebootInstancesRequest(input *RebootInstancesInput) (req *request. // succeeds if the instances are valid and belong to you. Requests to reboot // terminated instances are ignored. // -// If an instance does not cleanly shut down within four minutes, Amazon EC2 +// If an instance does not cleanly shut down within a few minutes, Amazon EC2 // performs a hard reboot. // // For more information about troubleshooting, see Getting console output and @@ -38230,7 +38501,7 @@ func (c *EC2) StartVpcEndpointServicePrivateDnsVerificationRequest(input *StartV // // Before the service provider runs this command, they must add a record to // the DNS server. For more information, see Adding a TXT Record to Your Domain's -// DNS Server (https://docs.aws.amazon.com/vpc/latest/userguide/ndpoint-services-dns-validation.html#add-dns-txt-record) +// DNS Server (https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-services-dns-validation.html#add-dns-txt-record) // in the Amazon VPC User Guide. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -40779,6 +41050,109 @@ func (s AssociateDhcpOptionsOutput) GoString() string { return s.String() } +type AssociateEnclaveCertificateIamRoleInput struct { + _ struct{} `type:"structure"` + + // The ARN of the ACM certificate with which to associate the IAM role. + CertificateArn *string `min:"1" type:"string"` + + // Checks whether you have the required permissions for the action, without + // actually making the request, and provides an error response. If you have + // the required permissions, the error response is DryRunOperation. Otherwise, + // it is UnauthorizedOperation. + DryRun *bool `type:"boolean"` + + // The ARN of the IAM role to associate with the ACM certificate. You can associate + // up to 16 IAM roles with an ACM certificate. + RoleArn *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s AssociateEnclaveCertificateIamRoleInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AssociateEnclaveCertificateIamRoleInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AssociateEnclaveCertificateIamRoleInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AssociateEnclaveCertificateIamRoleInput"} + if s.CertificateArn != nil && len(*s.CertificateArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("CertificateArn", 1)) + } + if s.RoleArn != nil && len(*s.RoleArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("RoleArn", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetCertificateArn sets the CertificateArn field's value. +func (s *AssociateEnclaveCertificateIamRoleInput) SetCertificateArn(v string) *AssociateEnclaveCertificateIamRoleInput { + s.CertificateArn = &v + return s +} + +// SetDryRun sets the DryRun field's value. +func (s *AssociateEnclaveCertificateIamRoleInput) SetDryRun(v bool) *AssociateEnclaveCertificateIamRoleInput { + s.DryRun = &v + return s +} + +// SetRoleArn sets the RoleArn field's value. +func (s *AssociateEnclaveCertificateIamRoleInput) SetRoleArn(v string) *AssociateEnclaveCertificateIamRoleInput { + s.RoleArn = &v + return s +} + +type AssociateEnclaveCertificateIamRoleOutput struct { + _ struct{} `type:"structure"` + + // The name of the Amazon S3 bucket to which the certificate was uploaded. + CertificateS3BucketName *string `locationName:"certificateS3BucketName" type:"string"` + + // The Amazon S3 object key where the certificate, certificate chain, and encrypted + // private key bundle are stored. The object key is formatted as follows: certificate_arn/role_arn. + CertificateS3ObjectKey *string `locationName:"certificateS3ObjectKey" type:"string"` + + // The ID of the AWS KMS CMK used to encrypt the private key of the certificate. + EncryptionKmsKeyId *string `locationName:"encryptionKmsKeyId" type:"string"` +} + +// String returns the string representation +func (s AssociateEnclaveCertificateIamRoleOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AssociateEnclaveCertificateIamRoleOutput) GoString() string { + return s.String() +} + +// SetCertificateS3BucketName sets the CertificateS3BucketName field's value. +func (s *AssociateEnclaveCertificateIamRoleOutput) SetCertificateS3BucketName(v string) *AssociateEnclaveCertificateIamRoleOutput { + s.CertificateS3BucketName = &v + return s +} + +// SetCertificateS3ObjectKey sets the CertificateS3ObjectKey field's value. +func (s *AssociateEnclaveCertificateIamRoleOutput) SetCertificateS3ObjectKey(v string) *AssociateEnclaveCertificateIamRoleOutput { + s.CertificateS3ObjectKey = &v + return s +} + +// SetEncryptionKmsKeyId sets the EncryptionKmsKeyId field's value. +func (s *AssociateEnclaveCertificateIamRoleOutput) SetEncryptionKmsKeyId(v string) *AssociateEnclaveCertificateIamRoleOutput { + s.EncryptionKmsKeyId = &v + return s +} + type AssociateIamInstanceProfileInput struct { _ struct{} `type:"structure"` @@ -41337,6 +41711,59 @@ func (s *AssociateVpcCidrBlockOutput) SetVpcId(v string) *AssociateVpcCidrBlockO return s } +// Information about the associated IAM roles. +type AssociatedRole struct { + _ struct{} `type:"structure"` + + // The ARN of the associated IAM role. + AssociatedRoleArn *string `locationName:"associatedRoleArn" min:"1" type:"string"` + + // The name of the Amazon S3 bucket in which the Amazon S3 object is stored. + CertificateS3BucketName *string `locationName:"certificateS3BucketName" type:"string"` + + // The key of the Amazon S3 object ey where the certificate, certificate chain, + // and encrypted private key bundle is stored. The object key is formated as + // follows: certificate_arn/role_arn. + CertificateS3ObjectKey *string `locationName:"certificateS3ObjectKey" type:"string"` + + // The ID of the KMS customer master key (CMK) used to encrypt the private key. + EncryptionKmsKeyId *string `locationName:"encryptionKmsKeyId" type:"string"` +} + +// String returns the string representation +func (s AssociatedRole) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AssociatedRole) GoString() string { + return s.String() +} + +// SetAssociatedRoleArn sets the AssociatedRoleArn field's value. +func (s *AssociatedRole) SetAssociatedRoleArn(v string) *AssociatedRole { + s.AssociatedRoleArn = &v + return s +} + +// SetCertificateS3BucketName sets the CertificateS3BucketName field's value. +func (s *AssociatedRole) SetCertificateS3BucketName(v string) *AssociatedRole { + s.CertificateS3BucketName = &v + return s +} + +// SetCertificateS3ObjectKey sets the CertificateS3ObjectKey field's value. +func (s *AssociatedRole) SetCertificateS3ObjectKey(v string) *AssociatedRole { + s.CertificateS3ObjectKey = &v + return s +} + +// SetEncryptionKmsKeyId sets the EncryptionKmsKeyId field's value. +func (s *AssociatedRole) SetEncryptionKmsKeyId(v string) *AssociatedRole { + s.EncryptionKmsKeyId = &v + return s +} + // Describes a target network that is associated with a Client VPN endpoint. // A target network is a subnet in a VPC. type AssociatedTargetNetwork struct { @@ -41604,6 +42031,11 @@ type AttachNetworkInterfaceInput struct { // InstanceId is a required field InstanceId *string `locationName:"instanceId" type:"string" required:"true"` + // The index of the network card. Some instance types support multiple network + // cards. The primary network interface must be assigned to network card index + // 0. The default is network card index 0. + NetworkCardIndex *int64 `type:"integer"` + // The ID of the network interface. // // NetworkInterfaceId is a required field @@ -41657,6 +42089,12 @@ func (s *AttachNetworkInterfaceInput) SetInstanceId(v string) *AttachNetworkInte return s } +// SetNetworkCardIndex sets the NetworkCardIndex field's value. +func (s *AttachNetworkInterfaceInput) SetNetworkCardIndex(v int64) *AttachNetworkInterfaceInput { + s.NetworkCardIndex = &v + return s +} + // SetNetworkInterfaceId sets the NetworkInterfaceId field's value. func (s *AttachNetworkInterfaceInput) SetNetworkInterfaceId(v string) *AttachNetworkInterfaceInput { s.NetworkInterfaceId = &v @@ -41669,6 +42107,9 @@ type AttachNetworkInterfaceOutput struct { // The ID of the network interface attachment. AttachmentId *string `locationName:"attachmentId" type:"string"` + + // The index of the network card. + NetworkCardIndex *int64 `locationName:"networkCardIndex" type:"integer"` } // String returns the string representation @@ -41687,6 +42128,12 @@ func (s *AttachNetworkInterfaceOutput) SetAttachmentId(v string) *AttachNetworkI return s } +// SetNetworkCardIndex sets the NetworkCardIndex field's value. +func (s *AttachNetworkInterfaceOutput) SetNetworkCardIndex(v int64) *AttachNetworkInterfaceOutput { + s.NetworkCardIndex = &v + return s +} + type AttachVolumeInput struct { _ struct{} `type:"structure"` @@ -43945,7 +44392,7 @@ func (s *CapacityReservationGroup) SetOwnerId(v string) *CapacityReservationGrou // For more information about Capacity Reservations, see On-Demand Capacity // Reservations (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-capacity-reservations.html) // in the Amazon Elastic Compute Cloud User Guide. For examples of using Capacity -// Reservations in an EC2 Fleet, see EC2 Fleet Example Configurations (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-examples.html) +// Reservations in an EC2 Fleet, see EC2 Fleet example configurations (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-examples.html) // in the Amazon Elastic Compute Cloud User Guide. type CapacityReservationOptions struct { _ struct{} `type:"structure"` @@ -43990,7 +44437,7 @@ func (s *CapacityReservationOptions) SetUsageStrategy(v string) *CapacityReserva // For more information about Capacity Reservations, see On-Demand Capacity // Reservations (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-capacity-reservations.html) // in the Amazon Elastic Compute Cloud User Guide. For examples of using Capacity -// Reservations in an EC2 Fleet, see EC2 Fleet Example Configurations (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-examples.html) +// Reservations in an EC2 Fleet, see EC2 Fleet example configurations (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-examples.html) // in the Amazon Elastic Compute Cloud User Guide. type CapacityReservationOptionsRequest struct { _ struct{} `type:"structure"` @@ -44559,6 +45006,84 @@ func (s *ClientCertificateRevocationListStatus) SetMessage(v string) *ClientCert return s } +// The options for managing connection authorization for new client connections. +type ClientConnectOptions struct { + _ struct{} `type:"structure"` + + // Indicates whether client connect options are enabled. The default is false + // (not enabled). + Enabled *bool `type:"boolean"` + + // The Amazon Resource Name (ARN) of the AWS Lambda function used for connection + // authorization. + LambdaFunctionArn *string `type:"string"` +} + +// String returns the string representation +func (s ClientConnectOptions) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ClientConnectOptions) GoString() string { + return s.String() +} + +// SetEnabled sets the Enabled field's value. +func (s *ClientConnectOptions) SetEnabled(v bool) *ClientConnectOptions { + s.Enabled = &v + return s +} + +// SetLambdaFunctionArn sets the LambdaFunctionArn field's value. +func (s *ClientConnectOptions) SetLambdaFunctionArn(v string) *ClientConnectOptions { + s.LambdaFunctionArn = &v + return s +} + +// The options for managing connection authorization for new client connections. +type ClientConnectResponseOptions struct { + _ struct{} `type:"structure"` + + // Indicates whether client connect options are enabled. + Enabled *bool `locationName:"enabled" type:"boolean"` + + // The Amazon Resource Name (ARN) of the AWS Lambda function used for connection + // authorization. + LambdaFunctionArn *string `locationName:"lambdaFunctionArn" type:"string"` + + // The status of any updates to the client connect options. + Status *ClientVpnEndpointAttributeStatus `locationName:"status" type:"structure"` +} + +// String returns the string representation +func (s ClientConnectResponseOptions) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ClientConnectResponseOptions) GoString() string { + return s.String() +} + +// SetEnabled sets the Enabled field's value. +func (s *ClientConnectResponseOptions) SetEnabled(v bool) *ClientConnectResponseOptions { + s.Enabled = &v + return s +} + +// SetLambdaFunctionArn sets the LambdaFunctionArn field's value. +func (s *ClientConnectResponseOptions) SetLambdaFunctionArn(v string) *ClientConnectResponseOptions { + s.LambdaFunctionArn = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *ClientConnectResponseOptions) SetStatus(v *ClientVpnEndpointAttributeStatus) *ClientConnectResponseOptions { + s.Status = v + return s +} + // Describes the client-specific data. type ClientData struct { _ struct{} `type:"structure"` @@ -44611,7 +45136,7 @@ func (s *ClientData) SetUploadStart(v time.Time) *ClientData { } // Describes the authentication methods used by a Client VPN endpoint. For more -// information, see Authentication (https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/authentication-authrization.html#client-authentication) +// information, see Authentication (https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/client-authentication.html) // in the AWS Client VPN Administrator Guide. type ClientVpnAuthentication struct { _ struct{} `type:"structure"` @@ -44787,6 +45312,10 @@ type ClientVpnConnection struct { // The number of packets sent by the client. IngressPackets *string `locationName:"ingressPackets" type:"string"` + // The statuses returned by the client connect handler for posture compliance, + // if applicable. + PostureComplianceStatuses []*string `locationName:"postureComplianceStatusSet" locationNameList:"item" type:"list"` + // The current state of the client connection. Status *ClientVpnConnectionStatus `locationName:"status" type:"structure"` @@ -44868,6 +45397,12 @@ func (s *ClientVpnConnection) SetIngressPackets(v string) *ClientVpnConnection { return s } +// SetPostureComplianceStatuses sets the PostureComplianceStatuses field's value. +func (s *ClientVpnConnection) SetPostureComplianceStatuses(v []*string) *ClientVpnConnection { + s.PostureComplianceStatuses = v + return s +} + // SetStatus sets the Status field's value. func (s *ClientVpnConnection) SetStatus(v *ClientVpnConnectionStatus) *ClientVpnConnection { s.Status = v @@ -44936,6 +45471,9 @@ type ClientVpnEndpoint struct { // are assigned. ClientCidrBlock *string `locationName:"clientCidrBlock" type:"string"` + // The options for managing connection authorization for new client connections. + ClientConnectOptions *ClientConnectResponseOptions `locationName:"clientConnectOptions" type:"structure"` + // The ID of the Client VPN endpoint. ClientVpnEndpointId *string `locationName:"clientVpnEndpointId" type:"string"` @@ -44961,6 +45499,9 @@ type ClientVpnEndpoint struct { // The IDs of the security groups for the target network. SecurityGroupIds []*string `locationName:"securityGroupIdSet" locationNameList:"item" type:"list"` + // The URL of the self-service portal. + SelfServicePortalUrl *string `locationName:"selfServicePortalUrl" type:"string"` + // The ARN of the server certificate. ServerCertificateArn *string `locationName:"serverCertificateArn" type:"string"` @@ -45018,6 +45559,12 @@ func (s *ClientVpnEndpoint) SetClientCidrBlock(v string) *ClientVpnEndpoint { return s } +// SetClientConnectOptions sets the ClientConnectOptions field's value. +func (s *ClientVpnEndpoint) SetClientConnectOptions(v *ClientConnectResponseOptions) *ClientVpnEndpoint { + s.ClientConnectOptions = v + return s +} + // SetClientVpnEndpointId sets the ClientVpnEndpointId field's value. func (s *ClientVpnEndpoint) SetClientVpnEndpointId(v string) *ClientVpnEndpoint { s.ClientVpnEndpointId = &v @@ -45066,6 +45613,12 @@ func (s *ClientVpnEndpoint) SetSecurityGroupIds(v []*string) *ClientVpnEndpoint return s } +// SetSelfServicePortalUrl sets the SelfServicePortalUrl field's value. +func (s *ClientVpnEndpoint) SetSelfServicePortalUrl(v string) *ClientVpnEndpoint { + s.SelfServicePortalUrl = &v + return s +} + // SetServerCertificateArn sets the ServerCertificateArn field's value. func (s *ClientVpnEndpoint) SetServerCertificateArn(v string) *ClientVpnEndpoint { s.ServerCertificateArn = &v @@ -45114,6 +45667,39 @@ func (s *ClientVpnEndpoint) SetVpnProtocol(v string) *ClientVpnEndpoint { return s } +// Describes the status of the Client VPN endpoint attribute. +type ClientVpnEndpointAttributeStatus struct { + _ struct{} `type:"structure"` + + // The status code. + Code *string `locationName:"code" type:"string" enum:"ClientVpnEndpointAttributeStatusCode"` + + // The status message. + Message *string `locationName:"message" type:"string"` +} + +// String returns the string representation +func (s ClientVpnEndpointAttributeStatus) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ClientVpnEndpointAttributeStatus) GoString() string { + return s.String() +} + +// SetCode sets the Code field's value. +func (s *ClientVpnEndpointAttributeStatus) SetCode(v string) *ClientVpnEndpointAttributeStatus { + s.Code = &v + return s +} + +// SetMessage sets the Message field's value. +func (s *ClientVpnEndpointAttributeStatus) SetMessage(v string) *ClientVpnEndpointAttributeStatus { + s.Message = &v + return s +} + // Describes the state of a Client VPN endpoint. type ClientVpnEndpointStatus struct { _ struct{} `type:"structure"` @@ -45875,29 +46461,25 @@ type CopyImageInput struct { // in the Amazon Elastic Compute Cloud User Guide. Encrypted *bool `locationName:"encrypted" type:"boolean"` - // An identifier for the symmetric AWS Key Management Service (AWS KMS) customer - // master key (CMK) to use when creating the encrypted volume. This parameter - // is only required if you want to use a non-default CMK; if this parameter - // is not specified, the default CMK for EBS is used. If a KmsKeyId is specified, - // the Encrypted flag must also be set. + // The identifier of the symmetric AWS Key Management Service (AWS KMS) customer + // master key (CMK) to use when creating encrypted volumes. If this parameter + // is not specified, your AWS managed CMK for EBS is used. If you specify a + // CMK, you must also set the encrypted state to true. // - // To specify a CMK, use its key ID, Amazon Resource Name (ARN), alias name, - // or alias ARN. When using an alias name, prefix it with "alias/". For example: + // You can specify a CMK using any of the following: // - // * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab + // * Key ID. For example, 1234abcd-12ab-34cd-56ef-1234567890ab. // - // * Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab + // * Key alias. For example, alias/ExampleAlias. // - // * Alias name: alias/ExampleAlias + // * Key ARN. For example, arn:aws:kms:us-east-1:012345678910:key/1234abcd-12ab-34cd-56ef-1234567890ab. // - // * Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias + // * Alias ARN. For example, arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias. // - // AWS parses KmsKeyId asynchronously, meaning that the action you call may - // appear to complete even though you provided an invalid identifier. This action - // will eventually report failure. + // AWS authenticates the CMK asynchronously. Therefore, if you specify an identifier + // that is not valid, the action can appear to complete, but eventually fails. // - // The specified CMK must exist in the Region that the snapshot is being copied - // to. + // The specified CMK must exist in the destination Region. // // Amazon EBS does not support asymmetric CMKs. KmsKeyId *string `locationName:"kmsKeyId" type:"string"` @@ -46056,11 +46638,11 @@ type CopySnapshotInput struct { // // You can specify the CMK using any of the following: // - // * Key ID. For example, key/1234abcd-12ab-34cd-56ef-1234567890ab. + // * Key ID. For example, 1234abcd-12ab-34cd-56ef-1234567890ab. // // * Key alias. For example, alias/ExampleAlias. // - // * Key ARN. For example, arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef. + // * Key ARN. For example, arn:aws:kms:us-east-1:012345678910:key/1234abcd-12ab-34cd-56ef-1234567890ab. // // * Alias ARN. For example, arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias. // @@ -46625,6 +47207,9 @@ type CreateClientVpnEndpointInput struct { // ClientCidrBlock is a required field ClientCidrBlock *string `type:"string" required:"true"` + // The options for managing connection authorization for new client connections. + ClientConnectOptions *ClientConnectOptions `type:"structure"` + // Unique, case-sensitive identifier that you provide to ensure the idempotency // of the request. For more information, see How to Ensure Idempotency (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html). ClientToken *string `type:"string" idempotencyToken:"true"` @@ -46663,6 +47248,11 @@ type CreateClientVpnEndpointInput struct { // must also specify the ID of the VPC that contains the security groups. SecurityGroupIds []*string `locationName:"SecurityGroupId" locationNameList:"item" type:"list"` + // Specify whether to enable the self-service portal for the Client VPN endpoint. + // + // Default Value: enabled + SelfServicePortal *string `type:"string" enum:"SelfServicePortal"` + // The ARN of the server certificate. For more information, see the AWS Certificate // Manager User Guide (https://docs.aws.amazon.com/acm/latest/userguide/). // @@ -46743,6 +47333,12 @@ func (s *CreateClientVpnEndpointInput) SetClientCidrBlock(v string) *CreateClien return s } +// SetClientConnectOptions sets the ClientConnectOptions field's value. +func (s *CreateClientVpnEndpointInput) SetClientConnectOptions(v *ClientConnectOptions) *CreateClientVpnEndpointInput { + s.ClientConnectOptions = v + return s +} + // SetClientToken sets the ClientToken field's value. func (s *CreateClientVpnEndpointInput) SetClientToken(v string) *CreateClientVpnEndpointInput { s.ClientToken = &v @@ -46779,6 +47375,12 @@ func (s *CreateClientVpnEndpointInput) SetSecurityGroupIds(v []*string) *CreateC return s } +// SetSelfServicePortal sets the SelfServicePortal field's value. +func (s *CreateClientVpnEndpointInput) SetSelfServicePortal(v string) *CreateClientVpnEndpointInput { + s.SelfServicePortal = &v + return s +} + // SetServerCertificateArn sets the ServerCertificateArn field's value. func (s *CreateClientVpnEndpointInput) SetServerCertificateArn(v string) *CreateClientVpnEndpointInput { s.ServerCertificateArn = &v @@ -47515,7 +48117,7 @@ type CreateFleetInput struct { // The key-value pair for tagging the EC2 Fleet request on creation. The value // for ResourceType must be fleet, otherwise the fleet request fails. To tag // instances at launch, specify the tags in the launch template (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#create-launch-template). - // For information about tagging after launch, see Tagging Your Resources (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-resources). + // For information about tagging after launch, see Tagging your resources (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-resources). TagSpecifications []*TagSpecification `locationName:"TagSpecification" locationNameList:"item" type:"list"` // The number of units to request. @@ -47527,13 +48129,22 @@ type CreateFleetInput struct { // expires. TerminateInstancesWithExpiration *bool `type:"boolean"` - // The type of the request. By default, the EC2 Fleet places an asynchronous - // request for your desired capacity, and maintains it by replenishing interrupted - // Spot Instances (maintain). A value of instant places a synchronous one-time - // request, and returns errors for any instances that could not be launched. - // A value of request places an asynchronous one-time request without maintaining - // capacity or submitting requests in alternative capacity pools if capacity - // is unavailable. For more information, see EC2 Fleet Request Types (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-configuration-strategies.html#ec2-fleet-request-type) + // The type of request. The default value is maintain. + // + // * maintain - The EC2 Fleet plaees an asynchronous request for your desired + // capacity, and continues to maintain your desired Spot capacity by replenishing + // interrupted Spot Instances. + // + // * request - The EC2 Fleet places an asynchronous one-time request for + // your desired capacity, but does submit Spot requests in alternative capacity + // pools if Spot capacity is unavailable, and does not maintain Spot capacity + // if Spot Instances are interrupted. + // + // * instant - The EC2 Fleet places a synchronous one-time request for your + // desired capacity, and returns errors for any instances that could not + // be launched. + // + // For more information, see EC2 Fleet request types (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-configuration-strategies.html#ec2-fleet-request-type) // in the Amazon Elastic Compute Cloud User Guide. Type *string `type:"string" enum:"FleetType"` @@ -48275,7 +48886,9 @@ type CreateInstanceExportTaskInput struct { Description *string `locationName:"description" type:"string"` // The format and location for an instance export task. - ExportToS3Task *ExportToS3TaskSpecification `locationName:"exportToS3" type:"structure"` + // + // ExportToS3Task is a required field + ExportToS3Task *ExportToS3TaskSpecification `locationName:"exportToS3" type:"structure" required:"true"` // The ID of the instance. // @@ -48286,7 +48899,9 @@ type CreateInstanceExportTaskInput struct { TagSpecifications []*TagSpecification `locationName:"TagSpecification" locationNameList:"item" type:"list"` // The target virtualization environment. - TargetEnvironment *string `locationName:"targetEnvironment" type:"string" enum:"ExportEnvironment"` + // + // TargetEnvironment is a required field + TargetEnvironment *string `locationName:"targetEnvironment" type:"string" required:"true" enum:"ExportEnvironment"` } // String returns the string representation @@ -48302,9 +48917,15 @@ func (s CreateInstanceExportTaskInput) GoString() string { // Validate inspects the fields of the type to determine if they are valid. func (s *CreateInstanceExportTaskInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "CreateInstanceExportTaskInput"} + if s.ExportToS3Task == nil { + invalidParams.Add(request.NewErrParamRequired("ExportToS3Task")) + } if s.InstanceId == nil { invalidParams.Add(request.NewErrParamRequired("InstanceId")) } + if s.TargetEnvironment == nil { + invalidParams.Add(request.NewErrParamRequired("TargetEnvironment")) + } if invalidParams.Len() > 0 { return invalidParams @@ -50079,6 +50700,9 @@ type CreateRouteInput struct { // The ID of a transit gateway. TransitGatewayId *string `type:"string"` + // The ID of a VPC endpoint. Supported for Gateway Load Balancer endpoints only. + VpcEndpointId *string `type:"string"` + // The ID of a VPC peering connection. VpcPeeringConnectionId *string `locationName:"vpcPeeringConnectionId" type:"string"` } @@ -50184,6 +50808,12 @@ func (s *CreateRouteInput) SetTransitGatewayId(v string) *CreateRouteInput { return s } +// SetVpcEndpointId sets the VpcEndpointId field's value. +func (s *CreateRouteInput) SetVpcEndpointId(v string) *CreateRouteInput { + s.VpcEndpointId = &v + return s +} + // SetVpcPeeringConnectionId sets the VpcPeeringConnectionId field's value. func (s *CreateRouteInput) SetVpcPeeringConnectionId(v string) *CreateRouteInput { s.VpcPeeringConnectionId = &v @@ -50593,7 +51223,10 @@ func (s *CreateSnapshotsOutput) SetSnapshots(v []*SnapshotInfo) *CreateSnapshots type CreateSpotDatafeedSubscriptionInput struct { _ struct{} `type:"structure"` - // The Amazon S3 bucket in which to store the Spot Instance data feed. + // The name of the Amazon S3 bucket in which to store the Spot Instance data + // feed. For more information about bucket names, see Rules for bucket naming + // (https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html#bucketnamingrules) + // in the Amazon S3 Developer Guide. // // Bucket is a required field Bucket *string `locationName:"bucket" type:"string" required:"true"` @@ -50604,7 +51237,7 @@ type CreateSpotDatafeedSubscriptionInput struct { // it is UnauthorizedOperation. DryRun *bool `locationName:"dryRun" type:"boolean"` - // A prefix for the data feed file names. + // The prefix for the data feed file names. Prefix *string `locationName:"prefix" type:"string"` } @@ -52186,10 +52819,15 @@ func (s *CreateTransitGatewayVpcAttachmentOutput) SetTransitGatewayVpcAttachment type CreateTransitGatewayVpcAttachmentRequestOptions struct { _ struct{} `type:"structure"` + // Enable or disable support for appliance mode. If enabled, a traffic flow + // between a source and destination uses the same Availability Zone for the + // VPC attachment for the lifetime of that flow. The default is disable. + ApplianceModeSupport *string `type:"string" enum:"ApplianceModeSupportValue"` + // Enable or disable DNS support. The default is enable. DnsSupport *string `type:"string" enum:"DnsSupportValue"` - // Enable or disable IPv6 support. The default is enable. + // Enable or disable IPv6 support. Ipv6Support *string `type:"string" enum:"Ipv6SupportValue"` } @@ -52203,6 +52841,12 @@ func (s CreateTransitGatewayVpcAttachmentRequestOptions) GoString() string { return s.String() } +// SetApplianceModeSupport sets the ApplianceModeSupport field's value. +func (s *CreateTransitGatewayVpcAttachmentRequestOptions) SetApplianceModeSupport(v string) *CreateTransitGatewayVpcAttachmentRequestOptions { + s.ApplianceModeSupport = &v + return s +} + // SetDnsSupport sets the DnsSupport field's value. func (s *CreateTransitGatewayVpcAttachmentRequestOptions) SetDnsSupport(v string) *CreateTransitGatewayVpcAttachmentRequestOptions { s.DnsSupport = &v @@ -52257,11 +52901,11 @@ type CreateVolumeInput struct { // // You can specify the CMK using any of the following: // - // * Key ID. For example, key/1234abcd-12ab-34cd-56ef-1234567890ab. + // * Key ID. For example, 1234abcd-12ab-34cd-56ef-1234567890ab. // // * Key alias. For example, alias/ExampleAlias. // - // * Key ARN. For example, arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef. + // * Key ARN. For example, arn:aws:kms:us-east-1:012345678910:key/1234abcd-12ab-34cd-56ef-1234567890ab. // // * Alias ARN. For example, arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias. // @@ -52602,9 +53246,10 @@ type CreateVpcEndpointInput struct { // it is UnauthorizedOperation. DryRun *bool `type:"boolean"` - // A policy to attach to the endpoint that controls access to the service. The - // policy must be in valid JSON format. If this parameter is not specified, - // we attach a default policy that allows full access to the service. + // (Interface and gateway endpoints) A policy to attach to the endpoint that + // controls access to the service. The policy must be in valid JSON format. + // If this parameter is not specified, we attach a default policy that allows + // full access to the service. PolicyDocument *string `type:"string"` // (Interface endpoint) Indicates whether to associate a private hosted zone @@ -52635,8 +53280,9 @@ type CreateVpcEndpointInput struct { // ServiceName is a required field ServiceName *string `type:"string" required:"true"` - // (Interface endpoint) The ID of one or more subnets in which to create an - // endpoint network interface. + // (Interface and Gateway Load Balancer endpoints) The ID of one or more subnets + // in which to create an endpoint network interface. For a Gateway Load Balancer + // endpoint, you can specify one subnet only. SubnetIds []*string `locationName:"SubnetId" locationNameList:"item" type:"list"` // The tags to associate with the endpoint. @@ -52796,13 +53442,15 @@ type CreateVpcEndpointServiceConfigurationInput struct { // it is UnauthorizedOperation. DryRun *bool `type:"boolean"` + // The Amazon Resource Names (ARNs) of one or more Gateway Load Balancers. + GatewayLoadBalancerArns []*string `locationName:"GatewayLoadBalancerArn" locationNameList:"item" type:"list"` + // The Amazon Resource Names (ARNs) of one or more Network Load Balancers for // your service. - // - // NetworkLoadBalancerArns is a required field - NetworkLoadBalancerArns []*string `locationName:"NetworkLoadBalancerArn" locationNameList:"item" type:"list" required:"true"` + NetworkLoadBalancerArns []*string `locationName:"NetworkLoadBalancerArn" locationNameList:"item" type:"list"` - // The private DNS name to assign to the VPC endpoint service. + // (Interface endpoint configuration) The private DNS name to assign to the + // VPC endpoint service. PrivateDnsName *string `type:"string"` // The tags to associate with the service. @@ -52819,19 +53467,6 @@ func (s CreateVpcEndpointServiceConfigurationInput) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *CreateVpcEndpointServiceConfigurationInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "CreateVpcEndpointServiceConfigurationInput"} - if s.NetworkLoadBalancerArns == nil { - invalidParams.Add(request.NewErrParamRequired("NetworkLoadBalancerArns")) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - // SetAcceptanceRequired sets the AcceptanceRequired field's value. func (s *CreateVpcEndpointServiceConfigurationInput) SetAcceptanceRequired(v bool) *CreateVpcEndpointServiceConfigurationInput { s.AcceptanceRequired = &v @@ -52850,6 +53485,12 @@ func (s *CreateVpcEndpointServiceConfigurationInput) SetDryRun(v bool) *CreateVp return s } +// SetGatewayLoadBalancerArns sets the GatewayLoadBalancerArns field's value. +func (s *CreateVpcEndpointServiceConfigurationInput) SetGatewayLoadBalancerArns(v []*string) *CreateVpcEndpointServiceConfigurationInput { + s.GatewayLoadBalancerArns = v + return s +} + // SetNetworkLoadBalancerArns sets the NetworkLoadBalancerArns field's value. func (s *CreateVpcEndpointServiceConfigurationInput) SetNetworkLoadBalancerArns(v []*string) *CreateVpcEndpointServiceConfigurationInput { s.NetworkLoadBalancerArns = v @@ -61018,7 +61659,7 @@ type DescribeFlowLogsInput struct { // // * log-destination-type - The type of destination to which the flow log // publishes data. Possible destination types include cloud-watch-logs and - // S3. + // s3. // // * flow-log-id - The ID of the flow log. // @@ -62537,6 +63178,10 @@ type DescribeInstanceAttributeOutput struct { // Indicates whether enhanced networking with ENA is enabled. EnaSupport *AttributeBooleanValue `locationName:"enaSupport" type:"structure"` + // To enable the instance for AWS Nitro Enclaves, set this parameter to true; + // otherwise, set it to false. + EnclaveOptions *EnclaveOptions `locationName:"enclaveOptions" type:"structure"` + // The security groups associated with the instance. Groups []*GroupIdentifier `locationName:"groupSet" locationNameList:"item" type:"list"` @@ -62609,6 +63254,12 @@ func (s *DescribeInstanceAttributeOutput) SetEnaSupport(v *AttributeBooleanValue return s } +// SetEnclaveOptions sets the EnclaveOptions field's value. +func (s *DescribeInstanceAttributeOutput) SetEnclaveOptions(v *EnclaveOptions) *DescribeInstanceAttributeOutput { + s.EnclaveOptions = v + return s +} + // SetGroups sets the Groups field's value. func (s *DescribeInstanceAttributeOutput) SetGroups(v []*GroupIdentifier) *DescribeInstanceAttributeOutput { s.Groups = v @@ -63010,7 +63661,7 @@ type DescribeInstanceTypeOfferingsInput struct { // type is region (default), the location is the Region code (for example, // us-east-2.) // - // * instance-type - The instance type. + // * instance-type - The instance type. For example, c5.2xlarge. Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"` // The location type. @@ -63122,52 +63773,52 @@ type DescribeInstanceTypesInput struct { // One or more filters. Filter names and values are case-sensitive. // - // * auto-recovery-supported - Indicates whether auto recovery is supported. - // (true | false) + // * auto-recovery-supported - Indicates whether auto recovery is supported + // (true | false). // - // * bare-metal - Indicates whether it is a bare metal instance type. (true - // | false) + // * bare-metal - Indicates whether it is a bare metal instance type (true + // | false). // // * burstable-performance-supported - Indicates whether it is a burstable - // performance instance type. (true | false) + // performance instance type (true | false). // // * current-generation - Indicates whether this instance type is the latest - // generation instance type of an instance family. (true | false) + // generation instance type of an instance family (true | false). // // * ebs-info.ebs-optimized-info.baseline-bandwidth-in-mbps - The baseline // bandwidth performance for an EBS-optimized instance type, in Mbps. // - // * ebs-info.ebs-optimized-info.baseline-throughput-in-mbps - The baseline - // throughput performance for an EBS-optimized instance type, in MBps. - // // * ebs-info.ebs-optimized-info.baseline-iops - The baseline input/output // storage operations per second for an EBS-optimized instance type. // + // * ebs-info.ebs-optimized-info.baseline-throughput-in-mbps - The baseline + // throughput performance for an EBS-optimized instance type, in MB/s. + // // * ebs-info.ebs-optimized-info.maximum-bandwidth-in-mbps - The maximum // bandwidth performance for an EBS-optimized instance type, in Mbps. // - // * ebs-info.ebs-optimized-info.maximum-throughput-in-mbps - The maximum - // throughput performance for an EBS-optimized instance type, in MBps. - // // * ebs-info.ebs-optimized-info.maximum-iops - The maximum input/output // storage operations per second for an EBS-optimized instance type. // + // * ebs-info.ebs-optimized-info.maximum-throughput-in-mbps - The maximum + // throughput performance for an EBS-optimized instance type, in MB/s. + // // * ebs-info.ebs-optimized-support - Indicates whether the instance type - // is EBS-optimized. (supported | unsupported | default) + // is EBS-optimized (supported | unsupported | default). // - // * ebs-info.encryption-support - Indicates whether EBS encryption is supported. - // (supported | unsupported) + // * ebs-info.encryption-support - Indicates whether EBS encryption is supported + // (supported | unsupported). // // * ebs-info.nvme-support - Indicates whether non-volatile memory express - // (NVMe) is supported or required. (required | supported | unsupported) + // (NVMe) is supported for EBS volumes (required | supported | unsupported). // // * free-tier-eligible - Indicates whether the instance type is eligible - // to use in the free tier. (true | false) + // to use in the free tier (true | false). // - // * hibernation-supported - Indicates whether On-Demand hibernation is supported. - // (true | false) + // * hibernation-supported - Indicates whether On-Demand hibernation is supported + // (true | false). // - // * hypervisor - The hypervisor used. (nitro | xen) + // * hypervisor - The hypervisor (nitro | xen). // // * instance-storage-info.disk.count - The number of local disks. // @@ -63175,21 +63826,27 @@ type DescribeInstanceTypesInput struct { // storage disk, in GB. // // * instance-storage-info.disk.type - The storage technology for the local - // instance storage disks. (hdd | ssd) + // instance storage disks (hdd | ssd). + // + // * instance-storage-info.nvme-support - Indicates whether non-volatile + // memory express (NVMe) is supported for instance store (required | supported) + // | unsupported). // // * instance-storage-info.total-size-in-gb - The total amount of storage // available from all local instance storage, in GB. // // * instance-storage-supported - Indicates whether the instance type has - // local instance storage. (true | false) + // local instance storage (true | false). // - // * memory-info.size-in-mib - The memory size. + // * instance-type - The instance type (for example c5.2xlarge or c5*). // - // * network-info.ena-support - Indicates whether Elastic Network Adapter - // (ENA) is supported or required. (required | supported | unsupported) + // * memory-info.size-in-mib - The memory size. // // * network-info.efa-supported - Indicates whether the instance type supports - // Elastic Fabric Adapter (EFA). (true | false) + // Elastic Fabric Adapter (EFA) (true | false). + // + // * network-info.ena-support - Indicates whether Elastic Network Adapter + // (ENA) is supported or required (required | supported | unsupported). // // * network-info.ipv4-addresses-per-interface - The maximum number of private // IPv4 addresses per network interface. @@ -63198,16 +63855,26 @@ type DescribeInstanceTypesInput struct { // IPv6 addresses per network interface. // // * network-info.ipv6-supported - Indicates whether the instance type supports - // IPv6. (true | false) + // IPv6 (true | false). // // * network-info.maximum-network-interfaces - The maximum number of network // interfaces per instance. // - // * network-info.network-performance - Describes the network performance. + // * network-info.network-performance - The network performance (for example, + // "25 Gigabit"). + // + // * processor-info.supported-architecture - The CPU architecture (arm64 + // | i386 | x86_64). // // * processor-info.sustained-clock-speed-in-ghz - The CPU clock speed, in // GHz. // + // * supported-root-device-type - The root device type (ebs | instance-store). + // + // * supported-usage-class - The usage class (on-demand | spot). + // + // * supported-virtualization-type - The virtualization type (hvm | paravirtual). + // // * vcpu-info.default-cores - The default number of cores for the instance // type. // @@ -63216,6 +63883,12 @@ type DescribeInstanceTypesInput struct { // // * vcpu-info.default-vcpus - The default number of vCPUs for the instance // type. + // + // * vcpu-info.valid-cores - The number of cores that can be configured for + // the instance type. + // + // * vcpu-info.valid-threads-per-core - The number of threads per core that + // can be configured for the instance type. For example, "1" or "1,2". Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"` // The instance types. For more information, see Instance Types (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) @@ -68702,8 +69375,9 @@ type DescribeSpotPriceHistoryInput struct { // * instance-type - The type of instance (for example, m3.medium). // // * product-description - The product description for the Spot price (Linux/UNIX - // | SUSE Linux | Windows | Linux/UNIX (Amazon VPC) | SUSE Linux (Amazon - // VPC) | Windows (Amazon VPC)). + // | Red Hat Enterprise Linux | SUSE Linux | Windows | Linux/UNIX (Amazon + // VPC) | Red Hat Enterprise Linux (Amazon VPC) | SUSE Linux (Amazon VPC) + // | Windows (Amazon VPC)). // // * spot-price - The Spot price. The value must match exactly (or use wildcards; // greater than or less than comparison is not supported). @@ -69835,6 +70509,16 @@ type DescribeTransitGatewayPeeringAttachmentsInput struct { // | deleted | deleting | failed | failing | initiatingRequest | modifying // | pendingAcceptance | pending | rollingBack | rejected | rejecting). // + // * tag: - The key/value combination of a tag assigned to the resource. + // Use the tag key in the filter name and the tag value as the filter value. + // For example, to find all resources that have a tag with the key Owner + // and the value TeamA, specify tag:Owner for the filter name and TeamA for + // the filter value. + // + // * tag-key - The key of a tag assigned to the resource. Use this filter + // to find all resources that have a tag with a specific key, regardless + // of the tag value. + // // * transit-gateway-id - The ID of the transit gateway. Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"` @@ -71706,6 +72390,9 @@ type DescribeVpcEndpointsInput struct { // * vpc-endpoint-state - The state of the endpoint (pendingAcceptance | // pending | available | deleting | deleted | rejected | failed). // + // * vpc-endpoint-type - The type of VPC endpoint (Interface | Gateway | + // GatewayLoadBalancer). + // // * tag: - The key/value combination of a tag assigned to the resource. // Use the tag key in the filter name and the tag value as the filter value. // For example, to find all resources that have a tag with the key Owner @@ -73675,6 +74362,89 @@ func (s *DisassociateClientVpnTargetNetworkOutput) SetStatus(v *AssociationStatu return s } +type DisassociateEnclaveCertificateIamRoleInput struct { + _ struct{} `type:"structure"` + + // The ARN of the ACM certificate from which to disassociate the IAM role. + CertificateArn *string `min:"1" type:"string"` + + // Checks whether you have the required permissions for the action, without + // actually making the request, and provides an error response. If you have + // the required permissions, the error response is DryRunOperation. Otherwise, + // it is UnauthorizedOperation. + DryRun *bool `type:"boolean"` + + // The ARN of the IAM role to disassociate. + RoleArn *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s DisassociateEnclaveCertificateIamRoleInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DisassociateEnclaveCertificateIamRoleInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DisassociateEnclaveCertificateIamRoleInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DisassociateEnclaveCertificateIamRoleInput"} + if s.CertificateArn != nil && len(*s.CertificateArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("CertificateArn", 1)) + } + if s.RoleArn != nil && len(*s.RoleArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("RoleArn", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetCertificateArn sets the CertificateArn field's value. +func (s *DisassociateEnclaveCertificateIamRoleInput) SetCertificateArn(v string) *DisassociateEnclaveCertificateIamRoleInput { + s.CertificateArn = &v + return s +} + +// SetDryRun sets the DryRun field's value. +func (s *DisassociateEnclaveCertificateIamRoleInput) SetDryRun(v bool) *DisassociateEnclaveCertificateIamRoleInput { + s.DryRun = &v + return s +} + +// SetRoleArn sets the RoleArn field's value. +func (s *DisassociateEnclaveCertificateIamRoleInput) SetRoleArn(v string) *DisassociateEnclaveCertificateIamRoleInput { + s.RoleArn = &v + return s +} + +type DisassociateEnclaveCertificateIamRoleOutput struct { + _ struct{} `type:"structure"` + + // Returns true if the request succeeds; otherwise, it returns an error. + Return *bool `locationName:"return" type:"boolean"` +} + +// String returns the string representation +func (s DisassociateEnclaveCertificateIamRoleOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DisassociateEnclaveCertificateIamRoleOutput) GoString() string { + return s.String() +} + +// SetReturn sets the Return field's value. +func (s *DisassociateEnclaveCertificateIamRoleOutput) SetReturn(v bool) *DisassociateEnclaveCertificateIamRoleOutput { + s.Return = &v + return s +} + type DisassociateIamInstanceProfileInput struct { _ struct{} `type:"structure"` @@ -74586,7 +75356,7 @@ type EbsInfo struct { // Describes the optimized EBS performance for the instance type. EbsOptimizedInfo *EbsOptimizedInfo `locationName:"ebsOptimizedInfo" type:"structure"` - // Indicates that the instance type is Amazon EBS-optimized. For more information, + // Indicates whether the instance type is Amazon EBS-optimized. For more information, // see Amazon EBS-Optimized Instances (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) // in Amazon EC2 User Guide for Linux Instances. EbsOptimizedSupport *string `locationName:"ebsOptimizedSupport" type:"string" enum:"EbsOptimizedSupport"` @@ -74730,7 +75500,7 @@ type EbsOptimizedInfo struct { BaselineIops *int64 `locationName:"baselineIops" type:"integer"` // The baseline throughput performance for an EBS-optimized instance type, in - // MBps. + // MB/s. BaselineThroughputInMBps *float64 `locationName:"baselineThroughputInMBps" type:"double"` // The maximum bandwidth performance for an EBS-optimized instance type, in @@ -74742,7 +75512,7 @@ type EbsOptimizedInfo struct { MaximumIops *int64 `locationName:"maximumIops" type:"integer"` // The maximum throughput performance for an EBS-optimized instance type, in - // MBps. + // MB/s. MaximumThroughputInMBps *float64 `locationName:"maximumThroughputInMBps" type:"double"` } @@ -75882,6 +76652,57 @@ func (s *EnableVpcClassicLinkOutput) SetReturn(v bool) *EnableVpcClassicLinkOutp return s } +// Indicates whether the instance is enabled for AWS Nitro Enclaves. +type EnclaveOptions struct { + _ struct{} `type:"structure"` + + // If this parameter is set to true, the instance is enabled for AWS Nitro Enclaves; + // otherwise, it is not enabled for AWS Nitro Enclaves. + Enabled *bool `locationName:"enabled" type:"boolean"` +} + +// String returns the string representation +func (s EnclaveOptions) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s EnclaveOptions) GoString() string { + return s.String() +} + +// SetEnabled sets the Enabled field's value. +func (s *EnclaveOptions) SetEnabled(v bool) *EnclaveOptions { + s.Enabled = &v + return s +} + +// Indicates whether the instance is enabled for AWS Nitro Enclaves. For more +// information, see What is AWS Nitro Enclaves? (https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html) +// in the AWS Nitro Enclaves User Guide. +type EnclaveOptionsRequest struct { + _ struct{} `type:"structure"` + + // To enable the instance for AWS Nitro Enclaves, set this parameter to true. + Enabled *bool `type:"boolean"` +} + +// String returns the string representation +func (s EnclaveOptionsRequest) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s EnclaveOptionsRequest) GoString() string { + return s.String() +} + +// SetEnabled sets the Enabled field's value. +func (s *EnclaveOptionsRequest) SetEnabled(v bool) *EnclaveOptionsRequest { + s.Enabled = &v + return s +} + // Describes an EC2 Fleet or Spot Fleet event. type EventInformation struct { _ struct{} `type:"structure"` @@ -76877,12 +77698,16 @@ func (s *FailedQueuedPurchaseDeletion) SetReservedInstancesId(v string) *FailedQ return s } -// Describes the IAM SAML identity provider used for federated authentication. +// Describes the IAM SAML identity providers used for federated authentication. type FederatedAuthentication struct { _ struct{} `type:"structure"` // The Amazon Resource Name (ARN) of the IAM SAML identity provider. SamlProviderArn *string `locationName:"samlProviderArn" type:"string"` + + // The Amazon Resource Name (ARN) of the IAM SAML identity provider for the + // self-service portal. + SelfServiceSamlProviderArn *string `locationName:"selfServiceSamlProviderArn" type:"string"` } // String returns the string representation @@ -76901,12 +77726,22 @@ func (s *FederatedAuthentication) SetSamlProviderArn(v string) *FederatedAuthent return s } +// SetSelfServiceSamlProviderArn sets the SelfServiceSamlProviderArn field's value. +func (s *FederatedAuthentication) SetSelfServiceSamlProviderArn(v string) *FederatedAuthentication { + s.SelfServiceSamlProviderArn = &v + return s +} + // The IAM SAML identity provider used for federated authentication. type FederatedAuthenticationRequest struct { _ struct{} `type:"structure"` // The Amazon Resource Name (ARN) of the IAM SAML identity provider. SAMLProviderArn *string `type:"string"` + + // The Amazon Resource Name (ARN) of the IAM SAML identity provider for the + // self-service portal. + SelfServiceSAMLProviderArn *string `type:"string"` } // String returns the string representation @@ -76925,6 +77760,12 @@ func (s *FederatedAuthenticationRequest) SetSAMLProviderArn(v string) *Federated return s } +// SetSelfServiceSAMLProviderArn sets the SelfServiceSAMLProviderArn field's value. +func (s *FederatedAuthenticationRequest) SetSelfServiceSAMLProviderArn(v string) *FederatedAuthenticationRequest { + s.SelfServiceSAMLProviderArn = &v + return s +} + // A filter name and value pair that is used to return a more specific list // of results from a describe operation. Filters can be used to match a set // of resources by specific criteria, such as tags, attributes, or IDs. The @@ -77592,6 +78433,126 @@ func (s *FleetLaunchTemplateSpecificationRequest) SetVersion(v string) *FleetLau return s } +// The strategy to use when Amazon EC2 emits a signal that your Spot Instance +// is at an elevated risk of being interrupted. +type FleetSpotCapacityRebalance struct { + _ struct{} `type:"structure"` + + // To allow EC2 Fleet to launch a replacement Spot Instance when an instance + // rebalance notification is emitted for an existing Spot Instance in the fleet, + // specify launch. Only available for fleets of type maintain. + // + // When a replacement instance is launched, the instance marked for rebalance + // is not automatically terminated. You can terminate it, or you can wait until + // Amazon EC2 interrupts it. You are charged for both instances while they are + // running. + ReplacementStrategy *string `locationName:"replacementStrategy" type:"string" enum:"FleetReplacementStrategy"` +} + +// String returns the string representation +func (s FleetSpotCapacityRebalance) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s FleetSpotCapacityRebalance) GoString() string { + return s.String() +} + +// SetReplacementStrategy sets the ReplacementStrategy field's value. +func (s *FleetSpotCapacityRebalance) SetReplacementStrategy(v string) *FleetSpotCapacityRebalance { + s.ReplacementStrategy = &v + return s +} + +// The Spot Instance replacement strategy to use when Amazon EC2 emits a signal +// that your Spot Instance is at an elevated risk of being interrupted. For +// more information, see Capacity rebalancing (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-configuration-strategies.html#ec2-fleet-capacity-rebalance) +// in the Amazon Elastic Compute Cloud User Guide. +type FleetSpotCapacityRebalanceRequest struct { + _ struct{} `type:"structure"` + + // The replacement strategy to use. Only available for fleets of type maintain. + // + // To allow EC2 Fleet to launch a replacement Spot Instance when an instance + // rebalance notification is emitted for an existing Spot Instance in the fleet, + // specify launch. You must specify a value, otherwise you get an error. + // + // When a replacement instance is launched, the instance marked for rebalance + // is not automatically terminated. You can terminate it, or you can wait until + // Amazon EC2 interrupts it. You are charged for all instances while they are + // running. + ReplacementStrategy *string `type:"string" enum:"FleetReplacementStrategy"` +} + +// String returns the string representation +func (s FleetSpotCapacityRebalanceRequest) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s FleetSpotCapacityRebalanceRequest) GoString() string { + return s.String() +} + +// SetReplacementStrategy sets the ReplacementStrategy field's value. +func (s *FleetSpotCapacityRebalanceRequest) SetReplacementStrategy(v string) *FleetSpotCapacityRebalanceRequest { + s.ReplacementStrategy = &v + return s +} + +// The strategies for managing your Spot Instances that are at an elevated risk +// of being interrupted. +type FleetSpotMaintenanceStrategies struct { + _ struct{} `type:"structure"` + + // The strategy to use when Amazon EC2 emits a signal that your Spot Instance + // is at an elevated risk of being interrupted. + CapacityRebalance *FleetSpotCapacityRebalance `locationName:"capacityRebalance" type:"structure"` +} + +// String returns the string representation +func (s FleetSpotMaintenanceStrategies) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s FleetSpotMaintenanceStrategies) GoString() string { + return s.String() +} + +// SetCapacityRebalance sets the CapacityRebalance field's value. +func (s *FleetSpotMaintenanceStrategies) SetCapacityRebalance(v *FleetSpotCapacityRebalance) *FleetSpotMaintenanceStrategies { + s.CapacityRebalance = v + return s +} + +// The strategies for managing your Spot Instances that are at an elevated risk +// of being interrupted. +type FleetSpotMaintenanceStrategiesRequest struct { + _ struct{} `type:"structure"` + + // The strategy to use when Amazon EC2 emits a signal that your Spot Instance + // is at an elevated risk of being interrupted. + CapacityRebalance *FleetSpotCapacityRebalanceRequest `type:"structure"` +} + +// String returns the string representation +func (s FleetSpotMaintenanceStrategiesRequest) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s FleetSpotMaintenanceStrategiesRequest) GoString() string { + return s.String() +} + +// SetCapacityRebalance sets the CapacityRebalance field's value. +func (s *FleetSpotMaintenanceStrategiesRequest) SetCapacityRebalance(v *FleetSpotCapacityRebalanceRequest) *FleetSpotMaintenanceStrategiesRequest { + s.CapacityRebalance = v + return s +} + // Describes a flow log. type FlowLog struct { _ struct{} `type:"structure"` @@ -77806,7 +78767,7 @@ func (s *FpgaDeviceInfo) SetName(v string) *FpgaDeviceInfo { type FpgaDeviceMemoryInfo struct { _ struct{} `type:"structure"` - // The size (in MiB) for the memory available to the FPGA accelerator. + // The size of the memory available to the FPGA accelerator, in MiB. SizeInMiB *int64 `locationName:"sizeInMiB" type:"integer"` } @@ -78111,6 +79072,78 @@ func (s *FpgaInfo) SetTotalFpgaMemoryInMiB(v int64) *FpgaInfo { return s } +type GetAssociatedEnclaveCertificateIamRolesInput struct { + _ struct{} `type:"structure"` + + // The ARN of the ACM certificate for which to view the associated IAM roles, + // encryption keys, and Amazon S3 object information. + CertificateArn *string `min:"1" type:"string"` + + // Checks whether you have the required permissions for the action, without + // actually making the request, and provides an error response. If you have + // the required permissions, the error response is DryRunOperation. Otherwise, + // it is UnauthorizedOperation. + DryRun *bool `type:"boolean"` +} + +// String returns the string representation +func (s GetAssociatedEnclaveCertificateIamRolesInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetAssociatedEnclaveCertificateIamRolesInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetAssociatedEnclaveCertificateIamRolesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetAssociatedEnclaveCertificateIamRolesInput"} + if s.CertificateArn != nil && len(*s.CertificateArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("CertificateArn", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetCertificateArn sets the CertificateArn field's value. +func (s *GetAssociatedEnclaveCertificateIamRolesInput) SetCertificateArn(v string) *GetAssociatedEnclaveCertificateIamRolesInput { + s.CertificateArn = &v + return s +} + +// SetDryRun sets the DryRun field's value. +func (s *GetAssociatedEnclaveCertificateIamRolesInput) SetDryRun(v bool) *GetAssociatedEnclaveCertificateIamRolesInput { + s.DryRun = &v + return s +} + +type GetAssociatedEnclaveCertificateIamRolesOutput struct { + _ struct{} `type:"structure"` + + // Information about the associated IAM roles. + AssociatedRoles []*AssociatedRole `locationName:"associatedRoleSet" locationNameList:"item" type:"list"` +} + +// String returns the string representation +func (s GetAssociatedEnclaveCertificateIamRolesOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetAssociatedEnclaveCertificateIamRolesOutput) GoString() string { + return s.String() +} + +// SetAssociatedRoles sets the AssociatedRoles field's value. +func (s *GetAssociatedEnclaveCertificateIamRolesOutput) SetAssociatedRoles(v []*AssociatedRole) *GetAssociatedEnclaveCertificateIamRolesOutput { + s.AssociatedRoles = v + return s +} + type GetAssociatedIpv6PoolCidrsInput struct { _ struct{} `type:"structure"` @@ -80314,7 +81347,7 @@ func (s *GpuDeviceInfo) SetName(v string) *GpuDeviceInfo { type GpuDeviceMemoryInfo struct { _ struct{} `type:"structure"` - // The size (in MiB) for the memory available to the GPU accelerator. + // The size of the memory available to the GPU accelerator, in MiB. SizeInMiB *int64 `locationName:"sizeInMiB" type:"integer"` } @@ -80341,7 +81374,8 @@ type GpuInfo struct { // Describes the GPU accelerators for the instance type. Gpus []*GpuDeviceInfo `locationName:"gpus" locationNameList:"item" type:"list"` - // The total size of the memory for the GPU accelerators for the instance type. + // The total size of the memory for the GPU accelerators for the instance type, + // in MiB. TotalGpuMemoryInMiB *int64 `locationName:"totalGpuMemoryInMiB" type:"integer"` } @@ -83277,6 +84311,9 @@ type Instance struct { // Specifies whether enhanced networking with ENA is enabled. EnaSupport *bool `locationName:"enaSupport" type:"boolean"` + // Indicates whether the instance is enabled for AWS Nitro Enclaves. + EnclaveOptions *EnclaveOptions `locationName:"enclaveOptions" type:"structure"` + // Indicates whether the instance is enabled for hibernation. HibernationOptions *HibernationOptions `locationName:"hibernationOptions" type:"structure"` @@ -83484,6 +84521,12 @@ func (s *Instance) SetEnaSupport(v bool) *Instance { return s } +// SetEnclaveOptions sets the EnclaveOptions field's value. +func (s *Instance) SetEnclaveOptions(v *EnclaveOptions) *Instance { + s.EnclaveOptions = v + return s +} + // SetHibernationOptions sets the HibernationOptions field's value. func (s *Instance) SetHibernationOptions(v *HibernationOptions) *Instance { s.HibernationOptions = v @@ -84483,6 +85526,9 @@ type InstanceNetworkInterfaceAttachment struct { // The index of the device on the instance for the network interface attachment. DeviceIndex *int64 `locationName:"deviceIndex" type:"integer"` + // The index of the network card. + NetworkCardIndex *int64 `locationName:"networkCardIndex" type:"integer"` + // The attachment state. Status *string `locationName:"status" type:"string" enum:"AttachmentStatus"` } @@ -84521,6 +85567,12 @@ func (s *InstanceNetworkInterfaceAttachment) SetDeviceIndex(v int64) *InstanceNe return s } +// SetNetworkCardIndex sets the NetworkCardIndex field's value. +func (s *InstanceNetworkInterfaceAttachment) SetNetworkCardIndex(v int64) *InstanceNetworkInterfaceAttachment { + s.NetworkCardIndex = &v + return s +} + // SetStatus sets the Status field's value. func (s *InstanceNetworkInterfaceAttachment) SetStatus(v string) *InstanceNetworkInterfaceAttachment { s.Status = &v @@ -84565,8 +85617,10 @@ type InstanceNetworkInterfaceSpecification struct { // creating a network interface when launching an instance. Groups []*string `locationName:"SecurityGroupId" locationNameList:"SecurityGroupId" type:"list"` - // The type of network interface. To create an Elastic Fabric Adapter (EFA), - // specify efa. For more information, see Elastic Fabric Adapter (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) + // The type of network interface. + // + // To create an Elastic Fabric Adapter (EFA), specify efa. For more information, + // see Elastic Fabric Adapter (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) // in the Amazon Elastic Compute Cloud User Guide. // // If you are not creating an EFA, specify interface or omit this parameter. @@ -84587,6 +85641,11 @@ type InstanceNetworkInterfaceSpecification struct { // number of instances to launch. Ipv6Addresses []*InstanceIpv6Address `locationName:"ipv6AddressesSet" queryName:"Ipv6Addresses" locationNameList:"item" type:"list"` + // The index of the network card. Some instance types support multiple network + // cards. The primary network interface must be assigned to network card index + // 0. The default is network card index 0. + NetworkCardIndex *int64 `type:"integer"` + // The ID of the network interface. // // If you are creating a Spot Fleet, omit this parameter because you can’t @@ -84682,6 +85741,12 @@ func (s *InstanceNetworkInterfaceSpecification) SetIpv6Addresses(v []*InstanceIp return s } +// SetNetworkCardIndex sets the NetworkCardIndex field's value. +func (s *InstanceNetworkInterfaceSpecification) SetNetworkCardIndex(v int64) *InstanceNetworkInterfaceSpecification { + s.NetworkCardIndex = &v + return s +} + // SetNetworkInterfaceId sets the NetworkInterfaceId field's value. func (s *InstanceNetworkInterfaceSpecification) SetNetworkInterfaceId(v string) *InstanceNetworkInterfaceSpecification { s.NetworkInterfaceId = &v @@ -85132,9 +86197,13 @@ func (s *InstanceStatusSummary) SetStatus(v string) *InstanceStatusSummary { type InstanceStorageInfo struct { _ struct{} `type:"structure"` - // Array describing the disks that are available for the instance type. + // Describes the disks that are available for the instance type. Disks []*DiskInfo `locationName:"disks" locationNameList:"item" type:"list"` + // Indicates whether non-volatile memory express (NVMe) is supported for instance + // store. + NvmeSupport *string `locationName:"nvmeSupport" type:"string" enum:"EphemeralNvmeSupport"` + // The total size of the disks, in GB. TotalSizeInGB *int64 `locationName:"totalSizeInGB" type:"long"` } @@ -85155,6 +86224,12 @@ func (s *InstanceStorageInfo) SetDisks(v []*DiskInfo) *InstanceStorageInfo { return s } +// SetNvmeSupport sets the NvmeSupport field's value. +func (s *InstanceStorageInfo) SetNvmeSupport(v string) *InstanceStorageInfo { + s.NvmeSupport = &v + return s +} + // SetTotalSizeInGB sets the TotalSizeInGB field's value. func (s *InstanceStorageInfo) SetTotalSizeInGB(v int64) *InstanceStorageInfo { s.TotalSizeInGB = &v @@ -85203,13 +86278,13 @@ type InstanceTypeInfo struct { // Indicates whether auto recovery is supported. AutoRecoverySupported *bool `locationName:"autoRecoverySupported" type:"boolean"` - // Indicates whether the instance is bare metal. + // Indicates whether the instance is a bare metal instance type. BareMetal *bool `locationName:"bareMetal" type:"boolean"` // Indicates whether the instance type is a burstable performance instance type. BurstablePerformanceSupported *bool `locationName:"burstablePerformanceSupported" type:"boolean"` - // Indicates whether the instance type is a current generation. + // Indicates whether the instance type is current generation. CurrentGeneration *bool `locationName:"currentGeneration" type:"boolean"` // Indicates whether Dedicated Hosts are supported on the instance type. @@ -85230,13 +86305,13 @@ type InstanceTypeInfo struct { // Indicates whether On-Demand hibernation is supported. HibernationSupported *bool `locationName:"hibernationSupported" type:"boolean"` - // Indicates the hypervisor used for the instance type. + // The hypervisor for the instance type. Hypervisor *string `locationName:"hypervisor" type:"string" enum:"InstanceTypeHypervisor"` // Describes the Inference accelerator settings for the instance type. InferenceAcceleratorInfo *InferenceAcceleratorInfo `locationName:"inferenceAcceleratorInfo" type:"structure"` - // Describes the disks for the instance type. + // Describes the instance storage for the instance type. InstanceStorageInfo *InstanceStorageInfo `locationName:"instanceStorageInfo" type:"structure"` // Indicates whether instance storage is supported. @@ -85258,7 +86333,7 @@ type InstanceTypeInfo struct { // Describes the processor. ProcessorInfo *ProcessorInfo `locationName:"processorInfo" type:"structure"` - // Indicates the supported root device types. + // The supported root device types. SupportedRootDeviceTypes []*string `locationName:"supportedRootDeviceTypes" locationNameList:"item" type:"list"` // Indicates whether the instance type is offered for spot or On-Demand. @@ -86855,6 +87930,57 @@ func (s *LaunchTemplateElasticInferenceAcceleratorResponse) SetType(v string) *L return s } +// Indicates whether the instance is enabled for AWS Nitro Enclaves. +type LaunchTemplateEnclaveOptions struct { + _ struct{} `type:"structure"` + + // If this parameter is set to true, the instance is enabled for AWS Nitro Enclaves; + // otherwise, it is not enabled for AWS Nitro Enclaves. + Enabled *bool `locationName:"enabled" type:"boolean"` +} + +// String returns the string representation +func (s LaunchTemplateEnclaveOptions) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s LaunchTemplateEnclaveOptions) GoString() string { + return s.String() +} + +// SetEnabled sets the Enabled field's value. +func (s *LaunchTemplateEnclaveOptions) SetEnabled(v bool) *LaunchTemplateEnclaveOptions { + s.Enabled = &v + return s +} + +// Indicates whether the instance is enabled for AWS Nitro Enclaves. For more +// information, see What is AWS Nitro Enclaves? (https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html) +// in the AWS Nitro Enclaves User Guide. +type LaunchTemplateEnclaveOptionsRequest struct { + _ struct{} `type:"structure"` + + // To enable the instance for AWS Nitro Enclaves, set this parameter to true. + Enabled *bool `type:"boolean"` +} + +// String returns the string representation +func (s LaunchTemplateEnclaveOptionsRequest) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s LaunchTemplateEnclaveOptionsRequest) GoString() string { + return s.String() +} + +// SetEnabled sets the Enabled field's value. +func (s *LaunchTemplateEnclaveOptionsRequest) SetEnabled(v bool) *LaunchTemplateEnclaveOptionsRequest { + s.Enabled = &v + return s +} + // Indicates whether an instance is configured for hibernation. type LaunchTemplateHibernationOptions struct { _ struct{} `type:"structure"` @@ -87221,6 +88347,9 @@ type LaunchTemplateInstanceNetworkInterfaceSpecification struct { // The IPv6 addresses for the network interface. Ipv6Addresses []*InstanceIpv6Address `locationName:"ipv6AddressesSet" locationNameList:"item" type:"list"` + // The index of the network card. + NetworkCardIndex *int64 `locationName:"networkCardIndex" type:"integer"` + // The ID of the network interface. NetworkInterfaceId *string `locationName:"networkInterfaceId" type:"string"` @@ -87301,6 +88430,12 @@ func (s *LaunchTemplateInstanceNetworkInterfaceSpecification) SetIpv6Addresses(v return s } +// SetNetworkCardIndex sets the NetworkCardIndex field's value. +func (s *LaunchTemplateInstanceNetworkInterfaceSpecification) SetNetworkCardIndex(v int64) *LaunchTemplateInstanceNetworkInterfaceSpecification { + s.NetworkCardIndex = &v + return s +} + // SetNetworkInterfaceId sets the NetworkInterfaceId field's value. func (s *LaunchTemplateInstanceNetworkInterfaceSpecification) SetNetworkInterfaceId(v string) *LaunchTemplateInstanceNetworkInterfaceSpecification { s.NetworkInterfaceId = &v @@ -87376,6 +88511,11 @@ type LaunchTemplateInstanceNetworkInterfaceSpecificationRequest struct { // subnet. You can't use this option if you're specifying a number of IPv6 addresses. Ipv6Addresses []*InstanceIpv6AddressRequest `locationNameList:"InstanceIpv6Address" type:"list"` + // The index of the network card. Some instance types support multiple network + // cards. The primary network interface must be assigned to network card index + // 0. The default is network card index 0. + NetworkCardIndex *int64 `type:"integer"` + // The ID of the network interface. NetworkInterfaceId *string `type:"string"` @@ -87456,6 +88596,12 @@ func (s *LaunchTemplateInstanceNetworkInterfaceSpecificationRequest) SetIpv6Addr return s } +// SetNetworkCardIndex sets the NetworkCardIndex field's value. +func (s *LaunchTemplateInstanceNetworkInterfaceSpecificationRequest) SetNetworkCardIndex(v int64) *LaunchTemplateInstanceNetworkInterfaceSpecificationRequest { + s.NetworkCardIndex = &v + return s +} + // SetNetworkInterfaceId sets the NetworkInterfaceId field's value. func (s *LaunchTemplateInstanceNetworkInterfaceSpecificationRequest) SetNetworkInterfaceId(v string) *LaunchTemplateInstanceNetworkInterfaceSpecificationRequest { s.NetworkInterfaceId = &v @@ -89028,7 +90174,7 @@ func (s *ManagedPrefixList) SetVersion(v int64) *ManagedPrefixList { type MemoryInfo struct { _ struct{} `type:"structure"` - // Size of the memory, in MiB. + // The size of the memory, in MiB. SizeInMiB *int64 `locationName:"sizeInMiB" type:"long"` } @@ -89259,6 +90405,9 @@ func (s *ModifyCapacityReservationOutput) SetReturn(v bool) *ModifyCapacityReser type ModifyClientVpnEndpointInput struct { _ struct{} `type:"structure"` + // The options for managing connection authorization for new client connections. + ClientConnectOptions *ClientConnectOptions `type:"structure"` + // The ID of the Client VPN endpoint to modify. // // ClientVpnEndpointId is a required field @@ -89294,6 +90443,9 @@ type ModifyClientVpnEndpointInput struct { // The IDs of one or more security groups to apply to the target network. SecurityGroupIds []*string `locationName:"SecurityGroupId" locationNameList:"item" type:"list"` + // Specify whether to enable the self-service portal for the Client VPN endpoint. + SelfServicePortal *string `type:"string" enum:"SelfServicePortal"` + // The ARN of the server certificate to be used. The server certificate must // be provisioned in AWS Certificate Manager (ACM). ServerCertificateArn *string `type:"string"` @@ -89339,6 +90491,12 @@ func (s *ModifyClientVpnEndpointInput) Validate() error { return nil } +// SetClientConnectOptions sets the ClientConnectOptions field's value. +func (s *ModifyClientVpnEndpointInput) SetClientConnectOptions(v *ClientConnectOptions) *ModifyClientVpnEndpointInput { + s.ClientConnectOptions = v + return s +} + // SetClientVpnEndpointId sets the ClientVpnEndpointId field's value. func (s *ModifyClientVpnEndpointInput) SetClientVpnEndpointId(v string) *ModifyClientVpnEndpointInput { s.ClientVpnEndpointId = &v @@ -89375,6 +90533,12 @@ func (s *ModifyClientVpnEndpointInput) SetSecurityGroupIds(v []*string) *ModifyC return s } +// SetSelfServicePortal sets the SelfServicePortal field's value. +func (s *ModifyClientVpnEndpointInput) SetSelfServicePortal(v string) *ModifyClientVpnEndpointInput { + s.SelfServicePortal = &v + return s +} + // SetServerCertificateArn sets the ServerCertificateArn field's value. func (s *ModifyClientVpnEndpointInput) SetServerCertificateArn(v string) *ModifyClientVpnEndpointInput { s.ServerCertificateArn = &v @@ -89527,11 +90691,11 @@ type ModifyEbsDefaultKmsKeyIdInput struct { // // You can specify the CMK using any of the following: // - // * Key ID. For example, key/1234abcd-12ab-34cd-56ef-1234567890ab. + // * Key ID. For example, 1234abcd-12ab-34cd-56ef-1234567890ab. // // * Key alias. For example, alias/ExampleAlias. // - // * Key ARN. For example, arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef. + // * Key ARN. For example, arn:aws:kms:us-east-1:012345678910:key/1234abcd-12ab-34cd-56ef-1234567890ab. // // * Alias ARN. For example, arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias. // @@ -89626,9 +90790,7 @@ type ModifyFleetInput struct { LaunchTemplateConfigs []*FleetLaunchTemplateConfigRequest `locationName:"LaunchTemplateConfig" locationNameList:"item" type:"list"` // The size of the EC2 Fleet. - // - // TargetCapacitySpecification is a required field - TargetCapacitySpecification *TargetCapacitySpecificationRequest `type:"structure" required:"true"` + TargetCapacitySpecification *TargetCapacitySpecificationRequest `type:"structure"` } // String returns the string representation @@ -89647,9 +90809,6 @@ func (s *ModifyFleetInput) Validate() error { if s.FleetId == nil { invalidParams.Add(request.NewErrParamRequired("FleetId")) } - if s.TargetCapacitySpecification == nil { - invalidParams.Add(request.NewErrParamRequired("TargetCapacitySpecification")) - } if s.LaunchTemplateConfigs != nil { for i, v := range s.LaunchTemplateConfigs { if v == nil { @@ -92608,6 +93767,11 @@ func (s *ModifyTransitGatewayVpcAttachmentOutput) SetTransitGatewayVpcAttachment type ModifyTransitGatewayVpcAttachmentRequestOptions struct { _ struct{} `type:"structure"` + // Enable or disable support for appliance mode. If enabled, a traffic flow + // between a source and destination uses the same Availability Zone for the + // VPC attachment for the lifetime of that flow. The default is disable. + ApplianceModeSupport *string `type:"string" enum:"ApplianceModeSupportValue"` + // Enable or disable DNS support. The default is enable. DnsSupport *string `type:"string" enum:"DnsSupportValue"` @@ -92625,6 +93789,12 @@ func (s ModifyTransitGatewayVpcAttachmentRequestOptions) GoString() string { return s.String() } +// SetApplianceModeSupport sets the ApplianceModeSupport field's value. +func (s *ModifyTransitGatewayVpcAttachmentRequestOptions) SetApplianceModeSupport(v string) *ModifyTransitGatewayVpcAttachmentRequestOptions { + s.ApplianceModeSupport = &v + return s +} + // SetDnsSupport sets the DnsSupport field's value. func (s *ModifyTransitGatewayVpcAttachmentRequestOptions) SetDnsSupport(v string) *ModifyTransitGatewayVpcAttachmentRequestOptions { s.DnsSupport = &v @@ -93006,7 +94176,9 @@ type ModifyVpcEndpointInput struct { // network interface. AddSecurityGroupIds []*string `locationName:"AddSecurityGroupId" locationNameList:"item" type:"list"` - // (Interface endpoint) One or more subnet IDs in which to serve the endpoint. + // (Interface and Gateway Load Balancer endpoints) One or more subnet IDs in + // which to serve the endpoint. For a Gateway Load Balancer endpoint, you can + // specify only one subnet. AddSubnetIds []*string `locationName:"AddSubnetId" locationNameList:"item" type:"list"` // Checks whether you have the required permissions for the action, without @@ -93015,8 +94187,8 @@ type ModifyVpcEndpointInput struct { // it is UnauthorizedOperation. DryRun *bool `type:"boolean"` - // A policy to attach to the endpoint that controls access to the service. The - // policy must be in valid JSON format. + // (Interface and gateway endpoints) A policy to attach to the endpoint that + // controls access to the service. The policy must be in valid JSON format. PolicyDocument *string `type:"string"` // (Interface endpoint) Indicates whether a private hosted zone is associated @@ -93162,6 +94334,10 @@ type ModifyVpcEndpointServiceConfigurationInput struct { // accepted. AcceptanceRequired *bool `type:"boolean"` + // The Amazon Resource Names (ARNs) of Gateway Load Balancers to add to your + // service configuration. + AddGatewayLoadBalancerArns []*string `locationName:"AddGatewayLoadBalancerArn" locationNameList:"item" type:"list"` + // The Amazon Resource Names (ARNs) of Network Load Balancers to add to your // service configuration. AddNetworkLoadBalancerArns []*string `locationName:"AddNetworkLoadBalancerArn" locationNameList:"item" type:"list"` @@ -93172,14 +94348,20 @@ type ModifyVpcEndpointServiceConfigurationInput struct { // it is UnauthorizedOperation. DryRun *bool `type:"boolean"` - // The private DNS name to assign to the endpoint service. + // (Interface endpoint configuration) The private DNS name to assign to the + // endpoint service. PrivateDnsName *string `type:"string"` + // The Amazon Resource Names (ARNs) of Gateway Load Balancers to remove from + // your service configuration. + RemoveGatewayLoadBalancerArns []*string `locationName:"RemoveGatewayLoadBalancerArn" locationNameList:"item" type:"list"` + // The Amazon Resource Names (ARNs) of Network Load Balancers to remove from // your service configuration. RemoveNetworkLoadBalancerArns []*string `locationName:"RemoveNetworkLoadBalancerArn" locationNameList:"item" type:"list"` - // Removes the private DNS name of the endpoint service. + // (Interface endpoint configuration) Removes the private DNS name of the endpoint + // service. RemovePrivateDnsName *bool `type:"boolean"` // The ID of the service. @@ -93217,6 +94399,12 @@ func (s *ModifyVpcEndpointServiceConfigurationInput) SetAcceptanceRequired(v boo return s } +// SetAddGatewayLoadBalancerArns sets the AddGatewayLoadBalancerArns field's value. +func (s *ModifyVpcEndpointServiceConfigurationInput) SetAddGatewayLoadBalancerArns(v []*string) *ModifyVpcEndpointServiceConfigurationInput { + s.AddGatewayLoadBalancerArns = v + return s +} + // SetAddNetworkLoadBalancerArns sets the AddNetworkLoadBalancerArns field's value. func (s *ModifyVpcEndpointServiceConfigurationInput) SetAddNetworkLoadBalancerArns(v []*string) *ModifyVpcEndpointServiceConfigurationInput { s.AddNetworkLoadBalancerArns = v @@ -93235,6 +94423,12 @@ func (s *ModifyVpcEndpointServiceConfigurationInput) SetPrivateDnsName(v string) return s } +// SetRemoveGatewayLoadBalancerArns sets the RemoveGatewayLoadBalancerArns field's value. +func (s *ModifyVpcEndpointServiceConfigurationInput) SetRemoveGatewayLoadBalancerArns(v []*string) *ModifyVpcEndpointServiceConfigurationInput { + s.RemoveGatewayLoadBalancerArns = v + return s +} + // SetRemoveNetworkLoadBalancerArns sets the RemoveNetworkLoadBalancerArns field's value. func (s *ModifyVpcEndpointServiceConfigurationInput) SetRemoveNetworkLoadBalancerArns(v []*string) *ModifyVpcEndpointServiceConfigurationInput { s.RemoveNetworkLoadBalancerArns = v @@ -94854,10 +96048,55 @@ func (s *NetworkAclEntry) SetRuleNumber(v int64) *NetworkAclEntry { return s } +// Describes the network card support of the instance type. +type NetworkCardInfo struct { + _ struct{} `type:"structure"` + + // The maximum number of network interfaces for the network card. + MaximumNetworkInterfaces *int64 `locationName:"maximumNetworkInterfaces" type:"integer"` + + // The index of the network card. + NetworkCardIndex *int64 `locationName:"networkCardIndex" type:"integer"` + + // The network performance of the network card. + NetworkPerformance *string `locationName:"networkPerformance" type:"string"` +} + +// String returns the string representation +func (s NetworkCardInfo) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s NetworkCardInfo) GoString() string { + return s.String() +} + +// SetMaximumNetworkInterfaces sets the MaximumNetworkInterfaces field's value. +func (s *NetworkCardInfo) SetMaximumNetworkInterfaces(v int64) *NetworkCardInfo { + s.MaximumNetworkInterfaces = &v + return s +} + +// SetNetworkCardIndex sets the NetworkCardIndex field's value. +func (s *NetworkCardInfo) SetNetworkCardIndex(v int64) *NetworkCardInfo { + s.NetworkCardIndex = &v + return s +} + +// SetNetworkPerformance sets the NetworkPerformance field's value. +func (s *NetworkCardInfo) SetNetworkPerformance(v string) *NetworkCardInfo { + s.NetworkPerformance = &v + return s +} + // Describes the networking features of the instance type. type NetworkInfo struct { _ struct{} `type:"structure"` + // The index of the default network card, starting at 0. + DefaultNetworkCardIndex *int64 `locationName:"defaultNetworkCardIndex" type:"integer"` + // Indicates whether Elastic Fabric Adapter (EFA) is supported. EfaSupported *bool `locationName:"efaSupported" type:"boolean"` @@ -94873,10 +96112,17 @@ type NetworkInfo struct { // Indicates whether IPv6 is supported. Ipv6Supported *bool `locationName:"ipv6Supported" type:"boolean"` + // The maximum number of physical network cards that can be allocated to the + // instance. + MaximumNetworkCards *int64 `locationName:"maximumNetworkCards" type:"integer"` + // The maximum number of network interfaces for the instance type. MaximumNetworkInterfaces *int64 `locationName:"maximumNetworkInterfaces" type:"integer"` - // Describes the network performance. + // Describes the network cards for the instance type. + NetworkCards []*NetworkCardInfo `locationName:"networkCards" locationNameList:"item" type:"list"` + + // The network performance. NetworkPerformance *string `locationName:"networkPerformance" type:"string"` } @@ -94890,6 +96136,12 @@ func (s NetworkInfo) GoString() string { return s.String() } +// SetDefaultNetworkCardIndex sets the DefaultNetworkCardIndex field's value. +func (s *NetworkInfo) SetDefaultNetworkCardIndex(v int64) *NetworkInfo { + s.DefaultNetworkCardIndex = &v + return s +} + // SetEfaSupported sets the EfaSupported field's value. func (s *NetworkInfo) SetEfaSupported(v bool) *NetworkInfo { s.EfaSupported = &v @@ -94920,12 +96172,24 @@ func (s *NetworkInfo) SetIpv6Supported(v bool) *NetworkInfo { return s } +// SetMaximumNetworkCards sets the MaximumNetworkCards field's value. +func (s *NetworkInfo) SetMaximumNetworkCards(v int64) *NetworkInfo { + s.MaximumNetworkCards = &v + return s +} + // SetMaximumNetworkInterfaces sets the MaximumNetworkInterfaces field's value. func (s *NetworkInfo) SetMaximumNetworkInterfaces(v int64) *NetworkInfo { s.MaximumNetworkInterfaces = &v return s } +// SetNetworkCards sets the NetworkCards field's value. +func (s *NetworkInfo) SetNetworkCards(v []*NetworkCardInfo) *NetworkInfo { + s.NetworkCards = v + return s +} + // SetNetworkPerformance sets the NetworkPerformance field's value. func (s *NetworkInfo) SetNetworkPerformance(v string) *NetworkInfo { s.NetworkPerformance = &v @@ -95165,8 +96429,7 @@ type NetworkInterfaceAssociation struct { // The public DNS name. PublicDnsName *string `locationName:"publicDnsName" type:"string"` - // The address of the Elastic IP address or Carrier IP address bound to the - // network interface. + // The address of the Elastic IP address bound to the network interface. PublicIp *string `locationName:"publicIp" type:"string"` } @@ -95244,6 +96507,9 @@ type NetworkInterfaceAttachment struct { // The AWS account ID of the owner of the instance. InstanceOwnerId *string `locationName:"instanceOwnerId" type:"string"` + // The index of the network card. + NetworkCardIndex *int64 `locationName:"networkCardIndex" type:"integer"` + // The attachment state. Status *string `locationName:"status" type:"string" enum:"AttachmentStatus"` } @@ -95294,6 +96560,12 @@ func (s *NetworkInterfaceAttachment) SetInstanceOwnerId(v string) *NetworkInterf return s } +// SetNetworkCardIndex sets the NetworkCardIndex field's value. +func (s *NetworkInterfaceAttachment) SetNetworkCardIndex(v int64) *NetworkInterfaceAttachment { + s.NetworkCardIndex = &v + return s +} + // SetStatus sets the Status field's value. func (s *NetworkInterfaceAttachment) SetStatus(v string) *NetworkInterfaceAttachment { s.Status = &v @@ -96394,7 +97666,7 @@ func (s *PlacementGroup) SetTags(v []*Tag) *PlacementGroup { type PlacementGroupInfo struct { _ struct{} `type:"structure"` - // A list of supported placement groups types. + // The supported placement group types. SupportedStrategies []*string `locationName:"supportedStrategies" locationNameList:"item" type:"list"` } @@ -96909,7 +98181,7 @@ func (s *PrivateIpAddressSpecification) SetPrivateIpAddress(v string) *PrivateIp type ProcessorInfo struct { _ struct{} `type:"structure"` - // A list of architectures supported by the instance type. + // The architectures supported by the instance type. SupportedArchitectures []*string `locationName:"supportedArchitectures" locationNameList:"item" type:"list"` // The speed of the processor, in GHz. @@ -99285,6 +100557,9 @@ type ReplaceRouteInput struct { // The ID of a transit gateway. TransitGatewayId *string `type:"string"` + // The ID of a VPC endpoint. Supported for Gateway Load Balancer endpoints only. + VpcEndpointId *string `type:"string"` + // The ID of a VPC peering connection. VpcPeeringConnectionId *string `locationName:"vpcPeeringConnectionId" type:"string"` } @@ -99396,6 +100671,12 @@ func (s *ReplaceRouteInput) SetTransitGatewayId(v string) *ReplaceRouteInput { return s } +// SetVpcEndpointId sets the VpcEndpointId field's value. +func (s *ReplaceRouteInput) SetVpcEndpointId(v string) *ReplaceRouteInput { + s.VpcEndpointId = &v + return s +} + // SetVpcPeeringConnectionId sets the VpcPeeringConnectionId field's value. func (s *ReplaceRouteInput) SetVpcPeeringConnectionId(v string) *ReplaceRouteInput { s.VpcPeeringConnectionId = &v @@ -99800,6 +101081,13 @@ type RequestLaunchTemplateData struct { // The elastic inference accelerator for the instance. ElasticInferenceAccelerators []*LaunchTemplateElasticInferenceAccelerator `locationName:"ElasticInferenceAccelerator" locationNameList:"item" type:"list"` + // Indicates whether the instance is enabled for AWS Nitro Enclaves. For more + // information, see What is AWS Nitro Enclaves? (https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html) + // in the AWS Nitro Enclaves User Guide. + // + // You can't enable AWS Nitro Enclaves and hibernation on the same instance. + EnclaveOptions *LaunchTemplateEnclaveOptionsRequest `type:"structure"` + // Indicates whether an instance is enabled for hibernation. This parameter // is valid only if the instance meets the hibernation prerequisites (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html#hibernating-prerequisites). // For more information, see Hibernate Your Instance (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) @@ -99981,6 +101269,12 @@ func (s *RequestLaunchTemplateData) SetElasticInferenceAccelerators(v []*LaunchT return s } +// SetEnclaveOptions sets the EnclaveOptions field's value. +func (s *RequestLaunchTemplateData) SetEnclaveOptions(v *LaunchTemplateEnclaveOptionsRequest) *RequestLaunchTemplateData { + s.EnclaveOptions = v + return s +} + // SetHibernationOptions sets the HibernationOptions field's value. func (s *RequestLaunchTemplateData) SetHibernationOptions(v *LaunchTemplateHibernationOptionsRequest) *RequestLaunchTemplateData { s.HibernationOptions = v @@ -100205,6 +101499,9 @@ type RequestSpotInstancesInput struct { // // You can't specify an Availability Zone group or a launch group if you specify // a duration. + // + // New accounts or accounts with no previous billing history with AWS are not + // eligible for Spot Instances with a defined duration (also known as Spot blocks). BlockDurationMinutes *int64 `locationName:"blockDurationMinutes" type:"integer"` // Unique, case-sensitive identifier that you provide to ensure the idempotency @@ -100261,11 +101558,16 @@ type RequestSpotInstancesInput struct { // date and time. ValidFrom *time.Time `locationName:"validFrom" type:"timestamp"` - // The end date of the request. If this is a one-time request, the request remains - // active until all instances launch, the request is canceled, or this date - // is reached. If the request is persistent, it remains active until it is canceled - // or this date is reached. The default end date is 7 days from the current - // date. + // The end date of the request, in UTC format (YYYY-MM-DDTHH:MM:SSZ). + // + // * For a persistent request, the request remains active until the ValidUntil + // date and time is reached. Otherwise, the request remains active until + // you cancel it. + // + // * For a one-time request, the request remains active until all instances + // launch, the request is canceled, or the ValidUntil date and time is reached. + // By default, the request is valid for 7 days from the date the request + // was created. ValidUntil *time.Time `locationName:"validUntil" type:"timestamp"` } @@ -100587,7 +101889,9 @@ func (s *RequestSpotLaunchSpecification) SetUserData(v string) *RequestSpotLaunc return s } -// Describes a reservation. +// Describes a launch request for one or more instances, and includes owner, +// requester, and security group information that applies to all instances in +// the launch request. type Reservation struct { _ struct{} `type:"structure"` @@ -101933,6 +103237,9 @@ type ResponseLaunchTemplateData struct { // The elastic inference accelerator for the instance. ElasticInferenceAccelerators []*LaunchTemplateElasticInferenceAcceleratorResponse `locationName:"elasticInferenceAcceleratorSet" locationNameList:"item" type:"list"` + // Indicates whether the instance is enabled for AWS Nitro Enclaves. + EnclaveOptions *LaunchTemplateEnclaveOptions `locationName:"enclaveOptions" type:"structure"` + // Indicates whether an instance is configured for hibernation. For more information, // see Hibernate Your Instance (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) // in the Amazon Elastic Compute Cloud User Guide. @@ -102051,6 +103358,12 @@ func (s *ResponseLaunchTemplateData) SetElasticInferenceAccelerators(v []*Launch return s } +// SetEnclaveOptions sets the EnclaveOptions field's value. +func (s *ResponseLaunchTemplateData) SetEnclaveOptions(v *LaunchTemplateEnclaveOptions) *ResponseLaunchTemplateData { + s.EnclaveOptions = v + return s +} + // SetHibernationOptions sets the HibernationOptions field's value. func (s *ResponseLaunchTemplateData) SetHibernationOptions(v *LaunchTemplateHibernationOptions) *ResponseLaunchTemplateData { s.HibernationOptions = v @@ -103171,9 +104484,18 @@ type RunInstancesInput struct { // You cannot specify accelerators from different generations in the same request. ElasticInferenceAccelerators []*ElasticInferenceAccelerator `locationName:"ElasticInferenceAccelerator" locationNameList:"item" type:"list"` + // Indicates whether the instance is enabled for AWS Nitro Enclaves. For more + // information, see What is AWS Nitro Enclaves? (https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html) + // in the AWS Nitro Enclaves User Guide. + // + // You can't enable AWS Nitro Enclaves and hibernation on the same instance. + EnclaveOptions *EnclaveOptionsRequest `type:"structure"` + // Indicates whether an instance is enabled for hibernation. For more information, // see Hibernate your instance (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) // in the Amazon Elastic Compute Cloud User Guide. + // + // You can't enable hibernation and AWS Nitro Enclaves on the same instance. HibernationOptions *HibernationOptionsRequest `type:"structure"` // The IAM instance profile. @@ -103462,6 +104784,12 @@ func (s *RunInstancesInput) SetElasticInferenceAccelerators(v []*ElasticInferenc return s } +// SetEnclaveOptions sets the EnclaveOptions field's value. +func (s *RunInstancesInput) SetEnclaveOptions(v *EnclaveOptionsRequest) *RunInstancesInput { + s.EnclaveOptions = v + return s +} + // SetHibernationOptions sets the HibernationOptions field's value. func (s *RunInstancesInput) SetHibernationOptions(v *HibernationOptionsRequest) *RunInstancesInput { s.HibernationOptions = v @@ -105463,6 +106791,9 @@ type ServiceConfiguration struct { // The DNS names for the service. BaseEndpointDnsNames []*string `locationName:"baseEndpointDnsNameSet" locationNameList:"item" type:"list"` + // The Amazon Resource Names (ARNs) of the Gateway Load Balancers for the service. + GatewayLoadBalancerArns []*string `locationName:"gatewayLoadBalancerArnSet" locationNameList:"item" type:"list"` + // Indicates whether the service manages its VPC endpoints. Management of the // service VPC endpoints using the VPC endpoint API is restricted. ManagesVpcEndpoints *bool `locationName:"managesVpcEndpoints" type:"boolean"` @@ -105520,6 +106851,12 @@ func (s *ServiceConfiguration) SetBaseEndpointDnsNames(v []*string) *ServiceConf return s } +// SetGatewayLoadBalancerArns sets the GatewayLoadBalancerArns field's value. +func (s *ServiceConfiguration) SetGatewayLoadBalancerArns(v []*string) *ServiceConfiguration { + s.GatewayLoadBalancerArns = v + return s +} + // SetManagesVpcEndpoints sets the ManagesVpcEndpoints field's value. func (s *ServiceConfiguration) SetManagesVpcEndpoints(v bool) *ServiceConfiguration { s.ManagesVpcEndpoints = &v @@ -105838,10 +107175,8 @@ type Snapshot struct { // key for the parent volume. KmsKeyId *string `locationName:"kmsKeyId" type:"string"` - // The AWS owner alias, as maintained by Amazon. The possible values are: amazon - // | self | all | aws-marketplace | microsoft. This AWS owner alias is not to - // be confused with the user-configured AWS account alias, which is set from - // the IAM console. + // The AWS owner alias, from an Amazon-maintained list (amazon). This is not + // the user-configured AWS account alias set using the IAM console. OwnerAlias *string `locationName:"ownerAlias" type:"string"` // The AWS account ID of the EBS snapshot owner. @@ -106354,11 +107689,48 @@ func (s *SnapshotTaskDetail) SetUserBucket(v *UserBucketDetails) *SnapshotTaskDe return s } +// The Spot Instance replacement strategy to use when Amazon EC2 emits a signal +// that your Spot Instance is at an elevated risk of being interrupted. For +// more information, see Capacity rebalancing (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-configuration-strategies.html#spot-fleet-capacity-rebalance) +// in the Amazon EC2 User Guide for Linux Instances. +type SpotCapacityRebalance struct { + _ struct{} `type:"structure"` + + // The replacement strategy to use. Only available for fleets of type maintain. + // You must specify a value, otherwise you get an error. + // + // To allow Spot Fleet to launch a replacement Spot Instance when an instance + // rebalance notification is emitted for a Spot Instance in the fleet, specify + // launch. + // + // When a replacement instance is launched, the instance marked for rebalance + // is not automatically terminated. You can terminate it, or you can wait until + // Amazon EC2 interrupts it. You are charged for all instances while they are + // running. + ReplacementStrategy *string `locationName:"replacementStrategy" type:"string" enum:"ReplacementStrategy"` +} + +// String returns the string representation +func (s SpotCapacityRebalance) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s SpotCapacityRebalance) GoString() string { + return s.String() +} + +// SetReplacementStrategy sets the ReplacementStrategy field's value. +func (s *SpotCapacityRebalance) SetReplacementStrategy(v string) *SpotCapacityRebalance { + s.ReplacementStrategy = &v + return s +} + // Describes the data feed for a Spot Instance. type SpotDatafeedSubscription struct { _ struct{} `type:"structure"` - // The Amazon S3 bucket where the Spot Instance data feed is located. + // The name of the Amazon S3 bucket where the Spot Instance data feed is located. Bucket *string `locationName:"bucket" type:"string"` // The fault codes for the Spot Instance request, if any. @@ -106367,7 +107739,7 @@ type SpotDatafeedSubscription struct { // The AWS account ID of the account. OwnerId *string `locationName:"ownerId" type:"string"` - // The prefix that is prepended to data feed files. + // The prefix for the data feed files. Prefix *string `locationName:"prefix" type:"string"` // The state of the Spot Instance data feed subscription. @@ -106415,8 +107787,9 @@ func (s *SpotDatafeedSubscription) SetState(v string) *SpotDatafeedSubscription } // Describes the launch specification for one or more Spot Instances. If you -// include On-Demand capacity in your fleet request, you can't use SpotFleetLaunchSpecification; -// you must use LaunchTemplateConfig (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_LaunchTemplateConfig.html). +// include On-Demand capacity in your fleet request or want to specify an EFA +// network device, you can't use SpotFleetLaunchSpecification; you must use +// LaunchTemplateConfig (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_LaunchTemplateConfig.html). type SpotFleetLaunchSpecification struct { _ struct{} `type:"structure"` @@ -106459,6 +107832,9 @@ type SpotFleetLaunchSpecification struct { // One or more network interfaces. If you specify a network interface, you must // specify subnet IDs and security group IDs using the network interface. + // + // SpotFleetLaunchSpecification currently does not support Elastic Fabric Adapter + // (EFA). To specify an EFA, you must use LaunchTemplateConfig (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_LaunchTemplateConfig.html). NetworkInterfaces []*InstanceNetworkInterfaceSpecification `locationName:"networkInterfaceSet" locationNameList:"item" type:"list"` // The placement information. @@ -106824,6 +108200,10 @@ type SpotFleetRequestConfigData struct { // Indicates whether Spot Fleet should replace unhealthy instances. ReplaceUnhealthyInstances *bool `locationName:"replaceUnhealthyInstances" type:"boolean"` + // The strategies for managing your Spot Instances that are at an elevated risk + // of being interrupted. + SpotMaintenanceStrategies *SpotMaintenanceStrategies `locationName:"spotMaintenanceStrategies" type:"structure"` + // The maximum amount per hour for Spot Instances that you're willing to pay. // You can use the spotdMaxTotalPrice parameter, the onDemandMaxTotalPrice parameter, // or both parameters to ensure that your fleet cost does not exceed your budget. @@ -107013,6 +108393,12 @@ func (s *SpotFleetRequestConfigData) SetReplaceUnhealthyInstances(v bool) *SpotF return s } +// SetSpotMaintenanceStrategies sets the SpotMaintenanceStrategies field's value. +func (s *SpotFleetRequestConfigData) SetSpotMaintenanceStrategies(v *SpotMaintenanceStrategies) *SpotFleetRequestConfigData { + s.SpotMaintenanceStrategies = v + return s +} + // SetSpotMaxTotalPrice sets the SpotMaxTotalPrice field's value. func (s *SpotFleetRequestConfigData) SetSpotMaxTotalPrice(v string) *SpotFleetRequestConfigData { s.SpotMaxTotalPrice = &v @@ -107163,11 +108549,16 @@ type SpotInstanceRequest struct { // The request becomes active at this date and time. ValidFrom *time.Time `locationName:"validFrom" type:"timestamp"` - // The end date of the request, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ). - // If this is a one-time request, it remains active until all instances launch, - // the request is canceled, or this date is reached. If the request is persistent, - // it remains active until it is canceled or this date is reached. The default - // end date is 7 days from the current date. + // The end date of the request, in UTC format (YYYY-MM-DDTHH:MM:SSZ). + // + // * For a persistent request, the request remains active until the validUntil + // date and time is reached. Otherwise, the request remains active until + // you cancel it. + // + // * For a one-time request, the request remains active until all instances + // launch, the request is canceled, or the validUntil date and time is reached. + // By default, the request is valid for 7 days from the date the request + // was created. ValidUntil *time.Time `locationName:"validUntil" type:"timestamp"` } @@ -107372,6 +108763,32 @@ func (s *SpotInstanceStatus) SetUpdateTime(v time.Time) *SpotInstanceStatus { return s } +// The strategies for managing your Spot Instances that are at an elevated risk +// of being interrupted. +type SpotMaintenanceStrategies struct { + _ struct{} `type:"structure"` + + // The strategy to use when Amazon EC2 emits a signal that your Spot Instance + // is at an elevated risk of being interrupted. + CapacityRebalance *SpotCapacityRebalance `locationName:"capacityRebalance" type:"structure"` +} + +// String returns the string representation +func (s SpotMaintenanceStrategies) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s SpotMaintenanceStrategies) GoString() string { + return s.String() +} + +// SetCapacityRebalance sets the CapacityRebalance field's value. +func (s *SpotMaintenanceStrategies) SetCapacityRebalance(v *SpotCapacityRebalance) *SpotMaintenanceStrategies { + s.CapacityRebalance = v + return s +} + // The options for Spot Instances. type SpotMarketOptions struct { _ struct{} `type:"structure"` @@ -107379,6 +108796,17 @@ type SpotMarketOptions struct { // The required duration for the Spot Instances (also known as Spot blocks), // in minutes. This value must be a multiple of 60 (60, 120, 180, 240, 300, // or 360). + // + // The duration period starts as soon as your Spot Instance receives its instance + // ID. At the end of the duration period, Amazon EC2 marks the Spot Instance + // for termination and provides a Spot Instance termination notice, which gives + // the instance a two-minute warning before it terminates. + // + // You can't specify an Availability Zone group or a launch group if you specify + // a duration. + // + // New accounts or accounts with no previous billing history with AWS are not + // eligible for Spot Instances with a defined duration (also known as Spot blocks). BlockDurationMinutes *int64 `type:"integer"` // The behavior when a Spot Instance is interrupted. The default is terminate. @@ -107393,11 +108821,15 @@ type SpotMarketOptions struct { // is set to either hibernate or stop. SpotInstanceType *string `type:"string" enum:"SpotInstanceType"` - // The end date of the request. For a one-time request, the request remains - // active until all instances launch, the request is canceled, or this date - // is reached. If the request is persistent, it remains active until it is canceled - // or this date and time is reached. The default end date is 7 days from the - // current date. + // The end date of the request, in UTC format (YYYY-MM-DDTHH:MM:SSZ). Supported + // only for persistent requests. + // + // * For a persistent request, the request remains active until the ValidUntil + // date and time is reached. Otherwise, the request remains active until + // you cancel it. + // + // * For a one-time request, ValidUntil is not supported. The request remains + // active until all instances launch or you cancel the request. ValidUntil *time.Time `type:"timestamp"` } @@ -107469,6 +108901,10 @@ type SpotOptions struct { // the number of Spot pools that you specify. InstancePoolsToUseCount *int64 `locationName:"instancePoolsToUseCount" type:"integer"` + // The strategies for managing your workloads on your Spot Instances that will + // be interrupted. Currently only the capacity rebalance strategy is available. + MaintenanceStrategies *FleetSpotMaintenanceStrategies `locationName:"maintenanceStrategies" type:"structure"` + // The maximum amount per hour for Spot Instances that you're willing to pay. MaxTotalPrice *string `locationName:"maxTotalPrice" type:"string"` @@ -107513,6 +108949,12 @@ func (s *SpotOptions) SetInstancePoolsToUseCount(v int64) *SpotOptions { return s } +// SetMaintenanceStrategies sets the MaintenanceStrategies field's value. +func (s *SpotOptions) SetMaintenanceStrategies(v *FleetSpotMaintenanceStrategies) *SpotOptions { + s.MaintenanceStrategies = v + return s +} + // SetMaxTotalPrice sets the MaxTotalPrice field's value. func (s *SpotOptions) SetMaxTotalPrice(v string) *SpotOptions { s.MaxTotalPrice = &v @@ -107565,6 +109007,10 @@ type SpotOptionsRequest struct { // across the number of Spot pools that you specify. InstancePoolsToUseCount *int64 `type:"integer"` + // The strategies for managing your Spot Instances that are at an elevated risk + // of being interrupted. + MaintenanceStrategies *FleetSpotMaintenanceStrategiesRequest `type:"structure"` + // The maximum amount per hour for Spot Instances that you're willing to pay. MaxTotalPrice *string `type:"string"` @@ -107609,6 +109055,12 @@ func (s *SpotOptionsRequest) SetInstancePoolsToUseCount(v int64) *SpotOptionsReq return s } +// SetMaintenanceStrategies sets the MaintenanceStrategies field's value. +func (s *SpotOptionsRequest) SetMaintenanceStrategies(v *FleetSpotMaintenanceStrategiesRequest) *SpotOptionsRequest { + s.MaintenanceStrategies = v + return s +} + // SetMaxTotalPrice sets the MaxTotalPrice field's value. func (s *SpotOptionsRequest) SetMaxTotalPrice(v string) *SpotOptionsRequest { s.MaxTotalPrice = &v @@ -108692,12 +110144,12 @@ type TagSpecification struct { _ struct{} `type:"structure"` // The type of resource to tag. Currently, the resource types that support tagging - // on creation are: capacity-reservation | client-vpn-endpoint | customer-gateway - // | dedicated-host | dhcp-options | export-image-task | export-instance-task - // | fleet | fpga-image | host-reservation | import-image-task | import-snapshot-task - // | instance | internet-gateway | ipv4pool-ec2 | ipv6pool-ec2 | key-pair | - // launch-template | placement-group | prefix-list | natgateway | network-acl - // | route-table | security-group | spot-fleet-request | spot-instances-request + // on creation are: capacity-reservation | carrier-gateway | client-vpn-endpoint + // | customer-gateway | dedicated-host | dhcp-options | export-image-task | + // export-instance-task | fleet | fpga-image | host-reservation | import-image-task + // | import-snapshot-task | instance | internet-gateway | ipv4pool-ec2 | ipv6pool-ec2 + // | key-pair | launch-template | placement-group | prefix-list | natgateway + // | network-acl | route-table | security-group | spot-fleet-request | spot-instances-request // | snapshot | subnet | traffic-mirror-filter | traffic-mirror-session | traffic-mirror-target // | transit-gateway | transit-gateway-attachment | transit-gateway-route-table // | volume |vpc | vpc-peering-connection | vpc-endpoint (for interface and @@ -111387,6 +112839,9 @@ func (s *TransitGatewayVpcAttachment) SetVpcOwnerId(v string) *TransitGatewayVpc type TransitGatewayVpcAttachmentOptions struct { _ struct{} `type:"structure"` + // Indicates whether appliance mode support is enabled. + ApplianceModeSupport *string `locationName:"applianceModeSupport" type:"string" enum:"ApplianceModeSupportValue"` + // Indicates whether DNS support is enabled. DnsSupport *string `locationName:"dnsSupport" type:"string" enum:"DnsSupportValue"` @@ -111404,6 +112859,12 @@ func (s TransitGatewayVpcAttachmentOptions) GoString() string { return s.String() } +// SetApplianceModeSupport sets the ApplianceModeSupport field's value. +func (s *TransitGatewayVpcAttachmentOptions) SetApplianceModeSupport(v string) *TransitGatewayVpcAttachmentOptions { + s.ApplianceModeSupport = &v + return s +} + // SetDnsSupport sets the DnsSupport field's value. func (s *TransitGatewayVpcAttachmentOptions) SetDnsSupport(v string) *TransitGatewayVpcAttachmentOptions { s.DnsSupport = &v @@ -112355,12 +113816,11 @@ type VCpuInfo struct { // The default number of vCPUs for the instance type. DefaultVCpus *int64 `locationName:"defaultVCpus" type:"integer"` - // List of the valid number of cores that can be configured for the instance - // type. + // The valid number of cores that can be configured for the instance type. ValidCores []*int64 `locationName:"validCores" locationNameList:"item" type:"list"` - // List of the valid number of threads per core that can be configured for the - // instance type. + // The valid number of threads per core that can be configured for the instance + // type. ValidThreadsPerCore []*int64 `locationName:"validThreadsPerCore" locationNameList:"item" type:"list"` } @@ -113673,6 +115133,9 @@ type VpcEndpointConnection struct { // The DNS entries for the VPC endpoint. DnsEntries []*DnsEntry `locationName:"dnsEntrySet" locationNameList:"item" type:"list"` + // The Amazon Resource Names (ARNs) of the Gateway Load Balancers for the service. + GatewayLoadBalancerArns []*string `locationName:"gatewayLoadBalancerArnSet" locationNameList:"item" type:"list"` + // The Amazon Resource Names (ARNs) of the network load balancers for the service. NetworkLoadBalancerArns []*string `locationName:"networkLoadBalancerArnSet" locationNameList:"item" type:"list"` @@ -113711,6 +115174,12 @@ func (s *VpcEndpointConnection) SetDnsEntries(v []*DnsEntry) *VpcEndpointConnect return s } +// SetGatewayLoadBalancerArns sets the GatewayLoadBalancerArns field's value. +func (s *VpcEndpointConnection) SetGatewayLoadBalancerArns(v []*string) *VpcEndpointConnection { + s.GatewayLoadBalancerArns = v + return s +} + // SetNetworkLoadBalancerArns sets the NetworkLoadBalancerArns field's value. func (s *VpcEndpointConnection) SetNetworkLoadBalancerArns(v []*string) *VpcEndpointConnection { s.NetworkLoadBalancerArns = v @@ -114929,6 +116398,22 @@ func AllowsMultipleInstanceTypes_Values() []string { } } +const ( + // ApplianceModeSupportValueEnable is a ApplianceModeSupportValue enum value + ApplianceModeSupportValueEnable = "enable" + + // ApplianceModeSupportValueDisable is a ApplianceModeSupportValue enum value + ApplianceModeSupportValueDisable = "disable" +) + +// ApplianceModeSupportValue_Values returns all elements of the ApplianceModeSupportValue enum +func ApplianceModeSupportValue_Values() []string { + return []string{ + ApplianceModeSupportValueEnable, + ApplianceModeSupportValueDisable, + } +} + const ( // ArchitectureTypeI386 is a ArchitectureType enum value ArchitectureTypeI386 = "i386" @@ -115493,6 +116978,22 @@ func ClientVpnConnectionStatusCode_Values() []string { } } +const ( + // ClientVpnEndpointAttributeStatusCodeApplying is a ClientVpnEndpointAttributeStatusCode enum value + ClientVpnEndpointAttributeStatusCodeApplying = "applying" + + // ClientVpnEndpointAttributeStatusCodeApplied is a ClientVpnEndpointAttributeStatusCode enum value + ClientVpnEndpointAttributeStatusCodeApplied = "applied" +) + +// ClientVpnEndpointAttributeStatusCode_Values returns all elements of the ClientVpnEndpointAttributeStatusCode enum +func ClientVpnEndpointAttributeStatusCode_Values() []string { + return []string{ + ClientVpnEndpointAttributeStatusCodeApplying, + ClientVpnEndpointAttributeStatusCodeApplied, + } +} + const ( // ClientVpnEndpointStatusCodePendingAssociate is a ClientVpnEndpointStatusCode enum value ClientVpnEndpointStatusCodePendingAssociate = "pending-associate" @@ -115961,6 +117462,26 @@ func EndDateType_Values() []string { } } +const ( + // EphemeralNvmeSupportUnsupported is a EphemeralNvmeSupport enum value + EphemeralNvmeSupportUnsupported = "unsupported" + + // EphemeralNvmeSupportSupported is a EphemeralNvmeSupport enum value + EphemeralNvmeSupportSupported = "supported" + + // EphemeralNvmeSupportRequired is a EphemeralNvmeSupport enum value + EphemeralNvmeSupportRequired = "required" +) + +// EphemeralNvmeSupport_Values returns all elements of the EphemeralNvmeSupport enum +func EphemeralNvmeSupport_Values() []string { + return []string{ + EphemeralNvmeSupportUnsupported, + EphemeralNvmeSupportSupported, + EphemeralNvmeSupportRequired, + } +} + const ( // EventCodeInstanceReboot is a EventCode enum value EventCodeInstanceReboot = "instance-reboot" @@ -116189,6 +117710,18 @@ func FleetOnDemandAllocationStrategy_Values() []string { } } +const ( + // FleetReplacementStrategyLaunch is a FleetReplacementStrategy enum value + FleetReplacementStrategyLaunch = "launch" +) + +// FleetReplacementStrategy_Values returns all elements of the FleetReplacementStrategy enum +func FleetReplacementStrategy_Values() []string { + return []string{ + FleetReplacementStrategyLaunch, + } +} + const ( // FleetStateCodeSubmitted is a FleetStateCode enum value FleetStateCodeSubmitted = "submitted" @@ -116547,6 +118080,9 @@ const ( // InstanceAttributeNameEnaSupport is a InstanceAttributeName enum value InstanceAttributeNameEnaSupport = "enaSupport" + + // InstanceAttributeNameEnclaveOptions is a InstanceAttributeName enum value + InstanceAttributeNameEnclaveOptions = "enclaveOptions" ) // InstanceAttributeName_Values returns all elements of the InstanceAttributeName enum @@ -116566,6 +118102,7 @@ func InstanceAttributeName_Values() []string { InstanceAttributeNameEbsOptimized, InstanceAttributeNameSriovNetSupport, InstanceAttributeNameEnaSupport, + InstanceAttributeNameEnclaveOptions, } } @@ -117414,6 +118951,9 @@ const ( // InstanceTypeP3dn24xlarge is a InstanceType enum value InstanceTypeP3dn24xlarge = "p3dn.24xlarge" + // InstanceTypeP4d24xlarge is a InstanceType enum value + InstanceTypeP4d24xlarge = "p4d.24xlarge" + // InstanceTypeD2Xlarge is a InstanceType enum value InstanceTypeD2Xlarge = "d2.xlarge" @@ -118001,6 +119541,7 @@ func InstanceType_Values() []string { InstanceTypeP38xlarge, InstanceTypeP316xlarge, InstanceTypeP3dn24xlarge, + InstanceTypeP4d24xlarge, InstanceTypeD2Xlarge, InstanceTypeD22xlarge, InstanceTypeD24xlarge, @@ -118941,6 +120482,18 @@ func RecurringChargeFrequency_Values() []string { } } +const ( + // ReplacementStrategyLaunch is a ReplacementStrategy enum value + ReplacementStrategyLaunch = "launch" +) + +// ReplacementStrategy_Values returns all elements of the ReplacementStrategy enum +func ReplacementStrategy_Values() []string { + return []string{ + ReplacementStrategyLaunch, + } +} + const ( // ReportInstanceReasonCodesInstanceStuckInState is a ReportInstanceReasonCodes enum value ReportInstanceReasonCodesInstanceStuckInState = "instance-stuck-in-state" @@ -119377,6 +120930,22 @@ func Scope_Values() []string { } } +const ( + // SelfServicePortalEnabled is a SelfServicePortal enum value + SelfServicePortalEnabled = "enabled" + + // SelfServicePortalDisabled is a SelfServicePortal enum value + SelfServicePortalDisabled = "disabled" +) + +// SelfServicePortal_Values returns all elements of the SelfServicePortal enum +func SelfServicePortal_Values() []string { + return []string{ + SelfServicePortalEnabled, + SelfServicePortalDisabled, + } +} + const ( // ServiceStatePending is a ServiceState enum value ServiceStatePending = "Pending" @@ -119411,6 +120980,9 @@ const ( // ServiceTypeGateway is a ServiceType enum value ServiceTypeGateway = "Gateway" + + // ServiceTypeGatewayLoadBalancer is a ServiceType enum value + ServiceTypeGatewayLoadBalancer = "GatewayLoadBalancer" ) // ServiceType_Values returns all elements of the ServiceType enum @@ -119418,6 +120990,7 @@ func ServiceType_Values() []string { return []string{ ServiceTypeInterface, ServiceTypeGateway, + ServiceTypeGatewayLoadBalancer, } } @@ -120527,6 +122100,9 @@ const ( // VpcEndpointTypeGateway is a VpcEndpointType enum value VpcEndpointTypeGateway = "Gateway" + + // VpcEndpointTypeGatewayLoadBalancer is a VpcEndpointType enum value + VpcEndpointTypeGatewayLoadBalancer = "GatewayLoadBalancer" ) // VpcEndpointType_Values returns all elements of the VpcEndpointType enum @@ -120534,6 +122110,7 @@ func VpcEndpointType_Values() []string { return []string{ VpcEndpointTypeInterface, VpcEndpointTypeGateway, + VpcEndpointTypeGatewayLoadBalancer, } } diff --git a/vendor/github.com/aws/aws-sdk-go/service/ec2/ec2iface/interface.go b/vendor/github.com/aws/aws-sdk-go/service/ec2/ec2iface/interface.go index 6e1ae78f1..dd70a8f07 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/ec2/ec2iface/interface.go +++ b/vendor/github.com/aws/aws-sdk-go/service/ec2/ec2iface/interface.go @@ -116,6 +116,10 @@ type EC2API interface { AssociateDhcpOptionsWithContext(aws.Context, *ec2.AssociateDhcpOptionsInput, ...request.Option) (*ec2.AssociateDhcpOptionsOutput, error) AssociateDhcpOptionsRequest(*ec2.AssociateDhcpOptionsInput) (*request.Request, *ec2.AssociateDhcpOptionsOutput) + AssociateEnclaveCertificateIamRole(*ec2.AssociateEnclaveCertificateIamRoleInput) (*ec2.AssociateEnclaveCertificateIamRoleOutput, error) + AssociateEnclaveCertificateIamRoleWithContext(aws.Context, *ec2.AssociateEnclaveCertificateIamRoleInput, ...request.Option) (*ec2.AssociateEnclaveCertificateIamRoleOutput, error) + AssociateEnclaveCertificateIamRoleRequest(*ec2.AssociateEnclaveCertificateIamRoleInput) (*request.Request, *ec2.AssociateEnclaveCertificateIamRoleOutput) + AssociateIamInstanceProfile(*ec2.AssociateIamInstanceProfileInput) (*ec2.AssociateIamInstanceProfileOutput, error) AssociateIamInstanceProfileWithContext(aws.Context, *ec2.AssociateIamInstanceProfileInput, ...request.Option) (*ec2.AssociateIamInstanceProfileOutput, error) AssociateIamInstanceProfileRequest(*ec2.AssociateIamInstanceProfileInput) (*request.Request, *ec2.AssociateIamInstanceProfileOutput) @@ -1420,6 +1424,10 @@ type EC2API interface { DisassociateClientVpnTargetNetworkWithContext(aws.Context, *ec2.DisassociateClientVpnTargetNetworkInput, ...request.Option) (*ec2.DisassociateClientVpnTargetNetworkOutput, error) DisassociateClientVpnTargetNetworkRequest(*ec2.DisassociateClientVpnTargetNetworkInput) (*request.Request, *ec2.DisassociateClientVpnTargetNetworkOutput) + DisassociateEnclaveCertificateIamRole(*ec2.DisassociateEnclaveCertificateIamRoleInput) (*ec2.DisassociateEnclaveCertificateIamRoleOutput, error) + DisassociateEnclaveCertificateIamRoleWithContext(aws.Context, *ec2.DisassociateEnclaveCertificateIamRoleInput, ...request.Option) (*ec2.DisassociateEnclaveCertificateIamRoleOutput, error) + DisassociateEnclaveCertificateIamRoleRequest(*ec2.DisassociateEnclaveCertificateIamRoleInput) (*request.Request, *ec2.DisassociateEnclaveCertificateIamRoleOutput) + DisassociateIamInstanceProfile(*ec2.DisassociateIamInstanceProfileInput) (*ec2.DisassociateIamInstanceProfileOutput, error) DisassociateIamInstanceProfileWithContext(aws.Context, *ec2.DisassociateIamInstanceProfileInput, ...request.Option) (*ec2.DisassociateIamInstanceProfileOutput, error) DisassociateIamInstanceProfileRequest(*ec2.DisassociateIamInstanceProfileInput) (*request.Request, *ec2.DisassociateIamInstanceProfileOutput) @@ -1488,6 +1496,10 @@ type EC2API interface { ExportTransitGatewayRoutesWithContext(aws.Context, *ec2.ExportTransitGatewayRoutesInput, ...request.Option) (*ec2.ExportTransitGatewayRoutesOutput, error) ExportTransitGatewayRoutesRequest(*ec2.ExportTransitGatewayRoutesInput) (*request.Request, *ec2.ExportTransitGatewayRoutesOutput) + GetAssociatedEnclaveCertificateIamRoles(*ec2.GetAssociatedEnclaveCertificateIamRolesInput) (*ec2.GetAssociatedEnclaveCertificateIamRolesOutput, error) + GetAssociatedEnclaveCertificateIamRolesWithContext(aws.Context, *ec2.GetAssociatedEnclaveCertificateIamRolesInput, ...request.Option) (*ec2.GetAssociatedEnclaveCertificateIamRolesOutput, error) + GetAssociatedEnclaveCertificateIamRolesRequest(*ec2.GetAssociatedEnclaveCertificateIamRolesInput) (*request.Request, *ec2.GetAssociatedEnclaveCertificateIamRolesOutput) + GetAssociatedIpv6PoolCidrs(*ec2.GetAssociatedIpv6PoolCidrsInput) (*ec2.GetAssociatedIpv6PoolCidrsOutput, error) GetAssociatedIpv6PoolCidrsWithContext(aws.Context, *ec2.GetAssociatedIpv6PoolCidrsInput, ...request.Option) (*ec2.GetAssociatedIpv6PoolCidrsOutput, error) GetAssociatedIpv6PoolCidrsRequest(*ec2.GetAssociatedIpv6PoolCidrsInput) (*request.Request, *ec2.GetAssociatedIpv6PoolCidrsOutput) diff --git a/vendor/github.com/aws/aws-sdk-go/service/elbv2/api.go b/vendor/github.com/aws/aws-sdk-go/service/elbv2/api.go index 89eed6b4a..09539b9ab 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/elbv2/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/elbv2/api.go @@ -63,12 +63,9 @@ func (c *ELBV2) AddListenerCertificatesRequest(input *AddListenerCertificatesInp // If the certificate in already in the certificate list, the call is successful // but the certificate is not added again. // -// To get the certificate list for a listener, use DescribeListenerCertificates. -// To remove certificates from the certificate list for a listener, use RemoveListenerCertificates. -// To replace the default certificate for a listener, use ModifyListener. -// -// For more information, see SSL Certificates (https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html#https-listener-certificates) -// in the Application Load Balancers Guide. +// For more information, see HTTPS listeners (https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html) +// in the Application Load Balancers Guide or TLS listeners (https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html) +// in the Network Load Balancers Guide. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -155,15 +152,12 @@ func (c *ELBV2) AddTagsRequest(input *AddTagsInput) (req *request.Request, outpu // AddTags API operation for Elastic Load Balancing. // // Adds the specified tags to the specified Elastic Load Balancing resource. -// You can tag your Application Load Balancers, Network Load Balancers, target -// groups, listeners, and rules. +// You can tag your Application Load Balancers, Network Load Balancers, Gateway +// Load Balancers, target groups, listeners, and rules. // // Each tag consists of a key and an optional value. If a resource already has // a tag with the same key, AddTags updates its value. // -// To list the current tags for your resources, use DescribeTags. To remove -// tags from your resources, use RemoveTags. -// // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. @@ -250,22 +244,21 @@ func (c *ELBV2) CreateListenerRequest(input *CreateListenerInput) (req *request. // CreateListener API operation for Elastic Load Balancing. // -// Creates a listener for the specified Application Load Balancer or Network -// Load Balancer. +// Creates a listener for the specified Application Load Balancer, Network Load +// Balancer. or Gateway Load Balancer. // -// To update a listener, use ModifyListener. When you are finished with a listener, -// you can delete it using DeleteListener. If you are finished with both the -// listener and the load balancer, you can delete them both using DeleteLoadBalancer. +// For more information, see the following: +// +// * Listeners for your Application Load Balancers (https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html) +// +// * Listeners for your Network Load Balancers (https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-listeners.html) +// +// * Listeners for your Gateway Load Balancers (https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/gateway-listeners.html) // // This operation is idempotent, which means that it completes at most one time. // If you attempt to create multiple listeners with the same settings, each // call succeeds. // -// For more information, see Listeners for Your Application Load Balancers (https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html) -// in the Application Load Balancers Guide and Listeners for Your Network Load -// Balancers (https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-listeners.html) -// in the Network Load Balancers Guide. -// // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. @@ -397,29 +390,21 @@ func (c *ELBV2) CreateLoadBalancerRequest(input *CreateLoadBalancerInput) (req * // CreateLoadBalancer API operation for Elastic Load Balancing. // -// Creates an Application Load Balancer or a Network Load Balancer. +// Creates an Application Load Balancer, Network Load Balancer, or Gateway Load +// Balancer. // -// When you create a load balancer, you can specify security groups, public -// subnets, IP address type, and tags. Otherwise, you could do so later using -// SetSecurityGroups, SetSubnets, SetIpAddressType, and AddTags. +// For more information, see the following: // -// To create listeners for your load balancer, use CreateListener. To describe -// your current load balancers, see DescribeLoadBalancers. When you are finished -// with a load balancer, you can delete it using DeleteLoadBalancer. +// * Application Load Balancers (https://docs.aws.amazon.com/elasticloadbalancing/latest/application/application-load-balancers.html) // -// For limit information, see Limits for Your Application Load Balancer (https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-limits.html) -// in the Application Load Balancers Guide and Limits for Your Network Load -// Balancer (https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-limits.html) -// in the Network Load Balancers Guide. +// * Network Load Balancers (https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html) +// +// * Gateway Load Balancers (https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/gateway-load-balancers.html) // // This operation is idempotent, which means that it completes at most one time. // If you attempt to create multiple load balancers with the same settings, // each call succeeds. // -// For more information, see Application Load Balancers (https://docs.aws.amazon.com/elasticloadbalancing/latest/application/application-load-balancers.html) -// in the Application Load Balancers Guide and Network Load Balancers (https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html) -// in the Network Load Balancers Guide. -// // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. @@ -540,13 +525,9 @@ func (c *ELBV2) CreateRuleRequest(input *CreateRuleInput) (req *request.Request, // Rules are evaluated in priority order, from the lowest value to the highest // value. When the conditions for a rule are met, its actions are performed. // If the conditions for no rules are met, the actions for the default rule -// are performed. For more information, see Listener Rules (https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html#listener-rules) +// are performed. For more information, see Listener rules (https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html#listener-rules) // in the Application Load Balancers Guide. // -// To view your current rules, use DescribeRules. To update a rule, use ModifyRule. -// To set the priorities of your rules, use SetRulePriorities. To delete a rule, -// use DeleteRule. -// // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. @@ -671,25 +652,18 @@ func (c *ELBV2) CreateTargetGroupRequest(input *CreateTargetGroupInput) (req *re // // Creates a target group. // -// To register targets with the target group, use RegisterTargets. To update -// the health check settings for the target group, use ModifyTargetGroup. To -// monitor the health of targets in the target group, use DescribeTargetHealth. +// For more information, see the following: // -// To route traffic to the targets in a target group, specify the target group -// in an action using CreateListener or CreateRule. +// * Target groups for your Application Load Balancers (https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html) // -// To delete a target group, use DeleteTargetGroup. +// * Target groups for your Network Load Balancers (https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-target-groups.html) +// +// * Target groups for your Gateway Load Balancers (https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/target-groups.html) // // This operation is idempotent, which means that it completes at most one time. // If you attempt to create multiple target groups with the same settings, each // call succeeds. // -// For more information, see Target Groups for Your Application Load Balancers -// (https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html) -// in the Application Load Balancers Guide or Target Groups for Your Network -// Load Balancers (https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-target-groups.html) -// in the Network Load Balancers Guide. -// // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. @@ -780,7 +754,7 @@ func (c *ELBV2) DeleteListenerRequest(input *DeleteListenerInput) (req *request. // Deletes the specified listener. // // Alternatively, your listener is deleted when you delete the load balancer -// to which it is attached, using DeleteLoadBalancer. +// to which it is attached. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -860,8 +834,8 @@ func (c *ELBV2) DeleteLoadBalancerRequest(input *DeleteLoadBalancerInput) (req * // DeleteLoadBalancer API operation for Elastic Load Balancing. // -// Deletes the specified Application Load Balancer or Network Load Balancer -// and its attached listeners. +// Deletes the specified Application Load Balancer, Network Load Balancer, or +// Gateway Load Balancer. Deleting a load balancer also deletes its listeners. // // You can't delete a load balancer if deletion protection is enabled. If the // load balancer does not exist or has already been deleted, the call succeeds. @@ -1043,7 +1017,9 @@ func (c *ELBV2) DeleteTargetGroupRequest(input *DeleteTargetGroupInput) (req *re // Deletes the specified target group. // // You can delete a target group if it is not referenced by any actions. Deleting -// a target group also deletes any associated health checks. +// a target group also deletes any associated health checks. Deleting a target +// group does not affect its registered targets. For example, any EC2 instances +// continue to run until you stop or terminate them. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -1211,10 +1187,13 @@ func (c *ELBV2) DescribeAccountLimitsRequest(input *DescribeAccountLimitsInput) // Describes the current Elastic Load Balancing resource limits for your AWS // account. // -// For more information, see Limits for Your Application Load Balancers (https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-limits.html) -// in the Application Load Balancer Guide or Limits for Your Network Load Balancers -// (https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-limits.html) -// in the Network Load Balancers Guide. +// For more information, see the following: +// +// * Quotas for your Application Load Balancers (https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-limits.html) +// +// * Quotas for your Network Load Balancers (https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-limits.html) +// +// * Quotas for your Gateway Load Balancers (https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/quotas-limits.html) // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -1295,8 +1274,9 @@ func (c *ELBV2) DescribeListenerCertificatesRequest(input *DescribeListenerCerti // in the results (once with IsDefault set to true and once with IsDefault set // to false). // -// For more information, see SSL Certificates (https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html#https-listener-certificates) -// in the Application Load Balancers Guide. +// For more information, see SSL certificates (https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html#https-listener-certificates) +// in the Application Load Balancers Guide or Server certificates (https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html#tls-listener-certificate) +// in the Network Load Balancers Guide. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -1382,12 +1362,8 @@ func (c *ELBV2) DescribeListenersRequest(input *DescribeListenersInput) (req *re // DescribeListeners API operation for Elastic Load Balancing. // // Describes the specified listeners or the listeners for the specified Application -// Load Balancer or Network Load Balancer. You must specify either a load balancer -// or one or more listeners. -// -// For an HTTPS or TLS listener, the output includes the default certificate -// for the listener. To describe the certificate list for the listener, use -// DescribeListenerCertificates. +// Load Balancer, Network Load Balancer, or Gateway Load Balancer. You must +// specify either a load balancer or one or more listeners. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -1524,12 +1500,19 @@ func (c *ELBV2) DescribeLoadBalancerAttributesRequest(input *DescribeLoadBalance // DescribeLoadBalancerAttributes API operation for Elastic Load Balancing. // -// Describes the attributes for the specified Application Load Balancer or Network -// Load Balancer. +// Describes the attributes for the specified Application Load Balancer, Network +// Load Balancer, or Gateway Load Balancer. // -// For more information, see Load Balancer Attributes (https://docs.aws.amazon.com/elasticloadbalancing/latest/application/application-load-balancers.html#load-balancer-attributes) -// in the Application Load Balancers Guide or Load Balancer Attributes (https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#load-balancer-attributes) -// in the Network Load Balancers Guide. +// For more information, see the following: +// +// * Load balancer attributes (https://docs.aws.amazon.com/elasticloadbalancing/latest/application/application-load-balancers.html#load-balancer-attributes) +// in the Application Load Balancers Guide +// +// * Load balancer attributes (https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#load-balancer-attributes) +// in the Network Load Balancers Guide +// +// * Load balancer attributes (https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/gateway-load-balancers.html#load-balancer-attributes) +// in the Gateway Load Balancers Guide // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -1616,9 +1599,6 @@ func (c *ELBV2) DescribeLoadBalancersRequest(input *DescribeLoadBalancersInput) // // Describes the specified load balancers or all of your load balancers. // -// To describe the listeners for a load balancer, use DescribeListeners. To -// describe the attributes for a load balancer, use DescribeLoadBalancerAttributes. -// // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. @@ -1836,8 +1816,9 @@ func (c *ELBV2) DescribeSSLPoliciesRequest(input *DescribeSSLPoliciesInput) (req // // Describes the specified policies or all policies used for SSL negotiation. // -// For more information, see Security Policies (https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html#describe-ssl-policies) -// in the Application Load Balancers Guide. +// For more information, see Security policies (https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html#describe-ssl-policies) +// in the Application Load Balancers Guide or Security policies (https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html#describe-ssl-policies) +// in the Network Load Balancers Guide. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -1918,7 +1899,7 @@ func (c *ELBV2) DescribeTagsRequest(input *DescribeTagsInput) (req *request.Requ // // Describes the tags for the specified Elastic Load Balancing resources. You // can describe the tags for one or more Application Load Balancers, Network -// Load Balancers, target groups, listeners, or rules. +// Load Balancers, Gateway Load Balancers, target groups, listeners, or rules. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -2008,9 +1989,16 @@ func (c *ELBV2) DescribeTargetGroupAttributesRequest(input *DescribeTargetGroupA // // Describes the attributes for the specified target group. // -// For more information, see Target Group Attributes (https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html#target-group-attributes) -// in the Application Load Balancers Guide or Target Group Attributes (https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-target-groups.html#target-group-attributes) -// in the Network Load Balancers Guide. +// For more information, see the following: +// +// * Target group attributes (https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html#target-group-attributes) +// in the Application Load Balancers Guide +// +// * Target group attributes (https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-target-groups.html#target-group-attributes) +// in the Network Load Balancers Guide +// +// * Target group attributes (https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/target-groups.html#target-group-attributes) +// in the Gateway Load Balancers Guide // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -2100,9 +2088,6 @@ func (c *ELBV2) DescribeTargetGroupsRequest(input *DescribeTargetGroupsInput) (r // following to filter the results: the ARN of the load balancer, the names // of one or more target groups, or the ARNs of one or more target groups. // -// To describe the targets for a target group, use DescribeTargetHealth. To -// describe the attributes of a target group, use DescribeTargetGroupAttributes. -// // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. @@ -2462,8 +2447,8 @@ func (c *ELBV2) ModifyLoadBalancerAttributesRequest(input *ModifyLoadBalancerAtt // ModifyLoadBalancerAttributes API operation for Elastic Load Balancing. // -// Modifies the specified attributes of the specified Application Load Balancer -// or Network Load Balancer. +// Modifies the specified attributes of the specified Application Load Balancer, +// Network Load Balancer, or Gateway Load Balancer. // // If any of the specified attributes can't be modified as requested, the call // fails. Any existing attributes that you do not modify retain their current @@ -2556,8 +2541,6 @@ func (c *ELBV2) ModifyRuleRequest(input *ModifyRuleInput) (req *request.Request, // a list, you must provide the entire list. For example, to add an action, // specify a list with the current actions plus the new action. // -// To modify the actions for the default rule, use ModifyListener. -// // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. @@ -2671,8 +2654,6 @@ func (c *ELBV2) ModifyTargetGroupRequest(input *ModifyTargetGroupInput) (req *re // Modifies the health checks used when evaluating the health state of the targets // in the specified target group. // -// To monitor the health of the targets, use DescribeTargetHealth. -// // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. @@ -2851,8 +2832,6 @@ func (c *ELBV2) RegisterTargetsRequest(input *RegisterTargetsInput) (req *reques // G1, G2, HI1, HS1, M1, M2, M3, and T1. You can register instances of these // types by IP address. // -// To remove a target from a target group, use DeregisterTargets. -// // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. @@ -2945,11 +2924,6 @@ func (c *ELBV2) RemoveListenerCertificatesRequest(input *RemoveListenerCertifica // Removes the specified certificate from the certificate list for the specified // HTTPS or TLS listener. // -// You can't remove the default certificate for a listener. To replace the default -// certificate, call ModifyListener. -// -// To list the certificates for your listener, use DescribeListenerCertificates. -// // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. @@ -3033,9 +3007,7 @@ func (c *ELBV2) RemoveTagsRequest(input *RemoveTagsInput) (req *request.Request, // // Removes the specified tags from the specified Elastic Load Balancing resources. // You can remove the tags for one or more Application Load Balancers, Network -// Load Balancers, target groups, listeners, or rules. -// -// To list the current tags for your resources, use DescribeTags. +// Load Balancers, Gateway Load Balancers, target groups, listeners, or rules. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -3305,7 +3277,8 @@ func (c *ELBV2) SetSecurityGroupsRequest(input *SetSecurityGroupsInput) (req *re // Balancer. The specified security groups override the previously associated // security groups. // -// You can't specify a security group for a Network Load Balancer. +// You can't specify a security group for a Network Load Balancer or Gateway +// Load Balancer. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -3391,7 +3364,8 @@ func (c *ELBV2) SetSubnetsRequest(input *SetSubnetsInput) (req *request.Request, // SetSubnets API operation for Elastic Load Balancing. // // Enables the Availability Zones for the specified public subnets for the specified -// load balancer. The specified subnets replace the previously enabled subnets. +// Application Load Balancer or Network Load Balancer. The specified subnets +// replace the previously enabled subnets. // // When you specify subnets for a Network Load Balancer, you must include all // subnets that were enabled previously, with their existing configurations, @@ -4186,36 +4160,16 @@ type CreateListenerInput struct { // // * None // - // For more information, see ALPN Policies (https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html#alpn-policies) + // For more information, see ALPN policies (https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html#alpn-policies) // in the Network Load Balancers Guide. AlpnPolicy []*string `type:"list"` // [HTTPS and TLS listeners] The default certificate for the listener. You must // provide exactly one certificate. Set CertificateArn to the certificate ARN // but do not set IsDefault. - // - // To create a certificate list for the listener, use AddListenerCertificates. Certificates []*Certificate `type:"list"` - // The actions for the default rule. The rule must include one forward action - // or one or more fixed-response actions. - // - // If the action type is forward, you specify one or more target groups. The - // protocol of the target group must be HTTP or HTTPS for an Application Load - // Balancer. The protocol of the target group must be TCP, TLS, UDP, or TCP_UDP - // for a Network Load Balancer. - // - // [HTTPS listeners] If the action type is authenticate-oidc, you authenticate - // users through an identity provider that is OpenID Connect (OIDC) compliant. - // - // [HTTPS listeners] If the action type is authenticate-cognito, you authenticate - // users through the user pools supported by Amazon Cognito. - // - // [Application Load Balancer] If the action type is redirect, you redirect - // specified client requests from one URL to another. - // - // [Application Load Balancer] If the action type is fixed-response, you drop - // specified client requests and return a custom HTTP response. + // The actions for the default rule. // // DefaultActions is a required field DefaultActions []*Action `type:"list" required:"true"` @@ -4225,41 +4179,21 @@ type CreateListenerInput struct { // LoadBalancerArn is a required field LoadBalancerArn *string `type:"string" required:"true"` - // The port on which the load balancer is listening. - // - // Port is a required field - Port *int64 `min:"1" type:"integer" required:"true"` + // The port on which the load balancer is listening. You cannot specify a port + // for a Gateway Load Balancer. + Port *int64 `min:"1" type:"integer"` // The protocol for connections from clients to the load balancer. For Application // Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load - // Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. - // - // Protocol is a required field - Protocol *string `type:"string" required:"true" enum:"ProtocolEnum"` + // Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You cannot + // specify a protocol for a Gateway Load Balancer. + Protocol *string `type:"string" enum:"ProtocolEnum"` // [HTTPS and TLS listeners] The security policy that defines which protocols - // and ciphers are supported. The following are the possible values: - // - // * ELBSecurityPolicy-2016-08 - // - // * ELBSecurityPolicy-TLS-1-0-2015-04 - // - // * ELBSecurityPolicy-TLS-1-1-2017-01 - // - // * ELBSecurityPolicy-TLS-1-2-2017-01 - // - // * ELBSecurityPolicy-TLS-1-2-Ext-2018-06 - // - // * ELBSecurityPolicy-FS-2018-06 - // - // * ELBSecurityPolicy-FS-1-1-2019-08 - // - // * ELBSecurityPolicy-FS-1-2-2019-08 - // - // * ELBSecurityPolicy-FS-1-2-Res-2019-08 + // and ciphers are supported. // - // For more information, see Security Policies (https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html#describe-ssl-policies) - // in the Application Load Balancers Guide and Security Policies (https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html#describe-ssl-policies) + // For more information, see Security policies (https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html#describe-ssl-policies) + // in the Application Load Balancers Guide and Security policies (https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html#describe-ssl-policies) // in the Network Load Balancers Guide. SslPolicy *string `type:"string"` @@ -4286,15 +4220,9 @@ func (s *CreateListenerInput) Validate() error { if s.LoadBalancerArn == nil { invalidParams.Add(request.NewErrParamRequired("LoadBalancerArn")) } - if s.Port == nil { - invalidParams.Add(request.NewErrParamRequired("Port")) - } if s.Port != nil && *s.Port < 1 { invalidParams.Add(request.NewErrParamMinValue("Port", 1)) } - if s.Protocol == nil { - invalidParams.Add(request.NewErrParamRequired("Protocol")) - } if s.Tags != nil && len(s.Tags) < 1 { invalidParams.Add(request.NewErrParamMinLen("Tags", 1)) } @@ -4429,6 +4357,8 @@ type CreateLoadBalancerInput struct { // only from clients with access to the VPC for the load balancer. // // The default is an Internet-facing load balancer. + // + // You cannot specify a scheme for a Gateway Load Balancer. Scheme *string `type:"string" enum:"LoadBalancerSchemeEnum"` // [Application Load Balancers] The IDs of the security groups for the load @@ -4451,6 +4381,9 @@ type CreateLoadBalancerInput struct { // IP addresses for your internet-facing load balancer. For internal load balancers, // you can specify one private IP address per subnet from the IPv4 range of // the subnet. + // + // [Gateway Load Balancers] You can specify subnets from one or more Availability + // Zones. You cannot specify Elastic IP addresses for your subnets. SubnetMappings []*SubnetMapping `type:"list"` // The IDs of the public subnets. You can specify only one subnet per Availability @@ -4466,6 +4399,9 @@ type CreateLoadBalancerInput struct { // // [Network Load Balancers] You can specify subnets from one or more Availability // Zones. + // + // [Gateway Load Balancers] You can specify subnets from one or more Availability + // Zones. Subnets []*string `type:"list"` // The tags to assign to the load balancer. @@ -4591,34 +4527,12 @@ func (s *CreateLoadBalancerOutput) SetLoadBalancers(v []*LoadBalancer) *CreateLo type CreateRuleInput struct { _ struct{} `type:"structure"` - // The actions. Each rule must include exactly one of the following types of - // actions: forward, fixed-response, or redirect, and it must be the last action - // to be performed. - // - // If the action type is forward, you specify one or more target groups. The - // protocol of the target group must be HTTP or HTTPS for an Application Load - // Balancer. The protocol of the target group must be TCP, TLS, UDP, or TCP_UDP - // for a Network Load Balancer. - // - // [HTTPS listeners] If the action type is authenticate-oidc, you authenticate - // users through an identity provider that is OpenID Connect (OIDC) compliant. - // - // [HTTPS listeners] If the action type is authenticate-cognito, you authenticate - // users through the user pools supported by Amazon Cognito. - // - // [Application Load Balancer] If the action type is redirect, you redirect - // specified client requests from one URL to another. - // - // [Application Load Balancer] If the action type is fixed-response, you drop - // specified client requests and return a custom HTTP response. + // The actions. // // Actions is a required field Actions []*Action `type:"list" required:"true"` - // The conditions. Each rule can optionally include up to one of each of the - // following conditions: http-request-method, host-header, path-pattern, and - // source-ip. Each rule can also optionally include one or more of each of the - // following conditions: http-header and query-string. + // The conditions. // // Conditions is a required field Conditions []*RuleCondition `type:"list" required:"true"` @@ -4757,44 +4671,49 @@ type CreateTargetGroupInput struct { HealthCheckEnabled *bool `type:"boolean"` // The approximate amount of time, in seconds, between health checks of an individual - // target. For HTTP and HTTPS health checks, the range is 5–300 seconds. For - // TCP health checks, the supported values are 10 and 30 seconds. If the target - // type is instance or ip, the default is 30 seconds. If the target type is + // target. For TCP health checks, the supported values are 10 and 30 seconds. + // If the target type is instance or ip, the default is 30 seconds. If the target + // group protocol is GENEVE, the default is 10 seconds. If the target type is // lambda, the default is 35 seconds. HealthCheckIntervalSeconds *int64 `min:"5" type:"integer"` - // [HTTP/HTTPS health checks] The ping path that is the destination on the targets - // for health checks. The default is /. + // [HTTP/HTTPS health checks] The destination for health checks on the targets. + // + // [HTTP1 or HTTP2 protocol version] The ping path. The default is /. + // + // [GRPC protocol version] The path of a custom health check method with the + // format /package.service/method. The default is /AWS.ALB/healthcheck. HealthCheckPath *string `min:"1" type:"string"` // The port the load balancer uses when performing health checks on targets. - // The default is traffic-port, which is the port on which each target receives - // traffic from the load balancer. + // If the protocol is HTTP, HTTPS, TCP, TLS, UDP, or TCP_UDP, the default is + // traffic-port, which is the port on which each target receives traffic from + // the load balancer. If the protocol is GENEVE, the default is port 80. HealthCheckPort *string `type:"string"` // The protocol the load balancer uses when performing health checks on targets. - // For Application Load Balancers, the default is HTTP. For Network Load Balancers, - // the default is TCP. The TCP protocol is supported for health checks only - // if the protocol of the target group is TCP, TLS, UDP, or TCP_UDP. The TLS, - // UDP, and TCP_UDP protocols are not supported for health checks. + // For Application Load Balancers, the default is HTTP. For Network Load Balancers + // and Gateway Load Balancers, the default is TCP. The TCP protocol is not supported + // for health checks if the protocol of the target group is HTTP or HTTPS. The + // GENEVE, TLS, UDP, and TCP_UDP protocols are not supported for health checks. HealthCheckProtocol *string `type:"string" enum:"ProtocolEnum"` // The amount of time, in seconds, during which no response from a target means - // a failed health check. For target groups with a protocol of HTTP or HTTPS, - // the default is 5 seconds. For target groups with a protocol of TCP or TLS, - // this value must be 6 seconds for HTTP health checks and 10 seconds for TCP - // and HTTPS health checks. If the target type is lambda, the default is 30 - // seconds. + // a failed health check. For target groups with a protocol of HTTP, HTTPS, + // or GENEVE, the default is 5 seconds. For target groups with a protocol of + // TCP or TLS, this value must be 6 seconds for HTTP health checks and 10 seconds + // for TCP and HTTPS health checks. If the target type is lambda, the default + // is 30 seconds. HealthCheckTimeoutSeconds *int64 `min:"2" type:"integer"` // The number of consecutive health checks successes required before considering // an unhealthy target healthy. For target groups with a protocol of HTTP or - // HTTPS, the default is 5. For target groups with a protocol of TCP or TLS, - // the default is 3. If the target type is lambda, the default is 5. + // HTTPS, the default is 5. For target groups with a protocol of TCP, TLS, or + // GENEVE, the default is 3. If the target type is lambda, the default is 5. HealthyThresholdCount *int64 `min:"2" type:"integer"` - // [HTTP/HTTPS health checks] The HTTP codes to use when checking for a successful - // response from a target. + // [HTTP/HTTPS health checks] The HTTP or gRPC codes to use when checking for + // a successful response from a target. Matcher *Matcher `type:"structure"` // The name of the target group. @@ -4808,16 +4727,23 @@ type CreateTargetGroupInput struct { // The port on which the targets receive traffic. This port is used unless you // specify a port override when registering the target. If the target is a Lambda - // function, this parameter does not apply. + // function, this parameter does not apply. If the protocol is GENEVE, the supported + // port is 6081. Port *int64 `min:"1" type:"integer"` // The protocol to use for routing traffic to the targets. For Application Load // Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, - // the supported protocols are TCP, TLS, UDP, or TCP_UDP. A TCP_UDP listener - // must be associated with a TCP_UDP target group. If the target is a Lambda - // function, this parameter does not apply. + // the supported protocols are TCP, TLS, UDP, or TCP_UDP. For Gateway Load Balancers, + // the supported protocol is GENEVE. A TCP_UDP listener must be associated with + // a TCP_UDP target group. If the target is a Lambda function, this parameter + // does not apply. Protocol *string `type:"string" enum:"ProtocolEnum"` + // [HTTP/HTTPS protocol] The protocol version. Specify GRPC to send requests + // to targets using gRPC. Specify HTTP2 to send requests to targets using HTTP/2. + // The default is HTTP1, which sends requests to targets using HTTP/1.1. + ProtocolVersion *string `type:"string"` + // The tags to assign to the target group. Tags []*Tag `min:"1" type:"list"` @@ -4825,23 +4751,22 @@ type CreateTargetGroupInput struct { // target group. You can't specify targets for a target group using more than // one target type. // - // * instance - Targets are specified by instance ID. This is the default - // value. + // * instance - Register targets by instance ID. This is the default value. // - // * ip - Targets are specified by IP address. You can specify IP addresses - // from the subnets of the virtual private cloud (VPC) for the target group, - // the RFC 1918 range (10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16), and - // the RFC 6598 range (100.64.0.0/10). You can't specify publicly routable - // IP addresses. + // * ip - Register targets by IP address. You can specify IP addresses from + // the subnets of the virtual private cloud (VPC) for the target group, the + // RFC 1918 range (10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16), and the + // RFC 6598 range (100.64.0.0/10). You can't specify publicly routable IP + // addresses. // - // * lambda - The target groups contains a single Lambda function. + // * lambda - Register a single Lambda function as a target. TargetType *string `type:"string" enum:"TargetTypeEnum"` // The number of consecutive health check failures required before considering - // a target unhealthy. For target groups with a protocol of HTTP or HTTPS, the - // default is 2. For target groups with a protocol of TCP or TLS, this value - // must be the same as the healthy threshold count. If the target type is lambda, - // the default is 2. + // a target unhealthy. If the target group protocol is HTTP or HTTPS, the default + // is 2. If the target group protocol is TCP or TLS, this value must be the + // same as the healthy threshold count. If the target group protocol is GENEVE, + // the default is 3. If the target type is lambda, the default is 2. UnhealthyThresholdCount *int64 `min:"2" type:"integer"` // The identifier of the virtual private cloud (VPC). If the target is a Lambda @@ -4886,11 +4811,6 @@ func (s *CreateTargetGroupInput) Validate() error { if s.UnhealthyThresholdCount != nil && *s.UnhealthyThresholdCount < 2 { invalidParams.Add(request.NewErrParamMinValue("UnhealthyThresholdCount", 2)) } - if s.Matcher != nil { - if err := s.Matcher.Validate(); err != nil { - invalidParams.AddNested("Matcher", err.(request.ErrInvalidParams)) - } - } if s.Tags != nil { for i, v := range s.Tags { if v == nil { @@ -4974,6 +4894,12 @@ func (s *CreateTargetGroupInput) SetProtocol(v string) *CreateTargetGroupInput { return s } +// SetProtocolVersion sets the ProtocolVersion field's value. +func (s *CreateTargetGroupInput) SetProtocolVersion(v string) *CreateTargetGroupInput { + s.ProtocolVersion = &v + return s +} + // SetTags sets the Tags field's value. func (s *CreateTargetGroupInput) SetTags(v []*Tag) *CreateTargetGroupInput { s.Tags = v @@ -6449,6 +6375,16 @@ type Limit struct { // // * application-load-balancers // + // * condition-values-per-alb-rule + // + // * condition-wildcards-per-alb-rule + // + // * gateway-load-balancers + // + // * gateway-load-balancers-per-vpc + // + // * geneve-target-groups + // // * listeners-per-application-load-balancer // // * listeners-per-network-load-balancer @@ -6467,6 +6403,8 @@ type Limit struct { // // * targets-per-application-load-balancer // + // * targets-per-availability-zone-per-gateway-load-balancer + // // * targets-per-availability-zone-per-network-load-balancer // // * targets-per-network-load-balancer @@ -6776,6 +6714,11 @@ type LoadBalancerAttribute struct { // The name of the attribute. // + // The following attribute is supported by all load balancers: + // + // * deletion_protection.enabled - Indicates whether deletion protection + // is enabled. The value is true or false. The default is false. + // // The following attributes are supported by both Application Load Balancers // and Network Load Balancers: // @@ -6790,9 +6733,6 @@ type LoadBalancerAttribute struct { // * access_logs.s3.prefix - The prefix for the location in the S3 bucket // for the access logs. // - // * deletion_protection.enabled - Indicates whether deletion protection - // is enabled. The value is true or false. The default is false. - // // The following attributes are supported by only Application Load Balancers: // // * idle_timeout.timeout_seconds - The idle timeout value, in seconds. The @@ -6811,7 +6751,8 @@ type LoadBalancerAttribute struct { // is true or false. The default is true. Elastic Load Balancing requires // that message header names contain only alphanumeric characters and hyphens. // - // The following attributes are supported by only Network Load Balancers: + // The following attribute is supported by Network Load Balancers and Gateway + // Load Balancers: // // * load_balancing.cross_zone.enabled - Indicates whether cross-zone load // balancing is enabled. The value is true or false. The default is false. @@ -6878,20 +6819,23 @@ func (s *LoadBalancerState) SetReason(v string) *LoadBalancerState { return s } -// Information to use when checking for a successful response from a target. +// The codes to use when checking for a successful response from a target. If +// the protocol version is gRPC, these are gRPC codes. Otherwise, these are +// HTTP codes. type Matcher struct { _ struct{} `type:"structure"` - // The HTTP codes. - // + // You can specify values between 0 and 99. You can specify multiple values + // (for example, "0,1") or a range of values (for example, "0-5"). The default + // value is 12. + GrpcCode *string `type:"string"` + // For Application Load Balancers, you can specify values between 200 and 499, // and the default value is 200. You can specify multiple values (for example, // "200,202") or a range of values (for example, "200-299"). // - // For Network Load Balancers, this is 200–399. - // - // HttpCode is a required field - HttpCode *string `type:"string" required:"true"` + // For Network Load Balancers and Gateway Load Balancers, this must be "200–399". + HttpCode *string `type:"string"` } // String returns the string representation @@ -6904,17 +6848,10 @@ func (s Matcher) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *Matcher) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "Matcher"} - if s.HttpCode == nil { - invalidParams.Add(request.NewErrParamRequired("HttpCode")) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil +// SetGrpcCode sets the GrpcCode field's value. +func (s *Matcher) SetGrpcCode(v string) *Matcher { + s.GrpcCode = &v + return s } // SetHttpCode sets the HttpCode field's value. @@ -6939,36 +6876,16 @@ type ModifyListenerInput struct { // // * None // - // For more information, see ALPN Policies (https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html#alpn-policies) + // For more information, see ALPN policies (https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html#alpn-policies) // in the Network Load Balancers Guide. AlpnPolicy []*string `type:"list"` // [HTTPS and TLS listeners] The default certificate for the listener. You must // provide exactly one certificate. Set CertificateArn to the certificate ARN // but do not set IsDefault. - // - // To create a certificate list, use AddListenerCertificates. Certificates []*Certificate `type:"list"` - // The actions for the default rule. The rule must include one forward action - // or one or more fixed-response actions. - // - // If the action type is forward, you specify one or more target groups. The - // protocol of the target group must be HTTP or HTTPS for an Application Load - // Balancer. The protocol of the target group must be TCP, TLS, UDP, or TCP_UDP - // for a Network Load Balancer. - // - // [HTTPS listeners] If the action type is authenticate-oidc, you authenticate - // users through an identity provider that is OpenID Connect (OIDC) compliant. - // - // [HTTPS listeners] If the action type is authenticate-cognito, you authenticate - // users through the user pools supported by Amazon Cognito. - // - // [Application Load Balancer] If the action type is redirect, you redirect - // specified client requests from one URL to another. - // - // [Application Load Balancer] If the action type is fixed-response, you drop - // specified client requests and return a custom HTTP response. + // The actions for the default rule. DefaultActions []*Action `type:"list"` // The Amazon Resource Name (ARN) of the listener. @@ -6976,37 +6893,21 @@ type ModifyListenerInput struct { // ListenerArn is a required field ListenerArn *string `type:"string" required:"true"` - // The port for connections from clients to the load balancer. + // The port for connections from clients to the load balancer. You cannot specify + // a port for a Gateway Load Balancer. Port *int64 `min:"1" type:"integer"` // The protocol for connections from clients to the load balancer. Application // Load Balancers support the HTTP and HTTPS protocols. Network Load Balancers - // support the TCP, TLS, UDP, and TCP_UDP protocols. + // support the TCP, TLS, UDP, and TCP_UDP protocols. You cannot specify a protocol + // for a Gateway Load Balancer. Protocol *string `type:"string" enum:"ProtocolEnum"` // [HTTPS and TLS listeners] The security policy that defines which protocols - // and ciphers are supported. The following are the possible values: - // - // * ELBSecurityPolicy-2016-08 - // - // * ELBSecurityPolicy-TLS-1-0-2015-04 - // - // * ELBSecurityPolicy-TLS-1-1-2017-01 - // - // * ELBSecurityPolicy-TLS-1-2-2017-01 - // - // * ELBSecurityPolicy-TLS-1-2-Ext-2018-06 - // - // * ELBSecurityPolicy-FS-2018-06 - // - // * ELBSecurityPolicy-FS-1-1-2019-08 - // - // * ELBSecurityPolicy-FS-1-2-2019-08 - // - // * ELBSecurityPolicy-FS-1-2-Res-2019-08 + // and ciphers are supported. // - // For more information, see Security Policies (https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html#describe-ssl-policies) - // in the Application Load Balancers Guide and Security Policies (https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html#describe-ssl-policies) + // For more information, see Security policies (https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html#describe-ssl-policies) + // in the Application Load Balancers Guide or Security policies (https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html#describe-ssl-policies) // in the Network Load Balancers Guide. SslPolicy *string `type:"string"` } @@ -7190,31 +7091,10 @@ func (s *ModifyLoadBalancerAttributesOutput) SetAttributes(v []*LoadBalancerAttr type ModifyRuleInput struct { _ struct{} `type:"structure"` - // The actions. Each rule must include exactly one of the following types of - // actions: forward, fixed-response, or redirect, and it must be the last action - // to be performed. - // - // If the action type is forward, you specify one or more target groups. The - // protocol of the target group must be HTTP or HTTPS for an Application Load - // Balancer. The protocol of the target group must be TCP, TLS, UDP, or TCP_UDP - // for a Network Load Balancer. - // - // [HTTPS listeners] If the action type is authenticate-oidc, you authenticate - // users through an identity provider that is OpenID Connect (OIDC) compliant. - // - // [HTTPS listeners] If the action type is authenticate-cognito, you authenticate - // users through the user pools supported by Amazon Cognito. - // - // [Application Load Balancer] If the action type is redirect, you redirect - // specified client requests from one URL to another. - // - // [Application Load Balancer] If the action type is fixed-response, you drop - // specified client requests and return a custom HTTP response. + // The actions. Actions []*Action `type:"list"` - // The conditions. Each rule can include zero or one of the following conditions: - // http-request-method, host-header, path-pattern, and source-ip, and zero or - // more of the following conditions: http-header and query-string. + // The conditions. Conditions []*RuleCondition `type:"list"` // The Amazon Resource Name (ARN) of the rule. @@ -7379,14 +7259,17 @@ type ModifyTargetGroupInput struct { HealthCheckEnabled *bool `type:"boolean"` // The approximate amount of time, in seconds, between health checks of an individual - // target. For Application Load Balancers, the range is 5 to 300 seconds. For - // Network Load Balancers, the supported values are 10 or 30 seconds. + // target. For TCP health checks, the supported values are 10 or 30 seconds. // // With Network Load Balancers, you can't modify this setting. HealthCheckIntervalSeconds *int64 `min:"5" type:"integer"` - // [HTTP/HTTPS health checks] The ping path that is the destination for the - // health check request. + // [HTTP/HTTPS health checks] The destination for health checks on the targets. + // + // [HTTP1 or HTTP2 protocol version] The ping path. The default is /. + // + // [GRPC protocol version] The path of a custom health check method with the + // format /package.service/method. The default is /AWS.ALB/healthcheck. HealthCheckPath *string `min:"1" type:"string"` // The port the load balancer uses when performing health checks on targets. @@ -7394,8 +7277,8 @@ type ModifyTargetGroupInput struct { // The protocol the load balancer uses when performing health checks on targets. // The TCP protocol is supported for health checks only if the protocol of the - // target group is TCP, TLS, UDP, or TCP_UDP. The TLS, UDP, and TCP_UDP protocols - // are not supported for health checks. + // target group is TCP, TLS, UDP, or TCP_UDP. The GENEVE, TLS, UDP, and TCP_UDP + // protocols are not supported for health checks. // // With Network Load Balancers, you can't modify this setting. HealthCheckProtocol *string `type:"string" enum:"ProtocolEnum"` @@ -7410,10 +7293,8 @@ type ModifyTargetGroupInput struct { // an unhealthy target healthy. HealthyThresholdCount *int64 `min:"2" type:"integer"` - // [HTTP/HTTPS health checks] The HTTP codes to use when checking for a successful - // response from a target. The possible values are from 200 to 499. You can - // specify multiple values (for example, "200,202") or a range of values (for - // example, "200-299"). The default is 200. + // [HTTP/HTTPS health checks] The HTTP or gRPC codes to use when checking for + // a successful response from a target. // // With Network Load Balancers, you can't modify this setting. Matcher *Matcher `type:"structure"` @@ -7424,8 +7305,8 @@ type ModifyTargetGroupInput struct { TargetGroupArn *string `type:"string" required:"true"` // The number of consecutive health check failures required before considering - // the target unhealthy. For Network Load Balancers, this value must be the - // same as the healthy threshold count. + // the target unhealthy. For target groups with a protocol of TCP or TLS, this + // value must be the same as the healthy threshold count. UnhealthyThresholdCount *int64 `min:"2" type:"integer"` } @@ -7460,11 +7341,6 @@ func (s *ModifyTargetGroupInput) Validate() error { if s.UnhealthyThresholdCount != nil && *s.UnhealthyThresholdCount < 2 { invalidParams.Add(request.NewErrParamMinValue("UnhealthyThresholdCount", 2)) } - if s.Matcher != nil { - if err := s.Matcher.Validate(); err != nil { - invalidParams.AddNested("Matcher", err.(request.ErrInvalidParams)) - } - } if invalidParams.Len() > 0 { return invalidParams @@ -7784,10 +7660,6 @@ type RegisterTargetsInput struct { // The targets. // - // To register a target by instance ID, specify the instance ID. To register - // a target by IP address, specify the IP address. To register a Lambda function, - // specify the ARN of the Lambda function. - // // Targets is a required field Targets []*TargetDescription `type:"list" required:"true"` } @@ -8236,7 +8108,7 @@ type SetIpAddressTypeInput struct { // The IP address type. The possible values are ipv4 (for IPv4 addresses) and // dualstack (for IPv4 and IPv6 addresses). Internal load balancers must use - // ipv4. Network Load Balancers must use ipv4. + // ipv4. // // IpAddressType is a required field IpAddressType *string `type:"string" required:"true" enum:"IpAddressType"` @@ -8778,8 +8650,8 @@ type TargetDescription struct { // Id is a required field Id *string `type:"string" required:"true"` - // The port on which the target is listening. Not used if the target is a Lambda - // function. + // The port on which the target is listening. If the target group protocol is + // GENEVE, the supported port is 6081. Not used if the target is a Lambda function. Port *int64 `min:"1" type:"integer"` } @@ -8838,13 +8710,14 @@ type TargetGroup struct { // target. HealthCheckIntervalSeconds *int64 `min:"5" type:"integer"` - // The destination for the health check request. + // The destination for health checks on the targets. HealthCheckPath *string `min:"1" type:"string"` // The port to use to connect with the target. HealthCheckPort *string `type:"string"` - // The protocol to use to connect with the target. + // The protocol to use to connect with the target. The GENEVE, TLS, UDP, and + // TCP_UDP protocols are not supported for health checks. HealthCheckProtocol *string `type:"string" enum:"ProtocolEnum"` // The amount of time, in seconds, during which no response means a failed health @@ -8859,7 +8732,8 @@ type TargetGroup struct { // to this target group. LoadBalancerArns []*string `type:"list"` - // The HTTP codes to use when checking for a successful response from a target. + // The HTTP or gRPC codes to use when checking for a successful response from + // a target. Matcher *Matcher `type:"structure"` // The port on which the targets are listening. Not used if the target is a @@ -8869,6 +8743,10 @@ type TargetGroup struct { // The protocol to use for routing traffic to the targets. Protocol *string `type:"string" enum:"ProtocolEnum"` + // [HTTP/HTTPS protocol] The protocol version. The possible values are GRPC, + // HTTP1, and HTTP2. + ProtocolVersion *string `type:"string"` + // The Amazon Resource Name (ARN) of the target group. TargetGroupArn *string `type:"string"` @@ -8876,8 +8754,9 @@ type TargetGroup struct { TargetGroupName *string `type:"string"` // The type of target that you must specify when registering targets with this - // target group. The possible values are instance (targets are specified by - // instance ID) or ip (targets are specified by IP address). + // target group. The possible values are instance (register targets by instance + // ID), ip (register targets by IP address), or lambda (register a single Lambda + // function as a target). TargetType *string `type:"string" enum:"TargetTypeEnum"` // The number of consecutive health check failures required before considering @@ -8964,6 +8843,12 @@ func (s *TargetGroup) SetProtocol(v string) *TargetGroup { return s } +// SetProtocolVersion sets the ProtocolVersion field's value. +func (s *TargetGroup) SetProtocolVersion(v string) *TargetGroup { + s.ProtocolVersion = &v + return s +} + // SetTargetGroupArn sets the TargetGroupArn field's value. func (s *TargetGroup) SetTargetGroupArn(v string) *TargetGroup { s.TargetGroupArn = &v @@ -9000,8 +8885,7 @@ type TargetGroupAttribute struct { // The name of the attribute. // - // The following attributes are supported by both Application Load Balancers - // and Network Load Balancers: + // The following attribute is supported by all load balancers: // // * deregistration_delay.timeout_seconds - The amount of time, in seconds, // for Elastic Load Balancing to wait before changing the state of a deregistering @@ -9009,6 +8893,9 @@ type TargetGroupAttribute struct { // value is 300 seconds. If the target is a Lambda function, this attribute // is not supported. // + // The following attributes are supported by both Application Load Balancers + // and Network Load Balancers: + // // * stickiness.enabled - Indicates whether sticky sessions are enabled. // The value is true or false. The default is false. // @@ -9170,10 +9057,11 @@ type TargetHealth struct { // values: // // * Target.ResponseCodeMismatch - The health checks did not return an expected - // HTTP code. Applies only to Application Load Balancers. + // HTTP code. Applies only to Application Load Balancers and Gateway Load + // Balancers. // // * Target.Timeout - The health check requests timed out. Applies only to - // Application Load Balancers. + // Application Load Balancers and Gateway Load Balancers. // // * Target.FailedHealthChecks - The load balancer received an error while // establishing a connection to the target or the target response was malformed. @@ -9415,6 +9303,9 @@ const ( // LoadBalancerTypeEnumNetwork is a LoadBalancerTypeEnum enum value LoadBalancerTypeEnumNetwork = "network" + + // LoadBalancerTypeEnumGateway is a LoadBalancerTypeEnum enum value + LoadBalancerTypeEnumGateway = "gateway" ) // LoadBalancerTypeEnum_Values returns all elements of the LoadBalancerTypeEnum enum @@ -9422,6 +9313,7 @@ func LoadBalancerTypeEnum_Values() []string { return []string{ LoadBalancerTypeEnumApplication, LoadBalancerTypeEnumNetwork, + LoadBalancerTypeEnumGateway, } } @@ -9443,6 +9335,9 @@ const ( // ProtocolEnumTcpUdp is a ProtocolEnum enum value ProtocolEnumTcpUdp = "TCP_UDP" + + // ProtocolEnumGeneve is a ProtocolEnum enum value + ProtocolEnumGeneve = "GENEVE" ) // ProtocolEnum_Values returns all elements of the ProtocolEnum enum @@ -9454,6 +9349,7 @@ func ProtocolEnum_Values() []string { ProtocolEnumTls, ProtocolEnumUdp, ProtocolEnumTcpUdp, + ProtocolEnumGeneve, } } diff --git a/vendor/github.com/aws/aws-sdk-go/service/elbv2/doc.go b/vendor/github.com/aws/aws-sdk-go/service/elbv2/doc.go index 9a67fe299..e542d15bc 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/elbv2/doc.go +++ b/vendor/github.com/aws/aws-sdk-go/service/elbv2/doc.go @@ -15,16 +15,18 @@ // the targets. // // Elastic Load Balancing supports the following types of load balancers: Application -// Load Balancers, Network Load Balancers, and Classic Load Balancers. This -// reference covers Application Load Balancers and Network Load Balancers. -// -// An Application Load Balancer makes routing and load balancing decisions at -// the application layer (HTTP/HTTPS). A Network Load Balancer makes routing -// and load balancing decisions at the transport layer (TCP/TLS). Both Application -// Load Balancers and Network Load Balancers can route requests to one or more -// ports on each EC2 instance or container instance in your virtual private -// cloud (VPC). For more information, see the Elastic Load Balancing User Guide -// (https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/). +// Load Balancers, Network Load Balancers, Gateway Load Balancers, and Classic +// Load Balancers. This reference covers the following load balancer types: +// +// * Application Load Balancer - Operates at the application layer (layer +// 7) and supports HTTP and HTTPS. +// +// * Network Load Balancer - Operates at the transport layer (layer 4) and +// supports TCP, TLS, and UDP. +// +// * Gateway Load Balancer - Operates at the network layer (layer 3). +// +// For more information, see the Elastic Load Balancing User Guide (https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/). // // All Elastic Load Balancing operations are idempotent, which means that they // complete at most one time. If you repeat an operation, it succeeds. diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/api.go b/vendor/github.com/aws/aws-sdk-go/service/s3/api.go index bcf7f0344..2ab5d1dad 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/s3/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/s3/api.go @@ -1212,6 +1212,106 @@ func (c *S3) DeleteBucketEncryptionWithContext(ctx aws.Context, input *DeleteBuc return out, req.Send() } +const opDeleteBucketIntelligentTieringConfiguration = "DeleteBucketIntelligentTieringConfiguration" + +// DeleteBucketIntelligentTieringConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the DeleteBucketIntelligentTieringConfiguration operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See DeleteBucketIntelligentTieringConfiguration for more information on using the DeleteBucketIntelligentTieringConfiguration +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the DeleteBucketIntelligentTieringConfigurationRequest method. +// req, resp := client.DeleteBucketIntelligentTieringConfigurationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketIntelligentTieringConfiguration +func (c *S3) DeleteBucketIntelligentTieringConfigurationRequest(input *DeleteBucketIntelligentTieringConfigurationInput) (req *request.Request, output *DeleteBucketIntelligentTieringConfigurationOutput) { + op := &request.Operation{ + Name: opDeleteBucketIntelligentTieringConfiguration, + HTTPMethod: "DELETE", + HTTPPath: "/{Bucket}?intelligent-tiering", + } + + if input == nil { + input = &DeleteBucketIntelligentTieringConfigurationInput{} + } + + output = &DeleteBucketIntelligentTieringConfigurationOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// DeleteBucketIntelligentTieringConfiguration API operation for Amazon Simple Storage Service. +// +// Deletes the S3 Intelligent-Tiering configuration from the specified bucket. +// +// The S3 Intelligent-Tiering storage class is designed to optimize storage +// costs by automatically moving data to the most cost-effective storage access +// tier, without additional operational overhead. S3 Intelligent-Tiering delivers +// automatic cost savings by moving data between access tiers, when access patterns +// change. +// +// The S3 Intelligent-Tiering storage class is suitable for objects larger than +// 128 KB that you plan to store for at least 30 days. If the size of an object +// is less than 128 KB, it is not eligible for auto-tiering. Smaller objects +// can be stored, but they are always charged at the frequent access tier rates +// in the S3 Intelligent-Tiering storage class. +// +// If you delete an object before the end of the 30-day minimum storage duration +// period, you are charged for 30 days. For more information, see Storage class +// for automatically optimizing frequently and infrequently accessed objects +// (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access). +// +// Operations related to DeleteBucketIntelligentTieringConfiguration include: +// +// * GetBucketIntelligentTieringConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html) +// +// * PutBucketIntelligentTieringConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html) +// +// * ListBucketIntelligentTieringConfigurations (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html) +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Simple Storage Service's +// API operation DeleteBucketIntelligentTieringConfiguration for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketIntelligentTieringConfiguration +func (c *S3) DeleteBucketIntelligentTieringConfiguration(input *DeleteBucketIntelligentTieringConfigurationInput) (*DeleteBucketIntelligentTieringConfigurationOutput, error) { + req, out := c.DeleteBucketIntelligentTieringConfigurationRequest(input) + return out, req.Send() +} + +// DeleteBucketIntelligentTieringConfigurationWithContext is the same as DeleteBucketIntelligentTieringConfiguration with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteBucketIntelligentTieringConfiguration for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *S3) DeleteBucketIntelligentTieringConfigurationWithContext(ctx aws.Context, input *DeleteBucketIntelligentTieringConfigurationInput, opts ...request.Option) (*DeleteBucketIntelligentTieringConfigurationOutput, error) { + req, out := c.DeleteBucketIntelligentTieringConfigurationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDeleteBucketInventoryConfiguration = "DeleteBucketInventoryConfiguration" // DeleteBucketInventoryConfigurationRequest generates a "aws/request.Request" representing the @@ -2798,6 +2898,105 @@ func (c *S3) GetBucketEncryptionWithContext(ctx aws.Context, input *GetBucketEnc return out, req.Send() } +const opGetBucketIntelligentTieringConfiguration = "GetBucketIntelligentTieringConfiguration" + +// GetBucketIntelligentTieringConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the GetBucketIntelligentTieringConfiguration operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See GetBucketIntelligentTieringConfiguration for more information on using the GetBucketIntelligentTieringConfiguration +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the GetBucketIntelligentTieringConfigurationRequest method. +// req, resp := client.GetBucketIntelligentTieringConfigurationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketIntelligentTieringConfiguration +func (c *S3) GetBucketIntelligentTieringConfigurationRequest(input *GetBucketIntelligentTieringConfigurationInput) (req *request.Request, output *GetBucketIntelligentTieringConfigurationOutput) { + op := &request.Operation{ + Name: opGetBucketIntelligentTieringConfiguration, + HTTPMethod: "GET", + HTTPPath: "/{Bucket}?intelligent-tiering", + } + + if input == nil { + input = &GetBucketIntelligentTieringConfigurationInput{} + } + + output = &GetBucketIntelligentTieringConfigurationOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetBucketIntelligentTieringConfiguration API operation for Amazon Simple Storage Service. +// +// Gets the S3 Intelligent-Tiering configuration from the specified bucket. +// +// The S3 Intelligent-Tiering storage class is designed to optimize storage +// costs by automatically moving data to the most cost-effective storage access +// tier, without additional operational overhead. S3 Intelligent-Tiering delivers +// automatic cost savings by moving data between access tiers, when access patterns +// change. +// +// The S3 Intelligent-Tiering storage class is suitable for objects larger than +// 128 KB that you plan to store for at least 30 days. If the size of an object +// is less than 128 KB, it is not eligible for auto-tiering. Smaller objects +// can be stored, but they are always charged at the frequent access tier rates +// in the S3 Intelligent-Tiering storage class. +// +// If you delete an object before the end of the 30-day minimum storage duration +// period, you are charged for 30 days. For more information, see Storage class +// for automatically optimizing frequently and infrequently accessed objects +// (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access). +// +// Operations related to GetBucketIntelligentTieringConfiguration include: +// +// * DeleteBucketIntelligentTieringConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html) +// +// * PutBucketIntelligentTieringConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html) +// +// * ListBucketIntelligentTieringConfigurations (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html) +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Simple Storage Service's +// API operation GetBucketIntelligentTieringConfiguration for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketIntelligentTieringConfiguration +func (c *S3) GetBucketIntelligentTieringConfiguration(input *GetBucketIntelligentTieringConfigurationInput) (*GetBucketIntelligentTieringConfigurationOutput, error) { + req, out := c.GetBucketIntelligentTieringConfigurationRequest(input) + return out, req.Send() +} + +// GetBucketIntelligentTieringConfigurationWithContext is the same as GetBucketIntelligentTieringConfiguration with the addition of +// the ability to pass a context and additional request options. +// +// See GetBucketIntelligentTieringConfiguration for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *S3) GetBucketIntelligentTieringConfigurationWithContext(ctx aws.Context, input *GetBucketIntelligentTieringConfigurationInput, opts ...request.Option) (*GetBucketIntelligentTieringConfigurationOutput, error) { + req, out := c.GetBucketIntelligentTieringConfigurationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opGetBucketInventoryConfiguration = "GetBucketInventoryConfiguration" // GetBucketInventoryConfigurationRequest generates a "aws/request.Request" representing the @@ -4314,9 +4513,10 @@ func (c *S3) GetObjectRequest(input *GetObjectInput) (req *request.Request, outp // For more information about returning the ACL of an object, see GetObjectAcl // (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html). // -// If the object you are retrieving is stored in the GLACIER or DEEP_ARCHIVE -// storage classes, before you can retrieve the object you must first restore -// a copy using RestoreObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html). +// If the object you are retrieving is stored in the S3 Glacier, S3 Glacier +// Deep Archive, S3 Intelligent-Tiering Archive, or S3 Intelligent-Tiering Deep +// Archive storage classes, before you can retrieve the object you must first +// restore a copy using RestoreObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html). // Otherwise, this operation returns an InvalidObjectStateError error. For information // about restoring archived objects, see Restoring Archived Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html). // @@ -4429,6 +4629,9 @@ func (c *S3) GetObjectRequest(input *GetObjectInput) (req *request.Request, outp // * ErrCodeNoSuchKey "NoSuchKey" // The specified key does not exist. // +// * ErrCodeInvalidObjectState "InvalidObjectState" +// Object is archived and inaccessible until restored. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObject func (c *S3) GetObject(input *GetObjectInput) (*GetObjectOutput, error) { req, out := c.GetObjectRequest(input) @@ -5379,6 +5582,105 @@ func (c *S3) ListBucketAnalyticsConfigurationsWithContext(ctx aws.Context, input return out, req.Send() } +const opListBucketIntelligentTieringConfigurations = "ListBucketIntelligentTieringConfigurations" + +// ListBucketIntelligentTieringConfigurationsRequest generates a "aws/request.Request" representing the +// client's request for the ListBucketIntelligentTieringConfigurations operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See ListBucketIntelligentTieringConfigurations for more information on using the ListBucketIntelligentTieringConfigurations +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the ListBucketIntelligentTieringConfigurationsRequest method. +// req, resp := client.ListBucketIntelligentTieringConfigurationsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketIntelligentTieringConfigurations +func (c *S3) ListBucketIntelligentTieringConfigurationsRequest(input *ListBucketIntelligentTieringConfigurationsInput) (req *request.Request, output *ListBucketIntelligentTieringConfigurationsOutput) { + op := &request.Operation{ + Name: opListBucketIntelligentTieringConfigurations, + HTTPMethod: "GET", + HTTPPath: "/{Bucket}?intelligent-tiering", + } + + if input == nil { + input = &ListBucketIntelligentTieringConfigurationsInput{} + } + + output = &ListBucketIntelligentTieringConfigurationsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListBucketIntelligentTieringConfigurations API operation for Amazon Simple Storage Service. +// +// Lists the S3 Intelligent-Tiering configuration from the specified bucket. +// +// The S3 Intelligent-Tiering storage class is designed to optimize storage +// costs by automatically moving data to the most cost-effective storage access +// tier, without additional operational overhead. S3 Intelligent-Tiering delivers +// automatic cost savings by moving data between access tiers, when access patterns +// change. +// +// The S3 Intelligent-Tiering storage class is suitable for objects larger than +// 128 KB that you plan to store for at least 30 days. If the size of an object +// is less than 128 KB, it is not eligible for auto-tiering. Smaller objects +// can be stored, but they are always charged at the frequent access tier rates +// in the S3 Intelligent-Tiering storage class. +// +// If you delete an object before the end of the 30-day minimum storage duration +// period, you are charged for 30 days. For more information, see Storage class +// for automatically optimizing frequently and infrequently accessed objects +// (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access). +// +// Operations related to ListBucketIntelligentTieringConfigurations include: +// +// * DeleteBucketIntelligentTieringConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html) +// +// * PutBucketIntelligentTieringConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketIntelligentTieringConfiguration.html) +// +// * GetBucketIntelligentTieringConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html) +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Simple Storage Service's +// API operation ListBucketIntelligentTieringConfigurations for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketIntelligentTieringConfigurations +func (c *S3) ListBucketIntelligentTieringConfigurations(input *ListBucketIntelligentTieringConfigurationsInput) (*ListBucketIntelligentTieringConfigurationsOutput, error) { + req, out := c.ListBucketIntelligentTieringConfigurationsRequest(input) + return out, req.Send() +} + +// ListBucketIntelligentTieringConfigurationsWithContext is the same as ListBucketIntelligentTieringConfigurations with the addition of +// the ability to pass a context and additional request options. +// +// See ListBucketIntelligentTieringConfigurations for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *S3) ListBucketIntelligentTieringConfigurationsWithContext(ctx aws.Context, input *ListBucketIntelligentTieringConfigurationsInput, opts ...request.Option) (*ListBucketIntelligentTieringConfigurationsOutput, error) { + req, out := c.ListBucketIntelligentTieringConfigurationsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opListBucketInventoryConfigurations = "ListBucketInventoryConfigurations" // ListBucketInventoryConfigurationsRequest generates a "aws/request.Request" representing the @@ -7066,6 +7368,106 @@ func (c *S3) PutBucketEncryptionWithContext(ctx aws.Context, input *PutBucketEnc return out, req.Send() } +const opPutBucketIntelligentTieringConfiguration = "PutBucketIntelligentTieringConfiguration" + +// PutBucketIntelligentTieringConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the PutBucketIntelligentTieringConfiguration operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See PutBucketIntelligentTieringConfiguration for more information on using the PutBucketIntelligentTieringConfiguration +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the PutBucketIntelligentTieringConfigurationRequest method. +// req, resp := client.PutBucketIntelligentTieringConfigurationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketIntelligentTieringConfiguration +func (c *S3) PutBucketIntelligentTieringConfigurationRequest(input *PutBucketIntelligentTieringConfigurationInput) (req *request.Request, output *PutBucketIntelligentTieringConfigurationOutput) { + op := &request.Operation{ + Name: opPutBucketIntelligentTieringConfiguration, + HTTPMethod: "PUT", + HTTPPath: "/{Bucket}?intelligent-tiering", + } + + if input == nil { + input = &PutBucketIntelligentTieringConfigurationInput{} + } + + output = &PutBucketIntelligentTieringConfigurationOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// PutBucketIntelligentTieringConfiguration API operation for Amazon Simple Storage Service. +// +// Puts a S3 Intelligent-Tiering configuration to the specified bucket. +// +// The S3 Intelligent-Tiering storage class is designed to optimize storage +// costs by automatically moving data to the most cost-effective storage access +// tier, without additional operational overhead. S3 Intelligent-Tiering delivers +// automatic cost savings by moving data between access tiers, when access patterns +// change. +// +// The S3 Intelligent-Tiering storage class is suitable for objects larger than +// 128 KB that you plan to store for at least 30 days. If the size of an object +// is less than 128 KB, it is not eligible for auto-tiering. Smaller objects +// can be stored, but they are always charged at the frequent access tier rates +// in the S3 Intelligent-Tiering storage class. +// +// If you delete an object before the end of the 30-day minimum storage duration +// period, you are charged for 30 days. For more information, see Storage class +// for automatically optimizing frequently and infrequently accessed objects +// (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access). +// +// Operations related to PutBucketIntelligentTieringConfiguration include: +// +// * DeleteBucketIntelligentTieringConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketIntelligentTieringConfiguration.html) +// +// * GetBucketIntelligentTieringConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketIntelligentTieringConfiguration.html) +// +// * ListBucketIntelligentTieringConfigurations (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBucketIntelligentTieringConfigurations.html) +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Simple Storage Service's +// API operation PutBucketIntelligentTieringConfiguration for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketIntelligentTieringConfiguration +func (c *S3) PutBucketIntelligentTieringConfiguration(input *PutBucketIntelligentTieringConfigurationInput) (*PutBucketIntelligentTieringConfigurationOutput, error) { + req, out := c.PutBucketIntelligentTieringConfigurationRequest(input) + return out, req.Send() +} + +// PutBucketIntelligentTieringConfigurationWithContext is the same as PutBucketIntelligentTieringConfiguration with the addition of +// the ability to pass a context and additional request options. +// +// See PutBucketIntelligentTieringConfiguration for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *S3) PutBucketIntelligentTieringConfigurationWithContext(ctx aws.Context, input *PutBucketIntelligentTieringConfigurationInput, opts ...request.Option) (*PutBucketIntelligentTieringConfigurationOutput, error) { + req, out := c.PutBucketIntelligentTieringConfigurationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opPutBucketInventoryConfiguration = "PutBucketInventoryConfiguration" // PutBucketInventoryConfigurationRequest generates a "aws/request.Request" representing the @@ -7950,14 +8352,14 @@ func (c *S3) PutBucketOwnershipControlsRequest(input *PutBucketOwnershipControls // PutBucketOwnershipControls API operation for Amazon Simple Storage Service. // // Creates or modifies OwnershipControls for an Amazon S3 bucket. To use this -// operation, you must have the s3:GetBucketOwnershipControls permission. For +// operation, you must have the s3:PutBucketOwnershipControls permission. For // more information about Amazon S3 permissions, see Specifying Permissions // in a Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html). // // For information about Amazon S3 Object Ownership, see Using Object Ownership // (https://docs.aws.amazon.com/AmazonS3/latest/dev/about-object-ownership.html). // -// The following operations are related to GetBucketOwnershipControls: +// The following operations are related to PutBucketOwnershipControls: // // * GetBucketOwnershipControls // @@ -9599,58 +10001,56 @@ func (c *S3) RestoreObjectRequest(input *RestoreObjectInput) (req *request.Reque // // Restoring Archives // -// Objects in the GLACIER and DEEP_ARCHIVE storage classes are archived. To -// access an archived object, you must first initiate a restore request. This -// restores a temporary copy of the archived object. In a restore request, you -// specify the number of days that you want the restored copy to exist. After -// the specified period, Amazon S3 deletes the temporary copy but the object -// remains archived in the GLACIER or DEEP_ARCHIVE storage class that object -// was restored from. +// Objects that you archive to the S3 Glacier, S3 Glacier Deep Archive, S3 Intelligent-Tiering +// Archive, or S3 Intelligent-Tiering Deep Archive storage classes are not accessible +// in real time. For objects in Archive Access tier or Deep Archive Access tier +// you must first initiate a restore request, and then wait until the object +// is moved into the Frequent Access tier. For objects in S3 Glacier or S3 Glacier +// Deep Archive you must first initiate a restore request, and then wait until +// a temporary copy of the object is available. To access an archived object, +// you must restore the object for the duration (number of days) that you specify. // // To restore a specific object version, you can provide a version ID. If you // don't provide a version ID, Amazon S3 restores the current version. // -// The time it takes restore jobs to finish depends on which storage class the -// object is being restored from and which data access tier you specify. -// // When restoring an archived object (or using a select request), you can specify // one of the following data access tier options in the Tier element of the // request body: // // * Expedited - Expedited retrievals allow you to quickly access your data -// stored in the GLACIER storage class when occasional urgent requests for -// a subset of archives are required. For all but the largest archived objects -// (250 MB+), data accessed using Expedited retrievals are typically made -// available within 1–5 minutes. Provisioned capacity ensures that retrieval -// capacity for Expedited retrievals is available when you need it. Expedited -// retrievals and provisioned capacity are not available for the DEEP_ARCHIVE -// storage class. -// -// * Standard - S3 Standard retrievals allow you to access any of your archived -// objects within several hours. This is the default option for the GLACIER -// and DEEP_ARCHIVE retrieval requests that do not specify the retrieval -// option. S3 Standard retrievals typically complete within 3-5 hours from -// the GLACIER storage class and typically complete within 12 hours from -// the DEEP_ARCHIVE storage class. -// -// * Bulk - Bulk retrievals are Amazon S3 Glacier’s lowest-cost retrieval -// option, enabling you to retrieve large amounts, even petabytes, of data -// inexpensively in a day. Bulk retrievals typically complete within 5-12 -// hours from the GLACIER storage class and typically complete within 48 -// hours from the DEEP_ARCHIVE storage class. +// stored in the S3 Glacier or S3 Intelligent-Tiering Archive storage class +// when occasional urgent requests for a subset of archives are required. +// For all but the largest archived objects (250 MB+), data accessed using +// Expedited retrievals is typically made available within 1–5 minutes. +// Provisioned capacity ensures that retrieval capacity for Expedited retrievals +// is available when you need it. Expedited retrievals and provisioned capacity +// are not available for objects stored in the S3 Glacier Deep Archive or +// S3 Intelligent-Tiering Deep Archive storage class. +// +// * Standard - Standard retrievals allow you to access any of your archived +// objects within several hours. This is the default option for retrieval +// requests that do not specify the retrieval option. Standard retrievals +// typically finish within 3–5 hours for objects stored in the S3 Glacier +// or S3 Intelligent-Tiering Archive storage class. They typically finish +// within 12 hours for objects stored in the S3 Glacier Deep Archive or S3 +// Intelligent-Tiering Deep Archive storage class. Standard retrievals are +// free for objects stored in S3 Intelligent-Tiering. +// +// * Bulk - Bulk retrievals are the lowest-cost retrieval option in S3 Glacier, +// enabling you to retrieve large amounts, even petabytes, of data inexpensively. +// Bulk retrievals typically finish within 5–12 hours for objects stored +// in the S3 Glacier or S3 Intelligent-Tiering Archive storage class. They +// typically finish within 48 hours for objects stored in the S3 Glacier +// Deep Archive or S3 Intelligent-Tiering Deep Archive storage class. Bulk +// retrievals are free for objects stored in S3 Intelligent-Tiering. // // For more information about archive retrieval options and provisioned capacity // for Expedited data access, see Restoring Archived Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html) // in the Amazon Simple Storage Service Developer Guide. // // You can use Amazon S3 restore speed upgrade to change the restore speed to -// a faster speed while it is in progress. You upgrade the speed of an in-progress -// restoration by issuing another restore request to the same object, setting -// a new Tier request element. When issuing a request to upgrade the restore -// tier, you must choose a tier that is faster than the tier that the in-progress -// restore is using. You must not change any other parameters, such as the Days -// request element. For more information, see Upgrading the Speed of an In-Progress -// Restore (https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html#restoring-objects-upgrade-tier.title.html) +// a faster speed while it is in progress. For more information, see Upgrading +// the speed of an in-progress restore (https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html#restoring-objects-upgrade-tier.title.html) // in the Amazon Simple Storage Service Developer Guide. // // To get the status of object restoration, you can send a HEAD request. Operations @@ -9679,11 +10079,11 @@ func (c *S3) RestoreObjectRequest(input *RestoreObjectInput) (req *request.Reque // // A successful operation returns either the 200 OK or 202 Accepted status code. // -// * If the object copy is not previously restored, then Amazon S3 returns -// 202 Accepted in the response. +// * If the object is not previously restored, then Amazon S3 returns 202 +// Accepted in the response. // -// * If the object copy is previously restored, Amazon S3 returns 200 OK -// in the response. +// * If the object is previously restored, Amazon S3 returns 200 OK in the +// response. // // Special Errors // @@ -9691,11 +10091,11 @@ func (c *S3) RestoreObjectRequest(input *RestoreObjectInput) (req *request.Reque // (This error does not apply to SELECT type requests.) HTTP Status Code: // 409 Conflict SOAP Fault Code Prefix: Client // -// * Code: GlacierExpeditedRetrievalNotAvailable Cause: S3 Glacier expedited -// retrievals are currently not available. Try again later. (Returned if -// there is insufficient capacity to process the Expedited request. This -// error applies only to Expedited retrievals and not to S3 Standard or Bulk -// retrievals.) HTTP Status Code: 503 SOAP Fault Code Prefix: N/A +// * Code: GlacierExpeditedRetrievalNotAvailable Cause: expedited retrievals +// are currently not available. Try again later. (Returned if there is insufficient +// capacity to process the Expedited request. This error applies only to +// Expedited retrievals and not to S3 Standard or Bulk retrievals.) HTTP +// Status Code: 503 SOAP Fault Code Prefix: N/A // // Related Resources // @@ -13919,6 +14319,110 @@ func (s DeleteBucketInput) updateArnableField(v string) (interface{}, error) { return &s, nil } +type DeleteBucketIntelligentTieringConfigurationInput struct { + _ struct{} `locationName:"DeleteBucketIntelligentTieringConfigurationRequest" type:"structure"` + + // The name of the Amazon S3 bucket whose configuration you want to modify or + // retrieve. + // + // Bucket is a required field + Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` + + // The ID used to identify the S3 Intelligent-Tiering configuration. + // + // Id is a required field + Id *string `location:"querystring" locationName:"id" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteBucketIntelligentTieringConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteBucketIntelligentTieringConfigurationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteBucketIntelligentTieringConfigurationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteBucketIntelligentTieringConfigurationInput"} + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) + } + if s.Bucket != nil && len(*s.Bucket) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) + } + if s.Id == nil { + invalidParams.Add(request.NewErrParamRequired("Id")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetBucket sets the Bucket field's value. +func (s *DeleteBucketIntelligentTieringConfigurationInput) SetBucket(v string) *DeleteBucketIntelligentTieringConfigurationInput { + s.Bucket = &v + return s +} + +func (s *DeleteBucketIntelligentTieringConfigurationInput) getBucket() (v string) { + if s.Bucket == nil { + return v + } + return *s.Bucket +} + +// SetId sets the Id field's value. +func (s *DeleteBucketIntelligentTieringConfigurationInput) SetId(v string) *DeleteBucketIntelligentTieringConfigurationInput { + s.Id = &v + return s +} + +func (s *DeleteBucketIntelligentTieringConfigurationInput) getEndpointARN() (arn.Resource, error) { + if s.Bucket == nil { + return nil, fmt.Errorf("member Bucket is nil") + } + return parseEndpointARN(*s.Bucket) +} + +func (s *DeleteBucketIntelligentTieringConfigurationInput) hasEndpointARN() bool { + if s.Bucket == nil { + return false + } + return arn.IsARN(*s.Bucket) +} + +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +// It returns a pointer to a modified copy of input and an error. +// Note that original input is not modified. +func (s DeleteBucketIntelligentTieringConfigurationInput) updateArnableField(v string) (interface{}, error) { + if s.Bucket == nil { + return nil, fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return &s, nil +} + +type DeleteBucketIntelligentTieringConfigurationOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteBucketIntelligentTieringConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteBucketIntelligentTieringConfigurationOutput) GoString() string { + return s.String() +} + type DeleteBucketInventoryConfigurationInput struct { _ struct{} `locationName:"DeleteBucketInventoryConfigurationRequest" type:"structure"` @@ -14269,6 +14773,9 @@ type DeleteBucketOwnershipControlsInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` + // The account id of the expected bucket owner. If the bucket is owned by a + // different account, the request will fail with an HTTP 403 (Access Denied) + // error. ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` } @@ -14819,24 +15326,25 @@ func (s *DeleteMarkerEntry) SetVersionId(v string) *DeleteMarkerEntry { return s } -// Specifies whether Amazon S3 replicates the delete markers. If you specify -// a Filter, you must specify this element. However, in the latest version of -// replication configuration (when Filter is specified), Amazon S3 doesn't replicate -// delete markers. Therefore, the DeleteMarkerReplication element can contain -// only Disabled. For an example configuration, see Basic Rule -// Configuration (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-config-min-rule-config). +// Specifies whether Amazon S3 replicates delete markers. If you specify a Filter +// in your replication configuration, you must also include a DeleteMarkerReplication +// element. If your Filter includes a Tag element, the DeleteMarkerReplication +// Status must be set to Disabled, because Amazon S3 does not support replicating +// delete markers for tag-based rules. For an example configuration, see Basic +// Rule Configuration (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-config-min-rule-config). // -// If you don't specify the Filter element, Amazon S3 assumes that the replication -// configuration is the earlier version, V1. In the earlier version, Amazon -// S3 handled replication of delete markers differently. For more information, +// For more information about delete marker replication, see Basic Rule Configuration +// (https://docs.aws.amazon.com/AmazonS3/latest/dev/delete-marker-replication.html). +// +// If you are using an earlier version of the replication configuration, Amazon +// S3 handles replication of delete markers differently. For more information, // see Backward Compatibility (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations). type DeleteMarkerReplication struct { _ struct{} `type:"structure"` // Indicates whether to replicate delete markers. // - // In the current implementation, Amazon S3 doesn't replicate the delete markers. - // The status must be Disabled. + // Indicates whether to replicate delete markers. Status *string `type:"string" enum:"DeleteMarkerReplicationStatus"` } @@ -15597,9 +16105,8 @@ type Destination struct { // is specified, you must specify this element. EncryptionConfiguration *EncryptionConfiguration `type:"structure"` - // A container specifying replication metrics-related settings enabling metrics - // and Amazon S3 events for S3 Replication Time Control (S3 RTC). Must be specified - // together with a ReplicationTime block. + // A container specifying replication metrics-related settings enabling replication + // metrics and events. Metrics *Metrics `type:"structure"` // A container specifying S3 Replication Time Control (S3 RTC), including whether @@ -16928,6 +17435,119 @@ func (s *GetBucketEncryptionOutput) SetServerSideEncryptionConfiguration(v *Serv return s } +type GetBucketIntelligentTieringConfigurationInput struct { + _ struct{} `locationName:"GetBucketIntelligentTieringConfigurationRequest" type:"structure"` + + // The name of the Amazon S3 bucket whose configuration you want to modify or + // retrieve. + // + // Bucket is a required field + Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` + + // The ID used to identify the S3 Intelligent-Tiering configuration. + // + // Id is a required field + Id *string `location:"querystring" locationName:"id" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetBucketIntelligentTieringConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetBucketIntelligentTieringConfigurationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetBucketIntelligentTieringConfigurationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetBucketIntelligentTieringConfigurationInput"} + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) + } + if s.Bucket != nil && len(*s.Bucket) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) + } + if s.Id == nil { + invalidParams.Add(request.NewErrParamRequired("Id")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetBucket sets the Bucket field's value. +func (s *GetBucketIntelligentTieringConfigurationInput) SetBucket(v string) *GetBucketIntelligentTieringConfigurationInput { + s.Bucket = &v + return s +} + +func (s *GetBucketIntelligentTieringConfigurationInput) getBucket() (v string) { + if s.Bucket == nil { + return v + } + return *s.Bucket +} + +// SetId sets the Id field's value. +func (s *GetBucketIntelligentTieringConfigurationInput) SetId(v string) *GetBucketIntelligentTieringConfigurationInput { + s.Id = &v + return s +} + +func (s *GetBucketIntelligentTieringConfigurationInput) getEndpointARN() (arn.Resource, error) { + if s.Bucket == nil { + return nil, fmt.Errorf("member Bucket is nil") + } + return parseEndpointARN(*s.Bucket) +} + +func (s *GetBucketIntelligentTieringConfigurationInput) hasEndpointARN() bool { + if s.Bucket == nil { + return false + } + return arn.IsARN(*s.Bucket) +} + +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +// It returns a pointer to a modified copy of input and an error. +// Note that original input is not modified. +func (s GetBucketIntelligentTieringConfigurationInput) updateArnableField(v string) (interface{}, error) { + if s.Bucket == nil { + return nil, fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return &s, nil +} + +type GetBucketIntelligentTieringConfigurationOutput struct { + _ struct{} `type:"structure" payload:"IntelligentTieringConfiguration"` + + // Container for S3 Intelligent-Tiering configuration. + IntelligentTieringConfiguration *IntelligentTieringConfiguration `type:"structure"` +} + +// String returns the string representation +func (s GetBucketIntelligentTieringConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetBucketIntelligentTieringConfigurationOutput) GoString() string { + return s.String() +} + +// SetIntelligentTieringConfiguration sets the IntelligentTieringConfiguration field's value. +func (s *GetBucketIntelligentTieringConfigurationOutput) SetIntelligentTieringConfiguration(v *IntelligentTieringConfiguration) *GetBucketIntelligentTieringConfigurationOutput { + s.IntelligentTieringConfiguration = v + return s +} + type GetBucketInventoryConfigurationInput struct { _ struct{} `locationName:"GetBucketInventoryConfigurationRequest" type:"structure"` @@ -17709,6 +18329,9 @@ type GetBucketOwnershipControlsInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` + // The account id of the expected bucket owner. If the bucket is owned by a + // different account, the request will fail with an HTTP 403 (Access Denied) + // error. ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` } @@ -20261,7 +20884,7 @@ func (s *GetPublicAccessBlockOutput) SetPublicAccessBlockConfiguration(v *Public type GlacierJobParameters struct { _ struct{} `type:"structure"` - // S3 Glacier retrieval tier at which the restore will be processed. + // Retrieval tier at which the restore will be processed. // // Tier is a required field Tier *string `type:"string" required:"true" enum:"Tier"` @@ -20809,6 +21432,9 @@ type HeadObjectOutput struct { // Indicates that a range of bytes was specified. AcceptRanges *string `location:"header" locationName:"accept-ranges" type:"string"` + // The archive state of the head object. + ArchiveStatus *string `location:"header" locationName:"x-amz-archive-status" type:"string" enum:"ArchiveStatus"` + // Specifies caching behavior along the request/reply chain. CacheControl *string `location:"header" locationName:"Cache-Control" type:"string"` @@ -20980,6 +21606,12 @@ func (s *HeadObjectOutput) SetAcceptRanges(v string) *HeadObjectOutput { return s } +// SetArchiveStatus sets the ArchiveStatus field's value. +func (s *HeadObjectOutput) SetArchiveStatus(v string) *HeadObjectOutput { + s.ArchiveStatus = &v + return s +} + // SetCacheControl sets the CacheControl field's value. func (s *HeadObjectOutput) SetCacheControl(v string) *HeadObjectOutput { s.CacheControl = &v @@ -21271,6 +21903,224 @@ func (s *InputSerialization) SetParquet(v *ParquetInput) *InputSerialization { return s } +// A container for specifying S3 Intelligent-Tiering filters. The filters determine +// the subset of objects to which the rule applies. +type IntelligentTieringAndOperator struct { + _ struct{} `type:"structure"` + + // An object key name prefix that identifies the subset of objects to which + // the configuration applies. + Prefix *string `type:"string"` + + // All of these tags must exist in the object's tag set in order for the configuration + // to apply. + Tags []*Tag `locationName:"Tag" locationNameList:"Tag" type:"list" flattened:"true"` +} + +// String returns the string representation +func (s IntelligentTieringAndOperator) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s IntelligentTieringAndOperator) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *IntelligentTieringAndOperator) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "IntelligentTieringAndOperator"} + if s.Tags != nil { + for i, v := range s.Tags { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetPrefix sets the Prefix field's value. +func (s *IntelligentTieringAndOperator) SetPrefix(v string) *IntelligentTieringAndOperator { + s.Prefix = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *IntelligentTieringAndOperator) SetTags(v []*Tag) *IntelligentTieringAndOperator { + s.Tags = v + return s +} + +// Specifies the S3 Intelligent-Tiering configuration for an Amazon S3 bucket. +// +// For information about the S3 Intelligent-Tiering storage class, see Storage +// class for automatically optimizing frequently and infrequently accessed objects +// (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access). +type IntelligentTieringConfiguration struct { + _ struct{} `type:"structure"` + + // Specifies a bucket filter. The configuration only includes objects that meet + // the filter's criteria. + Filter *IntelligentTieringFilter `type:"structure"` + + // The ID used to identify the S3 Intelligent-Tiering configuration. + // + // Id is a required field + Id *string `type:"string" required:"true"` + + // Specifies the status of the configuration. + // + // Status is a required field + Status *string `type:"string" required:"true" enum:"IntelligentTieringStatus"` + + // Specifies the S3 Intelligent-Tiering storage class tier of the configuration. + // + // Tierings is a required field + Tierings []*Tiering `locationName:"Tiering" type:"list" flattened:"true" required:"true"` +} + +// String returns the string representation +func (s IntelligentTieringConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s IntelligentTieringConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *IntelligentTieringConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "IntelligentTieringConfiguration"} + if s.Id == nil { + invalidParams.Add(request.NewErrParamRequired("Id")) + } + if s.Status == nil { + invalidParams.Add(request.NewErrParamRequired("Status")) + } + if s.Tierings == nil { + invalidParams.Add(request.NewErrParamRequired("Tierings")) + } + if s.Filter != nil { + if err := s.Filter.Validate(); err != nil { + invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) + } + } + if s.Tierings != nil { + for i, v := range s.Tierings { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tierings", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetFilter sets the Filter field's value. +func (s *IntelligentTieringConfiguration) SetFilter(v *IntelligentTieringFilter) *IntelligentTieringConfiguration { + s.Filter = v + return s +} + +// SetId sets the Id field's value. +func (s *IntelligentTieringConfiguration) SetId(v string) *IntelligentTieringConfiguration { + s.Id = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *IntelligentTieringConfiguration) SetStatus(v string) *IntelligentTieringConfiguration { + s.Status = &v + return s +} + +// SetTierings sets the Tierings field's value. +func (s *IntelligentTieringConfiguration) SetTierings(v []*Tiering) *IntelligentTieringConfiguration { + s.Tierings = v + return s +} + +// The Filter is used to identify objects that the S3 Intelligent-Tiering configuration +// applies to. +type IntelligentTieringFilter struct { + _ struct{} `type:"structure"` + + // A conjunction (logical AND) of predicates, which is used in evaluating a + // metrics filter. The operator must have at least two predicates, and an object + // must match all of the predicates in order for the filter to apply. + And *IntelligentTieringAndOperator `type:"structure"` + + // An object key name prefix that identifies the subset of objects to which + // the rule applies. + Prefix *string `type:"string"` + + // A container of a key value name pair. + Tag *Tag `type:"structure"` +} + +// String returns the string representation +func (s IntelligentTieringFilter) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s IntelligentTieringFilter) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *IntelligentTieringFilter) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "IntelligentTieringFilter"} + if s.And != nil { + if err := s.And.Validate(); err != nil { + invalidParams.AddNested("And", err.(request.ErrInvalidParams)) + } + } + if s.Tag != nil { + if err := s.Tag.Validate(); err != nil { + invalidParams.AddNested("Tag", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAnd sets the And field's value. +func (s *IntelligentTieringFilter) SetAnd(v *IntelligentTieringAndOperator) *IntelligentTieringFilter { + s.And = v + return s +} + +// SetPrefix sets the Prefix field's value. +func (s *IntelligentTieringFilter) SetPrefix(v string) *IntelligentTieringFilter { + s.Prefix = &v + return s +} + +// SetTag sets the Tag field's value. +func (s *IntelligentTieringFilter) SetTag(v *Tag) *IntelligentTieringFilter { + s.Tag = v + return s +} + // Specifies the inventory configuration for an Amazon S3 bucket. For more information, // see GET Bucket inventory (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html) // in the Amazon Simple Storage Service API Reference. @@ -22331,6 +23181,147 @@ func (s *ListBucketAnalyticsConfigurationsOutput) SetNextContinuationToken(v str return s } +type ListBucketIntelligentTieringConfigurationsInput struct { + _ struct{} `locationName:"ListBucketIntelligentTieringConfigurationsRequest" type:"structure"` + + // The name of the Amazon S3 bucket whose configuration you want to modify or + // retrieve. + // + // Bucket is a required field + Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` + + // The ContinuationToken that represents a placeholder from where this request + // should begin. + ContinuationToken *string `location:"querystring" locationName:"continuation-token" type:"string"` +} + +// String returns the string representation +func (s ListBucketIntelligentTieringConfigurationsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListBucketIntelligentTieringConfigurationsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListBucketIntelligentTieringConfigurationsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListBucketIntelligentTieringConfigurationsInput"} + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) + } + if s.Bucket != nil && len(*s.Bucket) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetBucket sets the Bucket field's value. +func (s *ListBucketIntelligentTieringConfigurationsInput) SetBucket(v string) *ListBucketIntelligentTieringConfigurationsInput { + s.Bucket = &v + return s +} + +func (s *ListBucketIntelligentTieringConfigurationsInput) getBucket() (v string) { + if s.Bucket == nil { + return v + } + return *s.Bucket +} + +// SetContinuationToken sets the ContinuationToken field's value. +func (s *ListBucketIntelligentTieringConfigurationsInput) SetContinuationToken(v string) *ListBucketIntelligentTieringConfigurationsInput { + s.ContinuationToken = &v + return s +} + +func (s *ListBucketIntelligentTieringConfigurationsInput) getEndpointARN() (arn.Resource, error) { + if s.Bucket == nil { + return nil, fmt.Errorf("member Bucket is nil") + } + return parseEndpointARN(*s.Bucket) +} + +func (s *ListBucketIntelligentTieringConfigurationsInput) hasEndpointARN() bool { + if s.Bucket == nil { + return false + } + return arn.IsARN(*s.Bucket) +} + +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +// It returns a pointer to a modified copy of input and an error. +// Note that original input is not modified. +func (s ListBucketIntelligentTieringConfigurationsInput) updateArnableField(v string) (interface{}, error) { + if s.Bucket == nil { + return nil, fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return &s, nil +} + +type ListBucketIntelligentTieringConfigurationsOutput struct { + _ struct{} `type:"structure"` + + // The ContinuationToken that represents a placeholder from where this request + // should begin. + ContinuationToken *string `type:"string"` + + // The list of S3 Intelligent-Tiering configurations for a bucket. + IntelligentTieringConfigurationList []*IntelligentTieringConfiguration `locationName:"IntelligentTieringConfiguration" type:"list" flattened:"true"` + + // Indicates whether the returned list of analytics configurations is complete. + // A value of true indicates that the list is not complete and the NextContinuationToken + // will be provided for a subsequent request. + IsTruncated *bool `type:"boolean"` + + // The marker used to continue this inventory configuration listing. Use the + // NextContinuationToken from this response to continue the listing in a subsequent + // request. The continuation token is an opaque value that Amazon S3 understands. + NextContinuationToken *string `type:"string"` +} + +// String returns the string representation +func (s ListBucketIntelligentTieringConfigurationsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListBucketIntelligentTieringConfigurationsOutput) GoString() string { + return s.String() +} + +// SetContinuationToken sets the ContinuationToken field's value. +func (s *ListBucketIntelligentTieringConfigurationsOutput) SetContinuationToken(v string) *ListBucketIntelligentTieringConfigurationsOutput { + s.ContinuationToken = &v + return s +} + +// SetIntelligentTieringConfigurationList sets the IntelligentTieringConfigurationList field's value. +func (s *ListBucketIntelligentTieringConfigurationsOutput) SetIntelligentTieringConfigurationList(v []*IntelligentTieringConfiguration) *ListBucketIntelligentTieringConfigurationsOutput { + s.IntelligentTieringConfigurationList = v + return s +} + +// SetIsTruncated sets the IsTruncated field's value. +func (s *ListBucketIntelligentTieringConfigurationsOutput) SetIsTruncated(v bool) *ListBucketIntelligentTieringConfigurationsOutput { + s.IsTruncated = &v + return s +} + +// SetNextContinuationToken sets the NextContinuationToken field's value. +func (s *ListBucketIntelligentTieringConfigurationsOutput) SetNextContinuationToken(v string) *ListBucketIntelligentTieringConfigurationsOutput { + s.NextContinuationToken = &v + return s +} + type ListBucketInventoryConfigurationsInput struct { _ struct{} `locationName:"ListBucketInventoryConfigurationsRequest" type:"structure"` @@ -24548,17 +25539,14 @@ func (s *MetadataEntry) SetValue(v string) *MetadataEntry { return s } -// A container specifying replication metrics-related settings enabling metrics -// and Amazon S3 events for S3 Replication Time Control (S3 RTC). Must be specified -// together with a ReplicationTime block. +// A container specifying replication metrics-related settings enabling replication +// metrics and events. type Metrics struct { _ struct{} `type:"structure"` // A container specifying the time threshold for emitting the s3:Replication:OperationMissedThreshold // event. - // - // EventThreshold is a required field - EventThreshold *ReplicationTimeValue `type:"structure" required:"true"` + EventThreshold *ReplicationTimeValue `type:"structure"` // Specifies whether the replication metrics are enabled. // @@ -24579,9 +25567,6 @@ func (s Metrics) GoString() string { // Validate inspects the fields of the type to determine if they are valid. func (s *Metrics) Validate() error { invalidParams := request.ErrInvalidParams{Context: "Metrics"} - if s.EventThreshold == nil { - invalidParams.Add(request.NewErrParamRequired("EventThreshold")) - } if s.Status == nil { invalidParams.Add(request.NewErrParamRequired("Status")) } @@ -25852,8 +26837,8 @@ type PublicAccessBlockConfiguration struct { // Specifies whether Amazon S3 should restrict public bucket policies for this // bucket. Setting this element to TRUE restricts access to this bucket to only - // AWS services and authorized users within this account if the bucket has a - // public policy. + // AWS service principals and authorized users within this account if the bucket + // has a public policy. // // Enabling this setting doesn't affect previously stored bucket policies, except // that public and cross-account access within any public bucket policy, including @@ -26556,6 +27541,129 @@ func (s PutBucketEncryptionOutput) GoString() string { return s.String() } +type PutBucketIntelligentTieringConfigurationInput struct { + _ struct{} `locationName:"PutBucketIntelligentTieringConfigurationRequest" type:"structure" payload:"IntelligentTieringConfiguration"` + + // The name of the Amazon S3 bucket whose configuration you want to modify or + // retrieve. + // + // Bucket is a required field + Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` + + // The ID used to identify the S3 Intelligent-Tiering configuration. + // + // Id is a required field + Id *string `location:"querystring" locationName:"id" type:"string" required:"true"` + + // Container for S3 Intelligent-Tiering configuration. + // + // IntelligentTieringConfiguration is a required field + IntelligentTieringConfiguration *IntelligentTieringConfiguration `locationName:"IntelligentTieringConfiguration" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` +} + +// String returns the string representation +func (s PutBucketIntelligentTieringConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PutBucketIntelligentTieringConfigurationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PutBucketIntelligentTieringConfigurationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "PutBucketIntelligentTieringConfigurationInput"} + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) + } + if s.Bucket != nil && len(*s.Bucket) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) + } + if s.Id == nil { + invalidParams.Add(request.NewErrParamRequired("Id")) + } + if s.IntelligentTieringConfiguration == nil { + invalidParams.Add(request.NewErrParamRequired("IntelligentTieringConfiguration")) + } + if s.IntelligentTieringConfiguration != nil { + if err := s.IntelligentTieringConfiguration.Validate(); err != nil { + invalidParams.AddNested("IntelligentTieringConfiguration", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetBucket sets the Bucket field's value. +func (s *PutBucketIntelligentTieringConfigurationInput) SetBucket(v string) *PutBucketIntelligentTieringConfigurationInput { + s.Bucket = &v + return s +} + +func (s *PutBucketIntelligentTieringConfigurationInput) getBucket() (v string) { + if s.Bucket == nil { + return v + } + return *s.Bucket +} + +// SetId sets the Id field's value. +func (s *PutBucketIntelligentTieringConfigurationInput) SetId(v string) *PutBucketIntelligentTieringConfigurationInput { + s.Id = &v + return s +} + +// SetIntelligentTieringConfiguration sets the IntelligentTieringConfiguration field's value. +func (s *PutBucketIntelligentTieringConfigurationInput) SetIntelligentTieringConfiguration(v *IntelligentTieringConfiguration) *PutBucketIntelligentTieringConfigurationInput { + s.IntelligentTieringConfiguration = v + return s +} + +func (s *PutBucketIntelligentTieringConfigurationInput) getEndpointARN() (arn.Resource, error) { + if s.Bucket == nil { + return nil, fmt.Errorf("member Bucket is nil") + } + return parseEndpointARN(*s.Bucket) +} + +func (s *PutBucketIntelligentTieringConfigurationInput) hasEndpointARN() bool { + if s.Bucket == nil { + return false + } + return arn.IsARN(*s.Bucket) +} + +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +// It returns a pointer to a modified copy of input and an error. +// Note that original input is not modified. +func (s PutBucketIntelligentTieringConfigurationInput) updateArnableField(v string) (interface{}, error) { + if s.Bucket == nil { + return nil, fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return &s, nil +} + +type PutBucketIntelligentTieringConfigurationOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s PutBucketIntelligentTieringConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PutBucketIntelligentTieringConfigurationOutput) GoString() string { + return s.String() +} + type PutBucketInventoryConfigurationInput struct { _ struct{} `locationName:"PutBucketInventoryConfigurationRequest" type:"structure" payload:"InventoryConfiguration"` @@ -27409,6 +28517,9 @@ type PutBucketOwnershipControlsInput struct { // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` + // The account id of the expected bucket owner. If the bucket is owned by a + // different account, the request will fail with an HTTP 403 (Access Denied) + // error. ExpectedBucketOwner *string `location:"header" locationName:"x-amz-expected-bucket-owner" type:"string"` // The OwnershipControls (BucketOwnerPreferred or ObjectWriter) that you want @@ -27661,6 +28772,7 @@ type PutBucketReplicationInput struct { // ReplicationConfiguration is a required field ReplicationConfiguration *ReplicationConfiguration `locationName:"ReplicationConfiguration" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` + // A token to allow Object Lock to be enabled for an existing bucket. Token *string `location:"header" locationName:"x-amz-bucket-object-lock-token" type:"string"` } @@ -30211,16 +31323,18 @@ func (s *ReplicationConfiguration) SetRules(v []*ReplicationRule) *ReplicationCo type ReplicationRule struct { _ struct{} `type:"structure"` - // Specifies whether Amazon S3 replicates the delete markers. If you specify - // a Filter, you must specify this element. However, in the latest version of - // replication configuration (when Filter is specified), Amazon S3 doesn't replicate - // delete markers. Therefore, the DeleteMarkerReplication element can contain - // only Disabled. For an example configuration, see Basic Rule - // Configuration (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-config-min-rule-config). + // Specifies whether Amazon S3 replicates delete markers. If you specify a Filter + // in your replication configuration, you must also include a DeleteMarkerReplication + // element. If your Filter includes a Tag element, the DeleteMarkerReplication + // Status must be set to Disabled, because Amazon S3 does not support replicating + // delete markers for tag-based rules. For an example configuration, see Basic + // Rule Configuration (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-config-min-rule-config). + // + // For more information about delete marker replication, see Basic Rule Configuration + // (https://docs.aws.amazon.com/AmazonS3/latest/dev/delete-marker-replication.html). // - // If you don't specify the Filter element, Amazon S3 assumes that the replication - // configuration is the earlier version, V1. In the earlier version, Amazon - // S3 handled replication of delete markers differently. For more information, + // If you are using an earlier version of the replication configuration, Amazon + // S3 handles replication of delete markers differently. For more information, // see Backward Compatibility (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations). DeleteMarkerReplication *DeleteMarkerReplication `type:"structure"` @@ -30666,7 +31780,7 @@ func (s *RequestProgress) SetEnabled(v bool) *RequestProgress { type RestoreObjectInput struct { _ struct{} `locationName:"RestoreObjectRequest" type:"structure" payload:"RestoreRequest"` - // The bucket name or containing the object to restore. + // The bucket name containing the object to restore. // // When using this API with an access point, you must direct requests to the // access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. @@ -30857,6 +31971,9 @@ type RestoreRequest struct { // Lifetime of the active copy in days. Do not use with restores that specify // OutputLocation. + // + // The Days element is required for regular restores, and must not be provided + // for select requests. Days *int64 `type:"integer"` // The optional description for the job. @@ -30872,7 +31989,7 @@ type RestoreRequest struct { // Describes the parameters for Select job types. SelectParameters *SelectParameters `type:"structure"` - // S3 Glacier retrieval tier at which the restore will be processed. + // Retrieval tier at which the restore will be processed. Tier *string `type:"string" enum:"Tier"` // Type of restore request. @@ -32348,6 +33465,65 @@ func (s *TargetGrant) SetPermission(v string) *TargetGrant { return s } +// The S3 Intelligent-Tiering storage class is designed to optimize storage +// costs by automatically moving data to the most cost-effective storage access +// tier, without additional operational overhead. +type Tiering struct { + _ struct{} `type:"structure"` + + // S3 Intelligent-Tiering access tier. See Storage class for automatically optimizing + // frequently and infrequently accessed objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access) + // for a list of access tiers in the S3 Intelligent-Tiering storage class. + // + // AccessTier is a required field + AccessTier *string `type:"string" required:"true" enum:"IntelligentTieringAccessTier"` + + // The number of days that you want your archived data to be accessible. The + // minimum number of days specified in the restore request must be at least + // 90 days. If a smaller value is specifed it will be ignored. + // + // Days is a required field + Days *int64 `type:"integer" required:"true"` +} + +// String returns the string representation +func (s Tiering) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s Tiering) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Tiering) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "Tiering"} + if s.AccessTier == nil { + invalidParams.Add(request.NewErrParamRequired("AccessTier")) + } + if s.Days == nil { + invalidParams.Add(request.NewErrParamRequired("Days")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccessTier sets the AccessTier field's value. +func (s *Tiering) SetAccessTier(v string) *Tiering { + s.AccessTier = &v + return s +} + +// SetDays sets the Days field's value. +func (s *Tiering) SetDays(v int64) *Tiering { + s.Days = &v + return s +} + // A container for specifying the configuration for publication of messages // to an Amazon Simple Notification Service (Amazon SNS) topic when Amazon S3 // detects specified events. @@ -33406,6 +34582,22 @@ func AnalyticsS3ExportFileFormat_Values() []string { } } +const ( + // ArchiveStatusArchiveAccess is a ArchiveStatus enum value + ArchiveStatusArchiveAccess = "ARCHIVE_ACCESS" + + // ArchiveStatusDeepArchiveAccess is a ArchiveStatus enum value + ArchiveStatusDeepArchiveAccess = "DEEP_ARCHIVE_ACCESS" +) + +// ArchiveStatus_Values returns all elements of the ArchiveStatus enum +func ArchiveStatus_Values() []string { + return []string{ + ArchiveStatusArchiveAccess, + ArchiveStatusDeepArchiveAccess, + } +} + const ( // BucketAccelerateStatusEnabled is a BucketAccelerateStatus enum value BucketAccelerateStatusEnabled = "Enabled" @@ -33801,6 +34993,38 @@ func FilterRuleName_Values() []string { } } +const ( + // IntelligentTieringAccessTierArchiveAccess is a IntelligentTieringAccessTier enum value + IntelligentTieringAccessTierArchiveAccess = "ARCHIVE_ACCESS" + + // IntelligentTieringAccessTierDeepArchiveAccess is a IntelligentTieringAccessTier enum value + IntelligentTieringAccessTierDeepArchiveAccess = "DEEP_ARCHIVE_ACCESS" +) + +// IntelligentTieringAccessTier_Values returns all elements of the IntelligentTieringAccessTier enum +func IntelligentTieringAccessTier_Values() []string { + return []string{ + IntelligentTieringAccessTierArchiveAccess, + IntelligentTieringAccessTierDeepArchiveAccess, + } +} + +const ( + // IntelligentTieringStatusEnabled is a IntelligentTieringStatus enum value + IntelligentTieringStatusEnabled = "Enabled" + + // IntelligentTieringStatusDisabled is a IntelligentTieringStatus enum value + IntelligentTieringStatusDisabled = "Disabled" +) + +// IntelligentTieringStatus_Values returns all elements of the IntelligentTieringStatus enum +func IntelligentTieringStatus_Values() []string { + return []string{ + IntelligentTieringStatusEnabled, + IntelligentTieringStatusDisabled, + } +} + const ( // InventoryFormatCsv is a InventoryFormat enum value InventoryFormatCsv = "CSV" diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/errors.go b/vendor/github.com/aws/aws-sdk-go/service/s3/errors.go index dd73d460c..f64b55135 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/s3/errors.go +++ b/vendor/github.com/aws/aws-sdk-go/service/s3/errors.go @@ -21,6 +21,12 @@ const ( // bucket access control lists (ACLs). ErrCodeBucketAlreadyOwnedByYou = "BucketAlreadyOwnedByYou" + // ErrCodeInvalidObjectState for service response error code + // "InvalidObjectState". + // + // Object is archived and inaccessible until restored. + ErrCodeInvalidObjectState = "InvalidObjectState" + // ErrCodeNoSuchBucket for service response error code // "NoSuchBucket". // diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/s3iface/interface.go b/vendor/github.com/aws/aws-sdk-go/service/s3/s3iface/interface.go index bca091d75..7c6221878 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/s3/s3iface/interface.go +++ b/vendor/github.com/aws/aws-sdk-go/service/s3/s3iface/interface.go @@ -96,6 +96,10 @@ type S3API interface { DeleteBucketEncryptionWithContext(aws.Context, *s3.DeleteBucketEncryptionInput, ...request.Option) (*s3.DeleteBucketEncryptionOutput, error) DeleteBucketEncryptionRequest(*s3.DeleteBucketEncryptionInput) (*request.Request, *s3.DeleteBucketEncryptionOutput) + DeleteBucketIntelligentTieringConfiguration(*s3.DeleteBucketIntelligentTieringConfigurationInput) (*s3.DeleteBucketIntelligentTieringConfigurationOutput, error) + DeleteBucketIntelligentTieringConfigurationWithContext(aws.Context, *s3.DeleteBucketIntelligentTieringConfigurationInput, ...request.Option) (*s3.DeleteBucketIntelligentTieringConfigurationOutput, error) + DeleteBucketIntelligentTieringConfigurationRequest(*s3.DeleteBucketIntelligentTieringConfigurationInput) (*request.Request, *s3.DeleteBucketIntelligentTieringConfigurationOutput) + DeleteBucketInventoryConfiguration(*s3.DeleteBucketInventoryConfigurationInput) (*s3.DeleteBucketInventoryConfigurationOutput, error) DeleteBucketInventoryConfigurationWithContext(aws.Context, *s3.DeleteBucketInventoryConfigurationInput, ...request.Option) (*s3.DeleteBucketInventoryConfigurationOutput, error) DeleteBucketInventoryConfigurationRequest(*s3.DeleteBucketInventoryConfigurationInput) (*request.Request, *s3.DeleteBucketInventoryConfigurationOutput) @@ -164,6 +168,10 @@ type S3API interface { GetBucketEncryptionWithContext(aws.Context, *s3.GetBucketEncryptionInput, ...request.Option) (*s3.GetBucketEncryptionOutput, error) GetBucketEncryptionRequest(*s3.GetBucketEncryptionInput) (*request.Request, *s3.GetBucketEncryptionOutput) + GetBucketIntelligentTieringConfiguration(*s3.GetBucketIntelligentTieringConfigurationInput) (*s3.GetBucketIntelligentTieringConfigurationOutput, error) + GetBucketIntelligentTieringConfigurationWithContext(aws.Context, *s3.GetBucketIntelligentTieringConfigurationInput, ...request.Option) (*s3.GetBucketIntelligentTieringConfigurationOutput, error) + GetBucketIntelligentTieringConfigurationRequest(*s3.GetBucketIntelligentTieringConfigurationInput) (*request.Request, *s3.GetBucketIntelligentTieringConfigurationOutput) + GetBucketInventoryConfiguration(*s3.GetBucketInventoryConfigurationInput) (*s3.GetBucketInventoryConfigurationOutput, error) GetBucketInventoryConfigurationWithContext(aws.Context, *s3.GetBucketInventoryConfigurationInput, ...request.Option) (*s3.GetBucketInventoryConfigurationOutput, error) GetBucketInventoryConfigurationRequest(*s3.GetBucketInventoryConfigurationInput) (*request.Request, *s3.GetBucketInventoryConfigurationOutput) @@ -272,6 +280,10 @@ type S3API interface { ListBucketAnalyticsConfigurationsWithContext(aws.Context, *s3.ListBucketAnalyticsConfigurationsInput, ...request.Option) (*s3.ListBucketAnalyticsConfigurationsOutput, error) ListBucketAnalyticsConfigurationsRequest(*s3.ListBucketAnalyticsConfigurationsInput) (*request.Request, *s3.ListBucketAnalyticsConfigurationsOutput) + ListBucketIntelligentTieringConfigurations(*s3.ListBucketIntelligentTieringConfigurationsInput) (*s3.ListBucketIntelligentTieringConfigurationsOutput, error) + ListBucketIntelligentTieringConfigurationsWithContext(aws.Context, *s3.ListBucketIntelligentTieringConfigurationsInput, ...request.Option) (*s3.ListBucketIntelligentTieringConfigurationsOutput, error) + ListBucketIntelligentTieringConfigurationsRequest(*s3.ListBucketIntelligentTieringConfigurationsInput) (*request.Request, *s3.ListBucketIntelligentTieringConfigurationsOutput) + ListBucketInventoryConfigurations(*s3.ListBucketInventoryConfigurationsInput) (*s3.ListBucketInventoryConfigurationsOutput, error) ListBucketInventoryConfigurationsWithContext(aws.Context, *s3.ListBucketInventoryConfigurationsInput, ...request.Option) (*s3.ListBucketInventoryConfigurationsOutput, error) ListBucketInventoryConfigurationsRequest(*s3.ListBucketInventoryConfigurationsInput) (*request.Request, *s3.ListBucketInventoryConfigurationsOutput) @@ -339,6 +351,10 @@ type S3API interface { PutBucketEncryptionWithContext(aws.Context, *s3.PutBucketEncryptionInput, ...request.Option) (*s3.PutBucketEncryptionOutput, error) PutBucketEncryptionRequest(*s3.PutBucketEncryptionInput) (*request.Request, *s3.PutBucketEncryptionOutput) + PutBucketIntelligentTieringConfiguration(*s3.PutBucketIntelligentTieringConfigurationInput) (*s3.PutBucketIntelligentTieringConfigurationOutput, error) + PutBucketIntelligentTieringConfigurationWithContext(aws.Context, *s3.PutBucketIntelligentTieringConfigurationInput, ...request.Option) (*s3.PutBucketIntelligentTieringConfigurationOutput, error) + PutBucketIntelligentTieringConfigurationRequest(*s3.PutBucketIntelligentTieringConfigurationInput) (*request.Request, *s3.PutBucketIntelligentTieringConfigurationOutput) + PutBucketInventoryConfiguration(*s3.PutBucketInventoryConfigurationInput) (*s3.PutBucketInventoryConfigurationOutput, error) PutBucketInventoryConfigurationWithContext(aws.Context, *s3.PutBucketInventoryConfigurationInput, ...request.Option) (*s3.PutBucketInventoryConfigurationOutput, error) PutBucketInventoryConfigurationRequest(*s3.PutBucketInventoryConfigurationInput) (*request.Request, *s3.PutBucketInventoryConfigurationOutput) diff --git a/vendor/github.com/aws/aws-sdk-go/service/ssm/api.go b/vendor/github.com/aws/aws-sdk-go/service/ssm/api.go index 65037a37b..538e40395 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/ssm/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/ssm/api.go @@ -11426,7 +11426,25 @@ func (c *SSM) PutParameterRequest(input *PutParameterInput) (req *request.Reques // The request does not meet the regular expression requirement. // // * ParameterMaxVersionLimitExceeded -// The parameter exceeded the maximum number of allowed versions. +// Parameter Store retains the 100 most recently created versions of a parameter. +// After this number of versions has been created, Parameter Store deletes the +// oldest version when a new one is created. However, if the oldest version +// has a label attached to it, Parameter Store will not delete the version and +// instead presents this error message: +// +// An error occurred (ParameterMaxVersionLimitExceeded) when calling the PutParameter +// operation: You attempted to create a new version of parameter-name by calling +// the PutParameter API with the overwrite flag. Version version-number, the +// oldest version, can't be deleted because it has a label associated with it. +// Move the label to another version of the parameter, and try again. +// +// This safeguard is to prevent parameter versions with mission critical labels +// assigned to them from being deleted. To continue creating new parameters, +// first move the label from the oldest version of the parameter to a newer +// one for use in your operations. For information about moving parameter labels, +// see Move a parameter label (console) (http://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-labels.html#sysman-paramstore-labels-console-move) +// or Move a parameter label (CLI) (http://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-labels.html#sysman-paramstore-labels-cli-move) +// in the AWS Systems Manager User Guide. // // * ParameterPatternMismatchException // The parameter name is not valid. @@ -15279,6 +15297,8 @@ type AssociationFilter struct { // The name of the filter. // + // InstanceId has been deprecated. + // // Key is a required field Key *string `locationName:"key" type:"string" required:"true" enum:"AssociationFilterKey"` @@ -16278,7 +16298,7 @@ type AutomationExecutionFilter struct { // One or more keys to limit the results. Valid filter keys include the following: // DocumentNamePrefix, ExecutionStatus, ExecutionId, ParentExecutionId, CurrentAction, - // StartTimeBefore, StartTimeAfter. + // StartTimeBefore, StartTimeAfter, TargetResourceGroup. // // Key is a required field Key *string `type:"string" required:"true" enum:"AutomationExecutionFilterKey"` @@ -33999,6 +34019,11 @@ type ListAssociationsInput struct { _ struct{} `type:"structure"` // One or more filters. Use a filter to return a more specific list of results. + // + // Filtering associations using the InstanceID attribute only returns legacy + // associations created using the InstanceID attribute. Associations targeting + // the instance that are part of the Target Attributes ResourceGroup or Tags + // are not returned. AssociationFilterList []*AssociationFilter `min:"1" type:"list"` // The maximum number of items to return for this call. The call also returns @@ -38179,7 +38204,25 @@ func (s *ParameterLimitExceeded) RequestID() string { return s.RespMetadata.RequestID } -// The parameter exceeded the maximum number of allowed versions. +// Parameter Store retains the 100 most recently created versions of a parameter. +// After this number of versions has been created, Parameter Store deletes the +// oldest version when a new one is created. However, if the oldest version +// has a label attached to it, Parameter Store will not delete the version and +// instead presents this error message: +// +// An error occurred (ParameterMaxVersionLimitExceeded) when calling the PutParameter +// operation: You attempted to create a new version of parameter-name by calling +// the PutParameter API with the overwrite flag. Version version-number, the +// oldest version, can't be deleted because it has a label associated with it. +// Move the label to another version of the parameter, and try again. +// +// This safeguard is to prevent parameter versions with mission critical labels +// assigned to them from being deleted. To continue creating new parameters, +// first move the label from the oldest version of the parameter to a newer +// one for use in your operations. For information about moving parameter labels, +// see Move a parameter label (console) (http://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-labels.html#sysman-paramstore-labels-console-move) +// or Move a parameter label (CLI) (http://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-labels.html#sysman-paramstore-labels-cli-move) +// in the AWS Systems Manager User Guide. type ParameterMaxVersionLimitExceeded struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` @@ -43145,6 +43188,8 @@ type SessionFilter struct { // with that status. Status values you can specify include: Connected Connecting // Disconnected Terminated Terminating Failed // + // * SessionId: Specify a session ID to return details about the session. + // // Value is a required field Value *string `locationName:"value" min:"1" type:"string" required:"true"` } @@ -47661,6 +47706,9 @@ const ( // AutomationExecutionFilterKeyTagKey is a AutomationExecutionFilterKey enum value AutomationExecutionFilterKeyTagKey = "TagKey" + + // AutomationExecutionFilterKeyTargetResourceGroup is a AutomationExecutionFilterKey enum value + AutomationExecutionFilterKeyTargetResourceGroup = "TargetResourceGroup" ) // AutomationExecutionFilterKey_Values returns all elements of the AutomationExecutionFilterKey enum @@ -47675,6 +47723,7 @@ func AutomationExecutionFilterKey_Values() []string { AutomationExecutionFilterKeyStartTimeAfter, AutomationExecutionFilterKeyAutomationType, AutomationExecutionFilterKeyTagKey, + AutomationExecutionFilterKeyTargetResourceGroup, } } @@ -49154,6 +49203,9 @@ const ( // SessionFilterKeyStatus is a SessionFilterKey enum value SessionFilterKeyStatus = "Status" + + // SessionFilterKeySessionId is a SessionFilterKey enum value + SessionFilterKeySessionId = "SessionId" ) // SessionFilterKey_Values returns all elements of the SessionFilterKey enum @@ -49164,6 +49216,7 @@ func SessionFilterKey_Values() []string { SessionFilterKeyTarget, SessionFilterKeyOwner, SessionFilterKeyStatus, + SessionFilterKeySessionId, } } diff --git a/vendor/github.com/aws/aws-sdk-go/service/ssm/errors.go b/vendor/github.com/aws/aws-sdk-go/service/ssm/errors.go index 938a767cc..74b773c77 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/ssm/errors.go +++ b/vendor/github.com/aws/aws-sdk-go/service/ssm/errors.go @@ -585,7 +585,25 @@ const ( // ErrCodeParameterMaxVersionLimitExceeded for service response error code // "ParameterMaxVersionLimitExceeded". // - // The parameter exceeded the maximum number of allowed versions. + // Parameter Store retains the 100 most recently created versions of a parameter. + // After this number of versions has been created, Parameter Store deletes the + // oldest version when a new one is created. However, if the oldest version + // has a label attached to it, Parameter Store will not delete the version and + // instead presents this error message: + // + // An error occurred (ParameterMaxVersionLimitExceeded) when calling the PutParameter + // operation: You attempted to create a new version of parameter-name by calling + // the PutParameter API with the overwrite flag. Version version-number, the + // oldest version, can't be deleted because it has a label associated with it. + // Move the label to another version of the parameter, and try again. + // + // This safeguard is to prevent parameter versions with mission critical labels + // assigned to them from being deleted. To continue creating new parameters, + // first move the label from the oldest version of the parameter to a newer + // one for use in your operations. For information about moving parameter labels, + // see Move a parameter label (console) (http://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-labels.html#sysman-paramstore-labels-console-move) + // or Move a parameter label (CLI) (http://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-labels.html#sysman-paramstore-labels-cli-move) + // in the AWS Systems Manager User Guide. ErrCodeParameterMaxVersionLimitExceeded = "ParameterMaxVersionLimitExceeded" // ErrCodeParameterNotFound for service response error code diff --git a/vendor/modules.txt b/vendor/modules.txt index cdeacd59f..233caa670 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -84,7 +84,7 @@ github.com/andybalholm/brotli github.com/armon/circbuf # github.com/asaskevich/govalidator v0.0.0-20200108200545-475eaeb16496 github.com/asaskevich/govalidator -# github.com/aws/aws-sdk-go v1.35.10 +# github.com/aws/aws-sdk-go v1.35.25 ## explicit github.com/aws/aws-sdk-go/aws github.com/aws/aws-sdk-go/aws/arn