diff --git a/.changelog/0c6737f4728048e7861711ade7317528.json b/.changelog/0c6737f4728048e7861711ade7317528.json new file mode 100644 index 00000000000..c6e7b2eaab9 --- /dev/null +++ b/.changelog/0c6737f4728048e7861711ade7317528.json @@ -0,0 +1,8 @@ +{ + "id": "0c6737f4-7280-48e7-8617-11ade7317528", + "type": "documentation", + "description": "Documentation correction for AWS Private CA", + "modules": [ + "service/acmpca" + ] +} \ No newline at end of file diff --git a/.changelog/1684a41113254cac9a2ba58f66003550.json b/.changelog/1684a41113254cac9a2ba58f66003550.json new file mode 100644 index 00000000000..eb950771ca9 --- /dev/null +++ b/.changelog/1684a41113254cac9a2ba58f66003550.json @@ -0,0 +1,8 @@ +{ + "id": "1684a411-1325-4cac-9a2b-a58f66003550", + "type": "documentation", + "description": "This is a documentation update to address various tickets.", + "modules": [ + "service/ecs" + ] +} \ No newline at end of file diff --git a/.changelog/264aa454d5f2483498bc54a5357a500b.json b/.changelog/264aa454d5f2483498bc54a5357a500b.json new file mode 100644 index 00000000000..50f6ea96b14 --- /dev/null +++ b/.changelog/264aa454d5f2483498bc54a5357a500b.json @@ -0,0 +1,8 @@ +{ + "id": "264aa454-d5f2-4834-98bc-54a5357a500b", + "type": "feature", + "description": "Added a new API UpdateRoutingProfileAgentAvailabilityTimer to update agent availability timer of a routing profile.", + "modules": [ + "service/connect" + ] +} \ No newline at end of file diff --git a/.changelog/7a12b902192740a79eead62ef4bf7849.json b/.changelog/7a12b902192740a79eead62ef4bf7849.json new file mode 100644 index 00000000000..52cc48b3db2 --- /dev/null +++ b/.changelog/7a12b902192740a79eead62ef4bf7849.json @@ -0,0 +1,8 @@ +{ + "id": "7a12b902-1927-40a7-9eea-d62ef4bf7849", + "type": "feature", + "description": "Display cloud storage used capacity at a cluster level.", + "modules": [ + "service/datasync" + ] +} \ No newline at end of file diff --git a/.changelog/8fb5852d5ca44db1b379fb6fcfd036f7.json b/.changelog/8fb5852d5ca44db1b379fb6fcfd036f7.json new file mode 100644 index 00000000000..b23dcd9001b --- /dev/null +++ b/.changelog/8fb5852d5ca44db1b379fb6fcfd036f7.json @@ -0,0 +1,8 @@ +{ + "id": "8fb5852d-5ca4-4db1-b379-fb6fcfd036f7", + "type": "feature", + "description": "Including DataCaptureConfig key in the Amazon Sagemaker Search's transform job object", + "modules": [ + "service/sagemaker" + ] +} \ No newline at end of file diff --git a/service/acmpca/api_op_IssueCertificate.go b/service/acmpca/api_op_IssueCertificate.go index af8ba6a787f..58e3346a13e 100644 --- a/service/acmpca/api_op_IssueCertificate.go +++ b/service/acmpca/api_op_IssueCertificate.go @@ -98,11 +98,11 @@ type IssueCertificateInput struct { // Alphanumeric string that can be used to distinguish between calls to the // IssueCertificate action. Idempotency tokens for IssueCertificate time out after - // one minute. Therefore, if you call IssueCertificate multiple times with the same - // idempotency token within one minute, Amazon Web Services Private CA recognizes - // that you are requesting only one certificate and will issue only one. If you - // change the idempotency token for each call, Amazon Web Services Private CA - // recognizes that you are requesting multiple certificates. + // five minutes. Therefore, if you call IssueCertificate multiple times with the + // same idempotency token within five minutes, Amazon Web Services Private CA + // recognizes that you are requesting only one certificate and will issue only one. + // If you change the idempotency token for each call, Amazon Web Services Private + // CA recognizes that you are requesting multiple certificates. IdempotencyToken *string // Specifies a custom configuration template to use when issuing a certificate. If diff --git a/service/acmpca/doc.go b/service/acmpca/doc.go index 6d3896d88ad..73c41ce3194 100644 --- a/service/acmpca/doc.go +++ b/service/acmpca/doc.go @@ -17,7 +17,7 @@ // Amazon Web Services Private CA rejects an otherwise valid request because the // request exceeds the operation's quota for the number of requests per second. // When a request is throttled, Amazon Web Services Private CA returns a -// ThrottlingException (https://docs.aws.amazon.com/acm-pca/latest/APIReference/CommonErrors.html) +// ThrottlingException (https://docs.aws.amazon.com/privateca/latest/APIReference/CommonErrors.html) // error. Amazon Web Services Private CA does not guarantee a minimum request rate // for APIs. To see an up-to-date list of your Amazon Web Services Private CA // quotas, or to request a quota increase, log into your Amazon Web Services diff --git a/service/connect/api_op_CreateRoutingProfile.go b/service/connect/api_op_CreateRoutingProfile.go index 702a849fe07..03a8e370fc2 100644 --- a/service/connect/api_op_CreateRoutingProfile.go +++ b/service/connect/api_op_CreateRoutingProfile.go @@ -61,6 +61,10 @@ type CreateRoutingProfileInput struct { // This member is required. Name *string + // Whether agents with this routing profile will have their routing order + // calculated based on time since their last inbound contact or longest idle time. + AgentAvailabilityTimer types.AgentAvailabilityTimer + // The inbound queues associated with the routing profile. If no queue is added, // the agent can make only outbound calls. The limit of 10 array members applies to // the maximum number of RoutingProfileQueueConfig objects that can be passed diff --git a/service/connect/api_op_UpdateRoutingProfileAgentAvailabilityTimer.go b/service/connect/api_op_UpdateRoutingProfileAgentAvailabilityTimer.go new file mode 100644 index 00000000000..2eae7a04b4e --- /dev/null +++ b/service/connect/api_op_UpdateRoutingProfileAgentAvailabilityTimer.go @@ -0,0 +1,270 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package connect + +import ( + "context" + "errors" + "fmt" + "github.com/aws/aws-sdk-go-v2/aws" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + internalauth "github.com/aws/aws-sdk-go-v2/internal/auth" + "github.com/aws/aws-sdk-go-v2/service/connect/types" + smithyendpoints "github.com/aws/smithy-go/endpoints" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Whether agents with this routing profile will have their routing order +// calculated based on time since their last inbound contact or longest idle time. +func (c *Client) UpdateRoutingProfileAgentAvailabilityTimer(ctx context.Context, params *UpdateRoutingProfileAgentAvailabilityTimerInput, optFns ...func(*Options)) (*UpdateRoutingProfileAgentAvailabilityTimerOutput, error) { + if params == nil { + params = &UpdateRoutingProfileAgentAvailabilityTimerInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "UpdateRoutingProfileAgentAvailabilityTimer", params, optFns, c.addOperationUpdateRoutingProfileAgentAvailabilityTimerMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*UpdateRoutingProfileAgentAvailabilityTimerOutput) + out.ResultMetadata = metadata + return out, nil +} + +type UpdateRoutingProfileAgentAvailabilityTimerInput struct { + + // Whether agents with this routing profile will have their routing order + // calculated based on time since their last inbound contact or longest idle time. + // + // This member is required. + AgentAvailabilityTimer types.AgentAvailabilityTimer + + // The identifier of the Amazon Connect instance. You can find the instance ID (https://docs.aws.amazon.com/connect/latest/adminguide/find-instance-arn.html) + // in the Amazon Resource Name (ARN) of the instance. + // + // This member is required. + InstanceId *string + + // The identifier of the routing profile. + // + // This member is required. + RoutingProfileId *string + + noSmithyDocumentSerde +} + +type UpdateRoutingProfileAgentAvailabilityTimerOutput struct { + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationUpdateRoutingProfileAgentAvailabilityTimerMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpUpdateRoutingProfileAgentAvailabilityTimer{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpUpdateRoutingProfileAgentAvailabilityTimer{}, middleware.After) + if err != nil { + return err + } + if err = addlegacyEndpointContextSetter(stack, options); err != nil { + return err + } + if err = addSetLoggerMiddleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { + return err + } + if err = addResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { + return err + } + if err = addRetryMiddlewares(stack, options); err != nil { + return err + } + if err = addHTTPSignerV4Middleware(stack, options); err != nil { + return err + } + if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { + return err + } + if err = awsmiddleware.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 = addUpdateRoutingProfileAgentAvailabilityTimerResolveEndpointMiddleware(stack, options); err != nil { + return err + } + if err = addOpUpdateRoutingProfileAgentAvailabilityTimerValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opUpdateRoutingProfileAgentAvailabilityTimer(options.Region), middleware.Before); err != nil { + return err + } + if err = awsmiddleware.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 = addendpointDisableHTTPSMiddleware(stack, options); err != nil { + return err + } + return nil +} + +func newServiceMetadataMiddleware_opUpdateRoutingProfileAgentAvailabilityTimer(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "connect", + OperationName: "UpdateRoutingProfileAgentAvailabilityTimer", + } +} + +type opUpdateRoutingProfileAgentAvailabilityTimerResolveEndpointMiddleware struct { + EndpointResolver EndpointResolverV2 + BuiltInResolver builtInParameterResolver +} + +func (*opUpdateRoutingProfileAgentAvailabilityTimerResolveEndpointMiddleware) ID() string { + return "ResolveEndpointV2" +} + +func (m *opUpdateRoutingProfileAgentAvailabilityTimerResolveEndpointMiddleware) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( + out middleware.SerializeOutput, metadata middleware.Metadata, err error, +) { + if awsmiddleware.GetRequiresLegacyEndpoints(ctx) { + return next.HandleSerialize(ctx, in) + } + + req, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, fmt.Errorf("unknown transport type %T", in.Request) + } + + if m.EndpointResolver == nil { + return out, metadata, fmt.Errorf("expected endpoint resolver to not be nil") + } + + params := EndpointParameters{} + + m.BuiltInResolver.ResolveBuiltIns(¶ms) + + var resolvedEndpoint smithyendpoints.Endpoint + resolvedEndpoint, err = m.EndpointResolver.ResolveEndpoint(ctx, params) + if err != nil { + return out, metadata, fmt.Errorf("failed to resolve service endpoint, %w", err) + } + + req.URL = &resolvedEndpoint.URI + + for k := range resolvedEndpoint.Headers { + req.Header.Set( + k, + resolvedEndpoint.Headers.Get(k), + ) + } + + authSchemes, err := internalauth.GetAuthenticationSchemes(&resolvedEndpoint.Properties) + if err != nil { + var nfe *internalauth.NoAuthenticationSchemesFoundError + if errors.As(err, &nfe) { + // if no auth scheme is found, default to sigv4 + signingName := "connect" + signingRegion := m.BuiltInResolver.(*builtInResolver).Region + ctx = awsmiddleware.SetSigningName(ctx, signingName) + ctx = awsmiddleware.SetSigningRegion(ctx, signingRegion) + + } + var ue *internalauth.UnSupportedAuthenticationSchemeSpecifiedError + if errors.As(err, &ue) { + return out, metadata, fmt.Errorf( + "This operation requests signer version(s) %v but the client only supports %v", + ue.UnsupportedSchemes, + internalauth.SupportedSchemes, + ) + } + } + + for _, authScheme := range authSchemes { + switch authScheme.(type) { + case *internalauth.AuthenticationSchemeV4: + v4Scheme, _ := authScheme.(*internalauth.AuthenticationSchemeV4) + var signingName, signingRegion string + if v4Scheme.SigningName == nil { + signingName = "connect" + } else { + signingName = *v4Scheme.SigningName + } + if v4Scheme.SigningRegion == nil { + signingRegion = m.BuiltInResolver.(*builtInResolver).Region + } else { + signingRegion = *v4Scheme.SigningRegion + } + if v4Scheme.DisableDoubleEncoding != nil { + // The signer sets an equivalent value at client initialization time. + // Setting this context value will cause the signer to extract it + // and override the value set at client initialization time. + ctx = internalauth.SetDisableDoubleEncoding(ctx, *v4Scheme.DisableDoubleEncoding) + } + ctx = awsmiddleware.SetSigningName(ctx, signingName) + ctx = awsmiddleware.SetSigningRegion(ctx, signingRegion) + break + case *internalauth.AuthenticationSchemeV4A: + v4aScheme, _ := authScheme.(*internalauth.AuthenticationSchemeV4A) + if v4aScheme.SigningName == nil { + v4aScheme.SigningName = aws.String("connect") + } + if v4aScheme.DisableDoubleEncoding != nil { + // The signer sets an equivalent value at client initialization time. + // Setting this context value will cause the signer to extract it + // and override the value set at client initialization time. + ctx = internalauth.SetDisableDoubleEncoding(ctx, *v4aScheme.DisableDoubleEncoding) + } + ctx = awsmiddleware.SetSigningName(ctx, *v4aScheme.SigningName) + ctx = awsmiddleware.SetSigningRegion(ctx, v4aScheme.SigningRegionSet[0]) + break + case *internalauth.AuthenticationSchemeNone: + break + } + } + + return next.HandleSerialize(ctx, in) +} + +func addUpdateRoutingProfileAgentAvailabilityTimerResolveEndpointMiddleware(stack *middleware.Stack, options Options) error { + return stack.Serialize.Insert(&opUpdateRoutingProfileAgentAvailabilityTimerResolveEndpointMiddleware{ + EndpointResolver: options.EndpointResolverV2, + BuiltInResolver: &builtInResolver{ + Region: options.Region, + UseDualStack: options.EndpointOptions.UseDualStackEndpoint, + UseFIPS: options.EndpointOptions.UseFIPSEndpoint, + Endpoint: options.BaseEndpoint, + }, + }, "ResolveEndpoint", middleware.After) +} diff --git a/service/connect/deserializers.go b/service/connect/deserializers.go index 2bbd59fb90d..7bf581bc628 100644 --- a/service/connect/deserializers.go +++ b/service/connect/deserializers.go @@ -26273,6 +26273,107 @@ func awsRestjson1_deserializeOpErrorUpdateQuickConnectName(response *smithyhttp. } } +type awsRestjson1_deserializeOpUpdateRoutingProfileAgentAvailabilityTimer struct { +} + +func (*awsRestjson1_deserializeOpUpdateRoutingProfileAgentAvailabilityTimer) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpUpdateRoutingProfileAgentAvailabilityTimer) 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, awsRestjson1_deserializeOpErrorUpdateRoutingProfileAgentAvailabilityTimer(response, &metadata) + } + output := &UpdateRoutingProfileAgentAvailabilityTimerOutput{} + out.Result = output + + if _, err = io.Copy(ioutil.Discard, response.Body); err != nil { + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to discard response body, %w", err), + } + } + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorUpdateRoutingProfileAgentAvailabilityTimer(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 + + headerCode := response.Header.Get("X-Amzn-ErrorType") + if len(headerCode) != 0 { + errorCode = restjson.SanitizeErrorCode(headerCode) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + jsonCode, message, err := restjson.GetErrorInfo(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 err + } + + errorBody.Seek(0, io.SeekStart) + if len(headerCode) == 0 && len(jsonCode) != 0 { + errorCode = restjson.SanitizeErrorCode(jsonCode) + } + if len(message) != 0 { + errorMessage = message + } + + switch { + case strings.EqualFold("InternalServiceException", errorCode): + return awsRestjson1_deserializeErrorInternalServiceException(response, errorBody) + + case strings.EqualFold("InvalidParameterException", errorCode): + return awsRestjson1_deserializeErrorInvalidParameterException(response, errorBody) + + case strings.EqualFold("InvalidRequestException", errorCode): + return awsRestjson1_deserializeErrorInvalidRequestException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ThrottlingException", errorCode): + return awsRestjson1_deserializeErrorThrottlingException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + type awsRestjson1_deserializeOpUpdateRoutingProfileConcurrency struct { } @@ -38661,6 +38762,15 @@ func awsRestjson1_deserializeDocumentRoutingProfile(v **types.RoutingProfile, va for key, value := range shape { switch key { + case "AgentAvailabilityTimer": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AgentAvailabilityTimer to be of type string, got %T instead", value) + } + sv.AgentAvailabilityTimer = types.AgentAvailabilityTimer(jtv) + } + case "DefaultOutboundQueueId": if value != nil { jtv, ok := value.(string) diff --git a/service/connect/generated.json b/service/connect/generated.json index 05ea8c9f96a..ddf055b8a59 100644 --- a/service/connect/generated.json +++ b/service/connect/generated.json @@ -190,6 +190,7 @@ "api_op_UpdateQueueStatus.go", "api_op_UpdateQuickConnectConfig.go", "api_op_UpdateQuickConnectName.go", + "api_op_UpdateRoutingProfileAgentAvailabilityTimer.go", "api_op_UpdateRoutingProfileConcurrency.go", "api_op_UpdateRoutingProfileDefaultOutboundQueue.go", "api_op_UpdateRoutingProfileName.go", diff --git a/service/connect/serializers.go b/service/connect/serializers.go index 01d76b7d6cb..93aa24d99be 100644 --- a/service/connect/serializers.go +++ b/service/connect/serializers.go @@ -2421,6 +2421,11 @@ func awsRestjson1_serializeOpDocumentCreateRoutingProfileInput(v *CreateRoutingP object := value.Object() defer object.Close() + if len(v.AgentAvailabilityTimer) > 0 { + ok := object.Key("AgentAvailabilityTimer") + ok.String(string(v.AgentAvailabilityTimer)) + } + if v.DefaultOutboundQueueId != nil { ok := object.Key("DefaultOutboundQueueId") ok.String(*v.DefaultOutboundQueueId) @@ -16095,6 +16100,103 @@ func awsRestjson1_serializeOpDocumentUpdateQuickConnectNameInput(v *UpdateQuickC return nil } +type awsRestjson1_serializeOpUpdateRoutingProfileAgentAvailabilityTimer struct { +} + +func (*awsRestjson1_serializeOpUpdateRoutingProfileAgentAvailabilityTimer) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpUpdateRoutingProfileAgentAvailabilityTimer) 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.(*UpdateRoutingProfileAgentAvailabilityTimerInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/routing-profiles/{InstanceId}/{RoutingProfileId}/agent-availability-timer") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "POST" + var restEncoder *httpbinding.Encoder + if request.URL.RawPath == "" { + restEncoder, err = httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + } else { + request.URL.RawPath = smithyhttp.JoinPath(request.URL.RawPath, opPath) + restEncoder, err = httpbinding.NewEncoderWithRawPath(request.URL.Path, request.URL.RawPath, request.URL.RawQuery, request.Header) + } + + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsUpdateRoutingProfileAgentAvailabilityTimerInput(input, restEncoder); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentUpdateRoutingProfileAgentAvailabilityTimerInput(input, jsonEncoder.Value); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request, err = request.SetStream(bytes.NewReader(jsonEncoder.Bytes())); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if request.Request, err = restEncoder.Encode(request.Request); err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + in.Request = request + + return next.HandleSerialize(ctx, in) +} +func awsRestjson1_serializeOpHttpBindingsUpdateRoutingProfileAgentAvailabilityTimerInput(v *UpdateRoutingProfileAgentAvailabilityTimerInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.InstanceId == nil || len(*v.InstanceId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member InstanceId must not be empty")} + } + if v.InstanceId != nil { + if err := encoder.SetURI("InstanceId").String(*v.InstanceId); err != nil { + return err + } + } + + if v.RoutingProfileId == nil || len(*v.RoutingProfileId) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member RoutingProfileId must not be empty")} + } + if v.RoutingProfileId != nil { + if err := encoder.SetURI("RoutingProfileId").String(*v.RoutingProfileId); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeOpDocumentUpdateRoutingProfileAgentAvailabilityTimerInput(v *UpdateRoutingProfileAgentAvailabilityTimerInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.AgentAvailabilityTimer) > 0 { + ok := object.Key("AgentAvailabilityTimer") + ok.String(string(v.AgentAvailabilityTimer)) + } + + return nil +} + type awsRestjson1_serializeOpUpdateRoutingProfileConcurrency struct { } diff --git a/service/connect/types/enums.go b/service/connect/types/enums.go index 3c931b732b8..17d7351b510 100644 --- a/service/connect/types/enums.go +++ b/service/connect/types/enums.go @@ -24,6 +24,24 @@ func (ActionType) Values() []ActionType { } } +type AgentAvailabilityTimer string + +// Enum values for AgentAvailabilityTimer +const ( + AgentAvailabilityTimerTimeSinceLastActivity AgentAvailabilityTimer = "TIME_SINCE_LAST_ACTIVITY" + AgentAvailabilityTimerTimeSinceLastInbound AgentAvailabilityTimer = "TIME_SINCE_LAST_INBOUND" +) + +// Values returns all known values for AgentAvailabilityTimer. 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 (AgentAvailabilityTimer) Values() []AgentAvailabilityTimer { + return []AgentAvailabilityTimer{ + "TIME_SINCE_LAST_ACTIVITY", + "TIME_SINCE_LAST_INBOUND", + } +} + type AgentStatusState string // Enum values for AgentStatusState diff --git a/service/connect/types/types.go b/service/connect/types/types.go index 09ad2b858aa..a1c705e7384 100644 --- a/service/connect/types/types.go +++ b/service/connect/types/types.go @@ -2791,6 +2791,10 @@ type ResourceTagsSearchCriteria struct { // Contains information about a routing profile. type RoutingProfile struct { + // Whether agents with this routing profile will have their routing order + // calculated based on time since their last inbound contact or longest idle time. + AgentAvailabilityTimer AgentAvailabilityTimer + // The identifier of the default outbound queue for this routing profile. DefaultOutboundQueueId *string diff --git a/service/connect/validators.go b/service/connect/validators.go index 055b94d3c65..7de202c08c9 100644 --- a/service/connect/validators.go +++ b/service/connect/validators.go @@ -3550,6 +3550,26 @@ func (m *validateOpUpdateQuickConnectName) HandleInitialize(ctx context.Context, return next.HandleInitialize(ctx, in) } +type validateOpUpdateRoutingProfileAgentAvailabilityTimer struct { +} + +func (*validateOpUpdateRoutingProfileAgentAvailabilityTimer) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpUpdateRoutingProfileAgentAvailabilityTimer) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*UpdateRoutingProfileAgentAvailabilityTimerInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpUpdateRoutingProfileAgentAvailabilityTimerInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpUpdateRoutingProfileConcurrency struct { } @@ -4558,6 +4578,10 @@ func addOpUpdateQuickConnectNameValidationMiddleware(stack *middleware.Stack) er return stack.Initialize.Add(&validateOpUpdateQuickConnectName{}, middleware.After) } +func addOpUpdateRoutingProfileAgentAvailabilityTimerValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpUpdateRoutingProfileAgentAvailabilityTimer{}, middleware.After) +} + func addOpUpdateRoutingProfileConcurrencyValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpUpdateRoutingProfileConcurrency{}, middleware.After) } @@ -9240,6 +9264,27 @@ func validateOpUpdateQuickConnectNameInput(v *UpdateQuickConnectNameInput) error } } +func validateOpUpdateRoutingProfileAgentAvailabilityTimerInput(v *UpdateRoutingProfileAgentAvailabilityTimerInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "UpdateRoutingProfileAgentAvailabilityTimerInput"} + if v.InstanceId == nil { + invalidParams.Add(smithy.NewErrParamRequired("InstanceId")) + } + if v.RoutingProfileId == nil { + invalidParams.Add(smithy.NewErrParamRequired("RoutingProfileId")) + } + if len(v.AgentAvailabilityTimer) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("AgentAvailabilityTimer")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpUpdateRoutingProfileConcurrencyInput(v *UpdateRoutingProfileConcurrencyInput) error { if v == nil { return nil diff --git a/service/datasync/api_op_CreateLocationNfs.go b/service/datasync/api_op_CreateLocationNfs.go index 4db7b4417a5..2621035f939 100644 --- a/service/datasync/api_op_CreateLocationNfs.go +++ b/service/datasync/api_op_CreateLocationNfs.go @@ -16,8 +16,13 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates an endpoint for an Network File System (NFS) file server that DataSync -// can use for a data transfer. +// Creates an endpoint for a Network File System (NFS) file server that DataSync +// can use for a data transfer. For more information, see Configuring transfers to +// or from an NFS file server (https://docs.aws.amazon.com/datasync/latest/userguide/create-nfs-location.html) +// . If you're copying data to or from an Snowcone device, you can also use +// CreateLocationNfs to create your transfer location. For more information, see +// Configuring transfers with Snowcone (https://docs.aws.amazon.com/datasync/latest/userguide/nfs-on-snowcone.html) +// . func (c *Client) CreateLocationNfs(ctx context.Context, params *CreateLocationNfsInput, optFns ...func(*Options)) (*CreateLocationNfsOutput, error) { if params == nil { params = &CreateLocationNfsInput{} @@ -36,44 +41,30 @@ func (c *Client) CreateLocationNfs(ctx context.Context, params *CreateLocationNf // CreateLocationNfsRequest type CreateLocationNfsInput struct { - // Specifies the Amazon Resource Names (ARNs) of agents that DataSync uses to - // connect to your NFS file server. If you are copying data to or from your - // Snowcone device, see NFS Server on Snowcone (https://docs.aws.amazon.com/datasync/latest/userguide/create-nfs-location.html#nfs-on-snowcone) - // for more information. + // Specifies the Amazon Resource Name (ARN) of the DataSync agent that want to + // connect to your NFS file server. You can specify more than one agent. For more + // information, see Using multiple agents for transfers (https://docs.aws.amazon.com/datasync/latest/userguide/multiple-agents.html) + // . // // This member is required. OnPremConfig *types.OnPremConfig - // Specifies the IP address or domain name of your NFS file server. An agent that - // is installed on-premises uses this hostname to mount the NFS server in a - // network. If you are copying data to or from your Snowcone device, see NFS - // Server on Snowcone (https://docs.aws.amazon.com/datasync/latest/userguide/create-nfs-location.html#nfs-on-snowcone) - // for more information. You must specify be an IP version 4 address or Domain Name - // System (DNS)-compliant name. + // Specifies the Domain Name System (DNS) name or IP version 4 address of the NFS + // file server that your DataSync agent connects to. // // This member is required. ServerHostname *string - // Specifies the subdirectory in the NFS file server that DataSync transfers to or - // from. The NFS path should be a path that's exported by the NFS server, or a - // subdirectory of that path. The path should be such that it can be mounted by - // other NFS clients in your network. To see all the paths exported by your NFS - // server, run " showmount -e nfs-server-name " from an NFS client that has access - // to your server. You can specify any directory that appears in the results, and - // any subdirectory of that directory. Ensure that the NFS export is accessible - // without Kerberos authentication. To transfer all the data in the folder you - // specified, DataSync needs to have permissions to read all the data. To ensure - // this, either configure the NFS export with no_root_squash, or ensure that the - // permissions for all of the files that you want DataSync allow read access for - // all users. Doing either enables the agent to read the files. For the agent to - // access directories, you must additionally enable all execute access. If you are - // copying data to or from your Snowcone device, see NFS Server on Snowcone (https://docs.aws.amazon.com/datasync/latest/userguide/create-nfs-location.html#nfs-on-snowcone) - // for more information. + // Specifies the export path in your NFS file server that you want DataSync to + // mount. This path (or a subdirectory of the path) is where DataSync transfers + // data to or from. For information on configuring an export for DataSync, see + // Accessing NFS file servers (https://docs.aws.amazon.com/datasync/latest/userguide/create-nfs-location.html#accessing-nfs) + // . // // This member is required. Subdirectory *string - // Specifies the mount options that DataSync can use to mount your NFS share. + // Specifies the options that DataSync can use to mount your NFS file server. MountOptions *types.NfsMountOptions // Specifies labels that help you categorize, filter, and search for your Amazon diff --git a/service/datasync/api_op_DescribeLocationNfs.go b/service/datasync/api_op_DescribeLocationNfs.go index e8e80a8c1ad..e0f924c5678 100644 --- a/service/datasync/api_op_DescribeLocationNfs.go +++ b/service/datasync/api_op_DescribeLocationNfs.go @@ -17,7 +17,8 @@ import ( "time" ) -// Returns metadata, such as the path information, about an NFS location. +// Provides details about how an DataSync transfer location for a Network File +// System (NFS) file server is configured. func (c *Client) DescribeLocationNfs(ctx context.Context, params *DescribeLocationNfsInput, optFns ...func(*Options)) (*DescribeLocationNfsOutput, error) { if params == nil { params = &DescribeLocationNfsInput{} @@ -36,7 +37,8 @@ func (c *Client) DescribeLocationNfs(ctx context.Context, params *DescribeLocati // DescribeLocationNfsRequest type DescribeLocationNfsInput struct { - // The Amazon Resource Name (ARN) of the NFS location to describe. + // Specifies the Amazon Resource Name (ARN) of the NFS location that you want + // information about. // // This member is required. LocationArn *string @@ -47,20 +49,19 @@ type DescribeLocationNfsInput struct { // DescribeLocationNfsResponse type DescribeLocationNfsOutput struct { - // The time that the NFS location was created. + // The time when the NFS location was created. CreationTime *time.Time - // The Amazon Resource Name (ARN) of the NFS location that was described. + // The ARN of the NFS location. LocationArn *string - // The URL of the source NFS location that was described. + // The URL of the NFS location. LocationUri *string - // The mount options that DataSync uses to mount your NFS share. + // The mount options that DataSync uses to mount your NFS file server. MountOptions *types.NfsMountOptions - // A list of Amazon Resource Names (ARNs) of agents to use for a Network File - // System (NFS) location. + // The DataSync agents that are connecting to a Network File System (NFS) location. OnPremConfig *types.OnPremConfig // Metadata pertaining to the operation's result. diff --git a/service/datasync/api_op_UpdateLocationNfs.go b/service/datasync/api_op_UpdateLocationNfs.go index 1fc3b969c2f..3285546be51 100644 --- a/service/datasync/api_op_UpdateLocationNfs.go +++ b/service/datasync/api_op_UpdateLocationNfs.go @@ -16,9 +16,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Updates some of the parameters of a previously created location for Network -// File System (NFS) access. For information about creating an NFS location, see -// Creating a location for NFS (https://docs.aws.amazon.com/datasync/latest/userguide/create-nfs-location.html) +// Modifies some configurations of the Network File System (NFS) transfer location +// that you're using with DataSync. For more information, see Configuring +// transfers to or from an NFS file server (https://docs.aws.amazon.com/datasync/latest/userguide/create-nfs-location.html) // . func (c *Client) UpdateLocationNfs(ctx context.Context, params *UpdateLocationNfsInput, optFns ...func(*Options)) (*UpdateLocationNfsOutput, error) { if params == nil { @@ -37,8 +37,8 @@ func (c *Client) UpdateLocationNfs(ctx context.Context, params *UpdateLocationNf type UpdateLocationNfsInput struct { - // Specifies the Amazon Resource Name (ARN) of the NFS location that you want to - // update. + // Specifies the Amazon Resource Name (ARN) of the NFS transfer location that you + // want to update. // // This member is required. LocationArn *string @@ -46,26 +46,14 @@ type UpdateLocationNfsInput struct { // Specifies how DataSync can access a location using the NFS protocol. MountOptions *types.NfsMountOptions - // A list of Amazon Resource Names (ARNs) of agents to use for a Network File - // System (NFS) location. + // The DataSync agents that are connecting to a Network File System (NFS) location. OnPremConfig *types.OnPremConfig - // Specifies the subdirectory in your NFS file system that DataSync uses to read - // from or write to during a transfer. The NFS path should be exported by the NFS - // server, or a subdirectory of that path. The path should be such that it can be - // mounted by other NFS clients in your network. To see all the paths exported by - // your NFS server, run " showmount -e nfs-server-name " from an NFS client that - // has access to your server. You can specify any directory that appears in the - // results, and any subdirectory of that directory. Ensure that the NFS export is - // accessible without Kerberos authentication. To transfer all the data in the - // folder that you specified, DataSync must have permissions to read all the data. - // To ensure this, either configure the NFS export with no_root_squash , or ensure - // that the files you want DataSync to access have permissions that allow read - // access for all users. Doing either option enables the agent to read the files. - // For the agent to access directories, you must additionally enable all execute - // access. If you are copying data to or from your Snowcone device, see NFS Server - // on Snowcone (https://docs.aws.amazon.com/datasync/latest/userguide/create-nfs-location.html#nfs-on-snowcone) - // for more information. + // Specifies the export path in your NFS file server that you want DataSync to + // mount. This path (or a subdirectory of the path) is where DataSync transfers + // data to or from. For information on configuring an export for DataSync, see + // Accessing NFS file servers (https://docs.aws.amazon.com/datasync/latest/userguide/create-nfs-location.html#accessing-nfs) + // . Subdirectory *string noSmithyDocumentSerde diff --git a/service/datasync/deserializers.go b/service/datasync/deserializers.go index 14f5aa286e9..9e73f700035 100644 --- a/service/datasync/deserializers.go +++ b/service/datasync/deserializers.go @@ -7081,6 +7081,19 @@ func awsAwsjson11_deserializeDocumentCapacity(v **types.Capacity, value interfac for key, value := range shape { switch key { + case "ClusterCloudStorageUsed": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected NonNegativeLong to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.ClusterCloudStorageUsed = ptr.Int64(i64) + } + case "LogicalUsed": if value != nil { jtv, ok := value.(json.Number) @@ -8767,6 +8780,19 @@ func awsAwsjson11_deserializeDocumentNetAppONTAPCluster(v **types.NetAppONTAPClu sv.ClusterBlockStorageUsed = ptr.Int64(i64) } + case "ClusterCloudStorageUsed": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected NonNegativeLong to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.ClusterCloudStorageUsed = ptr.Int64(i64) + } + case "ClusterName": if value != nil { jtv, ok := value.(string) diff --git a/service/datasync/types/types.go b/service/datasync/types/types.go index a78b4d1a48a..b15f6dfcab8 100644 --- a/service/datasync/types/types.go +++ b/service/datasync/types/types.go @@ -46,6 +46,10 @@ type AzureBlobSasConfiguration struct { // volume). type Capacity struct { + // The amount of space in the cluster that's in cloud storage (for example, if + // you're using data tiering). + ClusterCloudStorageUsed *int64 + // The amount of space that's being used in a storage system resource without // accounting for compression or deduplication. LogicalUsed *int64 @@ -382,6 +386,10 @@ type NetAppONTAPCluster struct { // The storage space that's being used in a cluster. ClusterBlockStorageUsed *int64 + // The amount of space in the cluster that's in cloud storage (for example, if + // you're using data tiering). + ClusterCloudStorageUsed *int64 + // The name of the cluster. ClusterName *string @@ -548,11 +556,11 @@ type NfsMountOptions struct { noSmithyDocumentSerde } -// A list of Amazon Resource Names (ARNs) of agents to use for a Network File -// System (NFS) location. +// The DataSync agents that are connecting to a Network File System (NFS) location. type OnPremConfig struct { - // ARNs of the agents to use for an NFS location. + // The Amazon Resource Names (ARNs) of the agents connecting to a transfer + // location. // // This member is required. AgentArns []string diff --git a/service/ecs/api_op_CreateTaskSet.go b/service/ecs/api_op_CreateTaskSet.go index 365de40e13b..bcc6e8f61ca 100644 --- a/service/ecs/api_op_CreateTaskSet.go +++ b/service/ecs/api_op_CreateTaskSet.go @@ -49,7 +49,8 @@ type CreateTaskSetInput struct { // This member is required. Service *string - // The task definition for the tasks in the task set to use. + // The task definition for the tasks in the task set to use. If a revision isn't + // specified, the latest ACTIVE revision is used. // // This member is required. TaskDefinition *string diff --git a/service/ecs/api_op_DescribeTasks.go b/service/ecs/api_op_DescribeTasks.go index e0e4735f26e..bea2b581c71 100644 --- a/service/ecs/api_op_DescribeTasks.go +++ b/service/ecs/api_op_DescribeTasks.go @@ -21,7 +21,10 @@ import ( ) // Describes a specified task or tasks. Currently, stopped tasks appear in the -// returned results for at least one hour. +// returned results for at least one hour. If you have tasks with tags, and then +// delete the cluster, the tagged tasks are returned in the response. If you create +// a new cluster with the same name as the deleted cluster, the tagged tasks are +// not included in the response. func (c *Client) DescribeTasks(ctx context.Context, params *DescribeTasksInput, optFns ...func(*Options)) (*DescribeTasksOutput, error) { if params == nil { params = &DescribeTasksInput{} diff --git a/service/ecs/api_op_ListTasks.go b/service/ecs/api_op_ListTasks.go index 98475a3d01c..ed3f306bf31 100644 --- a/service/ecs/api_op_ListTasks.go +++ b/service/ecs/api_op_ListTasks.go @@ -19,8 +19,7 @@ import ( // Returns a list of tasks. You can filter the results by cluster, task definition // family, container instance, launch type, what IAM principal started the task, or // by the desired status of the task. Recently stopped tasks might appear in the -// returned results. Currently, stopped tasks appear in the returned results for at -// least one hour. +// returned results. func (c *Client) ListTasks(ctx context.Context, params *ListTasksInput, optFns ...func(*Options)) (*ListTasksOutput, error) { if params == nil { params = &ListTasksInput{} diff --git a/service/ecs/api_op_UpdateService.go b/service/ecs/api_op_UpdateService.go index a183eeba839..c899c186bd9 100644 --- a/service/ecs/api_op_UpdateService.go +++ b/service/ecs/api_op_UpdateService.go @@ -94,13 +94,12 @@ import ( // number of running tasks for this service. // // You must have a service-linked role when you update any of the following -// service properties. If you specified a custom role when you created the service, -// Amazon ECS automatically replaces the roleARN (https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_Service.html#ECS-Type-Service-roleArn) -// associated with the service with the ARN of your service-linked role. For more -// information, see Service-linked roles (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html) -// in the Amazon Elastic Container Service Developer Guide. -// - loadBalancers, +// service properties: +// - loadBalancers , // - serviceRegistries +// +// For more information about the role see the CreateService request parameter role (https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html#ECS-CreateService-request-role) +// . func (c *Client) UpdateService(ctx context.Context, params *UpdateServiceInput, optFns ...func(*Options)) (*UpdateServiceOutput, error) { if params == nil { params = &UpdateServiceInput{} diff --git a/service/ecs/types/types.go b/service/ecs/types/types.go index 7ca9ce25950..1e6f28f14e9 100644 --- a/service/ecs/types/types.go +++ b/service/ecs/types/types.go @@ -77,12 +77,13 @@ type Attribute struct { // The details of the Auto Scaling group for the capacity provider. type AutoScalingGroupProvider struct { - // The Amazon Resource Name (ARN) that identifies the Auto Scaling group. + // The Amazon Resource Name (ARN) that identifies the Auto Scaling group, or the + // Auto Scaling group name. // // This member is required. AutoScalingGroupArn *string - // The managed scaling settings for the Auto Scaling group capacity provider. + // he managed scaling settings for the Auto Scaling group capacity provider. ManagedScaling *ManagedScaling // The managed termination protection setting to use for the Auto Scaling group @@ -567,16 +568,25 @@ type ContainerDefinition struct { // Docker as 0 , which Windows interprets as 1% of one CPU. Cpu int32 - // A list of ARNs in SSM or Amazon S3 to a credential spec ( credspec code>) file - // that configures a container for Active Directory authentication. This parameter - // is only used with domainless authentication. The format for each ARN is - // credentialspecdomainless:MyARN . Replace MyARN with the ARN in SSM or Amazon - // S3. The credspec must provide a ARN in Secrets Manager for a secret containing - // the username, password, and the domain to connect to. For better security, the - // instance isn't joined to the domain for domainless authentication. Other - // applications on the instance can't use the domainless credentials. You can use - // this parameter to run tasks on the same instance, even it the tasks need to join - // different domains. For more information, see Using gMSAs for Windows Containers (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html) + // A list of ARNs in SSM or Amazon S3 to a credential spec ( CredSpec ) file that + // configures the container for Active Directory authentication. We recommend that + // you use this parameter instead of the dockerSecurityOptions . The maximum number + // of ARNs is 1. There are two formats for each ARN. credentialspecdomainless:MyARN + // You use credentialspecdomainless:MyARN to provide a CredSpec with an additional + // section for a secret in Secrets Manager. You provide the login credentials to + // the domain in the secret. Each task that runs on any container instance can join + // different domains. You can use this format without joining the container + // instance to a domain. credentialspec:MyARN You use credentialspec:MyARN to + // provide a CredSpec for a single domain. You must join the container instance to + // the domain before you start any tasks that use this task definition. In both + // formats, replace MyARN with the ARN in SSM or Amazon S3. If you provide a + // credentialspecdomainless:MyARN , the credspec must provide a ARN in Secrets + // Manager for a secret containing the username, password, and the domain to + // connect to. For better security, the instance isn't joined to the domain for + // domainless authentication. Other applications on the instance can't use the + // domainless credentials. You can use this parameter to run tasks on the same + // instance, even it the tasks need to join different domains. For more + // information, see Using gMSAs for Windows Containers (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html) // and Using gMSAs for Linux Containers (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/linux-gmsa.html) // . CredentialSpecs []string @@ -954,7 +964,8 @@ type ContainerDefinition struct { // of the ecs-init package. If your container instances are launched from version // 20190301 or later, then they contain the required versions of the container // agent and ecs-init . For more information, see Amazon ECS-optimized Linux AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) - // in the Amazon Elastic Container Service Developer Guide. + // in the Amazon Elastic Container Service Developer Guide. The valid values are + // 2-120 seconds. StartTimeout *int32 // Time duration (in seconds) to wait before the container is forcefully killed if @@ -978,7 +989,8 @@ type ContainerDefinition struct { // the ecs-init package. If your container instances are launched from version // 20190301 or later, then they contain the required versions of the container // agent and ecs-init . For more information, see Amazon ECS-optimized Linux AMI (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) - // in the Amazon Elastic Container Service Developer Guide. + // in the Amazon Elastic Container Service Developer Guide. The valid values are + // 2-120 seconds. StopTimeout *int32 // A list of namespaced kernel parameters to set in the container. This parameter @@ -1227,7 +1239,10 @@ type ContainerInstanceHealthStatus struct { // The overrides that are sent to a container. An empty container override can be // passed in. An example of an empty container override is {"containerOverrides": // [ ] } . If a non-empty container override is specified, the name parameter must -// be included. +// be included. You can use Secrets Manager or Amazon Web Services Systems Manager +// Parameter Store to store the sensitive data. For more information, see Retrieve +// secrets through environment variables (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/secrets-envvar.html) +// in the Amazon ECS Developer Guide. type ContainerOverride struct { // The command to send to the container that overrides the default command from @@ -1433,6 +1448,8 @@ type DeploymentAlarms struct { // state and stop launching new tasks. You can also configure Amazon ECS to roll // back your service to the last completed deployment after a failure. For more // information, see Rolling update (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-ecs.html) +// in the Amazon Elastic Container Service Developer Guide. For more information +// about API failure reasons, see API failure reasons (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/api_failures_messages.html) // in the Amazon Elastic Container Service Developer Guide. type DeploymentCircuitBreaker struct { @@ -1692,8 +1709,8 @@ type EFSVolumeConfiguration struct { // 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. This parameter is only -// supported for tasks hosted on Fargate using the following platform versions: +// in the Amazon Elastic Container Service Developer Guide. 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. type EnvironmentFile struct { @@ -2199,18 +2216,16 @@ type LoadBalancer struct { ContainerPort *int32 // The name of the load balancer to associate with the Amazon ECS service or task - // set. A load balancer name is only specified when using a Classic Load Balancer. - // If you are using an Application Load Balancer or a Network Load Balancer the - // load balancer name parameter should be omitted. + // set. If you are using an Application Load Balancer or a Network Load Balancer + // the load balancer name parameter should be omitted. LoadBalancerName *string // The full Amazon Resource Name (ARN) of the Elastic Load Balancing target group // or groups associated with a service or task set. A target group ARN is only - // specified when using an Application Load Balancer or Network Load Balancer. If - // you're using a Classic Load Balancer, omit the target group ARN. For services - // using the ECS deployment controller, you can specify one or multiple target - // groups. For more information, see Registering multiple target groups with a - // service (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/register-multiple-targetgroups.html) + // specified when using an Application Load Balancer or Network Load Balancer. For + // services using the ECS deployment controller, you can specify one or multiple + // target groups. For more information, see Registering multiple target groups + // with a service (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/register-multiple-targetgroups.html) // in the Amazon Elastic Container Service Developer Guide. For services using the // CODE_DEPLOY deployment controller, you're required to define two target groups // for the load balancer. For more information, see Blue/green deployment with @@ -2238,8 +2253,11 @@ type LoadBalancer struct { // in the Docker documentation. Understand the following when specifying a log // configuration for your containers. // - Amazon ECS currently supports a subset of the logging drivers available to -// the Docker daemon (shown in the valid values below). Additional log drivers may -// be available in future releases of the Amazon ECS container agent. +// the Docker daemon. Additional log drivers may be available in future releases of +// the Amazon ECS container agent. For tasks on Fargate, the supported log drivers +// are awslogs , splunk , and awsfirelens . For tasks hosted on Amazon EC2 +// instances, the supported log drivers are awslogs , fluentd , gelf , json-file +// , journald , logentries , syslog , splunk , and awsfirelens . // - This parameter requires version 1.18 of the Docker Remote API or greater on // your container instance. // - For tasks that are hosted on Amazon EC2 instances, the Amazon ECS container @@ -2346,7 +2364,7 @@ type ManagedScaling struct { // The maximum number of Amazon EC2 instances that Amazon ECS will scale out at // one time. The scale in process is not affected by this parameter. If this - // parameter is omitted, the default value of 1 is used. + // parameter is omitted, the default value of 10000 is used. MaximumScalingStepSize *int32 // The minimum number of Amazon EC2 instances that Amazon ECS will scale out at @@ -2633,15 +2651,15 @@ type PortMapping struct { // instance operating system and Docker version. The default ephemeral port range // for Docker version 1.6.0 and later is listed on the instance under // /proc/sys/net/ipv4/ip_local_port_range . If this kernel parameter is - // unavailable, the default ephemeral port range from 49153 through 65535 is used. - // Do not attempt to specify a host port in the ephemeral port range as these are - // reserved for automatic assignment. In general, ports below 32768 are outside of - // the ephemeral port range. The default reserved ports are 22 for SSH, the Docker - // ports 2375 and 2376, and the Amazon ECS container agent ports 51678-51680. Any - // host port that was previously specified in a running task is also reserved while - // the task is running. That is, after a task stops, the host port is released. The - // current reserved ports are displayed in the remainingResources of - // DescribeContainerInstances (https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeContainerInstances.html) + // unavailable, the default ephemeral port range from 49153 through 65535 (Linux) + // or 49152 through 65535 (Windows) is used. Do not attempt to specify a host port + // in the ephemeral port range as these are reserved for automatic assignment. In + // general, ports below 32768 are outside of the ephemeral port range. The default + // reserved ports are 22 for SSH, the Docker ports 2375 and 2376, and the Amazon + // ECS container agent ports 51678-51680. Any host port that was previously + // specified in a running task is also reserved while the task is running. That is, + // after a task stops, the host port is released. The current reserved ports are + // displayed in the remainingResources of DescribeContainerInstances (https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeContainerInstances.html) // output. A container instance can have up to 100 reserved ports at a time. This // number includes the default reserved ports. Automatically assigned ports aren't // included in the 100 reserved ports quota. @@ -3090,8 +3108,11 @@ type ServiceConnectConfiguration struct { // in the Docker documentation. Understand the following when specifying a log // configuration for your containers. // - Amazon ECS currently supports a subset of the logging drivers available to - // the Docker daemon (shown in the valid values below). Additional log drivers may - // be available in future releases of the Amazon ECS container agent. + // the Docker daemon. Additional log drivers may be available in future releases of + // the Amazon ECS container agent. For tasks on Fargate, the supported log drivers + // are awslogs , splunk , and awsfirelens . For tasks hosted on Amazon EC2 + // instances, the supported log drivers are awslogs , fluentd , gelf , json-file + // , journald , logentries , syslog , splunk , and awsfirelens . // - This parameter requires version 1.18 of the Docker Remote API or greater on // your container instance. // - For tasks that are hosted on Amazon EC2 instances, the Amazon ECS container @@ -3495,7 +3516,9 @@ type Task struct { StartedBy *string // The stop code indicating why a task was stopped. The stoppedReason might - // contain additional details. The following are valid values: + // contain additional details. For more information about stop code, see Stopped + // tasks error codes (https://docs.aws.amazon.com/AmazonECS/latest/userguide/stopped-task-error-codes.html) + // in the Amazon ECS User Guide. The following are valid values: // - TaskFailedToStart // - EssentialContainerExited // - UserInitiated @@ -3513,7 +3536,7 @@ type Task struct { StoppedReason *string // The Unix timestamp for the time when the task stops. More specifically, it's - // for the time when the task transitions from the RUNNING state to STOPPED . + // for the time when the task transitions from the RUNNING state to STOPPING . StoppingAt *time.Time // The metadata that you apply to the task to help you categorize and organize the @@ -3734,8 +3757,9 @@ type TaskDefinition struct { // supported for tasks run on Fargate. RequiresAttributes []Attribute - // The task launch types the task definition was validated against. For more - // information, see Amazon ECS launch types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) + // The task launch types the task definition was validated against. The valid + // values are EC2 , FARGATE , and EXTERNAL . For more information, see Amazon ECS + // launch types (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) // in the Amazon Elastic Container Service Developer Guide. RequiresCompatibilities []Compatibility @@ -4071,7 +4095,8 @@ type Volume struct { // The name of the volume. Up to 255 letters (uppercase and lowercase), numbers, // underscores, and hyphens are allowed. This name is referenced in the - // sourceVolume parameter of container definition mountPoints . + // sourceVolume parameter of container definition mountPoints . This is required + // wwhen you use an Amazon EFS volume. Name *string noSmithyDocumentSerde diff --git a/service/route53resolver/internal/endpoints/endpoints.go b/service/route53resolver/internal/endpoints/endpoints.go index eefd9e15c86..acfd6f11e3c 100644 --- a/service/route53resolver/internal/endpoints/endpoints.go +++ b/service/route53resolver/internal/endpoints/endpoints.go @@ -199,6 +199,9 @@ var defaultPartitions = endpoints.Partitions{ endpoints.EndpointKey{ Region: "eu-west-3", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "il-central-1", + }: endpoints.Endpoint{}, endpoints.EndpointKey{ Region: "me-central-1", }: endpoints.Endpoint{}, diff --git a/service/sagemaker/deserializers.go b/service/sagemaker/deserializers.go index 695f299e792..bd341951bd8 100644 --- a/service/sagemaker/deserializers.go +++ b/service/sagemaker/deserializers.go @@ -70650,6 +70650,11 @@ func awsAwsjson11_deserializeDocumentTransformJob(v **types.TransformJob, value } } + case "DataCaptureConfig": + if err := awsAwsjson11_deserializeDocumentBatchDataCaptureConfig(&sv.DataCaptureConfig, value); err != nil { + return err + } + case "DataProcessing": if err := awsAwsjson11_deserializeDocumentDataProcessing(&sv.DataProcessing, value); err != nil { return err diff --git a/service/sagemaker/types/types.go b/service/sagemaker/types/types.go index 720b6b5fcd8..c56fe6ae4ef 100644 --- a/service/sagemaker/types/types.go +++ b/service/sagemaker/types/types.go @@ -14024,6 +14024,10 @@ type TransformJob struct { // A timestamp that shows when the transform Job was created. CreationTime *time.Time + // Configuration to control how SageMaker captures inference data for batch + // transform jobs. + DataCaptureConfig *BatchDataCaptureConfig + // The data structure used to specify the data to be used for inference in a batch // transform job and to associate the data that is relevant to the prediction // results in the output. The input filter provided allows you to exclude input