aws-sdk-go-v2/service/ecs/api_op_PutAccountSettingDefault.go (128 lines of code) (raw):
// Code generated by smithy-go-codegen DO NOT EDIT.
package ecs
import (
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
"context"
"fmt"
"github.com/aws/smithy-go/middleware"
smithyhttp "github.com/aws/smithy-go/transport/http"
"github.com/aws/aws-sdk-go-v2/service/ecs/types"
)
// Modifies an account setting for all users on an account for whom no individual
// account setting has been specified. Account settings are set on a per-Region
// basis.
func (c *Client) PutAccountSettingDefault(ctx context.Context, params *PutAccountSettingDefaultInput, optFns ...func(*Options)) (*PutAccountSettingDefaultOutput, error) {
if params == nil { params = &PutAccountSettingDefaultInput{} }
result, metadata, err := c.invokeOperation(ctx, "PutAccountSettingDefault", params, optFns, c.addOperationPutAccountSettingDefaultMiddlewares)
if err != nil { return nil, err }
out := result.(*PutAccountSettingDefaultOutput)
out.ResultMetadata = metadata
return out, nil
}
type PutAccountSettingDefaultInput struct {
// The resource name for which to modify the account setting.
//
// The following are the valid values for the account setting name.
//
// - serviceLongArnFormat - When modified, the Amazon Resource Name (ARN) and
// resource ID format of the resource type for a specified user, role, or the root
// user for an account is affected. The opt-in and opt-out account setting must be
// set for each Amazon ECS resource separately. The ARN and resource ID format of a
// resource is defined by the opt-in status of the user or role that created the
// resource. You must turn on this setting to use Amazon ECS features such as
// resource tagging.
//
// - taskLongArnFormat - When modified, the Amazon Resource Name (ARN) and
// resource ID format of the resource type for a specified user, role, or the root
// user for an account is affected. The opt-in and opt-out account setting must be
// set for each Amazon ECS resource separately. The ARN and resource ID format of a
// resource is defined by the opt-in status of the user or role that created the
// resource. You must turn on this setting to use Amazon ECS features such as
// resource tagging.
//
// - containerInstanceLongArnFormat - When modified, the Amazon Resource Name
// (ARN) and resource ID format of the resource type for a specified user, role, or
// the root user for an account is affected. The opt-in and opt-out account setting
// must be set for each Amazon ECS resource separately. The ARN and resource ID
// format of a resource is defined by the opt-in status of the user or role that
// created the resource. You must turn on this setting to use Amazon ECS features
// such as resource tagging.
//
// - awsvpcTrunking - When modified, the elastic network interface (ENI) limit
// for any new container instances that support the feature is changed. If
// awsvpcTrunking is turned on, any new container instances that support the
// feature are launched have the increased ENI limits available to them. For more
// information, see [Elastic Network Interface Trunking]in the Amazon Elastic Container Service Developer Guide.
//
// - containerInsights - When modified, the default setting indicating whether
// Amazon Web Services CloudWatch Container Insights is turned on for your clusters
// is changed. If containerInsights is turned on, any new clusters that are
// created will have Container Insights turned on unless you disable it during
// cluster creation. For more information, see [CloudWatch Container Insights]in the Amazon Elastic Container
// Service Developer Guide.
//
// - dualStackIPv6 - When turned on, when using a VPC in dual stack mode, your
// tasks using the awsvpc network mode can have an IPv6 address assigned. For
// more information on using IPv6 with tasks launched on Amazon EC2 instances, see [Using a VPC in dual-stack mode]
// . For more information on using IPv6 with tasks launched on Fargate, see [Using a VPC in dual-stack mode].
//
// - fargateFIPSMode - If you specify fargateFIPSMode , Fargate FIPS 140
// compliance is affected.
//
// - fargateTaskRetirementWaitPeriod - When Amazon Web Services determines that a
// security or infrastructure update is needed for an Amazon ECS task hosted on
// Fargate, the tasks need to be stopped and new tasks launched to replace them.
// Use fargateTaskRetirementWaitPeriod to configure the wait time to retire a
// Fargate task. For information about the Fargate tasks maintenance, see [Amazon Web Services Fargate task maintenance]in the
// Amazon ECS Developer Guide.
//
// - tagResourceAuthorization - Amazon ECS is introducing tagging authorization
// for resource creation. Users must have permissions for actions that create the
// resource, such as ecsCreateCluster . If tags are specified when you create a
// resource, Amazon Web Services performs additional authorization to verify if
// users or roles have permissions to create tags. Therefore, you must grant
// explicit permissions to use the ecs:TagResource action. For more information,
// see [Grant permission to tag resources on creation]in the Amazon ECS Developer Guide.
//
// - guardDutyActivate - The guardDutyActivate parameter is read-only in Amazon
// ECS and indicates whether Amazon ECS Runtime Monitoring is enabled or disabled
// by your security administrator in your Amazon ECS account. Amazon GuardDuty
// controls this account setting on your behalf. For more information, see [Protecting Amazon ECS workloads with Amazon ECS Runtime Monitoring].
//
// [Grant permission to tag resources on creation]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/supported-iam-actions-tagging.html
// [Using a VPC in dual-stack mode]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/fargate-task-networking.html#fargate-task-networking-vpc-dual-stack
// [Amazon Web Services Fargate task maintenance]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-maintenance.html
// [Elastic Network Interface Trunking]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/container-instance-eni.html
// [Protecting Amazon ECS workloads with Amazon ECS Runtime Monitoring]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-guard-duty-integration.html
// [CloudWatch Container Insights]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cloudwatch-container-insights.html
//
// This member is required.
Name types.SettingName
// The account setting value for the specified principal ARN. Accepted values are
// enabled , disabled , on , and off .
//
// When you specify fargateTaskRetirementWaitPeriod for the name , the following
// are the valid values:
//
// - 0 - Amazon Web Services sends the notification, and immediately retires the
// affected tasks.
//
// - 7 - Amazon Web Services sends the notification, and waits 7 calendar days to
// retire the tasks.
//
// - 14 - Amazon Web Services sends the notification, and waits 14 calendar days
// to retire the tasks.
//
// This member is required.
Value *string
noSmithyDocumentSerde
}
type PutAccountSettingDefaultOutput struct {
// The current setting for a resource.
Setting *types.Setting
// Metadata pertaining to the operation's result.
ResultMetadata middleware.Metadata
noSmithyDocumentSerde
}
func (c *Client) addOperationPutAccountSettingDefaultMiddlewares(stack *middleware.Stack, options Options) (err error) {
if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil {
return err
}
err = stack.Serialize.Add(&awsAwsjson11_serializeOpPutAccountSettingDefault{}, middleware.After)
if err != nil { return err }
err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpPutAccountSettingDefault{}, middleware.After)
if err != nil { return err }
if err := addProtocolFinalizerMiddlewares(stack, options, "PutAccountSettingDefault"); 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 = addSpanRetryLoop(stack, options); 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 = addTimeOffsetBuild(stack, c); err != nil {
return err
}
if err = addUserAgentRetryMode(stack, options); err != nil {
return err
}
if err = addOpPutAccountSettingDefaultValidationMiddleware(stack); err != nil {
return err
}
if err = stack.Initialize.Add(newServiceMetadataMiddleware_opPutAccountSettingDefault(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
}
if err = addSpanInitializeStart(stack); err != nil {
return err
}
if err = addSpanInitializeEnd(stack); err != nil {
return err
}
if err = addSpanBuildRequestStart(stack); err != nil {
return err
}
if err = addSpanBuildRequestEnd(stack); err != nil {
return err
}
return nil
}
func newServiceMetadataMiddleware_opPutAccountSettingDefault(region string) *awsmiddleware.RegisterServiceMetadata {
return &awsmiddleware.RegisterServiceMetadata{
Region: region,
ServiceID: ServiceID,
OperationName: "PutAccountSettingDefault",
}
}