diff --git a/.changelog/1c87ef715df04c2e87d8eada12e3328d.json b/.changelog/1c87ef715df04c2e87d8eada12e3328d.json new file mode 100644 index 00000000000..287d5591317 --- /dev/null +++ b/.changelog/1c87ef715df04c2e87d8eada12e3328d.json @@ -0,0 +1,8 @@ +{ + "id": "1c87ef71-5df0-4c2e-87d8-eada12e3328d", + "type": "feature", + "description": "Exposing TileMedia H265 options", + "modules": [ + "service/medialive" + ] +} \ No newline at end of file diff --git a/.changelog/7b3afd396d4741a1b441cae094740eaf.json b/.changelog/7b3afd396d4741a1b441cae094740eaf.json new file mode 100644 index 00000000000..395304aff3a --- /dev/null +++ b/.changelog/7b3afd396d4741a1b441cae094740eaf.json @@ -0,0 +1,8 @@ +{ + "id": "7b3afd39-6d47-41a1-b441-cae094740eaf", + "type": "feature", + "description": "Supporting GitLab and GitLab Self Managed as source types in AWS CodeBuild.", + "modules": [ + "service/codebuild" + ] +} \ No newline at end of file diff --git a/.changelog/ac17563ce64d4cc09a65ffe717f17825.json b/.changelog/ac17563ce64d4cc09a65ffe717f17825.json new file mode 100644 index 00000000000..184687e98de --- /dev/null +++ b/.changelog/ac17563ce64d4cc09a65ffe717f17825.json @@ -0,0 +1,8 @@ +{ + "id": "ac17563c-e64d-4cc0-9a65-ffe717f17825", + "type": "feature", + "description": "AWS Global Accelerator now supports cross-account sharing for bring your own IP addresses.", + "modules": [ + "service/globalaccelerator" + ] +} \ No newline at end of file diff --git a/.changelog/c7d9272fe2fc49a48ff58c015c7c05e2.json b/.changelog/c7d9272fe2fc49a48ff58c015c7c05e2.json new file mode 100644 index 00000000000..efa7b13eb6a --- /dev/null +++ b/.changelog/c7d9272fe2fc49a48ff58c015c7c05e2.json @@ -0,0 +1,8 @@ +{ + "id": "c7d9272f-e2fc-49a4-8ff5-8c015c7c05e2", + "type": "documentation", + "description": "Documentation only update for Amazon ECS.", + "modules": [ + "service/ecs" + ] +} \ No newline at end of file diff --git a/.changelog/cd3c2ae37d9f4d53b45b08351b506295.json b/.changelog/cd3c2ae37d9f4d53b45b08351b506295.json new file mode 100644 index 00000000000..0a2ed53cf1e --- /dev/null +++ b/.changelog/cd3c2ae37d9f4d53b45b08351b506295.json @@ -0,0 +1,8 @@ +{ + "id": "cd3c2ae3-7d9f-4d53-b45b-08351b506295", + "type": "feature", + "description": "Introduced support for the following new instance types on SageMaker Studio for JupyterLab and CodeEditor applications: m6i, m6id, m7i, c6i, c6id, c7i, r6i, r6id, r7i, and p5", + "modules": [ + "service/sagemaker" + ] +} \ No newline at end of file diff --git a/.changelog/d84d7a7850c944cd99ca98b7c999354e.json b/.changelog/d84d7a7850c944cd99ca98b7c999354e.json new file mode 100644 index 00000000000..f01b9ab9bf7 --- /dev/null +++ b/.changelog/d84d7a7850c944cd99ca98b7c999354e.json @@ -0,0 +1,8 @@ +{ + "id": "d84d7a78-50c9-44cd-99ca-98b7c999354e", + "type": "feature", + "description": "This release increases the number of supported job template parameters from 20 to 100.", + "modules": [ + "service/emrcontainers" + ] +} \ No newline at end of file diff --git a/.changelog/dce47ca05a5a40dfa8601c6dda8838f3.json b/.changelog/dce47ca05a5a40dfa8601c6dda8838f3.json new file mode 100644 index 00000000000..31b81391c95 --- /dev/null +++ b/.changelog/dce47ca05a5a40dfa8601c6dda8838f3.json @@ -0,0 +1,8 @@ +{ + "id": "dce47ca0-5a5a-40df-a860-1c6dda8838f3", + "type": "feature", + "description": "Added support for ModifyInstanceMetadataDefaults and GetInstanceMetadataDefaults to set Instance Metadata Service account defaults", + "modules": [ + "service/ec2" + ] +} \ No newline at end of file diff --git a/feature/dynamodbstreams/attributevalue/encode.go b/feature/dynamodbstreams/attributevalue/encode.go index 28214080a09..d696d43d2fb 100644 --- a/feature/dynamodbstreams/attributevalue/encode.go +++ b/feature/dynamodbstreams/attributevalue/encode.go @@ -714,11 +714,6 @@ func (e *Encoder) encodeScalar(v reflect.Value, fieldTag tag) (types.AttributeVa } func (e *Encoder) encodeNumber(v reflect.Value) (types.AttributeValue, error) { - if av, err := tryMarshaler(v); err != nil { - return nil, err - } else if av != nil { - return av, nil - } var out string switch v.Kind() { @@ -742,11 +737,6 @@ func (e *Encoder) encodeNumber(v reflect.Value) (types.AttributeValue, error) { } func (e *Encoder) encodeString(v reflect.Value) (types.AttributeValue, error) { - if av, err := tryMarshaler(v); err != nil { - return nil, err - } else if av != nil { - return av, nil - } switch v.Kind() { case reflect.String: diff --git a/feature/dynamodbstreams/attributevalue/encode_test.go b/feature/dynamodbstreams/attributevalue/encode_test.go index 31df1e175a8..9c0584160a6 100644 --- a/feature/dynamodbstreams/attributevalue/encode_test.go +++ b/feature/dynamodbstreams/attributevalue/encode_test.go @@ -83,6 +83,97 @@ func TestMarshalMashaler(t *testing.T) { } } +type customBoolStringMarshaler string + +func (m customBoolStringMarshaler) MarshalDynamoDBStreamsAttributeValue() (types.AttributeValue, error) { + + if b, err := strconv.ParseBool(string(m)); err == nil { + return &types.AttributeValueMemberBOOL{Value: b}, nil + } + + return &types.AttributeValueMemberS{Value: string(m)}, nil +} + +func TestCustomStringMarshaler(t *testing.T) { + cases := []struct { + expected types.AttributeValue + input string + }{ + { + expected: &types.AttributeValueMemberBOOL{Value: false}, + input: "false", + }, + { + expected: &types.AttributeValueMemberBOOL{Value: true}, + input: "true", + }, + { + expected: &types.AttributeValueMemberS{Value: "ABC"}, + input: "ABC", + }, + } + + for _, testCase := range cases { + input := customBoolStringMarshaler(testCase.input) + actual, err := Marshal(input) + if err != nil { + t.Errorf("got unexpected error %v for input %v", err, testCase.input) + } + if diff := cmpDiff(testCase.expected, actual); len(diff) != 0 { + t.Errorf("expected match but got:%s", diff) + } + } +} + +type customGradeMarshaler uint + +func (m customGradeMarshaler) MarshalDynamoDBStreamsAttributeValue() (types.AttributeValue, error) { + if int(m) > 100 { + return nil, fmt.Errorf("grade cant be larger then 100") + } + return &types.AttributeValueMemberN{Value: strconv.FormatUint(uint64(m), 10)}, nil +} + +func TestCustomNumberMarshaler(t *testing.T) { + cases := []struct { + expectedErr bool + input uint + expected types.AttributeValue + }{ + { + expectedErr: false, + input: 50, + expected: &types.AttributeValueMemberN{Value: "50"}, + }, + { + expectedErr: false, + input: 90, + expected: &types.AttributeValueMemberN{Value: "90"}, + }, + { + expectedErr: true, + input: 150, + expected: nil, + }, + } + + for _, testCase := range cases { + input := customGradeMarshaler(testCase.input) + actual, err := Marshal(customGradeMarshaler(input)) + if testCase.expectedErr && err == nil { + t.Errorf("expected error but got nil for input %v", testCase.input) + continue + } + if !testCase.expectedErr && err != nil { + t.Errorf("got unexpected error %v for input %v", err, testCase.input) + continue + } + if diff := cmpDiff(testCase.expected, actual); len(diff) != 0 { + t.Errorf("expected match but got:%s", diff) + } + } +} + type testOmitEmptyElemListStruct struct { Values []string `dynamodbav:",omitemptyelem"` } diff --git a/feature/dynamodbstreams/attributevalue/marshaler_test.go b/feature/dynamodbstreams/attributevalue/marshaler_test.go index abf0484891b..6943543d391 100644 --- a/feature/dynamodbstreams/attributevalue/marshaler_test.go +++ b/feature/dynamodbstreams/attributevalue/marshaler_test.go @@ -546,6 +546,60 @@ func BenchmarkMarshalOneMember(b *testing.B) { }) } +func BenchmarkList20Ints(b *testing.B) { + input := []int{} + for i := 0; i < 20; i++ { + input = append(input, i) + } + + b.RunParallel(func(pb *testing.PB) { + for pb.Next() { + _, err := Marshal(input) + if err != nil { + b.Fatal(err) + } + } + }) +} + +func BenchmarkStruct10Fields(b *testing.B) { + + type struct10Fields struct { + Field1 int + Field2 string + Field3 int + Field4 string + Field5 string + Field6 string + Field7 int + Field8 string + Field9 int + Field10 int + } + + input := struct10Fields{ + Field1: 10, + Field2: "ASD", + Field3: 70, + Field4: "qqqqq", + Field5: "AAA", + Field6: "bbb", + Field7: 63, + Field8: "aa", + Field9: 10, + Field10: 63, + } + + b.RunParallel(func(pb *testing.PB) { + for pb.Next() { + _, err := Marshal(input) + if err != nil { + b.Fatal(err) + } + } + }) +} + func BenchmarkMarshalTwoMembers(b *testing.B) { fieldCache = &fieldCacher{} diff --git a/service/codebuild/deserializers.go b/service/codebuild/deserializers.go index d1f8f5e2334..a94847a7adb 100644 --- a/service/codebuild/deserializers.go +++ b/service/codebuild/deserializers.go @@ -11383,6 +11383,15 @@ func awsAwsjson11_deserializeDocumentSourceCredentialsInfo(v **types.SourceCrede sv.AuthType = types.AuthType(jtv) } + case "resource": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Resource = ptr.String(jtv) + } + case "serverType": if value != nil { jtv, ok := value.(string) diff --git a/service/codebuild/types/enums.go b/service/codebuild/types/enums.go index e495b6458b9..252ecfae6f6 100644 --- a/service/codebuild/types/enums.go +++ b/service/codebuild/types/enums.go @@ -65,6 +65,7 @@ const ( AuthTypeOauth AuthType = "OAUTH" AuthTypeBasicAuth AuthType = "BASIC_AUTH" AuthTypePersonalAccessToken AuthType = "PERSONAL_ACCESS_TOKEN" + AuthTypeCodeconnections AuthType = "CODECONNECTIONS" ) // Values returns all known values for AuthType. Note that this can be expanded in @@ -75,6 +76,7 @@ func (AuthType) Values() []AuthType { "OAUTH", "BASIC_AUTH", "PERSONAL_ACCESS_TOKEN", + "CODECONNECTIONS", } } @@ -769,9 +771,11 @@ type ServerType string // Enum values for ServerType const ( - ServerTypeGithub ServerType = "GITHUB" - ServerTypeBitbucket ServerType = "BITBUCKET" - ServerTypeGithubEnterprise ServerType = "GITHUB_ENTERPRISE" + ServerTypeGithub ServerType = "GITHUB" + ServerTypeBitbucket ServerType = "BITBUCKET" + ServerTypeGithubEnterprise ServerType = "GITHUB_ENTERPRISE" + ServerTypeGitlab ServerType = "GITLAB" + ServerTypeGitlabSelfManaged ServerType = "GITLAB_SELF_MANAGED" ) // Values returns all known values for ServerType. Note that this can be expanded @@ -782,6 +786,8 @@ func (ServerType) Values() []ServerType { "GITHUB", "BITBUCKET", "GITHUB_ENTERPRISE", + "GITLAB", + "GITLAB_SELF_MANAGED", } } @@ -825,7 +831,8 @@ type SourceAuthType string // Enum values for SourceAuthType const ( - SourceAuthTypeOauth SourceAuthType = "OAUTH" + SourceAuthTypeOauth SourceAuthType = "OAUTH" + SourceAuthTypeCodeconnections SourceAuthType = "CODECONNECTIONS" ) // Values returns all known values for SourceAuthType. Note that this can be @@ -834,6 +841,7 @@ const ( func (SourceAuthType) Values() []SourceAuthType { return []SourceAuthType{ "OAUTH", + "CODECONNECTIONS", } } @@ -841,13 +849,15 @@ type SourceType string // Enum values for SourceType const ( - SourceTypeCodecommit SourceType = "CODECOMMIT" - SourceTypeCodepipeline SourceType = "CODEPIPELINE" - SourceTypeGithub SourceType = "GITHUB" - SourceTypeS3 SourceType = "S3" - SourceTypeBitbucket SourceType = "BITBUCKET" - SourceTypeGithubEnterprise SourceType = "GITHUB_ENTERPRISE" - SourceTypeNoSource SourceType = "NO_SOURCE" + SourceTypeCodecommit SourceType = "CODECOMMIT" + SourceTypeCodepipeline SourceType = "CODEPIPELINE" + SourceTypeGithub SourceType = "GITHUB" + SourceTypeGitlab SourceType = "GITLAB" + SourceTypeGitlabSelfManaged SourceType = "GITLAB_SELF_MANAGED" + SourceTypeS3 SourceType = "S3" + SourceTypeBitbucket SourceType = "BITBUCKET" + SourceTypeGithubEnterprise SourceType = "GITHUB_ENTERPRISE" + SourceTypeNoSource SourceType = "NO_SOURCE" ) // Values returns all known values for SourceType. Note that this can be expanded @@ -858,6 +868,8 @@ func (SourceType) Values() []SourceType { "CODECOMMIT", "CODEPIPELINE", "GITHUB", + "GITLAB", + "GITLAB_SELF_MANAGED", "S3", "BITBUCKET", "GITHUB_ENTERPRISE", diff --git a/service/codebuild/types/types.go b/service/codebuild/types/types.go index d09ef6155d5..a3a391381cf 100644 --- a/service/codebuild/types/types.go +++ b/service/codebuild/types/types.go @@ -844,6 +844,7 @@ type FleetStatus struct { // - CREATING : The compute fleet is being created. // - UPDATING : The compute fleet is being updated. // - ROTATING : The compute fleet is being rotated. + // - PENDING_DELETION : The compute fleet is pending deletion. // - DELETING : The compute fleet is being deleted. // - CREATE_FAILED : The compute fleet has failed to create. // - UPDATE_ROLLBACK_FAILED : The compute fleet has failed to update and could @@ -1485,10 +1486,12 @@ type ProjectSource struct { // - CODECOMMIT : The source code is in an CodeCommit repository. // - CODEPIPELINE : The source code settings are specified in the source action // of a pipeline in CodePipeline. - // - GITHUB : The source code is in a GitHub or GitHub Enterprise Cloud - // repository. + // - GITHUB : The source code is in a GitHub repository. // - GITHUB_ENTERPRISE : The source code is in a GitHub Enterprise Server // repository. + // - GITLAB : The source code is in a GitLab repository. + // - GITLAB_SELF_MANAGED : The source code is in a self-managed GitLab + // repository. // - NO_SOURCE : The project does not have input source code. // - S3 : The source code is in an Amazon S3 bucket. // @@ -1552,6 +1555,17 @@ type ProjectSource struct { // the build project. You can leave the CodeBuild console.) To instruct CodeBuild // to use this connection, in the source object, set the auth object's type value // to OAUTH . + // - For source code in an GitLab or self-managed GitLab repository, the HTTPS + // clone URL to the repository that contains the source and the buildspec file. You + // must connect your Amazon Web Services account to your GitLab account. Use the + // CodeBuild console to start creating a build project. When you use the console to + // connect (or reconnect) with GitLab, on the Connections Authorize application + // page, choose Authorize. Then on the CodeStar Connections Create GitLab + // connection page, choose Connect to GitLab. (After you have connected to your + // GitLab account, you do not need to finish creating the build project. You can + // leave the CodeBuild console.) To instruct CodeBuild to override the default + // connection and use this connection instead, set the auth object's type value + // to CODECONNECTIONS in the source object. // - For source code in a Bitbucket repository, the HTTPS clone URL to the // repository that contains the source and the buildspec file. You must connect // your Amazon Web Services account to your Bitbucket account. Use the CodeBuild @@ -1567,11 +1581,12 @@ type ProjectSource struct { // Set to true to report the status of a build's start and finish to your source // provider. This option is valid only when your source provider is GitHub, GitHub - // Enterprise, or Bitbucket. If this is set and you use a different source - // provider, an invalidInputException is thrown. To be able to report the build - // status to the source provider, the user associated with the source provider must - // have write access to the repo. If the user does not have write access, the build - // status cannot be updated. For more information, see Source provider access (https://docs.aws.amazon.com/codebuild/latest/userguide/access-tokens.html) + // Enterprise, GitLab, GitLab Self Managed, or Bitbucket. If this is set and you + // use a different source provider, an invalidInputException is thrown. To be able + // to report the build status to the source provider, the user associated with the + // source provider must have write access to the repo. If the user does not have + // write access, the build status cannot be updated. For more information, see + // Source provider access (https://docs.aws.amazon.com/codebuild/latest/userguide/access-tokens.html) // in the CodeBuild User Guide. The status of a build triggered by a webhook is // always reported to your source provider. If your project's builds are triggered // by a webhook, you must push a new commit to the repo for a change to this @@ -1599,9 +1614,9 @@ type ProjectSourceVersion struct { // The source version for the corresponding source identifier. If specified, must // be one of: // - For CodeCommit: the commit ID, branch, or Git tag to use. - // - For GitHub: the commit ID, pull request ID, branch name, or tag name that - // corresponds to the version of the source code you want to build. If a pull - // request ID is specified, it must use the format pr/pull-request-ID (for + // - For GitHub or GitLab: the commit ID, pull request ID, branch name, or tag + // name that corresponds to the version of the source code you want to build. If a + // pull request ID is specified, it must use the format pr/pull-request-ID (for // example, pr/25 ). If a branch name is specified, the branch's HEAD commit ID // is used. If not specified, the default branch's HEAD commit ID is used. // - For Bitbucket: the commit ID, branch name, or tag name that corresponds to @@ -1913,9 +1928,7 @@ type ScalingConfigurationOutput struct { // code should not get or set this information directly. type SourceAuth struct { - // This data type is deprecated and is no longer accurate or used. The - // authorization type to use. The only valid value is OAUTH , which represents the - // OAuth authorization type. + // The authorization type to use. Valid options are OAUTH or CODECONNECTIONS. // // This member is required. Type SourceAuthType @@ -1926,19 +1939,23 @@ type SourceAuth struct { noSmithyDocumentSerde } -// Information about the credentials for a GitHub, GitHub Enterprise, or Bitbucket -// repository. +// Information about the credentials for a GitHub, GitHub Enterprise, GitLab, +// GitLab Self Managed, or Bitbucket repository. type SourceCredentialsInfo struct { // The Amazon Resource Name (ARN) of the token. Arn *string // The type of authentication used by the credentials. Valid options are OAUTH, - // BASIC_AUTH, or PERSONAL_ACCESS_TOKEN. + // BASIC_AUTH, PERSONAL_ACCESS_TOKEN, or CODECONNECTIONS. AuthType AuthType + // The connection ARN if your serverType type is GITLAB or GITLAB_SELF_MANAGED and + // your authType is CODECONNECTIONS. + Resource *string + // The type of source provider. The valid options are GITHUB, GITHUB_ENTERPRISE, - // or BITBUCKET. + // GITLAB, GITLAB_SELF_MANAGED, or BITBUCKET. ServerType ServerType noSmithyDocumentSerde diff --git a/service/ec2/api_op_GetInstanceMetadataDefaults.go b/service/ec2/api_op_GetInstanceMetadataDefaults.go new file mode 100644 index 00000000000..39709a1a082 --- /dev/null +++ b/service/ec2/api_op_GetInstanceMetadataDefaults.go @@ -0,0 +1,137 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package ec2 + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/ec2/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Gets the default instance metadata service (IMDS) settings that are set at the +// account level in the specified Amazon Web Services
 Region. For more +// information, see Order of precedence for instance metadata options (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-options.html#instance-metadata-options-order-of-precedence) +// in the Amazon EC2 User Guide. +func (c *Client) GetInstanceMetadataDefaults(ctx context.Context, params *GetInstanceMetadataDefaultsInput, optFns ...func(*Options)) (*GetInstanceMetadataDefaultsOutput, error) { + if params == nil { + params = &GetInstanceMetadataDefaultsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "GetInstanceMetadataDefaults", params, optFns, c.addOperationGetInstanceMetadataDefaultsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*GetInstanceMetadataDefaultsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type GetInstanceMetadataDefaultsInput struct { + + // 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 + + noSmithyDocumentSerde +} + +type GetInstanceMetadataDefaultsOutput struct { + + // The account-level default IMDS settings. + AccountLevel *types.InstanceMetadataDefaultsResponse + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationGetInstanceMetadataDefaultsMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsEc2query_serializeOpGetInstanceMetadataDefaults{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsEc2query_deserializeOpGetInstanceMetadataDefaults{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "GetInstanceMetadataDefaults"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opGetInstanceMetadataDefaults(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opGetInstanceMetadataDefaults(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "GetInstanceMetadataDefaults", + } +} diff --git a/service/ec2/api_op_ModifyInstanceMetadataDefaults.go b/service/ec2/api_op_ModifyInstanceMetadataDefaults.go new file mode 100644 index 00000000000..c786f92b5f1 --- /dev/null +++ b/service/ec2/api_op_ModifyInstanceMetadataDefaults.go @@ -0,0 +1,160 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package ec2 + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/service/ec2/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Modifies the default instance metadata service (IMDS) settings at the account +// level in the specified Amazon Web Services
 Region. To remove a parameter's +// account-level default setting, specify no-preference . At instance launch, the +// value will come from the AMI, or from the launch parameter if specified. For +// more information, see Order of precedence for instance metadata options (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-options.html#instance-metadata-options-order-of-precedence) +// in the Amazon EC2 User Guide. +func (c *Client) ModifyInstanceMetadataDefaults(ctx context.Context, params *ModifyInstanceMetadataDefaultsInput, optFns ...func(*Options)) (*ModifyInstanceMetadataDefaultsOutput, error) { + if params == nil { + params = &ModifyInstanceMetadataDefaultsInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "ModifyInstanceMetadataDefaults", params, optFns, c.addOperationModifyInstanceMetadataDefaultsMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*ModifyInstanceMetadataDefaultsOutput) + out.ResultMetadata = metadata + return out, nil +} + +type ModifyInstanceMetadataDefaultsInput struct { + + // 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 + + // Enables or disables the IMDS endpoint on an instance. When disabled, the + // instance metadata can't be accessed. + HttpEndpoint types.DefaultInstanceMetadataEndpointState + + // The maximum number of hops that the metadata token can travel. Minimum: 1 + // Maximum: 64 + HttpPutResponseHopLimit *int32 + + // Indicates whether IMDSv2 is required. + // - optional – IMDSv2 is optional, which means that you can use either IMDSv2 or + // IMDSv1. + // - required – IMDSv2 is required, which means that IMDSv1 is disabled, and you + // must use IMDSv2. + HttpTokens types.MetadataDefaultHttpTokensState + + // Enables or disables access to an instance's tags from the instance metadata. + // For more information, see Work with instance tags using the instance metadata (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#work-with-tags-in-IMDS) + // in the Amazon EC2 User Guide. + InstanceMetadataTags types.DefaultInstanceMetadataTagsState + + noSmithyDocumentSerde +} + +type ModifyInstanceMetadataDefaultsOutput struct { + + // If the request succeeds, the response returns true . If the request fails, no + // response is returned, and instead an error message is returned. + Return *bool + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationModifyInstanceMetadataDefaultsMiddlewares(stack *middleware.Stack, options Options) (err error) { + if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil { + return err + } + err = stack.Serialize.Add(&awsEc2query_serializeOpModifyInstanceMetadataDefaults{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsEc2query_deserializeOpModifyInstanceMetadataDefaults{}, middleware.After) + if err != nil { + return err + } + if err := addProtocolFinalizerMiddlewares(stack, options, "ModifyInstanceMetadataDefaults"); err != nil { + return fmt.Errorf("add protocol finalizers: %v", err) + } + + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = addClientRequestID(stack); err != nil { + return err + } + if err = addComputeContentLength(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addComputePayloadSHA256(stack); err != nil { + return err + } + if err = addRetry(stack, options); err != nil { + return err + } + if err = addRawResponseToMetadata(stack); err != nil { + return err + } + if err = addRecordResponseTiming(stack); err != nil { + return err + } + if err = addClientUserAgent(stack, options); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opModifyInstanceMetadataDefaults(options.Region), middleware.Before); err != nil { + return err + } + if err = addRecursionDetection(stack); err != nil { + return err + } + if err = addRequestIDRetrieverMiddleware(stack); err != nil { + return err + } + if err = addResponseErrorMiddleware(stack); err != nil { + return err + } + if err = addRequestResponseLogging(stack, options); err != nil { + return err + } + if err = addDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opModifyInstanceMetadataDefaults(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + OperationName: "ModifyInstanceMetadataDefaults", + } +} diff --git a/service/ec2/api_op_ModifyInstanceMetadataOptions.go b/service/ec2/api_op_ModifyInstanceMetadataOptions.go index ef84366b0fc..aed20dec863 100644 --- a/service/ec2/api_op_ModifyInstanceMetadataOptions.go +++ b/service/ec2/api_op_ModifyInstanceMetadataOptions.go @@ -72,8 +72,16 @@ type ModifyInstanceMetadataOptionsInput struct { // instance metadata retrieval requests. With this option, retrieving the IAM role // credentials always returns IMDSv2 credentials; IMDSv1 credentials are not // available. - // Default: If the value of ImdsSupport for the Amazon Machine Image (AMI) for - // your instance is v2.0 , the default is required . + // Default: + // - If the value of ImdsSupport for the Amazon Machine Image (AMI) for your + // instance is v2.0 and the account level default is set to no-preference , the + // default is required . + // - If the value of ImdsSupport for the Amazon Machine Image (AMI) for your + // instance is v2.0 , but the account level default is set to V1 or V2 , the + // default is optional . + // The default value can also be affected by other combinations of parameters. For + // more information, see Order of precedence for instance metadata options (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-options.html#instance-metadata-options-order-of-precedence) + // in the Amazon EC2 User Guide. HttpTokens types.HttpTokensState // Set to enabled to allow access to instance tags from the instance metadata. Set diff --git a/service/ec2/api_op_SearchTransitGatewayRoutes.go b/service/ec2/api_op_SearchTransitGatewayRoutes.go index 486961974c7..89037e62bcd 100644 --- a/service/ec2/api_op_SearchTransitGatewayRoutes.go +++ b/service/ec2/api_op_SearchTransitGatewayRoutes.go @@ -62,7 +62,8 @@ type SearchTransitGatewayRoutesInput struct { // UnauthorizedOperation . DryRun *bool - // The maximum number of routes to return. + // The maximum number of routes to return. If a value is not provided, the default + // is 1000. MaxResults *int32 noSmithyDocumentSerde diff --git a/service/ec2/deserializers.go b/service/ec2/deserializers.go index 2243e3975b9..70827379514 100644 --- a/service/ec2/deserializers.go +++ b/service/ec2/deserializers.go @@ -39259,6 +39259,97 @@ func awsEc2query_deserializeOpErrorGetImageBlockPublicAccessState(response *smit } } +type awsEc2query_deserializeOpGetInstanceMetadataDefaults struct { +} + +func (*awsEc2query_deserializeOpGetInstanceMetadataDefaults) ID() string { + return "OperationDeserializer" +} + +func (m *awsEc2query_deserializeOpGetInstanceMetadataDefaults) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsEc2query_deserializeOpErrorGetInstanceMetadataDefaults(response, &metadata) + } + output := &GetInstanceMetadataDefaultsOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + body := io.TeeReader(response.Body, ringBuffer) + rootDecoder := xml.NewDecoder(body) + t, err := smithyxml.FetchRootElement(rootDecoder) + if err == io.EOF { + return out, metadata, nil + } + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) + err = awsEc2query_deserializeOpDocumentGetInstanceMetadataDefaultsOutput(&output, decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + return out, metadata, err +} + +func awsEc2query_deserializeOpErrorGetInstanceMetadataDefaults(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + errorComponents, err := ec2query.GetErrorResponseComponents(errorBody) + if err != nil { + return err + } + awsmiddleware.SetRequestIDMetadata(metadata, errorComponents.RequestID) + if len(errorComponents.Code) != 0 { + errorCode = errorComponents.Code + } + if len(errorComponents.Message) != 0 { + errorMessage = errorComponents.Message + } + errorBody.Seek(0, io.SeekStart) + switch { + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + type awsEc2query_deserializeOpGetInstanceTypesFromInstanceRequirements struct { } @@ -44718,6 +44809,97 @@ func awsEc2query_deserializeOpErrorModifyInstanceMaintenanceOptions(response *sm } } +type awsEc2query_deserializeOpModifyInstanceMetadataDefaults struct { +} + +func (*awsEc2query_deserializeOpModifyInstanceMetadataDefaults) ID() string { + return "OperationDeserializer" +} + +func (m *awsEc2query_deserializeOpModifyInstanceMetadataDefaults) HandleDeserialize(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) ( + out middleware.DeserializeOutput, metadata middleware.Metadata, err error, +) { + out, metadata, err = next.HandleDeserialize(ctx, in) + if err != nil { + return out, metadata, err + } + + response, ok := out.RawResponse.(*smithyhttp.Response) + if !ok { + return out, metadata, &smithy.DeserializationError{Err: fmt.Errorf("unknown transport type %T", out.RawResponse)} + } + + if response.StatusCode < 200 || response.StatusCode >= 300 { + return out, metadata, awsEc2query_deserializeOpErrorModifyInstanceMetadataDefaults(response, &metadata) + } + output := &ModifyInstanceMetadataDefaultsOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + body := io.TeeReader(response.Body, ringBuffer) + rootDecoder := xml.NewDecoder(body) + t, err := smithyxml.FetchRootElement(rootDecoder) + if err == io.EOF { + return out, metadata, nil + } + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + decoder := smithyxml.WrapNodeDecoder(rootDecoder, t) + err = awsEc2query_deserializeOpDocumentModifyInstanceMetadataDefaultsOutput(&output, decoder) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + err = &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body, %w", err), + Snapshot: snapshot.Bytes(), + } + return out, metadata, err + } + + return out, metadata, err +} + +func awsEc2query_deserializeOpErrorModifyInstanceMetadataDefaults(response *smithyhttp.Response, metadata *middleware.Metadata) error { + var errorBuffer bytes.Buffer + if _, err := io.Copy(&errorBuffer, response.Body); err != nil { + return &smithy.DeserializationError{Err: fmt.Errorf("failed to copy error response body, %w", err)} + } + errorBody := bytes.NewReader(errorBuffer.Bytes()) + + errorCode := "UnknownError" + errorMessage := errorCode + + errorComponents, err := ec2query.GetErrorResponseComponents(errorBody) + if err != nil { + return err + } + awsmiddleware.SetRequestIDMetadata(metadata, errorComponents.RequestID) + if len(errorComponents.Code) != 0 { + errorCode = errorComponents.Code + } + if len(errorComponents.Message) != 0 { + errorMessage = errorComponents.Message + } + errorBody.Seek(0, io.SeekStart) + switch { + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + type awsEc2query_deserializeOpModifyInstanceMetadataOptions struct { } @@ -84131,6 +84313,98 @@ func awsEc2query_deserializeDocumentInstanceMaintenanceOptions(v **types.Instanc return nil } +func awsEc2query_deserializeDocumentInstanceMetadataDefaultsResponse(v **types.InstanceMetadataDefaultsResponse, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *types.InstanceMetadataDefaultsResponse + if *v == nil { + sv = &types.InstanceMetadataDefaultsResponse{} + } else { + sv = *v + } + + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("httpEndpoint", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.HttpEndpoint = types.InstanceMetadataEndpointState(xtv) + } + + case strings.EqualFold("httpPutResponseHopLimit", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + i64, err := strconv.ParseInt(xtv, 10, 64) + if err != nil { + return err + } + sv.HttpPutResponseHopLimit = ptr.Int32(int32(i64)) + } + + case strings.EqualFold("httpTokens", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.HttpTokens = types.HttpTokensState(xtv) + } + + case strings.EqualFold("instanceMetadataTags", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv := string(val) + sv.InstanceMetadataTags = types.InstanceMetadataTagsState(xtv) + } + + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + func awsEc2query_deserializeDocumentInstanceMetadataOptionsResponse(v **types.InstanceMetadataOptionsResponse, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -161056,6 +161330,48 @@ func awsEc2query_deserializeOpDocumentGetImageBlockPublicAccessStateOutput(v **G return nil } +func awsEc2query_deserializeOpDocumentGetInstanceMetadataDefaultsOutput(v **GetInstanceMetadataDefaultsOutput, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *GetInstanceMetadataDefaultsOutput + if *v == nil { + sv = &GetInstanceMetadataDefaultsOutput{} + } else { + sv = *v + } + + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("accountLevel", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsEc2query_deserializeDocumentInstanceMetadataDefaultsResponse(&sv.AccountLevel, nodeDecoder); err != nil { + return err + } + + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + func awsEc2query_deserializeOpDocumentGetInstanceTypesFromInstanceRequirementsOutput(v **GetInstanceTypesFromInstanceRequirementsOutput, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -164566,6 +164882,58 @@ func awsEc2query_deserializeOpDocumentModifyInstanceMaintenanceOptionsOutput(v * return nil } +func awsEc2query_deserializeOpDocumentModifyInstanceMetadataDefaultsOutput(v **ModifyInstanceMetadataDefaultsOutput, decoder smithyxml.NodeDecoder) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + var sv *ModifyInstanceMetadataDefaultsOutput + if *v == nil { + sv = &ModifyInstanceMetadataDefaultsOutput{} + } else { + sv = *v + } + + for { + t, done, err := decoder.Token() + if err != nil { + return err + } + if done { + break + } + originalDecoder := decoder + decoder = smithyxml.WrapNodeDecoder(originalDecoder.Decoder, t) + switch { + case strings.EqualFold("return", t.Name.Local): + val, err := decoder.Value() + if err != nil { + return err + } + if val == nil { + break + } + { + xtv, err := strconv.ParseBool(string(val)) + if err != nil { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", val) + } + sv.Return = ptr.Bool(xtv) + } + + default: + // Do nothing and ignore the unexpected tag element + err = decoder.Decoder.Skip() + if err != nil { + return err + } + + } + decoder = originalDecoder + } + *v = sv + return nil +} + func awsEc2query_deserializeOpDocumentModifyInstanceMetadataOptionsOutput(v **ModifyInstanceMetadataOptionsOutput, decoder smithyxml.NodeDecoder) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/ec2/generated.json b/service/ec2/generated.json index f61543b9741..3fa0603b08e 100644 --- a/service/ec2/generated.json +++ b/service/ec2/generated.json @@ -452,6 +452,7 @@ "api_op_GetGroupsForCapacityReservation.go", "api_op_GetHostReservationPurchasePreview.go", "api_op_GetImageBlockPublicAccessState.go", + "api_op_GetInstanceMetadataDefaults.go", "api_op_GetInstanceTypesFromInstanceRequirements.go", "api_op_GetInstanceUefiData.go", "api_op_GetIpamAddressHistory.go", @@ -513,6 +514,7 @@ "api_op_ModifyInstanceEventStartTime.go", "api_op_ModifyInstanceEventWindow.go", "api_op_ModifyInstanceMaintenanceOptions.go", + "api_op_ModifyInstanceMetadataDefaults.go", "api_op_ModifyInstanceMetadataOptions.go", "api_op_ModifyInstancePlacement.go", "api_op_ModifyIpam.go", diff --git a/service/ec2/serializers.go b/service/ec2/serializers.go index 982a2091ba0..9f6116ab37f 100644 --- a/service/ec2/serializers.go +++ b/service/ec2/serializers.go @@ -28177,6 +28177,70 @@ func (m *awsEc2query_serializeOpGetImageBlockPublicAccessState) HandleSerialize( return next.HandleSerialize(ctx, in) } +type awsEc2query_serializeOpGetInstanceMetadataDefaults struct { +} + +func (*awsEc2query_serializeOpGetInstanceMetadataDefaults) ID() string { + return "OperationSerializer" +} + +func (m *awsEc2query_serializeOpGetInstanceMetadataDefaults) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*GetInstanceMetadataDefaultsInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + operationPath := "/" + if len(request.Request.URL.Path) == 0 { + request.Request.URL.Path = operationPath + } else { + request.Request.URL.Path = path.Join(request.Request.URL.Path, operationPath) + if request.Request.URL.Path != "/" && operationPath[len(operationPath)-1] == '/' { + request.Request.URL.Path += "/" + } + } + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-www-form-urlencoded") + + bodyWriter := bytes.NewBuffer(nil) + bodyEncoder := query.NewEncoder(bodyWriter) + body := bodyEncoder.Object() + body.Key("Action").String("GetInstanceMetadataDefaults") + body.Key("Version").String("2016-11-15") + + if err := awsEc2query_serializeOpDocumentGetInstanceMetadataDefaultsInput(input, bodyEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + err = bodyEncoder.Encode() + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(bodyWriter.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} + type awsEc2query_serializeOpGetInstanceTypesFromInstanceRequirements struct { } @@ -32081,6 +32145,70 @@ func (m *awsEc2query_serializeOpModifyInstanceMaintenanceOptions) HandleSerializ return next.HandleSerialize(ctx, in) } +type awsEc2query_serializeOpModifyInstanceMetadataDefaults struct { +} + +func (*awsEc2query_serializeOpModifyInstanceMetadataDefaults) ID() string { + return "OperationSerializer" +} + +func (m *awsEc2query_serializeOpModifyInstanceMetadataDefaults) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + request, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown transport type %T", in.Request)} + } + + input, ok := in.Parameters.(*ModifyInstanceMetadataDefaultsInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + operationPath := "/" + if len(request.Request.URL.Path) == 0 { + request.Request.URL.Path = operationPath + } else { + request.Request.URL.Path = path.Join(request.Request.URL.Path, operationPath) + if request.Request.URL.Path != "/" && operationPath[len(operationPath)-1] == '/' { + request.Request.URL.Path += "/" + } + } + request.Request.Method = "POST" + httpBindingEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + httpBindingEncoder.SetHeader("Content-Type").String("application/x-www-form-urlencoded") + + bodyWriter := bytes.NewBuffer(nil) + bodyEncoder := query.NewEncoder(bodyWriter) + body := bodyEncoder.Object() + body.Key("Action").String("ModifyInstanceMetadataDefaults") + body.Key("Version").String("2016-11-15") + + if err := awsEc2query_serializeOpDocumentModifyInstanceMetadataDefaultsInput(input, bodyEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + err = bodyEncoder.Encode() + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(bodyWriter.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = httpBindingEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} + type awsEc2query_serializeOpModifyInstanceMetadataOptions struct { } @@ -62134,6 +62262,18 @@ func awsEc2query_serializeOpDocumentGetImageBlockPublicAccessStateInput(v *GetIm return nil } +func awsEc2query_serializeOpDocumentGetInstanceMetadataDefaultsInput(v *GetInstanceMetadataDefaultsInput, value query.Value) error { + object := value.Object() + _ = object + + if v.DryRun != nil { + objectKey := object.Key("DryRun") + objectKey.Boolean(*v.DryRun) + } + + return nil +} + func awsEc2query_serializeOpDocumentGetInstanceTypesFromInstanceRequirementsInput(v *GetInstanceTypesFromInstanceRequirementsInput, value query.Value) error { object := value.Object() _ = object @@ -64284,6 +64424,38 @@ func awsEc2query_serializeOpDocumentModifyInstanceMaintenanceOptionsInput(v *Mod return nil } +func awsEc2query_serializeOpDocumentModifyInstanceMetadataDefaultsInput(v *ModifyInstanceMetadataDefaultsInput, value query.Value) error { + object := value.Object() + _ = object + + if v.DryRun != nil { + objectKey := object.Key("DryRun") + objectKey.Boolean(*v.DryRun) + } + + if len(v.HttpEndpoint) > 0 { + objectKey := object.Key("HttpEndpoint") + objectKey.String(string(v.HttpEndpoint)) + } + + if v.HttpPutResponseHopLimit != nil { + objectKey := object.Key("HttpPutResponseHopLimit") + objectKey.Integer(*v.HttpPutResponseHopLimit) + } + + if len(v.HttpTokens) > 0 { + objectKey := object.Key("HttpTokens") + objectKey.String(string(v.HttpTokens)) + } + + if len(v.InstanceMetadataTags) > 0 { + objectKey := object.Key("InstanceMetadataTags") + objectKey.String(string(v.InstanceMetadataTags)) + } + + return nil +} + func awsEc2query_serializeOpDocumentModifyInstanceMetadataOptionsInput(v *ModifyInstanceMetadataOptionsInput, value query.Value) error { object := value.Object() _ = object diff --git a/service/ec2/snapshot_test.go b/service/ec2/snapshot_test.go index 70ccc8c9028..b11d10bea50 100644 --- a/service/ec2/snapshot_test.go +++ b/service/ec2/snapshot_test.go @@ -5342,6 +5342,18 @@ func TestCheckSnapshot_GetImageBlockPublicAccessState(t *testing.T) { } } +func TestCheckSnapshot_GetInstanceMetadataDefaults(t *testing.T) { + svc := New(Options{}) + _, err := svc.GetInstanceMetadataDefaults(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "GetInstanceMetadataDefaults") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_GetInstanceTypesFromInstanceRequirements(t *testing.T) { svc := New(Options{}) _, err := svc.GetInstanceTypesFromInstanceRequirements(context.Background(), nil, func(o *Options) { @@ -6074,6 +6086,18 @@ func TestCheckSnapshot_ModifyInstanceMaintenanceOptions(t *testing.T) { } } +func TestCheckSnapshot_ModifyInstanceMetadataDefaults(t *testing.T) { + svc := New(Options{}) + _, err := svc.ModifyInstanceMetadataDefaults(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return testSnapshot(stack, "ModifyInstanceMetadataDefaults") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestCheckSnapshot_ModifyInstanceMetadataOptions(t *testing.T) { svc := New(Options{}) _, err := svc.ModifyInstanceMetadataOptions(context.Background(), nil, func(o *Options) { @@ -12733,6 +12757,18 @@ func TestUpdateSnapshot_GetImageBlockPublicAccessState(t *testing.T) { } } +func TestUpdateSnapshot_GetInstanceMetadataDefaults(t *testing.T) { + svc := New(Options{}) + _, err := svc.GetInstanceMetadataDefaults(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "GetInstanceMetadataDefaults") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_GetInstanceTypesFromInstanceRequirements(t *testing.T) { svc := New(Options{}) _, err := svc.GetInstanceTypesFromInstanceRequirements(context.Background(), nil, func(o *Options) { @@ -13465,6 +13501,18 @@ func TestUpdateSnapshot_ModifyInstanceMaintenanceOptions(t *testing.T) { } } +func TestUpdateSnapshot_ModifyInstanceMetadataDefaults(t *testing.T) { + svc := New(Options{}) + _, err := svc.ModifyInstanceMetadataDefaults(context.Background(), nil, func(o *Options) { + o.APIOptions = append(o.APIOptions, func(stack *middleware.Stack) error { + return updateSnapshot(stack, "ModifyInstanceMetadataDefaults") + }) + }) + if _, ok := err.(snapshotOK); !ok && err != nil { + t.Fatal(err) + } +} + func TestUpdateSnapshot_ModifyInstanceMetadataOptions(t *testing.T) { svc := New(Options{}) _, err := svc.ModifyInstanceMetadataOptions(context.Background(), nil, func(o *Options) { diff --git a/service/ec2/types/enums.go b/service/ec2/types/enums.go index b9c15667c72..b6f364b279f 100644 --- a/service/ec2/types/enums.go +++ b/service/ec2/types/enums.go @@ -1326,6 +1326,48 @@ func (DatafeedSubscriptionState) Values() []DatafeedSubscriptionState { } } +type DefaultInstanceMetadataEndpointState string + +// Enum values for DefaultInstanceMetadataEndpointState +const ( + DefaultInstanceMetadataEndpointStateDisabled DefaultInstanceMetadataEndpointState = "disabled" + DefaultInstanceMetadataEndpointStateEnabled DefaultInstanceMetadataEndpointState = "enabled" + DefaultInstanceMetadataEndpointStateNoPreference DefaultInstanceMetadataEndpointState = "no-preference" +) + +// Values returns all known values for DefaultInstanceMetadataEndpointState. Note +// that this can be expanded in the future, and so it is only as up to date as the +// client. The ordering of this slice is not guaranteed to be stable across +// updates. +func (DefaultInstanceMetadataEndpointState) Values() []DefaultInstanceMetadataEndpointState { + return []DefaultInstanceMetadataEndpointState{ + "disabled", + "enabled", + "no-preference", + } +} + +type DefaultInstanceMetadataTagsState string + +// Enum values for DefaultInstanceMetadataTagsState +const ( + DefaultInstanceMetadataTagsStateDisabled DefaultInstanceMetadataTagsState = "disabled" + DefaultInstanceMetadataTagsStateEnabled DefaultInstanceMetadataTagsState = "enabled" + DefaultInstanceMetadataTagsStateNoPreference DefaultInstanceMetadataTagsState = "no-preference" +) + +// Values returns all known values for DefaultInstanceMetadataTagsState. Note that +// this can be expanded in the future, and so it is only as up to date as the +// client. The ordering of this slice is not guaranteed to be stable across +// updates. +func (DefaultInstanceMetadataTagsState) Values() []DefaultInstanceMetadataTagsState { + return []DefaultInstanceMetadataTagsState{ + "disabled", + "enabled", + "no-preference", + } +} + type DefaultRouteTableAssociationValue string // Enum values for DefaultRouteTableAssociationValue @@ -5593,6 +5635,27 @@ func (MembershipType) Values() []MembershipType { } } +type MetadataDefaultHttpTokensState string + +// Enum values for MetadataDefaultHttpTokensState +const ( + MetadataDefaultHttpTokensStateOptional MetadataDefaultHttpTokensState = "optional" + MetadataDefaultHttpTokensStateRequired MetadataDefaultHttpTokensState = "required" + MetadataDefaultHttpTokensStateNoPreference MetadataDefaultHttpTokensState = "no-preference" +) + +// Values returns all known values for MetadataDefaultHttpTokensState. Note that +// this can be expanded in the future, and so it is only as up to date as the +// client. The ordering of this slice is not guaranteed to be stable across +// updates. +func (MetadataDefaultHttpTokensState) Values() []MetadataDefaultHttpTokensState { + return []MetadataDefaultHttpTokensState{ + "optional", + "required", + "no-preference", + } +} + type MetricType string // Enum values for MetricType diff --git a/service/ec2/types/types.go b/service/ec2/types/types.go index 0d40ec10706..ec95ce255eb 100644 --- a/service/ec2/types/types.go +++ b/service/ec2/types/types.go @@ -5311,8 +5311,7 @@ type Image struct { // The location of the AMI. ImageLocation *string - // The Amazon Web Services account alias (for example, amazon , self ) or the - // Amazon Web Services account ID of the AMI owner. + // The owner alias ( amazon | aws-marketplace ). ImageOwnerAlias *string // The type of image. @@ -6264,6 +6263,33 @@ type InstanceMarketOptionsRequest struct { noSmithyDocumentSerde } +// The default instance metadata service (IMDS) settings that were set at the +// account level in the specified Amazon Web Services
 Region. +type InstanceMetadataDefaultsResponse struct { + + // Indicates whether the IMDS endpoint for an instance is enabled or disabled. + // When disabled, the instance metadata can't be accessed. + HttpEndpoint InstanceMetadataEndpointState + + // The maximum number of hops that the metadata token can travel. + HttpPutResponseHopLimit *int32 + + // Indicates whether IMDSv2 is required. + // - optional – IMDSv2 is optional, which means that you can use either IMDSv2 or + // IMDSv1. + // - required – IMDSv2 is required, which means that IMDSv1 is disabled, and you + // must use IMDSv2. + HttpTokens HttpTokensState + + // Indicates whether access to instance tags from the instance metadata is enabled + // or disabled. For more information, see Work with instance tags using the + // instance metadata (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#work-with-tags-in-IMDS) + // in the Amazon EC2 User Guide. + InstanceMetadataTags InstanceMetadataTagsState + + noSmithyDocumentSerde +} + // The metadata options for the instance. type InstanceMetadataOptionsRequest struct { @@ -6276,23 +6302,25 @@ type InstanceMetadataOptionsRequest struct { // Default: disabled HttpProtocolIpv6 InstanceMetadataProtocolState - // The desired HTTP PUT response hop limit for instance metadata requests. The - // larger the number, the further instance metadata requests can travel. Default: 1 - // Possible values: Integers from 1 to 64 + // The maximum number of hops that the metadata token can travel. Possible values: + // Integers from 1 to 64 HttpPutResponseHopLimit *int32 // Indicates whether IMDSv2 is required. - // - optional - IMDSv2 is optional. You can choose whether to send a session - // token in your instance metadata retrieval requests. If you retrieve IAM role - // credentials without a session token, you receive the IMDSv1 role credentials. If - // you retrieve IAM role credentials using a valid session token, you receive the - // IMDSv2 role credentials. - // - required - IMDSv2 is required. You must send a session token in your - // instance metadata retrieval requests. With this option, retrieving the IAM role - // credentials always returns IMDSv2 credentials; IMDSv1 credentials are not - // available. - // Default: If the value of ImdsSupport for the Amazon Machine Image (AMI) for - // your instance is v2.0 , the default is required . + // - optional - IMDSv2 is optional, which means that you can use either IMDSv2 or + // IMDSv1. + // - required - IMDSv2 is required, which means that IMDSv1 is disabled, and you + // must use IMDSv2. + // Default: + // - If the value of ImdsSupport for the Amazon Machine Image (AMI) for your + // instance is v2.0 and the account level default is set to no-preference , the + // default is required . + // - If the value of ImdsSupport for the Amazon Machine Image (AMI) for your + // instance is v2.0 , but the account level default is set to V1 or V2 , the + // default is optional . + // The default value can also be affected by other combinations of parameters. For + // more information, see Order of precedence for instance metadata options (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-options.html#instance-metadata-options-order-of-precedence) + // in the Amazon EC2 User Guide. HttpTokens HttpTokensState // Set to enabled to allow access to instance tags from the instance metadata. Set @@ -6315,21 +6343,15 @@ type InstanceMetadataOptionsResponse struct { // enabled or disabled. Default: disabled HttpProtocolIpv6 InstanceMetadataProtocolState - // The desired HTTP PUT response hop limit for instance metadata requests. The - // larger the number, the further instance metadata requests can travel. Default: 1 - // Possible values: Integers from 1 to 64 + // The maximum number of hops that the metadata token can travel. Possible values: + // Integers from 1 to 64 HttpPutResponseHopLimit *int32 // Indicates whether IMDSv2 is required. - // - optional - IMDSv2 is optional. You can choose whether to send a session - // token in your instance metadata retrieval requests. If you retrieve IAM role - // credentials without a session token, you receive the IMDSv1 role credentials. If - // you retrieve IAM role credentials using a valid session token, you receive the - // IMDSv2 role credentials. - // - required - IMDSv2 is required. You must send a session token in your - // instance metadata retrieval requests. With this option, retrieving the IAM role - // credentials always returns IMDSv2 credentials; IMDSv1 credentials are not - // available. + // - optional - IMDSv2 is optional, which means that you can use either IMDSv2 or + // IMDSv1. + // - required - IMDSv2 is required, which means that IMDSv1 is disabled, and you + // must use IMDSv2. HttpTokens HttpTokensState // Indicates whether access to instance tags from the instance metadata is enabled diff --git a/service/ecs/api_op_CreateService.go b/service/ecs/api_op_CreateService.go index 4c39d6604ac..90bc8009a9c 100644 --- a/service/ecs/api_op_CreateService.go +++ b/service/ecs/api_op_CreateService.go @@ -14,18 +14,13 @@ import ( // Runs and maintains your desired number of tasks from a specified task // definition. If the number of tasks running in a service drops below the // desiredCount , Amazon ECS runs another copy of the task in the specified -// cluster. To update an existing service, see the UpdateService action. Starting -// April 15, 2023, Amazon Web Services will not onboard new customers to Amazon -// Elastic Inference (EI), and will help current customers migrate their workloads -// to options that offer better price and performance. After April 15, 2023, new -// customers will not be able to launch instances with Amazon EI accelerators in -// Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who have used -// Amazon EI at least once during the past 30-day period are considered current -// customers and will be able to continue using the service. In addition to -// maintaining the desired count of tasks in your service, you can optionally run -// your service behind one or more load balancers. The load balancers distribute -// traffic across the tasks that are associated with the service. For more -// information, see Service load balancing (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html) +// cluster. To update an existing service, see the UpdateService action. The +// following change began on March 21, 2024. When the task definition revision is +// not specified, Amazon ECS resolves the task definition revision before it +// authorizes the task definition. In addition to maintaining the desired count of +// tasks in your service, you can optionally run your service behind one or more +// load balancers. The load balancers distribute traffic across the tasks that are +// associated with the service. For more information, see Service load balancing (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html) // in the Amazon Elastic Container Service Developer Guide. You can attach Amazon // EBS volumes to Amazon ECS tasks by configuring the volume when creating or // updating a service. volumeConfigurations is only supported for REPLICA service @@ -95,7 +90,14 @@ import ( // scheduler launches new tasks, it determines task placement. For information // about task placement and task placement strategies, see Amazon ECS task // placement (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement.html) -// in the Amazon Elastic Container Service Developer Guide. +// in the Amazon Elastic Container Service Developer Guide Starting April 15, 2023, +// Amazon Web Services will not onboard new customers to Amazon Elastic Inference +// (EI), and will help current customers migrate their workloads to options that +// offer better price and performance. After April 15, 2023, new customers will not +// be able to launch instances with Amazon EI accelerators in Amazon SageMaker, +// Amazon ECS, or Amazon EC2. However, customers who have used Amazon EI at least +// once during the past 30-day period are considered current customers and will be +// able to continue using the service. func (c *Client) CreateService(ctx context.Context, params *CreateServiceInput, optFns ...func(*Options)) (*CreateServiceOutput, error) { if params == nil { params = &CreateServiceInput{} @@ -183,9 +185,9 @@ type CreateServiceInput struct { // type runs your tasks on Fargate On-Demand infrastructure. Fargate Spot // infrastructure is available for use but a capacity provider strategy must be // used. For more information, see Fargate capacity providers (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/fargate-capacity-providers.html) - // in the Amazon ECS User Guide for Fargate. The EC2 launch type runs your tasks - // on Amazon EC2 instances registered to your cluster. The EXTERNAL launch type - // runs your tasks on your on-premises server or virtual machine (VM) capacity + // in the Amazon ECS Developer Guide. The EC2 launch type runs your tasks on + // Amazon EC2 instances registered to your cluster. The EXTERNAL launch type runs + // your tasks on your on-premises server or virtual machine (VM) capacity // registered to your cluster. A service can use either a launch type or a capacity // provider strategy. If a launchType is specified, the capacityProviderStrategy // parameter must be omitted. @@ -258,7 +260,9 @@ type CreateServiceInput struct { // If no value is specified, the tags aren't propagated. Tags can only be // propagated to the task during task creation. To add tags to a task after task // creation, use the TagResource (https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_TagResource.html) - // API action. The default is NONE . + // API action. You must set this to a value other than NONE when you use Cost + // Explorer. For more information, see Amazon ECS usage reports (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/usage-reports.html) + // in the Amazon Elastic Container Service Developer Guide. The default is NONE . PropagateTags types.PropagateTags // The name or full Amazon Resource Name (ARN) of the IAM role that allows Amazon diff --git a/service/ecs/api_op_CreateTaskSet.go b/service/ecs/api_op_CreateTaskSet.go index b1f05eea96a..367bdf1ddb8 100644 --- a/service/ecs/api_op_CreateTaskSet.go +++ b/service/ecs/api_op_CreateTaskSet.go @@ -14,8 +14,11 @@ import ( // Create a task set in the specified cluster and service. This is used when a // service uses the EXTERNAL deployment controller type. For more information, see // Amazon ECS deployment types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html) -// in the Amazon Elastic Container Service Developer Guide. For information about -// the maximum number of task sets and otther quotas, see Amazon ECS service quotas (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-quotas.html) +// in the Amazon Elastic Container Service Developer Guide. The following change +// began on March 21, 2024. When the task definition revision is not specified, +// Amazon ECS resolves the task definition revision before it authorizes the task +// definition. For information about the maximum number of task sets and otther +// quotas, see Amazon ECS service quotas (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-quotas.html) // in the Amazon Elastic Container Service Developer Guide. func (c *Client) CreateTaskSet(ctx context.Context, params *CreateTaskSetInput, optFns ...func(*Options)) (*CreateTaskSetOutput, error) { if params == nil { diff --git a/service/ecs/api_op_RunTask.go b/service/ecs/api_op_RunTask.go index 4dd97ee960b..140b811dd25 100644 --- a/service/ecs/api_op_RunTask.go +++ b/service/ecs/api_op_RunTask.go @@ -11,10 +11,12 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Starts a new task using the specified task definition. You can allow Amazon ECS -// to place tasks for you, or you can customize how Amazon ECS places tasks using -// placement constraints and placement strategies. For more information, see -// Scheduling Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/scheduling_tasks.html) +// Starts a new task using the specified task definition. The following change +// began on March 21, 2024. When the task definition revision is not specified, +// Amazon ECS resolves the task definition revision before it authorizes the task +// definition. You can allow Amazon ECS to place tasks for you, or you can +// customize how Amazon ECS places tasks using placement constraints and placement +// strategies. For more information, see Scheduling Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/scheduling_tasks.html) // in the Amazon Elastic Container Service Developer Guide. Alternatively, you can // use StartTask to use your own scheduler or place tasks manually on specific // container instances. Starting April 15, 2023, Amazon Web Services will not diff --git a/service/ecs/api_op_StartTask.go b/service/ecs/api_op_StartTask.go index 0b2cd23ced8..0dd9d0c3541 100644 --- a/service/ecs/api_op_StartTask.go +++ b/service/ecs/api_op_StartTask.go @@ -12,15 +12,17 @@ import ( ) // Starts a new task from the specified task definition on the specified container -// instance or instances. Starting April 15, 2023, Amazon Web Services will not -// onboard new customers to Amazon Elastic Inference (EI), and will help current -// customers migrate their workloads to options that offer better price and -// performance. After April 15, 2023, new customers will not be able to launch -// instances with Amazon EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon -// EC2. However, customers who have used Amazon EI at least once during the past -// 30-day period are considered current customers and will be able to continue -// using the service. Alternatively, you can use RunTask to place tasks for you. -// For more information, see Scheduling Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/scheduling_tasks.html) +// instance or instances. The following change began on March 21, 2024. When the +// task definition revision is not specified, Amazon ECS resolves the task +// definition revision before it authorizes the task definition. Starting April 15, +// 2023, Amazon Web Services will not onboard new customers to Amazon Elastic +// Inference (EI), and will help current customers migrate their workloads to +// options that offer better price and performance. After April 15, 2023, new +// customers will not be able to launch instances with Amazon EI accelerators in +// Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who have used +// Amazon EI at least once during the past 30-day period are considered current +// customers and will be able to continue using the service. Alternatively, you can +// use RunTask to place tasks for you. For more information, see Scheduling Tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/scheduling_tasks.html) // in the Amazon Elastic Container Service Developer Guide. You can attach Amazon // EBS volumes to Amazon ECS tasks by configuring the volume when creating or // updating a service. For more infomation, see Amazon EBS volumes (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ebs-volumes.html#ebs-volume-types) diff --git a/service/ecs/api_op_UpdateService.go b/service/ecs/api_op_UpdateService.go index 5192793d52c..c5561e3e6a0 100644 --- a/service/ecs/api_op_UpdateService.go +++ b/service/ecs/api_op_UpdateService.go @@ -11,14 +11,17 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Modifies the parameters of a service. For services using the rolling update ( ECS -// ) you can update the desired count, deployment configuration, network -// configuration, load balancers, service registries, enable ECS managed tags -// option, propagate tags option, task placement constraints and strategies, and -// task definition. When you update any of these parameters, Amazon ECS starts new -// tasks with the new configuration. You can attach Amazon EBS volumes to Amazon -// ECS tasks by configuring the volume when starting or running a task, or when -// creating or updating a service. For more infomation, see Amazon EBS volumes (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ebs-volumes.html#ebs-volume-types) +// Modifies the parameters of a service. The following change began on March 21, +// 2024. When the task definition revision is not specified, Amazon ECS resolves +// the task definition revision before it authorizes the task definition. For +// services using the rolling update ( ECS ) you can update the desired count, +// deployment configuration, network configuration, load balancers, service +// registries, enable ECS managed tags option, propagate tags option, task +// placement constraints and strategies, and task definition. When you update any +// of these parameters, Amazon ECS starts new tasks with the new configuration. You +// can attach Amazon EBS volumes to Amazon ECS tasks by configuring the volume when +// starting or running a task, or when creating or updating a service. For more +// infomation, see Amazon EBS volumes (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ebs-volumes.html#ebs-volume-types) // in the Amazon Elastic Container Service Developer Guide. You can update your // volume configurations and trigger a new deployment. volumeConfigurations is // only supported for REPLICA service and not DAEMON service. If you leave diff --git a/service/ecs/types/types.go b/service/ecs/types/types.go index 1459b7cae3a..e295e12d081 100644 --- a/service/ecs/types/types.go +++ b/service/ecs/types/types.go @@ -13,9 +13,9 @@ type Attachment struct { // Details of the attachment. For elastic network interfaces, this includes the // network interface ID, the MAC address, the subnet ID, and the private IPv4 // address. For Service Connect services, this includes portName , clientAliases , - // discoveryName , and ingressPortOverride . For elastic block storage, this - // includes roleArn , encrypted , filesystemType , iops , kmsKeyId , sizeInGiB , - // snapshotId , tagSpecifications , throughput , and volumeType . + // discoveryName , and ingressPortOverride . For Elastic Block Storage, this + // includes roleArn , deleteOnTermination , volumeName , volumeId , and + // statusReason (only when the attachment fails to create or attach). Details []KeyValuePair // The unique identifier for the attachment. @@ -1750,9 +1750,10 @@ type EFSVolumeConfiguration struct { // variables contained within an environment file. If multiple environment files // are specified that contain the same variable, they're processed from the top // down. We recommend that you use unique variable names. For more information, see -// Specifying environment variables (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html) -// in the Amazon Elastic Container Service Developer Guide. You must use the -// following platforms for the Fargate launch type: +// Use a file to pass environment variables to a container (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/use-environment-file.html) +// in the Amazon Elastic Container Service Developer Guide. Environment variable +// files are objects in Amazon S3 and all Amazon S3 security considerations apply. +// You must use the following platforms for the Fargate launch type: // - Linux platform version 1.4.0 or later. // - Windows platform version 1.0.0 or later. // @@ -1762,7 +1763,8 @@ type EFSVolumeConfiguration struct { // - The container entry point interperts the VARIABLE values. type EnvironmentFile struct { - // The file type to use. The only supported value is s3 . + // The file type to use. Environment files are objects in Amazon S3. The only + // supported value is s3 . // // This member is required. Type EnvironmentFileType @@ -1787,7 +1789,7 @@ type EnvironmentFile struct { type EphemeralStorage struct { // The total amount, in GiB, of ephemeral storage to set for the task. The minimum - // supported value is 21 GiB and the maximum supported value is 200 GiB. + // supported value is 20 GiB and the maximum supported value is 200 GiB. // // This member is required. SizeInGiB int32 @@ -1950,8 +1952,9 @@ type FSxWindowsFileServerVolumeConfiguration struct { // health status of both individual containers and a task with the DescribeTasks // API operation or when viewing the task details in the console. The health check // is designed to make sure that your containers survive agent restarts, upgrades, -// or temporary unavailability. The following describes the possible healthStatus -// values for a container: +// or temporary unavailability. Amazon ECS performs health checks on containers +// with the default that launched the container instance or the task. The following +// describes the possible healthStatus values for a container: // - HEALTHY -The container health check has passed successfully. // - UNHEALTHY -The container health check has failed. // - UNKNOWN -The container health check is being evaluated, there's no container @@ -2142,10 +2145,10 @@ type InstanceHealthCheckResult struct { noSmithyDocumentSerde } -// The Linux capabilities for the container that are added to or dropped from the -// default configuration provided by Docker. For more information about the default -// capabilities and the non-default available capabilities, see Runtime privilege -// and Linux capabilities (https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) +// The Linux capabilities to add or remove from the default Docker configuration +// for a container defined in the task definition. For more information about the +// default capabilities and the non-default available capabilities, see Runtime +// privilege and Linux capabilities (https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) // in the Docker run reference. For more detailed information about these Linux // capabilities, see the capabilities(7) (http://man7.org/linux/man-pages/man7/capabilities.7.html) // Linux manual page. diff --git a/service/emrcontainers/endpoints.go b/service/emrcontainers/endpoints.go index 5b03da2ba6c..19a732da9f7 100644 --- a/service/emrcontainers/endpoints.go +++ b/service/emrcontainers/endpoints.go @@ -373,7 +373,7 @@ func (r *resolver) ResolveEndpoint( } } if _UseFIPS == true { - if true == _PartitionResult.SupportsFIPS { + if _PartitionResult.SupportsFIPS == true { uriString := func() string { var out strings.Builder out.WriteString("https://emr-containers-fips.") diff --git a/service/globalaccelerator/api_op_AdvertiseByoipCidr.go b/service/globalaccelerator/api_op_AdvertiseByoipCidr.go index 84f7dad6004..2ca582b2efb 100644 --- a/service/globalaccelerator/api_op_AdvertiseByoipCidr.go +++ b/service/globalaccelerator/api_op_AdvertiseByoipCidr.go @@ -36,7 +36,9 @@ func (c *Client) AdvertiseByoipCidr(ctx context.Context, params *AdvertiseByoipC type AdvertiseByoipCidrInput struct { // The address range, in CIDR notation. This must be the exact range that you - // provisioned. You can't advertise only a portion of the provisioned range. + // provisioned. You can't advertise only a portion of the provisioned range. For + // more information, see Bring your own IP addresses (BYOIP) (https://docs.aws.amazon.com/global-accelerator/latest/dg/using-byoip.html) + // in the Global Accelerator Developer Guide. // // This member is required. Cidr *string diff --git a/service/globalaccelerator/api_op_CreateCrossAccountAttachment.go b/service/globalaccelerator/api_op_CreateCrossAccountAttachment.go index 9c7eab4579f..e2b7c9ba9db 100644 --- a/service/globalaccelerator/api_op_CreateCrossAccountAttachment.go +++ b/service/globalaccelerator/api_op_CreateCrossAccountAttachment.go @@ -12,16 +12,22 @@ import ( ) // Create a cross-account attachment in Global Accelerator. You create a -// cross-account attachment to specify the principals who have permission to add to -// accelerators in their own account the resources in your account that you also -// list in the attachment. A principal can be an Amazon Web Services account number -// or the Amazon Resource Name (ARN) for an accelerator. For account numbers that -// are listed as principals, to add a resource listed in the attachment to an -// accelerator, you must sign in to an account specified as a principal. Then you -// can add the resources that are listed to any of your accelerators. If an -// accelerator ARN is listed in the cross-account attachment as a principal, anyone -// with permission to make updates to the accelerator can add as endpoints -// resources that are listed in the attachment. +// cross-account attachment to specify the principals who have permission to work +// with resources in accelerators in their own account. You specify, in the same +// attachment, the resources that are shared. A principal can be an Amazon Web +// Services account number or the Amazon Resource Name (ARN) for an accelerator. +// For account numbers that are listed as principals, to work with a resource +// listed in the attachment, you must sign in to an account specified as a +// principal. Then, you can work with resources that are listed, with any of your +// accelerators. If an accelerator ARN is listed in the cross-account attachment as +// a principal, anyone with permission to make updates to the accelerator can work +// with resources that are listed in the attachment. Specify each principal and +// resource separately. To specify two CIDR address pools, list them individually +// under Resources , and so on. For a command line operation, for example, you +// might use a statement like the following: "Resources": [{"Cidr": +// "169.254.60.0/24"},{"Cidr": "169.254.59.0/24"}] For more information, see +// Working with cross-account attachments and resources in Global Accelerator (https://docs.aws.amazon.com/global-accelerator/latest/dg/cross-account-resources.html) +// in the Global Accelerator Developer Guide. func (c *Client) CreateCrossAccountAttachment(ctx context.Context, params *CreateCrossAccountAttachmentInput, optFns ...func(*Options)) (*CreateCrossAccountAttachmentOutput, error) { if params == nil { params = &CreateCrossAccountAttachmentInput{} @@ -50,17 +56,18 @@ type CreateCrossAccountAttachmentInput struct { // This member is required. Name *string - // The principals to list in the cross-account attachment. A principal can be an - // Amazon Web Services account number or the Amazon Resource Name (ARN) for an + // The principals to include in the cross-account attachment. A principal can be + // an Amazon Web Services account number or the Amazon Resource Name (ARN) for an // accelerator. Principals []string - // The Amazon Resource Names (ARNs) for the resources to list in the cross-account - // attachment. A resource can be any supported Amazon Web Services resource type - // for Global Accelerator. + // The Amazon Resource Names (ARNs) for the resources to include in the + // cross-account attachment. A resource can be any supported Amazon Web Services + // resource type for Global Accelerator or a CIDR range for a bring your own IP + // address (BYOIP) address pool. Resources []types.Resource - // Create tags for cross-account attachment. For more information, see Tagging in + // Add tags for a cross-account attachment. For more information, see Tagging in // Global Accelerator (https://docs.aws.amazon.com/global-accelerator/latest/dg/tagging-in-global-accelerator.html) // in the Global Accelerator Developer Guide. Tags []types.Tag diff --git a/service/globalaccelerator/api_op_DeleteCrossAccountAttachment.go b/service/globalaccelerator/api_op_DeleteCrossAccountAttachment.go index 564d4681a18..87808598fd4 100644 --- a/service/globalaccelerator/api_op_DeleteCrossAccountAttachment.go +++ b/service/globalaccelerator/api_op_DeleteCrossAccountAttachment.go @@ -13,19 +13,9 @@ import ( // Delete a cross-account attachment. When you delete an attachment, Global // Accelerator revokes the permission to use the resources in the attachment from // all principals in the list of principals. Global Accelerator revokes the -// permission for specific resources by doing the following: -// - If the principal is an account ID, Global Accelerator reviews every -// accelerator in the account and removes cross-account endpoints from all -// accelerators. -// - If the principal is an accelerator, Global Accelerator reviews just that -// accelerator and removes cross-account endpoints from it. -// -// If there are overlapping permissions provided by multiple cross-account -// attachments, Global Accelerator only removes endpoints if there are no current -// cross-account attachments that provide access permission. For example, if you -// delete a cross-account attachment that lists an accelerator as a principal, but -// another cross-account attachment includes the account ID that owns that -// accelerator, endpoints will not be removed from the accelerator. +// permission for specific resources. For more information, see Working with +// cross-account attachments and resources in Global Accelerator (https://docs.aws.amazon.com/global-accelerator/latest/dg/cross-account-resources.html) +// in the Global Accelerator Developer Guide. func (c *Client) DeleteCrossAccountAttachment(ctx context.Context, params *DeleteCrossAccountAttachmentInput, optFns ...func(*Options)) (*DeleteCrossAccountAttachmentOutput, error) { if params == nil { params = &DeleteCrossAccountAttachmentInput{} diff --git a/service/globalaccelerator/api_op_DeprovisionByoipCidr.go b/service/globalaccelerator/api_op_DeprovisionByoipCidr.go index d67a3e3d533..b6e0ab3b393 100644 --- a/service/globalaccelerator/api_op_DeprovisionByoipCidr.go +++ b/service/globalaccelerator/api_op_DeprovisionByoipCidr.go @@ -37,7 +37,9 @@ func (c *Client) DeprovisionByoipCidr(ctx context.Context, params *DeprovisionBy type DeprovisionByoipCidrInput struct { // The address range, in CIDR notation. The prefix must be the same prefix that - // you specified when you provisioned the address range. + // you specified when you provisioned the address range. For more information, see + // Bring your own IP addresses (BYOIP) (https://docs.aws.amazon.com/global-accelerator/latest/dg/using-byoip.html) + // in the Global Accelerator Developer Guide. // // This member is required. Cidr *string diff --git a/service/globalaccelerator/api_op_ListCrossAccountResourceAccounts.go b/service/globalaccelerator/api_op_ListCrossAccountResourceAccounts.go index bf433886501..46f8da08d26 100644 --- a/service/globalaccelerator/api_op_ListCrossAccountResourceAccounts.go +++ b/service/globalaccelerator/api_op_ListCrossAccountResourceAccounts.go @@ -10,7 +10,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// List the accounts that have cross-account endpoints. +// List the accounts that have cross-account resources. For more information, see +// Working with cross-account attachments and resources in Global Accelerator (https://docs.aws.amazon.com/global-accelerator/latest/dg/cross-account-resources.html) +// in the Global Accelerator Developer Guide. func (c *Client) ListCrossAccountResourceAccounts(ctx context.Context, params *ListCrossAccountResourceAccountsInput, optFns ...func(*Options)) (*ListCrossAccountResourceAccountsOutput, error) { if params == nil { params = &ListCrossAccountResourceAccountsInput{} @@ -33,7 +35,7 @@ type ListCrossAccountResourceAccountsInput struct { type ListCrossAccountResourceAccountsOutput struct { // The account IDs of principals (resource owners) in a cross-account attachment - // who can add endpoints (resources) listed in the same attachment. + // who can work with resources listed in the same attachment. ResourceOwnerAwsAccountIds []string // Metadata pertaining to the operation's result. diff --git a/service/globalaccelerator/api_op_ListCrossAccountResources.go b/service/globalaccelerator/api_op_ListCrossAccountResources.go index 5ff4012776a..56621db7803 100644 --- a/service/globalaccelerator/api_op_ListCrossAccountResources.go +++ b/service/globalaccelerator/api_op_ListCrossAccountResources.go @@ -11,7 +11,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// List the cross-account endpoints available to add to an accelerator. +// List the cross-account resources available to work with. func (c *Client) ListCrossAccountResources(ctx context.Context, params *ListCrossAccountResourcesInput, optFns ...func(*Options)) (*ListCrossAccountResourcesOutput, error) { if params == nil { params = &ListCrossAccountResourcesInput{} @@ -37,7 +37,7 @@ type ListCrossAccountResourcesInput struct { // The Amazon Resource Name (ARN) of an accelerator in a cross-account attachment. AcceleratorArn *string - // The number of cross-account endpoints objects that you want to return with this + // The number of cross-account resource objects that you want to return with this // call. The default value is 10. MaxResults *int32 @@ -50,7 +50,7 @@ type ListCrossAccountResourcesInput struct { type ListCrossAccountResourcesOutput struct { - // The endpoints attached to an accelerator in a cross-account attachment. + // The cross-account resources used with an accelerator. CrossAccountResources []types.CrossAccountResource // The token for the next set of results. You receive this token from a previous @@ -153,7 +153,7 @@ var _ ListCrossAccountResourcesAPIClient = (*Client)(nil) // ListCrossAccountResourcesPaginatorOptions is the paginator options for // ListCrossAccountResources type ListCrossAccountResourcesPaginatorOptions struct { - // The number of cross-account endpoints objects that you want to return with this + // The number of cross-account resource objects that you want to return with this // call. The default value is 10. Limit int32 diff --git a/service/globalaccelerator/api_op_ProvisionByoipCidr.go b/service/globalaccelerator/api_op_ProvisionByoipCidr.go index 53a5e4a0b91..1b090fe323a 100644 --- a/service/globalaccelerator/api_op_ProvisionByoipCidr.go +++ b/service/globalaccelerator/api_op_ProvisionByoipCidr.go @@ -36,7 +36,9 @@ type ProvisionByoipCidrInput struct { // The public IPv4 address range, in CIDR notation. The most specific IP prefix // that you can specify is /24. The address range cannot overlap with another - // address range that you've brought to this or another Region. + // address range that you've brought to this Amazon Web Services Region or another + // Region. For more information, see Bring your own IP addresses (BYOIP) (https://docs.aws.amazon.com/global-accelerator/latest/dg/using-byoip.html) + // in the Global Accelerator Developer Guide. // // This member is required. Cidr *string diff --git a/service/globalaccelerator/api_op_UpdateCrossAccountAttachment.go b/service/globalaccelerator/api_op_UpdateCrossAccountAttachment.go index dbc1209db48..abe00a9baca 100644 --- a/service/globalaccelerator/api_op_UpdateCrossAccountAttachment.go +++ b/service/globalaccelerator/api_op_UpdateCrossAccountAttachment.go @@ -13,20 +13,10 @@ import ( // Update a cross-account attachment to add or remove principals or resources. // When you update an attachment to remove a principal (account ID or accelerator) -// or a resource, Global Accelerator revokes the permission for specific resources -// by doing the following: -// - If the principal is an account ID, Global Accelerator reviews every -// accelerator in the account and removes cross-account endpoints from all -// accelerators. -// - If the principal is an accelerator, Global Accelerator reviews just that -// accelerator and removes cross-account endpoints from it. -// -// If there are overlapping permissions provided by multiple cross-account -// attachments, Global Accelerator only removes endpoints if there are no current -// cross-account attachments that provide access permission. For example, if you -// delete a cross-account attachment that lists an accelerator as a principal, but -// another cross-account attachment includes the account ID that owns that -// accelerator, endpoints will not be removed from the accelerator. +// or a resource, Global Accelerator revokes the permission for specific resources. +// For more information, see Working with cross-account attachments and resources +// in Global Accelerator (https://docs.aws.amazon.com/global-accelerator/latest/dg/cross-account-resources.html) +// in the Global Accelerator Developer Guide. func (c *Client) UpdateCrossAccountAttachment(ctx context.Context, params *UpdateCrossAccountAttachmentInput, optFns ...func(*Options)) (*UpdateCrossAccountAttachmentOutput, error) { if params == nil { params = &UpdateCrossAccountAttachmentInput{} @@ -51,13 +41,13 @@ type UpdateCrossAccountAttachmentInput struct { // The principals to add to the cross-account attachment. A principal is an // account or the Amazon Resource Name (ARN) of an accelerator that the attachment - // gives permission to add the resources from another account, listed in the - // attachment. To add more than one principal, separate the account numbers or - // accelerator ARNs, or both, with commas. + // gives permission to work with resources from another account. The resources are + // also listed in the attachment. To add more than one principal, separate the + // account numbers or accelerator ARNs, or both, with commas. AddPrincipals []string // The resources to add to the cross-account attachment. A resource listed in a - // cross-account attachment can be added to an accelerator by the principals that + // cross-account attachment can be used with an accelerator by the principals that // are listed in the attachment. To add more than one resource, separate the // resource ARNs with commas. AddResources []types.Resource @@ -66,16 +56,16 @@ type UpdateCrossAccountAttachmentInput struct { Name *string // The principals to remove from the cross-account attachment. A principal is an - // account or the Amazon Resource Name (ARN) of an accelerator that is given - // permission to add the resources from another account, listed in the - // cross-account attachment. To remove more than one principal, separate the + // account or the Amazon Resource Name (ARN) of an accelerator that the attachment + // gives permission to work with resources from another account. The resources are + // also listed in the attachment. To remove more than one principal, separate the // account numbers or accelerator ARNs, or both, with commas. RemovePrincipals []string // The resources to remove from the cross-account attachment. A resource listed in - // a cross-account attachment can be added to an accelerator fy principals that are - // listed in the cross-account attachment. To remove more than one resource, - // separate the resource ARNs with commas. + // a cross-account attachment can be used with an accelerator by the principals + // that are listed in the attachment. To remove more than one resource, separate + // the resource ARNs with commas. RemoveResources []types.Resource noSmithyDocumentSerde diff --git a/service/globalaccelerator/api_op_WithdrawByoipCidr.go b/service/globalaccelerator/api_op_WithdrawByoipCidr.go index 280c961c957..3f451f40441 100644 --- a/service/globalaccelerator/api_op_WithdrawByoipCidr.go +++ b/service/globalaccelerator/api_op_WithdrawByoipCidr.go @@ -35,7 +35,9 @@ func (c *Client) WithdrawByoipCidr(ctx context.Context, params *WithdrawByoipCid type WithdrawByoipCidrInput struct { - // The address range, in CIDR notation. + // The address range, in CIDR notation. For more information, see Bring your own + // IP addresses (BYOIP) (https://docs.aws.amazon.com/global-accelerator/latest/dg/using-byoip.html) + // in the Global Accelerator Developer Guide. // // This member is required. Cidr *string @@ -45,7 +47,7 @@ type WithdrawByoipCidrInput struct { type WithdrawByoipCidrOutput struct { - // Information about the address pool. + // Information about the BYOIP address pool. ByoipCidr *types.ByoipCidr // Metadata pertaining to the operation's result. diff --git a/service/globalaccelerator/deserializers.go b/service/globalaccelerator/deserializers.go index 3dfb76d063b..bc9978818f3 100644 --- a/service/globalaccelerator/deserializers.go +++ b/service/globalaccelerator/deserializers.go @@ -8016,6 +8016,15 @@ func awsAwsjson11_deserializeDocumentCrossAccountResource(v **types.CrossAccount sv.AttachmentArn = ptr.String(jtv) } + case "Cidr": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected GenericString to be of type string, got %T instead", value) + } + sv.Cidr = ptr.String(jtv) + } + case "EndpointId": if value != nil { jtv, ok := value.(string) @@ -10139,6 +10148,15 @@ func awsAwsjson11_deserializeDocumentResource(v **types.Resource, value interfac for key, value := range shape { switch key { + case "Cidr": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected GenericString to be of type string, got %T instead", value) + } + sv.Cidr = ptr.String(jtv) + } + case "EndpointId": if value != nil { jtv, ok := value.(string) diff --git a/service/globalaccelerator/serializers.go b/service/globalaccelerator/serializers.go index 5a8ae17869e..c1d8796cf86 100644 --- a/service/globalaccelerator/serializers.go +++ b/service/globalaccelerator/serializers.go @@ -3379,6 +3379,11 @@ func awsAwsjson11_serializeDocumentResource(v *types.Resource, value smithyjson. object := value.Object() defer object.Close() + if v.Cidr != nil { + ok := object.Key("Cidr") + ok.String(*v.Cidr) + } + if v.EndpointId != nil { ok := object.Key("EndpointId") ok.String(*v.EndpointId) diff --git a/service/globalaccelerator/types/types.go b/service/globalaccelerator/types/types.go index 52cfae4dd9d..22350587e4d 100644 --- a/service/globalaccelerator/types/types.go +++ b/service/globalaccelerator/types/types.go @@ -113,8 +113,8 @@ type AcceleratorEvent struct { } // A cross-account attachment in Global Accelerator. A cross-account attachment -// specifies the principals who have permission to add to accelerators in their own -// account the resources in your account that you also list in the attachment. +// specifies the principals who have permission to work with resources in your +// account, which you also list in the attachment. type Attachment struct { // The Amazon Resource Name (ARN) of the cross-account attachment. @@ -172,7 +172,9 @@ type Attachment struct { // contact Amazon Web Services support. type ByoipCidr struct { - // The address range, in CIDR notation. + // The address range, in CIDR notation. For more information, see Bring your own + // IP addresses (BYOIP) (https://docs.aws.amazon.com/global-accelerator/latest/dg/using-byoip.html) + // in the Global Accelerator Developer Guide. Cidr *string // A history of status changes for an IP address range that you bring to Global @@ -221,16 +223,27 @@ type CidrAuthorizationContext struct { noSmithyDocumentSerde } -// An endpoint (Amazon Web Services resource) that is listed in a cross-account -// attachment and can be added to an accelerator by specified principals, that are -// also listed in the attachment. +// An endpoint (Amazon Web Services resource) or an IP address range, in CIDR +// format, that is listed in a cross-account attachment. A cross-account resource +// can be added to an accelerator by specified principals, which are also listed in +// the attachment. For more information, see Working with cross-account +// attachments and resources in Global Accelerator (https://docs.aws.amazon.com/global-accelerator/latest/dg/cross-account-resources.html) +// in the Global Accelerator Developer Guide. type CrossAccountResource struct { // The Amazon Resource Name (ARN) of the cross-account attachment that specifies - // the endpoints (resources) that can be added to accelerators and principals that - // have permission to add the endpoints to accelerators. + // the resources (endpoints or CIDR range) that can be added to accelerators and + // principals that have permission to add them. AttachmentArn *string + // An IP address range, in CIDR format, that is specified as an Amazon Web + // Services resource. The address must be provisioned and advertised in Global + // Accelerator by following the bring your own IP address (BYOIP) process for + // Global Accelerator. For more information, see Bring your own IP addresses + // (BYOIP) (https://docs.aws.amazon.com/global-accelerator/latest/dg/using-byoip.html) + // in the Global Accelerator Developer Guide. + Cidr *string + // The endpoint ID for the endpoint that is listed in a cross-account attachment // and can be added to an accelerator by specified principals. EndpointId *string @@ -361,7 +374,7 @@ type CustomRoutingEndpointConfiguration struct { // The Amazon Resource Name (ARN) of the cross-account attachment that specifies // the endpoints (resources) that can be added to accelerators and principals that - // have permission to add the endpoints to accelerators. + // have permission to add the endpoints. AttachmentArn *string // An ID for the endpoint. For custom routing accelerators, this is the virtual @@ -463,7 +476,7 @@ type EndpointConfiguration struct { // The Amazon Resource Name (ARN) of the cross-account attachment that specifies // the endpoints (resources) that can be added to accelerators and principals that - // have permission to add the endpoints to accelerators. + // have permission to add the endpoints. AttachmentArn *string // Indicates whether client IP address preservation is enabled for an endpoint. @@ -483,8 +496,8 @@ type EndpointConfiguration struct { // Application Load Balancer, this is the Amazon Resource Name (ARN) of the // resource. If the endpoint is an Elastic IP address, this is the Elastic IP // address allocation ID. For Amazon EC2 instances, this is the EC2 instance ID. A - // resource must be valid and active when you add it as an endpoint. An Application - // Load Balancer can be either internal or internet-facing. + // resource must be valid and active when you add it as an endpoint. For + // cross-account endpoints, this must be the ARN of the resource. EndpointId *string // The weight associated with the endpoint. When you add weights to endpoints, you @@ -729,16 +742,25 @@ type PortRange struct { noSmithyDocumentSerde } -// An Amazon Web Services resource that is supported by Global Accelerator and can -// be added as an endpoint for an accelerator. +// A resource is one of the following: the ARN for an Amazon Web Services resource +// that is supported by Global Accelerator to be added as an endpoint, or a CIDR +// range that specifies a bring your own IP (BYOIP) address pool. type Resource struct { - // The endpoint ID for the endpoint (Amazon Web Services resource). - // - // This member is required. + // An IP address range, in CIDR format, that is specified as resource. The address + // must be provisioned and advertised in Global Accelerator by following the bring + // your own IP address (BYOIP) process for Global Accelerator For more information, + // see Bring your own IP addresses (BYOIP) (https://docs.aws.amazon.com/global-accelerator/latest/dg/using-byoip.html) + // in the Global Accelerator Developer Guide. + Cidr *string + + // The endpoint ID for the endpoint that is specified as a Amazon Web Services + // resource. An endpoint ID for the cross-account feature is the ARN of an Amazon + // Web Services resource, such as a Network Load Balancer, that Global Accelerator + // supports as an endpoint for an accelerator. EndpointId *string - // The Amazon Web Services Region where a resource is located. + // The Amazon Web Services Region where a shared endpoint resource is located. Region *string noSmithyDocumentSerde diff --git a/service/globalaccelerator/validators.go b/service/globalaccelerator/validators.go index 921d4ee6bfe..84247012a0b 100644 --- a/service/globalaccelerator/validators.go +++ b/service/globalaccelerator/validators.go @@ -1322,38 +1322,6 @@ func validateEndpointIdentifiers(v []types.EndpointIdentifier) error { } } -func validateResource(v *types.Resource) error { - if v == nil { - return nil - } - invalidParams := smithy.InvalidParamsError{Context: "Resource"} - if v.EndpointId == nil { - invalidParams.Add(smithy.NewErrParamRequired("EndpointId")) - } - if invalidParams.Len() > 0 { - return invalidParams - } else { - return nil - } -} - -func validateResources(v []types.Resource) error { - if v == nil { - return nil - } - invalidParams := smithy.InvalidParamsError{Context: "Resources"} - for i := range v { - if err := validateResource(&v[i]); err != nil { - invalidParams.AddNested(fmt.Sprintf("[%d]", i), err.(smithy.InvalidParamsError)) - } - } - if invalidParams.Len() > 0 { - return invalidParams - } else { - return nil - } -} - func validateTag(v *types.Tag) error { if v == nil { return nil @@ -1489,11 +1457,6 @@ func validateOpCreateCrossAccountAttachmentInput(v *CreateCrossAccountAttachment if v.Name == nil { invalidParams.Add(smithy.NewErrParamRequired("Name")) } - if v.Resources != nil { - if err := validateResources(v.Resources); err != nil { - invalidParams.AddNested("Resources", err.(smithy.InvalidParamsError)) - } - } if v.IdempotencyToken == nil { invalidParams.Add(smithy.NewErrParamRequired("IdempotencyToken")) } @@ -2162,16 +2125,6 @@ func validateOpUpdateCrossAccountAttachmentInput(v *UpdateCrossAccountAttachment if v.AttachmentArn == nil { invalidParams.Add(smithy.NewErrParamRequired("AttachmentArn")) } - if v.AddResources != nil { - if err := validateResources(v.AddResources); err != nil { - invalidParams.AddNested("AddResources", err.(smithy.InvalidParamsError)) - } - } - if v.RemoveResources != nil { - if err := validateResources(v.RemoveResources); err != nil { - invalidParams.AddNested("RemoveResources", err.(smithy.InvalidParamsError)) - } - } if invalidParams.Len() > 0 { return invalidParams } else { diff --git a/service/lexmodelsv2/internal/endpoints/endpoints.go b/service/lexmodelsv2/internal/endpoints/endpoints.go index d936465fec7..7e1dfca191a 100644 --- a/service/lexmodelsv2/internal/endpoints/endpoints.go +++ b/service/lexmodelsv2/internal/endpoints/endpoints.go @@ -327,5 +327,10 @@ var defaultPartitions = endpoints.Partitions{ }, RegionRegex: partitionRegexp.AwsUsGov, IsRegionalized: true, + Endpoints: endpoints.Endpoints{ + endpoints.EndpointKey{ + Region: "us-gov-west-1", + }: endpoints.Endpoint{}, + }, }, } diff --git a/service/lexruntimev2/internal/endpoints/endpoints.go b/service/lexruntimev2/internal/endpoints/endpoints.go index 2b3056f8fc9..cf1655a511d 100644 --- a/service/lexruntimev2/internal/endpoints/endpoints.go +++ b/service/lexruntimev2/internal/endpoints/endpoints.go @@ -327,5 +327,10 @@ var defaultPartitions = endpoints.Partitions{ }, RegionRegex: partitionRegexp.AwsUsGov, IsRegionalized: true, + Endpoints: endpoints.Endpoints{ + endpoints.EndpointKey{ + Region: "us-gov-west-1", + }: endpoints.Endpoint{}, + }, }, } diff --git a/service/medialive/deserializers.go b/service/medialive/deserializers.go index 2fe05b2ba00..77012107101 100644 --- a/service/medialive/deserializers.go +++ b/service/medialive/deserializers.go @@ -20326,6 +20326,24 @@ func awsRestjson1_deserializeDocumentH265Settings(v **types.H265Settings, value sv.MinIInterval = ptr.Int32(int32(i64)) } + case "mvOverPictureBoundaries": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected H265MvOverPictureBoundaries to be of type string, got %T instead", value) + } + sv.MvOverPictureBoundaries = types.H265MvOverPictureBoundaries(jtv) + } + + case "mvTemporalPredictor": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected H265MvTemporalPredictor to be of type string, got %T instead", value) + } + sv.MvTemporalPredictor = types.H265MvTemporalPredictor(jtv) + } + case "parDenominator": if value != nil { jtv, ok := value.(json.Number) @@ -20423,6 +20441,41 @@ func awsRestjson1_deserializeDocumentH265Settings(v **types.H265Settings, value sv.Tier = types.H265Tier(jtv) } + case "tileHeight": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected __integerMin64Max2160 to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.TileHeight = ptr.Int32(int32(i64)) + } + + case "tilePadding": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected H265TilePadding to be of type string, got %T instead", value) + } + sv.TilePadding = types.H265TilePadding(jtv) + } + + case "tileWidth": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected __integerMin256Max3840 to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.TileWidth = ptr.Int32(int32(i64)) + } + case "timecodeBurninSettings": if err := awsRestjson1_deserializeDocumentTimecodeBurninSettings(&sv.TimecodeBurninSettings, value); err != nil { return err @@ -20437,6 +20490,15 @@ func awsRestjson1_deserializeDocumentH265Settings(v **types.H265Settings, value sv.TimecodeInsertion = types.H265TimecodeInsertionBehavior(jtv) } + case "treeblockSize": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected H265TreeblockSize to be of type string, got %T instead", value) + } + sv.TreeblockSize = types.H265TreeblockSize(jtv) + } + default: _, _ = key, value diff --git a/service/medialive/serializers.go b/service/medialive/serializers.go index b27e1553ec2..6546d8630df 100644 --- a/service/medialive/serializers.go +++ b/service/medialive/serializers.go @@ -8303,6 +8303,16 @@ func awsRestjson1_serializeDocumentH265Settings(v *types.H265Settings, value smi ok.Integer(*v.MinIInterval) } + if len(v.MvOverPictureBoundaries) > 0 { + ok := object.Key("mvOverPictureBoundaries") + ok.String(string(v.MvOverPictureBoundaries)) + } + + if len(v.MvTemporalPredictor) > 0 { + ok := object.Key("mvTemporalPredictor") + ok.String(string(v.MvTemporalPredictor)) + } + if v.ParDenominator != nil { ok := object.Key("parDenominator") ok.Integer(*v.ParDenominator) @@ -8348,6 +8358,21 @@ func awsRestjson1_serializeDocumentH265Settings(v *types.H265Settings, value smi ok.String(string(v.Tier)) } + if v.TileHeight != nil { + ok := object.Key("tileHeight") + ok.Integer(*v.TileHeight) + } + + if len(v.TilePadding) > 0 { + ok := object.Key("tilePadding") + ok.String(string(v.TilePadding)) + } + + if v.TileWidth != nil { + ok := object.Key("tileWidth") + ok.Integer(*v.TileWidth) + } + if v.TimecodeBurninSettings != nil { ok := object.Key("timecodeBurninSettings") if err := awsRestjson1_serializeDocumentTimecodeBurninSettings(v.TimecodeBurninSettings, ok); err != nil { @@ -8360,6 +8385,11 @@ func awsRestjson1_serializeDocumentH265Settings(v *types.H265Settings, value smi ok.String(string(v.TimecodeInsertion)) } + if len(v.TreeblockSize) > 0 { + ok := object.Key("treeblockSize") + ok.String(string(v.TreeblockSize)) + } + return nil } diff --git a/service/medialive/types/enums.go b/service/medialive/types/enums.go index 8fc5e6e8df1..d9db3e6d165 100644 --- a/service/medialive/types/enums.go +++ b/service/medialive/types/enums.go @@ -2324,6 +2324,42 @@ func (H265LookAheadRateControl) Values() []H265LookAheadRateControl { } } +type H265MvOverPictureBoundaries string + +// Enum values for H265MvOverPictureBoundaries +const ( + H265MvOverPictureBoundariesDisabled H265MvOverPictureBoundaries = "DISABLED" + H265MvOverPictureBoundariesEnabled H265MvOverPictureBoundaries = "ENABLED" +) + +// Values returns all known values for H265MvOverPictureBoundaries. Note that this +// can be expanded in the future, and so it is only as up to date as the client. +// The ordering of this slice is not guaranteed to be stable across updates. +func (H265MvOverPictureBoundaries) Values() []H265MvOverPictureBoundaries { + return []H265MvOverPictureBoundaries{ + "DISABLED", + "ENABLED", + } +} + +type H265MvTemporalPredictor string + +// Enum values for H265MvTemporalPredictor +const ( + H265MvTemporalPredictorDisabled H265MvTemporalPredictor = "DISABLED" + H265MvTemporalPredictorEnabled H265MvTemporalPredictor = "ENABLED" +) + +// Values returns all known values for H265MvTemporalPredictor. Note that this can +// be expanded in the future, and so it is only as up to date as the client. The +// ordering of this slice is not guaranteed to be stable across updates. +func (H265MvTemporalPredictor) Values() []H265MvTemporalPredictor { + return []H265MvTemporalPredictor{ + "DISABLED", + "ENABLED", + } +} + type H265Profile string // Enum values for H265Profile @@ -2416,6 +2452,24 @@ func (H265Tier) Values() []H265Tier { } } +type H265TilePadding string + +// Enum values for H265TilePadding +const ( + H265TilePaddingNone H265TilePadding = "NONE" + H265TilePaddingPadded H265TilePadding = "PADDED" +) + +// Values returns all known values for H265TilePadding. Note that this can be +// expanded in the future, and so it is only as up to date as the client. The +// ordering of this slice is not guaranteed to be stable across updates. +func (H265TilePadding) Values() []H265TilePadding { + return []H265TilePadding{ + "NONE", + "PADDED", + } +} + type H265TimecodeInsertionBehavior string // Enum values for H265TimecodeInsertionBehavior @@ -2435,6 +2489,24 @@ func (H265TimecodeInsertionBehavior) Values() []H265TimecodeInsertionBehavior { } } +type H265TreeblockSize string + +// Enum values for H265TreeblockSize +const ( + H265TreeblockSizeAuto H265TreeblockSize = "AUTO" + H265TreeblockSizeTreeSize32x32 H265TreeblockSize = "TREE_SIZE_32X32" +) + +// Values returns all known values for H265TreeblockSize. Note that this can be +// expanded in the future, and so it is only as up to date as the client. The +// ordering of this slice is not guaranteed to be stable across updates. +func (H265TreeblockSize) Values() []H265TreeblockSize { + return []H265TreeblockSize{ + "AUTO", + "TREE_SIZE_32X32", + } +} + type HlsAdMarkers string // Enum values for HlsAdMarkers diff --git a/service/medialive/types/types.go b/service/medialive/types/types.go index eb6b8943fef..c915e2464ed 100644 --- a/service/medialive/types/types.go +++ b/service/medialive/types/types.go @@ -2239,6 +2239,14 @@ type H265Settings struct { // GOP. Note: Maximum GOP stretch = GOP size + Min-I-interval - 1 MinIInterval *int32 + // If you are setting up the picture as a tile, you must set this to "disabled". + // In all other configurations, you typically enter "enabled". + MvOverPictureBoundaries H265MvOverPictureBoundaries + + // If you are setting up the picture as a tile, you must set this to "disabled". + // In other configurations, you typically enter "enabled". + MvTemporalPredictor H265MvTemporalPredictor + // Pixel Aspect Ratio denominator. ParDenominator *int32 @@ -2283,6 +2291,24 @@ type H265Settings struct { // H.265 Tier. Tier H265Tier + // Set this field to set up the picture as a tile. You must also set tileWidth. + // The tile height must result in 22 or fewer rows in the frame. The tile width + // must result in 20 or fewer columns in the frame. And finally, the product of the + // column count and row count must be 64 of less. If the tile width and height are + // specified, MediaLive will override the video codec slices field with a value + // that MediaLive calculates + TileHeight *int32 + + // Set to "padded" to force MediaLive to add padding to the frame, to obtain a + // frame that is a whole multiple of the tile size. If you are setting up the + // picture as a tile, you must enter "padded". In all other configurations, you + // typically enter "none". + TilePadding H265TilePadding + + // Set this field to set up the picture as a tile. See tileHeight for more + // information. + TileWidth *int32 + // Timecode burn-in settings TimecodeBurninSettings *TimecodeBurninSettings @@ -2292,6 +2318,11 @@ type H265Settings struct { // specified in Timecode Config TimecodeInsertion H265TimecodeInsertionBehavior + // Select the tree block size used for encoding. If you enter "auto", the encoder + // will pick the best size. If you are setting up the picture as a tile, you must + // set this to 32x32. In all other configurations, you typically enter "auto". + TreeblockSize H265TreeblockSize + noSmithyDocumentSerde } diff --git a/service/sagemaker/types/enums.go b/service/sagemaker/types/enums.go index 62c61d40ed8..d90831b154d 100644 --- a/service/sagemaker/types/enums.go +++ b/service/sagemaker/types/enums.go @@ -201,6 +201,88 @@ const ( AppInstanceTypeMlTrn12xlarge AppInstanceType = "ml.trn1.2xlarge" AppInstanceTypeMlTrn132xlarge AppInstanceType = "ml.trn1.32xlarge" AppInstanceTypeMlTrn1n32xlarge AppInstanceType = "ml.trn1n.32xlarge" + AppInstanceTypeMlP548xlarge AppInstanceType = "ml.p5.48xlarge" + AppInstanceTypeMlM6iLarge AppInstanceType = "ml.m6i.large" + AppInstanceTypeMlM6iXlarge AppInstanceType = "ml.m6i.xlarge" + AppInstanceTypeMlM6i2xlarge AppInstanceType = "ml.m6i.2xlarge" + AppInstanceTypeMlM6i4xlarge AppInstanceType = "ml.m6i.4xlarge" + AppInstanceTypeMlM6i8xlarge AppInstanceType = "ml.m6i.8xlarge" + AppInstanceTypeMlM6i12xlarge AppInstanceType = "ml.m6i.12xlarge" + AppInstanceTypeMlM6i16xlarge AppInstanceType = "ml.m6i.16xlarge" + AppInstanceTypeMlM6i24xlarge AppInstanceType = "ml.m6i.24xlarge" + AppInstanceTypeMlM6i32xlarge AppInstanceType = "ml.m6i.32xlarge" + AppInstanceTypeMlM7iLarge AppInstanceType = "ml.m7i.large" + AppInstanceTypeMlM7iXlarge AppInstanceType = "ml.m7i.xlarge" + AppInstanceTypeMlM7i2xlarge AppInstanceType = "ml.m7i.2xlarge" + AppInstanceTypeMlM7i4xlarge AppInstanceType = "ml.m7i.4xlarge" + AppInstanceTypeMlM7i8xlarge AppInstanceType = "ml.m7i.8xlarge" + AppInstanceTypeMlM7i12xlarge AppInstanceType = "ml.m7i.12xlarge" + AppInstanceTypeMlM7i16xlarge AppInstanceType = "ml.m7i.16xlarge" + AppInstanceTypeMlM7i24xlarge AppInstanceType = "ml.m7i.24xlarge" + AppInstanceTypeMlM7i48xlarge AppInstanceType = "ml.m7i.48xlarge" + AppInstanceTypeMlC6iLarge AppInstanceType = "ml.c6i.large" + AppInstanceTypeMlC6iXlarge AppInstanceType = "ml.c6i.xlarge" + AppInstanceTypeMlC6i2xlarge AppInstanceType = "ml.c6i.2xlarge" + AppInstanceTypeMlC6i4xlarge AppInstanceType = "ml.c6i.4xlarge" + AppInstanceTypeMlC6i8xlarge AppInstanceType = "ml.c6i.8xlarge" + AppInstanceTypeMlC6i12xlarge AppInstanceType = "ml.c6i.12xlarge" + AppInstanceTypeMlC6i16xlarge AppInstanceType = "ml.c6i.16xlarge" + AppInstanceTypeMlC6i24xlarge AppInstanceType = "ml.c6i.24xlarge" + AppInstanceTypeMlC6i32xlarge AppInstanceType = "ml.c6i.32xlarge" + AppInstanceTypeMlC7iLarge AppInstanceType = "ml.c7i.large" + AppInstanceTypeMlC7iXlarge AppInstanceType = "ml.c7i.xlarge" + AppInstanceTypeMlC7i2xlarge AppInstanceType = "ml.c7i.2xlarge" + AppInstanceTypeMlC7i4xlarge AppInstanceType = "ml.c7i.4xlarge" + AppInstanceTypeMlC7i8xlarge AppInstanceType = "ml.c7i.8xlarge" + AppInstanceTypeMlC7i12xlarge AppInstanceType = "ml.c7i.12xlarge" + AppInstanceTypeMlC7i16xlarge AppInstanceType = "ml.c7i.16xlarge" + AppInstanceTypeMlC7i24xlarge AppInstanceType = "ml.c7i.24xlarge" + AppInstanceTypeMlC7i48xlarge AppInstanceType = "ml.c7i.48xlarge" + AppInstanceTypeMlR6iLarge AppInstanceType = "ml.r6i.large" + AppInstanceTypeMlR6iXlarge AppInstanceType = "ml.r6i.xlarge" + AppInstanceTypeMlR6i2xlarge AppInstanceType = "ml.r6i.2xlarge" + AppInstanceTypeMlR6i4xlarge AppInstanceType = "ml.r6i.4xlarge" + AppInstanceTypeMlR6i8xlarge AppInstanceType = "ml.r6i.8xlarge" + AppInstanceTypeMlR6i12xlarge AppInstanceType = "ml.r6i.12xlarge" + AppInstanceTypeMlR6i16xlarge AppInstanceType = "ml.r6i.16xlarge" + AppInstanceTypeMlR6i24xlarge AppInstanceType = "ml.r6i.24xlarge" + AppInstanceTypeMlR6i32xlarge AppInstanceType = "ml.r6i.32xlarge" + AppInstanceTypeMlR7iLarge AppInstanceType = "ml.r7i.large" + AppInstanceTypeMlR7iXlarge AppInstanceType = "ml.r7i.xlarge" + AppInstanceTypeMlR7i2xlarge AppInstanceType = "ml.r7i.2xlarge" + AppInstanceTypeMlR7i4xlarge AppInstanceType = "ml.r7i.4xlarge" + AppInstanceTypeMlR7i8xlarge AppInstanceType = "ml.r7i.8xlarge" + AppInstanceTypeMlR7i12xlarge AppInstanceType = "ml.r7i.12xlarge" + AppInstanceTypeMlR7i16xlarge AppInstanceType = "ml.r7i.16xlarge" + AppInstanceTypeMlR7i24xlarge AppInstanceType = "ml.r7i.24xlarge" + AppInstanceTypeMlR7i48xlarge AppInstanceType = "ml.r7i.48xlarge" + AppInstanceTypeMlM6idLarge AppInstanceType = "ml.m6id.large" + AppInstanceTypeMlM6idXlarge AppInstanceType = "ml.m6id.xlarge" + AppInstanceTypeMlM6id2xlarge AppInstanceType = "ml.m6id.2xlarge" + AppInstanceTypeMlM6id4xlarge AppInstanceType = "ml.m6id.4xlarge" + AppInstanceTypeMlM6id8xlarge AppInstanceType = "ml.m6id.8xlarge" + AppInstanceTypeMlM6id12xlarge AppInstanceType = "ml.m6id.12xlarge" + AppInstanceTypeMlM6id16xlarge AppInstanceType = "ml.m6id.16xlarge" + AppInstanceTypeMlM6id24xlarge AppInstanceType = "ml.m6id.24xlarge" + AppInstanceTypeMlM6id32xlarge AppInstanceType = "ml.m6id.32xlarge" + AppInstanceTypeMlC6idLarge AppInstanceType = "ml.c6id.large" + AppInstanceTypeMlC6idXlarge AppInstanceType = "ml.c6id.xlarge" + AppInstanceTypeMlC6id2xlarge AppInstanceType = "ml.c6id.2xlarge" + AppInstanceTypeMlC6id4xlarge AppInstanceType = "ml.c6id.4xlarge" + AppInstanceTypeMlC6id8xlarge AppInstanceType = "ml.c6id.8xlarge" + AppInstanceTypeMlC6id12xlarge AppInstanceType = "ml.c6id.12xlarge" + AppInstanceTypeMlC6id16xlarge AppInstanceType = "ml.c6id.16xlarge" + AppInstanceTypeMlC6id24xlarge AppInstanceType = "ml.c6id.24xlarge" + AppInstanceTypeMlC6id32xlarge AppInstanceType = "ml.c6id.32xlarge" + AppInstanceTypeMlR6idLarge AppInstanceType = "ml.r6id.large" + AppInstanceTypeMlR6idXlarge AppInstanceType = "ml.r6id.xlarge" + AppInstanceTypeMlR6id2xlarge AppInstanceType = "ml.r6id.2xlarge" + AppInstanceTypeMlR6id4xlarge AppInstanceType = "ml.r6id.4xlarge" + AppInstanceTypeMlR6id8xlarge AppInstanceType = "ml.r6id.8xlarge" + AppInstanceTypeMlR6id12xlarge AppInstanceType = "ml.r6id.12xlarge" + AppInstanceTypeMlR6id16xlarge AppInstanceType = "ml.r6id.16xlarge" + AppInstanceTypeMlR6id24xlarge AppInstanceType = "ml.r6id.24xlarge" + AppInstanceTypeMlR6id32xlarge AppInstanceType = "ml.r6id.32xlarge" ) // Values returns all known values for AppInstanceType. Note that this can be @@ -271,6 +353,88 @@ func (AppInstanceType) Values() []AppInstanceType { "ml.trn1.2xlarge", "ml.trn1.32xlarge", "ml.trn1n.32xlarge", + "ml.p5.48xlarge", + "ml.m6i.large", + "ml.m6i.xlarge", + "ml.m6i.2xlarge", + "ml.m6i.4xlarge", + "ml.m6i.8xlarge", + "ml.m6i.12xlarge", + "ml.m6i.16xlarge", + "ml.m6i.24xlarge", + "ml.m6i.32xlarge", + "ml.m7i.large", + "ml.m7i.xlarge", + "ml.m7i.2xlarge", + "ml.m7i.4xlarge", + "ml.m7i.8xlarge", + "ml.m7i.12xlarge", + "ml.m7i.16xlarge", + "ml.m7i.24xlarge", + "ml.m7i.48xlarge", + "ml.c6i.large", + "ml.c6i.xlarge", + "ml.c6i.2xlarge", + "ml.c6i.4xlarge", + "ml.c6i.8xlarge", + "ml.c6i.12xlarge", + "ml.c6i.16xlarge", + "ml.c6i.24xlarge", + "ml.c6i.32xlarge", + "ml.c7i.large", + "ml.c7i.xlarge", + "ml.c7i.2xlarge", + "ml.c7i.4xlarge", + "ml.c7i.8xlarge", + "ml.c7i.12xlarge", + "ml.c7i.16xlarge", + "ml.c7i.24xlarge", + "ml.c7i.48xlarge", + "ml.r6i.large", + "ml.r6i.xlarge", + "ml.r6i.2xlarge", + "ml.r6i.4xlarge", + "ml.r6i.8xlarge", + "ml.r6i.12xlarge", + "ml.r6i.16xlarge", + "ml.r6i.24xlarge", + "ml.r6i.32xlarge", + "ml.r7i.large", + "ml.r7i.xlarge", + "ml.r7i.2xlarge", + "ml.r7i.4xlarge", + "ml.r7i.8xlarge", + "ml.r7i.12xlarge", + "ml.r7i.16xlarge", + "ml.r7i.24xlarge", + "ml.r7i.48xlarge", + "ml.m6id.large", + "ml.m6id.xlarge", + "ml.m6id.2xlarge", + "ml.m6id.4xlarge", + "ml.m6id.8xlarge", + "ml.m6id.12xlarge", + "ml.m6id.16xlarge", + "ml.m6id.24xlarge", + "ml.m6id.32xlarge", + "ml.c6id.large", + "ml.c6id.xlarge", + "ml.c6id.2xlarge", + "ml.c6id.4xlarge", + "ml.c6id.8xlarge", + "ml.c6id.12xlarge", + "ml.c6id.16xlarge", + "ml.c6id.24xlarge", + "ml.c6id.32xlarge", + "ml.r6id.large", + "ml.r6id.xlarge", + "ml.r6id.2xlarge", + "ml.r6id.4xlarge", + "ml.r6id.8xlarge", + "ml.r6id.12xlarge", + "ml.r6id.16xlarge", + "ml.r6id.24xlarge", + "ml.r6id.32xlarge", } }