From 1bd13c6a9064b55969283c20805ca353b35a62b1 Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Mon, 25 Apr 2022 18:10:48 +0000 Subject: [PATCH] Regenerated Clients --- .../0b3b19623f664cf1a1bff2c4304a3e80.json | 8 + .../2882cb5d45984d01b1a5656a1074722f.json | 8 + .../ac5bc49ffb5240399a50416d11b18e6c.json | 8 + .../cc561540b7ff4bd9bc620dcefe5a7591.json | 8 + .../cf75c6b0a06f4be1909c0300c2ad8a7c.json | 8 + service/connect/api_op_ClaimPhoneNumber.go | 2 +- service/connect/api_op_DescribePhoneNumber.go | 2 +- ...i_op_DisassociatePhoneNumberContactFlow.go | 2 +- service/connect/api_op_ReleasePhoneNumber.go | 2 +- service/connect/api_op_SearchUsers.go | 222 +++++++++++ service/connect/api_op_UpdatePhoneNumber.go | 4 +- service/connect/deserializers.go | 369 ++++++++++++++++++ service/connect/generated.json | 1 + service/connect/serializers.go | 267 +++++++++++++ service/connect/types/enums.go | 38 ++ service/connect/types/types.go | 149 ++++++- service/gamelift/api_op_AcceptMatch.go | 11 +- service/gamelift/api_op_CreateAlias.go | 2 +- service/gamelift/api_op_CreateBuild.go | 24 +- .../gamelift/api_op_CreateGameServerGroup.go | 3 +- service/gamelift/api_op_CreateGameSession.go | 4 +- .../gamelift/api_op_CreatePlayerSession.go | 4 +- .../gamelift/api_op_CreatePlayerSessions.go | 8 +- service/gamelift/api_op_CreateScript.go | 31 +- .../api_op_CreateVpcPeeringAuthorization.go | 31 +- .../api_op_CreateVpcPeeringConnection.go | 16 +- service/gamelift/api_op_DeleteScript.go | 3 +- .../api_op_DeleteVpcPeeringConnection.go | 4 +- .../gamelift/api_op_DescribeGameSessions.go | 4 +- .../gamelift/api_op_DescribePlayerSessions.go | 2 +- service/gamelift/api_op_DescribeScript.go | 2 +- .../api_op_DescribeVpcPeeringConnections.go | 4 +- service/gamelift/api_op_ListScripts.go | 3 +- service/gamelift/api_op_PutScalingPolicy.go | 24 +- .../api_op_RequestUploadCredentials.go | 10 +- .../api_op_StartGameSessionPlacement.go | 65 ++- service/gamelift/api_op_StartMatchBackfill.go | 4 +- service/gamelift/api_op_StartMatchmaking.go | 4 +- .../gamelift/api_op_UpdateGameServerGroup.go | 3 +- service/gamelift/api_op_UpdateScript.go | 18 +- service/gamelift/types/types.go | 87 ++--- service/mq/api_op_DescribeBroker.go | 3 + service/mq/deserializers.go | 88 +++++ service/mq/types/enums.go | 12 +- service/mq/types/types.go | 20 + service/rdsdata/api_op_ExecuteStatement.go | 28 +- service/rdsdata/deserializers.go | 103 +++++ service/rdsdata/doc.go | 2 +- service/rdsdata/serializers.go | 10 + service/rdsdata/types/enums.go | 36 ++ service/rdsdata/types/errors.go | 19 + service/rdsdata/types/types.go | 29 +- .../api_op_CreateFindingAggregator.go | 4 +- ...pi_op_DescribeOrganizationConfiguration.go | 9 + .../api_op_UpdateOrganizationConfiguration.go | 9 + service/securityhub/deserializers.go | 9 + service/securityhub/doc.go | 26 +- service/securityhub/serializers.go | 5 + service/securityhub/types/enums.go | 18 + service/securityhub/types/types.go | 30 +- 60 files changed, 1679 insertions(+), 250 deletions(-) create mode 100644 .changelog/0b3b19623f664cf1a1bff2c4304a3e80.json create mode 100644 .changelog/2882cb5d45984d01b1a5656a1074722f.json create mode 100644 .changelog/ac5bc49ffb5240399a50416d11b18e6c.json create mode 100644 .changelog/cc561540b7ff4bd9bc620dcefe5a7591.json create mode 100644 .changelog/cf75c6b0a06f4be1909c0300c2ad8a7c.json create mode 100644 service/connect/api_op_SearchUsers.go diff --git a/.changelog/0b3b19623f664cf1a1bff2c4304a3e80.json b/.changelog/0b3b19623f664cf1a1bff2c4304a3e80.json new file mode 100644 index 00000000000..a43ad4219d1 --- /dev/null +++ b/.changelog/0b3b19623f664cf1a1bff2c4304a3e80.json @@ -0,0 +1,8 @@ +{ + "id": "0b3b1962-3f66-4cf1-a1bf-f2c4304a3e80", + "type": "feature", + "description": "This release adds the CRITICAL_ACTION_REQUIRED broker state and the ActionRequired API property. CRITICAL_ACTION_REQUIRED informs you when your broker is degraded. ActionRequired provides you with a code which you can use to find instructions in the Developer Guide on how to resolve the issue.", + "modules": [ + "service/mq" + ] +} \ No newline at end of file diff --git a/.changelog/2882cb5d45984d01b1a5656a1074722f.json b/.changelog/2882cb5d45984d01b1a5656a1074722f.json new file mode 100644 index 00000000000..37a77454904 --- /dev/null +++ b/.changelog/2882cb5d45984d01b1a5656a1074722f.json @@ -0,0 +1,8 @@ +{ + "id": "2882cb5d-4598-4d01-b1a5-656a1074722f", + "type": "feature", + "description": "Security Hub now lets you opt-out of auto-enabling the defaults standards (CIS and FSBP) in accounts that are auto-enabled with Security Hub via Security Hub's integration with AWS Organizations.", + "modules": [ + "service/securityhub" + ] +} \ No newline at end of file diff --git a/.changelog/ac5bc49ffb5240399a50416d11b18e6c.json b/.changelog/ac5bc49ffb5240399a50416d11b18e6c.json new file mode 100644 index 00000000000..5d6b06cdfc2 --- /dev/null +++ b/.changelog/ac5bc49ffb5240399a50416d11b18e6c.json @@ -0,0 +1,8 @@ +{ + "id": "ac5bc49f-fb52-4039-9a50-416d11b18e6c", + "type": "feature", + "description": "Support to receive SQL query results in the form of a simplified JSON string. This enables developers using the new JSON string format to more easily convert it to an object using popular JSON string parsing libraries.", + "modules": [ + "service/rdsdata" + ] +} \ No newline at end of file diff --git a/.changelog/cc561540b7ff4bd9bc620dcefe5a7591.json b/.changelog/cc561540b7ff4bd9bc620dcefe5a7591.json new file mode 100644 index 00000000000..b8b1ebefa91 --- /dev/null +++ b/.changelog/cc561540b7ff4bd9bc620dcefe5a7591.json @@ -0,0 +1,8 @@ +{ + "id": "cc561540-b7ff-4bd9-bc62-0dcefe5a7591", + "type": "documentation", + "description": "Documentation updates for Amazon GameLift.", + "modules": [ + "service/gamelift" + ] +} \ No newline at end of file diff --git a/.changelog/cf75c6b0a06f4be1909c0300c2ad8a7c.json b/.changelog/cf75c6b0a06f4be1909c0300c2ad8a7c.json new file mode 100644 index 00000000000..875fd4a1e55 --- /dev/null +++ b/.changelog/cf75c6b0a06f4be1909c0300c2ad8a7c.json @@ -0,0 +1,8 @@ +{ + "id": "cf75c6b0-a06f-4be1-909c-0300c2ad8a7c", + "type": "feature", + "description": "This release adds SearchUsers API which can be used to search for users with a Connect Instance", + "modules": [ + "service/connect" + ] +} \ No newline at end of file diff --git a/service/connect/api_op_ClaimPhoneNumber.go b/service/connect/api_op_ClaimPhoneNumber.go index ed18373d741..ce31d7dd8ec 100644 --- a/service/connect/api_op_ClaimPhoneNumber.go +++ b/service/connect/api_op_ClaimPhoneNumber.go @@ -59,7 +59,7 @@ type ClaimPhoneNumberOutput struct { // The Amazon Resource Name (ARN) of the phone number. PhoneNumberArn *string - // The identifier of the phone number. + // A unique identifier for the phone number. PhoneNumberId *string // Metadata pertaining to the operation's result. diff --git a/service/connect/api_op_DescribePhoneNumber.go b/service/connect/api_op_DescribePhoneNumber.go index 20cec7de4f1..1eb25a0c959 100644 --- a/service/connect/api_op_DescribePhoneNumber.go +++ b/service/connect/api_op_DescribePhoneNumber.go @@ -30,7 +30,7 @@ func (c *Client) DescribePhoneNumber(ctx context.Context, params *DescribePhoneN type DescribePhoneNumberInput struct { - // The identifier of the phone number. + // A unique identifier for the phone number. // // This member is required. PhoneNumberId *string diff --git a/service/connect/api_op_DisassociatePhoneNumberContactFlow.go b/service/connect/api_op_DisassociatePhoneNumberContactFlow.go index a69481991b6..da22f5ad24c 100644 --- a/service/connect/api_op_DisassociatePhoneNumberContactFlow.go +++ b/service/connect/api_op_DisassociatePhoneNumberContactFlow.go @@ -35,7 +35,7 @@ type DisassociatePhoneNumberContactFlowInput struct { // This member is required. InstanceId *string - // The identifier of the phone number. + // A unique identifier for the phone number. // // This member is required. PhoneNumberId *string diff --git a/service/connect/api_op_ReleasePhoneNumber.go b/service/connect/api_op_ReleasePhoneNumber.go index 7be744f181e..a23feb10a25 100644 --- a/service/connect/api_op_ReleasePhoneNumber.go +++ b/service/connect/api_op_ReleasePhoneNumber.go @@ -29,7 +29,7 @@ func (c *Client) ReleasePhoneNumber(ctx context.Context, params *ReleasePhoneNum type ReleasePhoneNumberInput struct { - // The identifier of the phone number. + // A unique identifier for the phone number. // // This member is required. PhoneNumberId *string diff --git a/service/connect/api_op_SearchUsers.go b/service/connect/api_op_SearchUsers.go new file mode 100644 index 00000000000..1e29406c1b0 --- /dev/null +++ b/service/connect/api_op_SearchUsers.go @@ -0,0 +1,222 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package connect + +import ( + "context" + "fmt" + awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/connect/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Searches users in an Amazon Connect instance, with optional filtering. +func (c *Client) SearchUsers(ctx context.Context, params *SearchUsersInput, optFns ...func(*Options)) (*SearchUsersOutput, error) { + if params == nil { + params = &SearchUsersInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "SearchUsers", params, optFns, c.addOperationSearchUsersMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*SearchUsersOutput) + out.ResultMetadata = metadata + return out, nil +} + +type SearchUsersInput struct { + + // The identifier of the Amazon Connect instance. You can find the instanceId in + // the ARN of the instance. + InstanceId *string + + // The maximum number of results to return per page. + MaxResults int32 + + // The token for the next set of results. Use the value returned in the previous + // response in the next request to retrieve the next set of results. + NextToken *string + + // The search criteria to be used to return users. + SearchCriteria *types.UserSearchCriteria + + // Filters to be applied to search results. + SearchFilter *types.UserSearchFilter + + noSmithyDocumentSerde +} + +type SearchUsersOutput struct { + + // The total number of users who matched your search query. + ApproximateTotalCount *int64 + + // If there are additional results, this is the token for the next set of results. + NextToken *string + + // Information about the users. + Users []types.UserSearchSummary + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationSearchUsersMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpSearchUsers{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpSearchUsers{}, middleware.After) + if 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); err != nil { + return err + } + if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opSearchUsers(options.Region), middleware.Before); 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 + } + return nil +} + +// SearchUsersAPIClient is a client that implements the SearchUsers operation. +type SearchUsersAPIClient interface { + SearchUsers(context.Context, *SearchUsersInput, ...func(*Options)) (*SearchUsersOutput, error) +} + +var _ SearchUsersAPIClient = (*Client)(nil) + +// SearchUsersPaginatorOptions is the paginator options for SearchUsers +type SearchUsersPaginatorOptions struct { + // The maximum number of results to return per page. + Limit int32 + + // Set to true if pagination should stop if the service returns a pagination token + // that matches the most recent token provided to the service. + StopOnDuplicateToken bool +} + +// SearchUsersPaginator is a paginator for SearchUsers +type SearchUsersPaginator struct { + options SearchUsersPaginatorOptions + client SearchUsersAPIClient + params *SearchUsersInput + nextToken *string + firstPage bool +} + +// NewSearchUsersPaginator returns a new SearchUsersPaginator +func NewSearchUsersPaginator(client SearchUsersAPIClient, params *SearchUsersInput, optFns ...func(*SearchUsersPaginatorOptions)) *SearchUsersPaginator { + if params == nil { + params = &SearchUsersInput{} + } + + options := SearchUsersPaginatorOptions{} + if params.MaxResults != 0 { + options.Limit = params.MaxResults + } + + for _, fn := range optFns { + fn(&options) + } + + return &SearchUsersPaginator{ + options: options, + client: client, + params: params, + firstPage: true, + nextToken: params.NextToken, + } +} + +// HasMorePages returns a boolean indicating whether more pages are available +func (p *SearchUsersPaginator) HasMorePages() bool { + return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0) +} + +// NextPage retrieves the next SearchUsers page. +func (p *SearchUsersPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*SearchUsersOutput, error) { + if !p.HasMorePages() { + return nil, fmt.Errorf("no more pages available") + } + + params := *p.params + params.NextToken = p.nextToken + + params.MaxResults = p.options.Limit + + result, err := p.client.SearchUsers(ctx, ¶ms, optFns...) + if err != nil { + return nil, err + } + p.firstPage = false + + prevToken := p.nextToken + p.nextToken = result.NextToken + + if p.options.StopOnDuplicateToken && + prevToken != nil && + p.nextToken != nil && + *prevToken == *p.nextToken { + p.nextToken = nil + } + + return result, nil +} + +func newServiceMetadataMiddleware_opSearchUsers(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "connect", + OperationName: "SearchUsers", + } +} diff --git a/service/connect/api_op_UpdatePhoneNumber.go b/service/connect/api_op_UpdatePhoneNumber.go index 820d7b9bc07..694e000d423 100644 --- a/service/connect/api_op_UpdatePhoneNumber.go +++ b/service/connect/api_op_UpdatePhoneNumber.go @@ -30,7 +30,7 @@ func (c *Client) UpdatePhoneNumber(ctx context.Context, params *UpdatePhoneNumbe type UpdatePhoneNumberInput struct { - // The identifier of the phone number. + // A unique identifier for the phone number. // // This member is required. PhoneNumberId *string @@ -53,7 +53,7 @@ type UpdatePhoneNumberOutput struct { // The Amazon Resource Name (ARN) of the phone number. PhoneNumberArn *string - // The identifier of the phone number. + // A unique identifier for the phone number. PhoneNumberId *string // Metadata pertaining to the operation's result. diff --git a/service/connect/deserializers.go b/service/connect/deserializers.go index 2768e57af5f..1789e1d83df 100644 --- a/service/connect/deserializers.go +++ b/service/connect/deserializers.go @@ -14528,6 +14528,187 @@ func awsRestjson1_deserializeOpDocumentSearchAvailablePhoneNumbersOutput(v **Sea return nil } +type awsRestjson1_deserializeOpSearchUsers struct { +} + +func (*awsRestjson1_deserializeOpSearchUsers) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpSearchUsers) 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_deserializeOpErrorSearchUsers(response, &metadata) + } + output := &SearchUsersOutput{} + out.Result = output + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(response.Body, ringBuffer) + + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + 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 + } + + err = awsRestjson1_deserializeOpDocumentSearchUsersOutput(&output, shape) + if err != nil { + var snapshot bytes.Buffer + io.Copy(&snapshot, ringBuffer) + return out, metadata, &smithy.DeserializationError{ + Err: fmt.Errorf("failed to decode response body with invalid JSON, %w", err), + Snapshot: snapshot.Bytes(), + } + } + + return out, metadata, err +} + +func awsRestjson1_deserializeOpErrorSearchUsers(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 + + code := response.Header.Get("X-Amzn-ErrorType") + if len(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + code, 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(code) != 0 { + errorCode = restjson.SanitizeErrorCode(code) + } + 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 + + } +} + +func awsRestjson1_deserializeOpDocumentSearchUsersOutput(v **SearchUsersOutput, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *SearchUsersOutput + if *v == nil { + sv = &SearchUsersOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "ApproximateTotalCount": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected ApproximateTotalCount to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.ApproximateTotalCount = ptr.Int64(i64) + } + + case "NextToken": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NextToken2500 to be of type string, got %T instead", value) + } + sv.NextToken = ptr.String(jtv) + } + + case "Users": + if err := awsRestjson1_deserializeDocumentUserSearchSummaryList(&sv.Users, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + type awsRestjson1_deserializeOpSearchVocabularies struct { } @@ -26784,6 +26965,55 @@ func awsRestjson1_deserializeDocumentUserIdentityInfo(v **types.UserIdentityInfo return nil } +func awsRestjson1_deserializeDocumentUserIdentityInfoLite(v **types.UserIdentityInfoLite, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.UserIdentityInfoLite + if *v == nil { + sv = &types.UserIdentityInfoLite{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "FirstName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AgentFirstName to be of type string, got %T instead", value) + } + sv.FirstName = ptr.String(jtv) + } + + case "LastName": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AgentLastName to be of type string, got %T instead", value) + } + sv.LastName = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentUserNotFoundException(v **types.UserNotFoundException, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -26944,6 +27174,145 @@ func awsRestjson1_deserializeDocumentUserQuickConnectConfig(v **types.UserQuickC return nil } +func awsRestjson1_deserializeDocumentUserSearchSummary(v **types.UserSearchSummary, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.UserSearchSummary + if *v == nil { + sv = &types.UserSearchSummary{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Arn": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ARN to be of type string, got %T instead", value) + } + sv.Arn = ptr.String(jtv) + } + + case "DirectoryUserId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected DirectoryUserId to be of type string, got %T instead", value) + } + sv.DirectoryUserId = ptr.String(jtv) + } + + case "HierarchyGroupId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected HierarchyGroupId to be of type string, got %T instead", value) + } + sv.HierarchyGroupId = ptr.String(jtv) + } + + case "Id": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected UserId to be of type string, got %T instead", value) + } + sv.Id = ptr.String(jtv) + } + + case "IdentityInfo": + if err := awsRestjson1_deserializeDocumentUserIdentityInfoLite(&sv.IdentityInfo, value); err != nil { + return err + } + + case "PhoneConfig": + if err := awsRestjson1_deserializeDocumentUserPhoneConfig(&sv.PhoneConfig, value); err != nil { + return err + } + + case "RoutingProfileId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected RoutingProfileId to be of type string, got %T instead", value) + } + sv.RoutingProfileId = ptr.String(jtv) + } + + case "SecurityProfileIds": + if err := awsRestjson1_deserializeDocumentSecurityProfileIds(&sv.SecurityProfileIds, value); err != nil { + return err + } + + case "Tags": + if err := awsRestjson1_deserializeDocumentTagMap(&sv.Tags, value); err != nil { + return err + } + + case "Username": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AgentUsername to be of type string, got %T instead", value) + } + sv.Username = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentUserSearchSummaryList(v *[]types.UserSearchSummary, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.UserSearchSummary + if *v == nil { + cv = []types.UserSearchSummary{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.UserSearchSummary + destAddr := &col + if err := awsRestjson1_deserializeDocumentUserSearchSummary(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentUserSummary(v **types.UserSummary, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/connect/generated.json b/service/connect/generated.json index 24bead7a1c6..7c7bcca76ec 100644 --- a/service/connect/generated.json +++ b/service/connect/generated.json @@ -106,6 +106,7 @@ "api_op_ReleasePhoneNumber.go", "api_op_ResumeContactRecording.go", "api_op_SearchAvailablePhoneNumbers.go", + "api_op_SearchUsers.go", "api_op_SearchVocabularies.go", "api_op_StartChatContact.go", "api_op_StartContactRecording.go", diff --git a/service/connect/serializers.go b/service/connect/serializers.go index d15d61c4950..2df0e24f3d1 100644 --- a/service/connect/serializers.go +++ b/service/connect/serializers.go @@ -7587,6 +7587,98 @@ func awsRestjson1_serializeOpDocumentSearchAvailablePhoneNumbersInput(v *SearchA return nil } +type awsRestjson1_serializeOpSearchUsers struct { +} + +func (*awsRestjson1_serializeOpSearchUsers) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpSearchUsers) 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.(*SearchUsersInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/search-users") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "POST" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + restEncoder.SetHeader("Content-Type").String("application/json") + + jsonEncoder := smithyjson.NewEncoder() + if err := awsRestjson1_serializeOpDocumentSearchUsersInput(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_serializeOpHttpBindingsSearchUsersInput(v *SearchUsersInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + return nil +} + +func awsRestjson1_serializeOpDocumentSearchUsersInput(v *SearchUsersInput, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.InstanceId != nil { + ok := object.Key("InstanceId") + ok.String(*v.InstanceId) + } + + if v.MaxResults != 0 { + ok := object.Key("MaxResults") + ok.Integer(v.MaxResults) + } + + if v.NextToken != nil { + ok := object.Key("NextToken") + ok.String(*v.NextToken) + } + + if v.SearchCriteria != nil { + ok := object.Key("SearchCriteria") + if err := awsRestjson1_serializeDocumentUserSearchCriteria(v.SearchCriteria, ok); err != nil { + return err + } + } + + if v.SearchFilter != nil { + ok := object.Key("SearchFilter") + if err := awsRestjson1_serializeDocumentUserSearchFilter(v.SearchFilter, ok); err != nil { + return err + } + } + + return nil +} + type awsRestjson1_serializeOpSearchVocabularies struct { } @@ -11697,6 +11789,34 @@ func awsRestjson1_serializeDocumentContactReferences(v map[string]types.Referenc return nil } +func awsRestjson1_serializeDocumentControlPlaneTagFilter(v *types.ControlPlaneTagFilter, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AndConditions != nil { + ok := object.Key("AndConditions") + if err := awsRestjson1_serializeDocumentTagAndConditionList(v.AndConditions, ok); err != nil { + return err + } + } + + if v.OrConditions != nil { + ok := object.Key("OrConditions") + if err := awsRestjson1_serializeDocumentTagOrConditionList(v.OrConditions, ok); err != nil { + return err + } + } + + if v.TagCondition != nil { + ok := object.Key("TagCondition") + if err := awsRestjson1_serializeDocumentTagCondition(v.TagCondition, ok); err != nil { + return err + } + } + + return nil +} + func awsRestjson1_serializeDocumentCurrentMetric(v *types.CurrentMetric, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -11776,6 +11896,23 @@ func awsRestjson1_serializeDocumentGroupings(v []types.Grouping, value smithyjso return nil } +func awsRestjson1_serializeDocumentHierarchyGroupCondition(v *types.HierarchyGroupCondition, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.HierarchyGroupMatchType) > 0 { + ok := object.Key("HierarchyGroupMatchType") + ok.String(string(v.HierarchyGroupMatchType)) + } + + if v.Value != nil { + ok := object.Key("Value") + ok.String(*v.Value) + } + + return nil +} + func awsRestjson1_serializeDocumentHierarchyLevelUpdate(v *types.HierarchyLevelUpdate, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -12350,6 +12487,28 @@ func awsRestjson1_serializeDocumentSecurityProfileIds(v []string, value smithyjs return nil } +func awsRestjson1_serializeDocumentStringCondition(v *types.StringCondition, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.ComparisonType) > 0 { + ok := object.Key("ComparisonType") + ok.String(string(v.ComparisonType)) + } + + if v.FieldName != nil { + ok := object.Key("FieldName") + ok.String(*v.FieldName) + } + + if v.Value != nil { + ok := object.Key("Value") + ok.String(*v.Value) + } + + return nil +} + func awsRestjson1_serializeDocumentSupportedMessagingContentTypes(v []string, value smithyjson.Value) error { array := value.Array() defer array.Close() @@ -12361,6 +12520,36 @@ func awsRestjson1_serializeDocumentSupportedMessagingContentTypes(v []string, va return nil } +func awsRestjson1_serializeDocumentTagAndConditionList(v []types.TagCondition, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentTagCondition(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsRestjson1_serializeDocumentTagCondition(v *types.TagCondition, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.TagKey != nil { + ok := object.Key("TagKey") + ok.String(*v.TagKey) + } + + if v.TagValue != nil { + ok := object.Key("TagValue") + ok.String(*v.TagValue) + } + + return nil +} + func awsRestjson1_serializeDocumentTagMap(v map[string]string, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -12372,6 +12561,22 @@ func awsRestjson1_serializeDocumentTagMap(v map[string]string, value smithyjson. return nil } +func awsRestjson1_serializeDocumentTagOrConditionList(v [][]types.TagCondition, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if vv := v[i]; vv == nil { + continue + } + if err := awsRestjson1_serializeDocumentTagAndConditionList(v[i], av); err != nil { + return err + } + } + return nil +} + func awsRestjson1_serializeDocumentThreshold(v *types.Threshold, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -12468,6 +12673,68 @@ func awsRestjson1_serializeDocumentUserQuickConnectConfig(v *types.UserQuickConn return nil } +func awsRestjson1_serializeDocumentUserSearchConditionList(v []types.UserSearchCriteria, value smithyjson.Value) error { + array := value.Array() + defer array.Close() + + for i := range v { + av := array.Value() + if err := awsRestjson1_serializeDocumentUserSearchCriteria(&v[i], av); err != nil { + return err + } + } + return nil +} + +func awsRestjson1_serializeDocumentUserSearchCriteria(v *types.UserSearchCriteria, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AndConditions != nil { + ok := object.Key("AndConditions") + if err := awsRestjson1_serializeDocumentUserSearchConditionList(v.AndConditions, ok); err != nil { + return err + } + } + + if v.HierarchyGroupCondition != nil { + ok := object.Key("HierarchyGroupCondition") + if err := awsRestjson1_serializeDocumentHierarchyGroupCondition(v.HierarchyGroupCondition, ok); err != nil { + return err + } + } + + if v.OrConditions != nil { + ok := object.Key("OrConditions") + if err := awsRestjson1_serializeDocumentUserSearchConditionList(v.OrConditions, ok); err != nil { + return err + } + } + + if v.StringCondition != nil { + ok := object.Key("StringCondition") + if err := awsRestjson1_serializeDocumentStringCondition(v.StringCondition, ok); err != nil { + return err + } + } + + return nil +} + +func awsRestjson1_serializeDocumentUserSearchFilter(v *types.UserSearchFilter, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.TagFilter != nil { + ok := object.Key("TagFilter") + if err := awsRestjson1_serializeDocumentControlPlaneTagFilter(v.TagFilter, ok); err != nil { + return err + } + } + + return nil +} + func awsRestjson1_serializeDocumentVoiceRecordingConfiguration(v *types.VoiceRecordingConfiguration, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/connect/types/enums.go b/service/connect/types/enums.go index 7efa4226546..51ad02a51e8 100644 --- a/service/connect/types/enums.go +++ b/service/connect/types/enums.go @@ -282,6 +282,24 @@ func (Grouping) Values() []Grouping { } } +type HierarchyGroupMatchType string + +// Enum values for HierarchyGroupMatchType +const ( + HierarchyGroupMatchTypeExact HierarchyGroupMatchType = "EXACT" + HierarchyGroupMatchTypeWithChildGroups HierarchyGroupMatchType = "WITH_CHILD_GROUPS" +) + +// Values returns all known values for HierarchyGroupMatchType. 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 (HierarchyGroupMatchType) Values() []HierarchyGroupMatchType { + return []HierarchyGroupMatchType{ + "EXACT", + "WITH_CHILD_GROUPS", + } +} + type HistoricalMetricName string // Enum values for HistoricalMetricName @@ -1218,6 +1236,26 @@ func (StorageType) Values() []StorageType { } } +type StringComparisonType string + +// Enum values for StringComparisonType +const ( + StringComparisonTypeStartsWith StringComparisonType = "STARTS_WITH" + StringComparisonTypeContains StringComparisonType = "CONTAINS" + StringComparisonTypeExact StringComparisonType = "EXACT" +) + +// Values returns all known values for StringComparisonType. 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 (StringComparisonType) Values() []StringComparisonType { + return []StringComparisonType{ + "STARTS_WITH", + "CONTAINS", + "EXACT", + } +} + type TrafficType string // Enum values for TrafficType diff --git a/service/connect/types/types.go b/service/connect/types/types.go index 8f662e8004c..dacbd7bdb70 100644 --- a/service/connect/types/types.go +++ b/service/connect/types/types.go @@ -170,7 +170,7 @@ type ClaimedPhoneNumberSummary struct { // The description of the phone number. PhoneNumberDescription *string - // The identifier of the phone number. + // A unique identifier for the phone number. PhoneNumberId *string // The status of the phone number. @@ -348,6 +348,28 @@ type ContactFlowSummary struct { noSmithyDocumentSerde } +// An object that can be used to specify Tag conditions inside the SearchFilter. +// This accepts an OR of AND (List of List) input where: +// +// * Top level list +// specifies conditions that need to be applied with OR operator +// +// * Inner list +// specifies conditions that need to be applied with AND operator. +type ControlPlaneTagFilter struct { + + // A list of conditions which would be applied together with an AND condition. + AndConditions []TagCondition + + // A list of conditions which would be applied together with an OR condition. + OrConditions [][]TagCondition + + // A leaf node condition which can be used to specify a tag condition. + TagCondition *TagCondition + + noSmithyDocumentSerde +} + // Contains credentials to use for federation. type Credentials struct { @@ -502,6 +524,18 @@ type HierarchyGroup struct { noSmithyDocumentSerde } +// A leaf node condition which can be used to specify a hierarchy group condition. +type HierarchyGroupCondition struct { + + // The type of hierarchy group match. + HierarchyGroupMatchType HierarchyGroupMatchType + + // The value in the hierarchy group condition. + Value *string + + noSmithyDocumentSerde +} + // Contains summary information about a hierarchy group. type HierarchyGroupSummary struct { @@ -959,7 +993,7 @@ type ListPhoneNumbersSummary struct { // The ISO country code. PhoneNumberCountryCode PhoneNumberCountryCode - // The identifier of the phone number. + // A unique identifier for the phone number. PhoneNumberId *string // The type of phone number. @@ -1501,6 +1535,35 @@ type SecurityProfileSummary struct { noSmithyDocumentSerde } +// A leaf node condition which can be used to specify a string condition, for +// example, username = 'abc'. +type StringCondition struct { + + // The type of comparison to be made when evaluating the string condition. + ComparisonType StringComparisonType + + // The name of the field in the string condition. + FieldName *string + + // The value of the string. + Value *string + + noSmithyDocumentSerde +} + +// A leaf node condition which can be used to specify a tag condition, for example, +// HAVE BPO = 123. +type TagCondition struct { + + // The tag key in the tag condition. + TagKey *string + + // The tag value in the tag condition. + TagValue *string + + noSmithyDocumentSerde +} + // Contains information about the threshold for service level metrics. type Threshold struct { @@ -1596,6 +1659,18 @@ type UserIdentityInfo struct { noSmithyDocumentSerde } +// The user's first name and last name. +type UserIdentityInfoLite struct { + + // The user's first name. + FirstName *string + + // The user's last name. + LastName *string + + noSmithyDocumentSerde +} + // Contains information about the phone configuration settings for a user. type UserPhoneConfig struct { @@ -1633,6 +1708,76 @@ type UserQuickConnectConfig struct { noSmithyDocumentSerde } +// The search criteria to be used to return users. +type UserSearchCriteria struct { + + // A list of conditions which would be applied together with an AND condition. + AndConditions []UserSearchCriteria + + // A leaf node condition which can be used to specify a hierarchy group condition. + HierarchyGroupCondition *HierarchyGroupCondition + + // A list of conditions which would be applied together with an OR condition. + OrConditions []UserSearchCriteria + + // A leaf node condition which can be used to specify a string condition. + StringCondition *StringCondition + + noSmithyDocumentSerde +} + +// Filters to be applied to search results. +type UserSearchFilter struct { + + // An object that can be used to specify Tag conditions inside the SearchFilter. + // This accepts an OR of AND (List of List) input where: + // + // * Top level list + // specifies conditions that need to be applied with OR operator + // + // * Inner list + // specifies conditions that need to be applied with AND operator. + TagFilter *ControlPlaneTagFilter + + noSmithyDocumentSerde +} + +// Information about the returned users. +type UserSearchSummary struct { + + // The Amazon Resource Name (ARN) of the user. + Arn *string + + // The directory identifier of the user. + DirectoryUserId *string + + // The identifier of the user's hierarchy group. + HierarchyGroupId *string + + // The identifier of the user's summary. + Id *string + + // The user's first name and last name. + IdentityInfo *UserIdentityInfoLite + + // Contains information about the phone configuration settings for a user. + PhoneConfig *UserPhoneConfig + + // The identifier of the user's routing profile. + RoutingProfileId *string + + // The identifiers of the user's security profiles. + SecurityProfileIds []string + + // The tags used to organize, track, or control access for this resource. + Tags map[string]string + + // The name of the user. + Username *string + + noSmithyDocumentSerde +} + // Contains summary information about a user. type UserSummary struct { diff --git a/service/gamelift/api_op_AcceptMatch.go b/service/gamelift/api_op_AcceptMatch.go index 64da265090f..01b51b67764 100644 --- a/service/gamelift/api_op_AcceptMatch.go +++ b/service/gamelift/api_op_AcceptMatch.go @@ -24,11 +24,12 @@ import ( // where a new game session is created for the match. If any player rejects the // match, or if acceptances are not received before a specified timeout, the // proposed match is dropped. The matchmaking tickets are then handled in one of -// two ways: For tickets where one or more players rejected the match, the ticket -// status is returned to SEARCHING to find a new match. For tickets where one or -// more players failed to respond, the ticket status is set to CANCELLED, and -// processing is terminated. A new matchmaking request for these players can be -// submitted as needed. Learn more Add FlexMatch to a game client +// two ways: For tickets where one or more players rejected the match or failed to +// respond, the ticket status is set to CANCELLED, and processing is terminated. +// For tickets where players have accepted or not yet responded, the ticket status +// is returned to SEARCHING to find a new match. A new matchmaking request for +// these players can be submitted as needed. Learn more Add FlexMatch to a game +// client // (https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-client.html) // FlexMatch events // (https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-events.html) diff --git a/service/gamelift/api_op_CreateAlias.go b/service/gamelift/api_op_CreateAlias.go index e0b93976532..14ac963d1af 100644 --- a/service/gamelift/api_op_CreateAlias.go +++ b/service/gamelift/api_op_CreateAlias.go @@ -14,7 +14,7 @@ import ( // Creates an alias for a fleet. In most situations, you can use an alias ID in // place of a fleet ID. An alias provides a level of abstraction for a fleet that // is useful when redirecting player traffic from one fleet to another, such as -// when updating your game build. Amazon Web Services supports two types of routing +// when updating your game build. Amazon GameLift supports two types of routing // strategies for aliases: simple and terminal. A simple alias points to an active // fleet. A terminal alias is used to display messaging or link to a URL instead of // routing players to an active fleet. For example, you might use a terminal alias diff --git a/service/gamelift/api_op_CreateBuild.go b/service/gamelift/api_op_CreateBuild.go index d193122cdd2..2b38cf2f12e 100644 --- a/service/gamelift/api_op_CreateBuild.go +++ b/service/gamelift/api_op_CreateBuild.go @@ -11,10 +11,10 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates a new Amazon Web Services build resource for your game server binary -// files. Game server binaries must be combined into a zip file for use with Amazon -// Web Services. When setting up a new game build for GameLift, we recommend using -// the Amazon Web Services CLI command upload-build +// Creates a new Amazon GameLift build resource for your game server binary files. +// Game server binaries must be combined into a zip file for use with Amazon +// GameLift. When setting up a new game build for GameLift, we recommend using the +// Amazon Web Services CLI command upload-build // (https://docs.aws.amazon.com/cli/latest/reference/gamelift/upload-build.html) . // This helper command combines two tasks: (1) it uploads your build files from a // file directory to a GameLift Amazon S3 location, and (2) it creates a new build @@ -23,8 +23,8 @@ import ( // * To // create a new game build with build files that are in an Amazon S3 location under // an Amazon Web Services account that you control. To use this option, you must -// first give Amazon Web Services access to the Amazon S3 bucket. With permissions -// in place, call CreateBuild and specify a build name, operating system, and the +// first give Amazon GameLift access to the Amazon S3 bucket. With permissions in +// place, call CreateBuild and specify a build name, operating system, and the // Amazon S3 storage location of your game build. // // * To directly upload your build @@ -81,10 +81,10 @@ type CreateBuildInput struct { // parameter only when creating a build with files stored in an Amazon S3 bucket // that you own. The storage location must specify an Amazon S3 bucket name and // key. The location must also specify a role ARN that you set up to allow Amazon - // Web Services to access your Amazon S3 bucket. The S3 bucket and your new build - // must be in the same Region. If a StorageLocation is specified, the size of your - // file can be found in your Amazon S3 bucket. Amazon Web Services will report a - // SizeOnDisk of 0. + // GameLift to access your Amazon S3 bucket. The S3 bucket and your new build must + // be in the same Region. If a StorageLocation is specified, the size of your file + // can be found in your Amazon S3 bucket. Amazon GameLift will report a SizeOnDisk + // of 0. StorageLocation *types.S3Location // A list of labels to assign to the new build resource. Tags are developer-defined @@ -116,8 +116,8 @@ type CreateBuildOutput struct { // This element is returned only when the operation is called without a storage // location. It contains credentials to use when you are uploading a build file to - // an Amazon S3 bucket that is owned by Amazon Web Services. Credentials have a - // limited life span. To refresh these credentials, call RequestUploadCredentials. + // an Amazon S3 bucket that is owned by Amazon GameLift. Credentials have a limited + // life span. To refresh these credentials, call RequestUploadCredentials. UploadCredentials *types.AwsCredentials // Metadata pertaining to the operation's result. diff --git a/service/gamelift/api_op_CreateGameServerGroup.go b/service/gamelift/api_op_CreateGameServerGroup.go index 26ea6ce8302..7f9a56c4ad6 100644 --- a/service/gamelift/api_op_CreateGameServerGroup.go +++ b/service/gamelift/api_op_CreateGameServerGroup.go @@ -129,8 +129,7 @@ type CreateGameServerGroupInput struct { // The Amazon Resource Name (ARN // (https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html)) for an IAM - // role that allows Amazon Web Services to access your Amazon EC2 Auto Scaling - // groups. + // role that allows Amazon GameLift to access your Amazon EC2 Auto Scaling groups. // // This member is required. RoleArn *string diff --git a/service/gamelift/api_op_CreateGameSession.go b/service/gamelift/api_op_CreateGameSession.go index 50a3194e9b7..51f42b7a08a 100644 --- a/service/gamelift/api_op_CreateGameSession.go +++ b/service/gamelift/api_op_CreateGameSession.go @@ -37,8 +37,8 @@ import ( // You can restrict new player access by using UpdateGameSession to change the game // session's player session creation policy. Game session logs are retained for all // active game sessions for 14 days. To access the logs, call GetGameSessionLogUrl -// to download the log files. Available in Amazon Web Services Local. Learn more -// Start a game session +// to download the log files. Available in Amazon GameLift Local. Learn more Start +// a game session // (https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession) // Related actions CreateGameSession | DescribeGameSessions | // DescribeGameSessionDetails | SearchGameSessions | UpdateGameSession | diff --git a/service/gamelift/api_op_CreatePlayerSession.go b/service/gamelift/api_op_CreatePlayerSession.go index a39f35b211b..0cf63b9352c 100644 --- a/service/gamelift/api_op_CreatePlayerSession.go +++ b/service/gamelift/api_op_CreatePlayerSession.go @@ -21,8 +21,8 @@ import ( // the player session ID when sending a connection request to the game session, and // the game server can use it to validate the player reservation with the GameLift // service. Player sessions cannot be updated. The maximum number of players per -// game session is 200. It is not adjustable. Available in Amazon Web Services -// Local. Related actions CreatePlayerSession | CreatePlayerSessions | +// game session is 200. It is not adjustable. Available in Amazon GameLift Local. +// Related actions CreatePlayerSession | CreatePlayerSessions | // DescribePlayerSessions | StartGameSessionPlacement | // DescribeGameSessionPlacement | All APIs by task // (https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets) diff --git a/service/gamelift/api_op_CreatePlayerSessions.go b/service/gamelift/api_op_CreatePlayerSessions.go index 75e8609cb08..4d9fd1d8d26 100644 --- a/service/gamelift/api_op_CreatePlayerSessions.go +++ b/service/gamelift/api_op_CreatePlayerSessions.go @@ -22,7 +22,7 @@ import ( // request to the game session, and the game server can use it to validate the // player reservation with the GameLift service. Player sessions cannot be updated. // The maximum number of players per game session is 200. It is not adjustable. -// Available in Amazon Web Services Local. Related actions CreatePlayerSession | +// Available in Amazon GameLift Local. Related actions CreatePlayerSession | // CreatePlayerSessions | DescribePlayerSessions | StartGameSessionPlacement | // DescribeGameSessionPlacement | All APIs by task // (https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets) @@ -55,9 +55,9 @@ type CreatePlayerSessionsInput struct { PlayerIds []string // Map of string pairs, each specifying a player ID and a set of developer-defined - // information related to the player. Amazon Web Services does not use this data, - // so it can be formatted as needed for use in the game. Any player data strings - // for player IDs that are not included in the PlayerIds parameter are ignored. + // information related to the player. Amazon GameLift does not use this data, so it + // can be formatted as needed for use in the game. Any player data strings for + // player IDs that are not included in the PlayerIds parameter are ignored. PlayerDataMap map[string]string noSmithyDocumentSerde diff --git a/service/gamelift/api_op_CreateScript.go b/service/gamelift/api_op_CreateScript.go index b53853b8a07..a976719e5b9 100644 --- a/service/gamelift/api_op_CreateScript.go +++ b/service/gamelift/api_op_CreateScript.go @@ -25,18 +25,17 @@ import ( // * An // Amazon Simple Storage Service (Amazon S3) bucket under your Amazon Web Services // account. Use the StorageLocation parameter for this option. You'll need to have -// an Identity Access Management (IAM) role that allows the Amazon Web Services -// service to access your S3 bucket. +// an Identity Access Management (IAM) role that allows the Amazon GameLift service +// to access your S3 bucket. // -// If the call is successful, a new script -// record is created with a unique script ID. If the script file is provided as a -// local file, the file is uploaded to an Amazon Web Services-owned S3 bucket and -// the script record's storage location reflects this location. If the script file -// is provided as an S3 bucket, Amazon Web Services accesses the file at this -// storage location as needed for deployment. Learn more Amazon Web Services -// Realtime Servers +// If the call is successful, a new script record is +// created with a unique script ID. If the script file is provided as a local file, +// the file is uploaded to an Amazon GameLift-owned S3 bucket and the script +// record's storage location reflects this location. If the script file is provided +// as an S3 bucket, Amazon GameLift accesses the file at this storage location as +// needed for deployment. Learn more Amazon GameLift Realtime Servers // (https://docs.aws.amazon.com/gamelift/latest/developerguide/realtime-intro.html)Set -// Up a Role for Amazon Web Services Access +// Up a Role for Amazon GameLift Access // (https://docs.aws.amazon.com/gamelift/latest/developerguide/setting-up-role.html) // Related actions CreateScript | ListScripts | DescribeScript | UpdateScript | // DeleteScript | All APIs by task @@ -65,11 +64,11 @@ type CreateScriptInput struct { // The location of the Amazon S3 bucket where a zipped file containing your // Realtime scripts is stored. The storage location must specify the Amazon S3 // bucket name, the zip file name (the "key"), and a role ARN that allows Amazon - // Web Services to access the Amazon S3 storage location. The S3 bucket must be in - // the same Region where you want to create a new script. By default, Amazon Web - // Services uploads the latest version of the zip file; if you have S3 object - // versioning turned on, you can use the ObjectVersion parameter to specify an - // earlier version. + // GameLift to access the Amazon S3 storage location. The S3 bucket must be in the + // same Region where you want to create a new script. By default, Amazon GameLift + // uploads the latest version of the zip file; if you have S3 object versioning + // turned on, you can use the ObjectVersion parameter to specify an earlier + // version. StorageLocation *types.S3Location // A list of labels to assign to the new script resource. Tags are @@ -105,7 +104,7 @@ type CreateScriptOutput struct { // uploaded from an S3 bucket under your account, the storage location reflects the // information that was provided in the CreateScript request; (2) If the script // file was uploaded from a local zip file, the storage location reflects an S3 - // location controls by the Amazon Web Services service. + // location controls by the Amazon GameLift service. Script *types.Script // Metadata pertaining to the operation's result. diff --git a/service/gamelift/api_op_CreateVpcPeeringAuthorization.go b/service/gamelift/api_op_CreateVpcPeeringAuthorization.go index 83a432b9f0a..a272cb3eb5f 100644 --- a/service/gamelift/api_op_CreateVpcPeeringAuthorization.go +++ b/service/gamelift/api_op_CreateVpcPeeringAuthorization.go @@ -12,30 +12,29 @@ import ( ) // Requests authorization to create or delete a peer connection between the VPC for -// your Amazon Web Services fleet and a virtual private cloud (VPC) in your Amazon -// Web Services account. VPC peering enables the game servers on your fleet to +// your Amazon GameLift fleet and a virtual private cloud (VPC) in your Amazon Web +// Services account. VPC peering enables the game servers on your fleet to // communicate directly with other Amazon Web Services resources. Once you've // received authorization, call CreateVpcPeeringConnection to establish the peering -// connection. For more information, see VPC Peering with Amazon Web Services -// Fleets +// connection. For more information, see VPC Peering with Amazon GameLift Fleets // (https://docs.aws.amazon.com/gamelift/latest/developerguide/vpc-peering.html). // You can peer with VPCs that are owned by any Amazon Web Services account you -// have access to, including the account that you use to manage your Amazon Web -// Services fleets. You cannot peer with VPCs that are in different Regions. To +// have access to, including the account that you use to manage your Amazon +// GameLift fleets. You cannot peer with VPCs that are in different Regions. To // request authorization to create a connection, call this operation from the // Amazon Web Services account with the VPC that you want to peer to your Amazon -// Web Services fleet. For example, to enable your game servers to retrieve data -// from a DynamoDB table, use the account that manages that DynamoDB resource. -// Identify the following values: (1) The ID of the VPC that you want to peer with, -// and (2) the ID of the Amazon Web Services account that you use to manage Amazon -// Web Services. If successful, VPC peering is authorized for the specified VPC. To +// GameLift fleet. For example, to enable your game servers to retrieve data from a +// DynamoDB table, use the account that manages that DynamoDB resource. Identify +// the following values: (1) The ID of the VPC that you want to peer with, and (2) +// the ID of the Amazon Web Services account that you use to manage Amazon +// GameLift. If successful, VPC peering is authorized for the specified VPC. To // request authorization to delete a connection, call this operation from the -// Amazon Web Services account with the VPC that is peered with your Amazon Web -// Services fleet. Identify the following values: (1) VPC ID that you want to +// Amazon Web Services account with the VPC that is peered with your Amazon +// GameLift fleet. Identify the following values: (1) VPC ID that you want to // delete the peering connection for, and (2) ID of the Amazon Web Services account -// that you use to manage Amazon Web Services. The authorization remains valid for -// 24 hours unless it is canceled by a call to DeleteVpcPeeringAuthorization. You -// must create or delete the peering connection while the authorization is valid. +// that you use to manage Amazon GameLift. The authorization remains valid for 24 +// hours unless it is canceled by a call to DeleteVpcPeeringAuthorization. You must +// create or delete the peering connection while the authorization is valid. // Related actions CreateVpcPeeringAuthorization | DescribeVpcPeeringAuthorizations // | DeleteVpcPeeringAuthorization | CreateVpcPeeringConnection | // DescribeVpcPeeringConnections | DeleteVpcPeeringConnection | All APIs by task diff --git a/service/gamelift/api_op_CreateVpcPeeringConnection.go b/service/gamelift/api_op_CreateVpcPeeringConnection.go index 7fbe1cc640c..33858d0f8da 100644 --- a/service/gamelift/api_op_CreateVpcPeeringConnection.go +++ b/service/gamelift/api_op_CreateVpcPeeringConnection.go @@ -11,13 +11,13 @@ import ( ) // Establishes a VPC peering connection between a virtual private cloud (VPC) in an -// Amazon Web Services account with the VPC for your Amazon Web Services fleet. VPC +// Amazon Web Services account with the VPC for your Amazon GameLift fleet. VPC // peering enables the game servers on your fleet to communicate directly with // other Amazon Web Services resources. You can peer with VPCs in any Amazon Web // Services account that you have access to, including the account that you use to -// manage your Amazon Web Services fleets. You cannot peer with VPCs that are in -// different Regions. For more information, see VPC Peering with Amazon Web -// Services Fleets +// manage your Amazon GameLift fleets. You cannot peer with VPCs that are in +// different Regions. For more information, see VPC Peering with Amazon GameLift +// Fleets // (https://docs.aws.amazon.com/gamelift/latest/developerguide/vpc-peering.html). // Before calling this operation to establish the peering connection, you first // need to call CreateVpcPeeringAuthorization and identify the VPC you want to peer @@ -25,7 +25,7 @@ import ( // to establish the connection. These two operations handle all tasks necessary to // peer the two VPCs, including acceptance, updating routing tables, etc. To // establish the connection, call this operation from the Amazon Web Services -// account that is used to manage the Amazon Web Services fleets. Identify the +// account that is used to manage the Amazon GameLift fleets. Identify the // following values: (1) The ID of the fleet you want to be enable a VPC peering // connection for; (2) The Amazon Web Services account with the VPC that you want // to peer with; and (3) The ID of the VPC you want to peer with. This operation is @@ -56,14 +56,14 @@ func (c *Client) CreateVpcPeeringConnection(ctx context.Context, params *CreateV type CreateVpcPeeringConnectionInput struct { // A unique identifier for the fleet. You can use either the fleet ID or ARN value. - // This tells Amazon Web Services which GameLift VPC to peer with. + // This tells Amazon GameLift which GameLift VPC to peer with. // // This member is required. FleetId *string // A unique identifier for the Amazon Web Services account with the VPC that you - // want to peer your Amazon Web Services fleet with. You can find your Account ID - // in the Amazon Web Services Management Console under account settings. + // want to peer your Amazon GameLift fleet with. You can find your Account ID in + // the Amazon Web Services Management Console under account settings. // // This member is required. PeerVpcAwsAccountId *string diff --git a/service/gamelift/api_op_DeleteScript.go b/service/gamelift/api_op_DeleteScript.go index 98bdc318f90..ee7864d5374 100644 --- a/service/gamelift/api_op_DeleteScript.go +++ b/service/gamelift/api_op_DeleteScript.go @@ -16,8 +16,7 @@ import ( // deleting a script, be sure to terminate all fleets that are deployed with the // script being deleted. Fleet instances periodically check for script updates, and // if the script record no longer exists, the instance will go into an error state -// and be unable to host game sessions. Learn more Amazon Web Services Realtime -// Servers +// and be unable to host game sessions. Learn more Amazon GameLift Realtime Servers // (https://docs.aws.amazon.com/gamelift/latest/developerguide/realtime-intro.html) // Related actions CreateScript | ListScripts | DescribeScript | UpdateScript | // DeleteScript | All APIs by task diff --git a/service/gamelift/api_op_DeleteVpcPeeringConnection.go b/service/gamelift/api_op_DeleteVpcPeeringConnection.go index 7b899074959..b047f556d04 100644 --- a/service/gamelift/api_op_DeleteVpcPeeringConnection.go +++ b/service/gamelift/api_op_DeleteVpcPeeringConnection.go @@ -15,8 +15,8 @@ import ( // can check for an authorization by calling DescribeVpcPeeringAuthorizations or // request a new one using CreateVpcPeeringAuthorization. Once a valid // authorization exists, call this operation from the Amazon Web Services account -// that is used to manage the Amazon Web Services fleets. Identify the connection -// to delete by the connection ID and fleet ID. If successful, the connection is +// that is used to manage the Amazon GameLift fleets. Identify the connection to +// delete by the connection ID and fleet ID. If successful, the connection is // removed. Related actions CreateVpcPeeringAuthorization | // DescribeVpcPeeringAuthorizations | DeleteVpcPeeringAuthorization | // CreateVpcPeeringConnection | DescribeVpcPeeringConnections | diff --git a/service/gamelift/api_op_DescribeGameSessions.go b/service/gamelift/api_op_DescribeGameSessions.go index f279d9deb38..11265c6cff6 100644 --- a/service/gamelift/api_op_DescribeGameSessions.go +++ b/service/gamelift/api_op_DescribeGameSessions.go @@ -48,8 +48,8 @@ import ( // Notification Service to receive notifications, and provide the topic ARN in the // matchmaking configuration. Continuously poling ticket status with // DescribeGameSessions should only be used for games in development with low -// matchmaking usage. Available in Amazon Web Services Local. Learn more Find a -// game session +// matchmaking usage. Available in Amazon GameLift Local. Learn more Find a game +// session // (https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-client-api.html#gamelift-sdk-client-api-find) // Related actions CreateGameSession | DescribeGameSessions | // DescribeGameSessionDetails | SearchGameSessions | UpdateGameSession | diff --git a/service/gamelift/api_op_DescribePlayerSessions.go b/service/gamelift/api_op_DescribePlayerSessions.go index 52c601f69b4..05d325db1a3 100644 --- a/service/gamelift/api_op_DescribePlayerSessions.go +++ b/service/gamelift/api_op_DescribePlayerSessions.go @@ -28,7 +28,7 @@ import ( // player session ID, game session ID, or player ID. You can filter this request by // player session status. Use the pagination parameters to retrieve results as a // set of sequential pages. If successful, a PlayerSession object is returned for -// each session that matches the request. Available in Amazon Web Services Local. +// each session that matches the request. Available in Amazon GameLift Local. // Related actions CreatePlayerSession | CreatePlayerSessions | // DescribePlayerSessions | StartGameSessionPlacement | // DescribeGameSessionPlacement | All APIs by task diff --git a/service/gamelift/api_op_DescribeScript.go b/service/gamelift/api_op_DescribeScript.go index 05ae0de8a7f..c696a0bb964 100644 --- a/service/gamelift/api_op_DescribeScript.go +++ b/service/gamelift/api_op_DescribeScript.go @@ -13,7 +13,7 @@ import ( // Retrieves properties for a Realtime script. To request a script record, specify // the script ID. If successful, an object containing the script properties is -// returned. Learn more Amazon Web Services Realtime Servers +// returned. Learn more Amazon GameLift Realtime Servers // (https://docs.aws.amazon.com/gamelift/latest/developerguide/realtime-intro.html) // Related actions CreateScript | ListScripts | DescribeScript | UpdateScript | // DeleteScript | All APIs by task diff --git a/service/gamelift/api_op_DescribeVpcPeeringConnections.go b/service/gamelift/api_op_DescribeVpcPeeringConnections.go index 391b60acd33..0c4a9f94a49 100644 --- a/service/gamelift/api_op_DescribeVpcPeeringConnections.go +++ b/service/gamelift/api_op_DescribeVpcPeeringConnections.go @@ -14,8 +14,8 @@ import ( // Retrieves information on VPC peering connections. Use this operation to get // peering information for all fleets or for one specific fleet ID. To retrieve // connection information, call this operation from the Amazon Web Services account -// that is used to manage the Amazon Web Services fleets. Specify a fleet ID or -// leave the parameter empty to retrieve all connection records. If successful, the +// that is used to manage the Amazon GameLift fleets. Specify a fleet ID or leave +// the parameter empty to retrieve all connection records. If successful, the // retrieved information includes both active and pending connections. Active // connections identify the IpV4 CIDR block that the VPC uses to connect. Related // actions CreateVpcPeeringAuthorization | DescribeVpcPeeringAuthorizations | diff --git a/service/gamelift/api_op_ListScripts.go b/service/gamelift/api_op_ListScripts.go index cb5e70689ed..f07491aef6a 100644 --- a/service/gamelift/api_op_ListScripts.go +++ b/service/gamelift/api_op_ListScripts.go @@ -13,8 +13,7 @@ import ( ) // Retrieves script records for all Realtime scripts that are associated with the -// Amazon Web Services account in use. Learn more Amazon Web Services Realtime -// Servers +// Amazon Web Services account in use. Learn more Amazon GameLift Realtime Servers // (https://docs.aws.amazon.com/gamelift/latest/developerguide/realtime-intro.html) // Related actions CreateScript | ListScripts | DescribeScript | UpdateScript | // DeleteScript | All APIs by task diff --git a/service/gamelift/api_op_PutScalingPolicy.go b/service/gamelift/api_op_PutScalingPolicy.go index bdff0e00bf7..311cff4494d 100644 --- a/service/gamelift/api_op_PutScalingPolicy.go +++ b/service/gamelift/api_op_PutScalingPolicy.go @@ -13,7 +13,7 @@ import ( // Creates or updates a scaling policy for a fleet. Scaling policies are used to // automatically scale a fleet's hosting capacity to meet player demand. An active -// scaling policy instructs Amazon Web Services to track a fleet metric and +// scaling policy instructs Amazon GameLift to track a fleet metric and // automatically change the fleet's capacity when a certain threshold is reached. // There are two types of scaling policies: target-based and rule-based. Use a // target-based policy to quickly and efficiently manage fleet scaling; this option @@ -34,14 +34,14 @@ import ( // capacity is ready to host game sessions but is not currently in use. This is the // fleet's buffer; it measures the additional player demand that the fleet could // handle at current capacity. With a target-based policy, you set your ideal -// buffer size and leave it to Amazon Web Services to take whatever action is -// needed to maintain that target. For example, you might choose to maintain a 10% -// buffer for a fleet that has the capacity to host 100 simultaneous game sessions. -// This policy tells Amazon Web Services to take action whenever the fleet's -// available capacity falls below or rises above 10 game sessions. Amazon Web -// Services will start new instances or stop unused instances in order to return to -// the 10% buffer. To create or update a target-based policy, specify a fleet ID -// and name, and set the policy type to "TargetBased". Specify the metric to track +// buffer size and leave it to Amazon GameLift to take whatever action is needed to +// maintain that target. For example, you might choose to maintain a 10% buffer for +// a fleet that has the capacity to host 100 simultaneous game sessions. This +// policy tells Amazon GameLift to take action whenever the fleet's available +// capacity falls below or rises above 10 game sessions. Amazon GameLift will start +// new instances or stop unused instances in order to return to the 10% buffer. To +// create or update a target-based policy, specify a fleet ID and name, and set the +// policy type to "TargetBased". Specify the metric to track // (PercentAvailableGameSessions) and reference a TargetConfiguration object with // your desired buffer value. Exclude all other parameters. On a successful // request, the policy name is returned. The scaling policy is automatically in @@ -94,9 +94,9 @@ type PutScalingPolicyInput struct { // This member is required. FleetId *string - // Name of the Amazon Web Services-defined metric that is used to trigger a scaling - // adjustment. For detailed descriptions of fleet metrics, see Monitor Amazon Web - // Services with Amazon CloudWatch + // Name of the Amazon GameLift-defined metric that is used to trigger a scaling + // adjustment. For detailed descriptions of fleet metrics, see Monitor Amazon + // GameLift with Amazon CloudWatch // (https://docs.aws.amazon.com/gamelift/latest/developerguide/monitoring-cloudwatch.html). // // * diff --git a/service/gamelift/api_op_RequestUploadCredentials.go b/service/gamelift/api_op_RequestUploadCredentials.go index e72b5ff3000..12cb7a87a17 100644 --- a/service/gamelift/api_op_RequestUploadCredentials.go +++ b/service/gamelift/api_op_RequestUploadCredentials.go @@ -12,11 +12,11 @@ import ( ) // Retrieves a fresh set of credentials for use when uploading a new set of game -// build files to Amazon Web Services's Amazon S3. This is done as part of the -// build creation process; see CreateBuild. To request new credentials, specify the -// build ID as returned with an initial CreateBuild request. If successful, a new -// set of credentials are returned, along with the S3 storage location associated -// with the build ID. Learn more Create a Build with Files in S3 +// build files to Amazon GameLift's Amazon S3. This is done as part of the build +// creation process; see CreateBuild. To request new credentials, specify the build +// ID as returned with an initial CreateBuild request. If successful, a new set of +// credentials are returned, along with the S3 storage location associated with the +// build ID. Learn more Create a Build with Files in S3 // (https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-build-cli-uploading.html#gamelift-build-cli-uploading-create-build) // Related actions CreateBuild | ListBuilds | DescribeBuild | UpdateBuild | // DeleteBuild | All APIs by task diff --git a/service/gamelift/api_op_StartGameSessionPlacement.go b/service/gamelift/api_op_StartGameSessionPlacement.go index e740bd45d26..13e17a53a07 100644 --- a/service/gamelift/api_op_StartGameSessionPlacement.go +++ b/service/gamelift/api_op_StartGameSessionPlacement.go @@ -12,47 +12,46 @@ import ( ) // Places a request for a new game session in a queue (see CreateGameSessionQueue). -// When processing a placement request, Amazon Web Services searches for available +// When processing a placement request, Amazon GameLift searches for available // resources on the queue's destinations, scanning each until it finds resources or // the placement request times out. A game session placement request can also // request player sessions. When a new game session is successfully created, Amazon -// Web Services creates a player session for each player included in the request. -// When placing a game session, by default Amazon Web Services tries each fleet in -// the order they are listed in the queue configuration. Ideally, a queue's -// destinations are listed in preference order. Alternatively, when requesting a -// game session with players, you can also provide latency data for each player in -// relevant Regions. Latency data indicates the performance lag a player -// experiences when connected to a fleet in the Region. Amazon Web Services uses -// latency data to reorder the list of destinations to place the game session in a -// Region with minimal lag. If latency data is provided for multiple players, -// Amazon Web Services calculates each Region's average lag for all players and -// reorders to get the best game play across all players. To place a new game -// session request, specify the following: +// GameLift creates a player session for each player included in the request. When +// placing a game session, by default Amazon GameLift tries each fleet in the order +// they are listed in the queue configuration. Ideally, a queue's destinations are +// listed in preference order. Alternatively, when requesting a game session with +// players, you can also provide latency data for each player in relevant Regions. +// Latency data indicates the performance lag a player experiences when connected +// to a fleet in the Region. Amazon GameLift uses latency data to reorder the list +// of destinations to place the game session in a Region with minimal lag. If +// latency data is provided for multiple players, Amazon GameLift calculates each +// Region's average lag for all players and reorders to get the best game play +// across all players. To place a new game session request, specify the +// following: // -// * The queue name and a set of game -// session properties and settings +// * The queue name and a set of game session properties and +// settings // -// * A unique ID (such as a UUID) for the -// placement. You use this ID to track the status of the placement request +// * A unique ID (such as a UUID) for the placement. You use this ID to +// track the status of the placement request // -// * -// (Optional) A set of player data and a unique player ID for each player that you -// are joining to the new game session (player data is optional, but if you include -// it, you must also provide a unique ID for each player) +// * (Optional) A set of player data and +// a unique player ID for each player that you are joining to the new game session +// (player data is optional, but if you include it, you must also provide a unique +// ID for each player) // -// * Latency data for all -// players (if you want to optimize game play for the players) +// * Latency data for all players (if you want to optimize +// game play for the players) // -// If successful, a -// new game session placement is created. To track the status of a placement -// request, call DescribeGameSessionPlacement and check the request's status. If -// the status is FULFILLED, a new game session has been created and a game session -// ARN and Region are referenced. If the placement request times out, you can -// resubmit the request or retry it with a different queue. Related actions -// CreateGameSession | DescribeGameSessions | DescribeGameSessionDetails | -// SearchGameSessions | UpdateGameSession | GetGameSessionLogUrl | -// StartGameSessionPlacement | DescribeGameSessionPlacement | -// StopGameSessionPlacement | All APIs by task +// If successful, a new game session placement is +// created. To track the status of a placement request, call +// DescribeGameSessionPlacement and check the request's status. If the status is +// FULFILLED, a new game session has been created and a game session ARN and Region +// are referenced. If the placement request times out, you can resubmit the request +// or retry it with a different queue. Related actions CreateGameSession | +// DescribeGameSessions | DescribeGameSessionDetails | SearchGameSessions | +// UpdateGameSession | GetGameSessionLogUrl | StartGameSessionPlacement | +// DescribeGameSessionPlacement | StopGameSessionPlacement | All APIs by task // (https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets) func (c *Client) StartGameSessionPlacement(ctx context.Context, params *StartGameSessionPlacementInput, optFns ...func(*Options)) (*StartGameSessionPlacementOutput, error) { if params == nil { diff --git a/service/gamelift/api_op_StartMatchBackfill.go b/service/gamelift/api_op_StartMatchBackfill.go index 032b72d8978..bbf02731e1b 100644 --- a/service/gamelift/api_op_StartMatchBackfill.go +++ b/service/gamelift/api_op_StartMatchBackfill.go @@ -95,8 +95,8 @@ type StartMatchBackfillInput struct { GameSessionArn *string // A unique identifier for a matchmaking ticket. If no ticket ID is specified here, - // Amazon Web Services will generate one in the form of a UUID. Use this identifier - // to track the match backfill ticket status and retrieve match results. + // Amazon GameLift will generate one in the form of a UUID. Use this identifier to + // track the match backfill ticket status and retrieve match results. TicketId *string noSmithyDocumentSerde diff --git a/service/gamelift/api_op_StartMatchmaking.go b/service/gamelift/api_op_StartMatchmaking.go index 2a2d43b86f3..b62e955fb77 100644 --- a/service/gamelift/api_op_StartMatchmaking.go +++ b/service/gamelift/api_op_StartMatchmaking.go @@ -69,8 +69,8 @@ type StartMatchmakingInput struct { Players []types.Player // A unique identifier for a matchmaking ticket. If no ticket ID is specified here, - // Amazon Web Services will generate one in the form of a UUID. Use this identifier - // to track the matchmaking ticket status and retrieve match results. + // Amazon GameLift will generate one in the form of a UUID. Use this identifier to + // track the matchmaking ticket status and retrieve match results. TicketId *string noSmithyDocumentSerde diff --git a/service/gamelift/api_op_UpdateGameServerGroup.go b/service/gamelift/api_op_UpdateGameServerGroup.go index 3e8b1dc4aae..d066442c826 100644 --- a/service/gamelift/api_op_UpdateGameServerGroup.go +++ b/service/gamelift/api_op_UpdateGameServerGroup.go @@ -97,8 +97,7 @@ type UpdateGameServerGroupInput struct { // The Amazon Resource Name (ARN // (https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html)) for an IAM - // role that allows Amazon Web Services to access your Amazon EC2 Auto Scaling - // groups. + // role that allows Amazon GameLift to access your Amazon EC2 Auto Scaling groups. RoleArn *string noSmithyDocumentSerde diff --git a/service/gamelift/api_op_UpdateScript.go b/service/gamelift/api_op_UpdateScript.go index 374c4f6192b..598be696dbf 100644 --- a/service/gamelift/api_op_UpdateScript.go +++ b/service/gamelift/api_op_UpdateScript.go @@ -17,9 +17,9 @@ import ( // Amazon S3 bucket location. You can use either method regardless of how the // original script was uploaded. Use the Version parameter to track updates to the // script. If the call is successful, the updated metadata is stored in the script -// record and a revised script is uploaded to the Amazon Web Services service. Once -// the script is updated and acquired by a fleet instance, the new version is used -// for all new game sessions. Learn more Amazon Web Services Realtime Servers +// record and a revised script is uploaded to the Amazon GameLift service. Once the +// script is updated and acquired by a fleet instance, the new version is used for +// all new game sessions. Learn more Amazon GameLift Realtime Servers // (https://docs.aws.amazon.com/gamelift/latest/developerguide/realtime-intro.html) // Related actions CreateScript | ListScripts | DescribeScript | UpdateScript | // DeleteScript | All APIs by task @@ -54,11 +54,11 @@ type UpdateScriptInput struct { // The location of the Amazon S3 bucket where a zipped file containing your // Realtime scripts is stored. The storage location must specify the Amazon S3 // bucket name, the zip file name (the "key"), and a role ARN that allows Amazon - // Web Services to access the Amazon S3 storage location. The S3 bucket must be in - // the same Region where you want to create a new script. By default, Amazon Web - // Services uploads the latest version of the zip file; if you have S3 object - // versioning turned on, you can use the ObjectVersion parameter to specify an - // earlier version. + // GameLift to access the Amazon S3 storage location. The S3 bucket must be in the + // same Region where you want to create a new script. By default, Amazon GameLift + // uploads the latest version of the zip file; if you have S3 object versioning + // turned on, you can use the ObjectVersion parameter to specify an earlier + // version. StorageLocation *types.S3Location // Version information that is associated with a build or script. Version strings @@ -83,7 +83,7 @@ type UpdateScriptOutput struct { // from an S3 bucket under your account, the storage location reflects the // information that was provided in the CreateScript request; (2) If the script // file was uploaded from a local zip file, the storage location reflects an S3 - // location controls by the Amazon Web Services service. + // location controls by the Amazon GameLift service. Script *types.Script // Metadata pertaining to the operation's result. diff --git a/service/gamelift/types/types.go b/service/gamelift/types/types.go index 6ffda2ef326..8f5978f9882 100644 --- a/service/gamelift/types/types.go +++ b/service/gamelift/types/types.go @@ -70,15 +70,15 @@ type AttributeValue struct { noSmithyDocumentSerde } -// Temporary access credentials used for uploading game build files to Amazon Web -// Services. They are valid for a limited time. If they expire before you upload +// Temporary access credentials used for uploading game build files to Amazon +// GameLift. They are valid for a limited time. If they expire before you upload // your game build, get a new set by calling RequestUploadCredentials. type AwsCredentials struct { - // Temporary key allowing access to the Amazon Web Services S3 account. + // Temporary key allowing access to the Amazon GameLift S3 account. AccessKeyId *string - // Temporary secret key allowing access to the Amazon Web Services S3 account. + // Temporary secret key allowing access to the Amazon GameLift S3 account. SecretAccessKey *string // Token used to associate a specific build ID with the files uploaded using these @@ -837,8 +837,7 @@ type GameServerGroup struct { // The Amazon Resource Name (ARN // (https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html)) for an IAM - // role that allows Amazon Web Services to access your Amazon EC2 Auto Scaling - // groups. + // role that allows Amazon GameLift to access your Amazon EC2 Auto Scaling groups. RoleArn *string // The current status of the game server group. Possible statuses include: @@ -1480,9 +1479,8 @@ type InstanceDefinition struct { // TCP messaging and one for UDP. Related actions DescribeFleetPortSettings type IpPermission struct { - // A starting value for a range of allowed port numbers. For fleets using Linux - // builds, only port 22, 443, 1026-60000 are valid. For fleets using Windows - // builds, only port 443, 1026-60000 are valid. + // A starting value for a range of allowed port numbers. For fleets using Windows + // and Linux builds, only ports 1026-60000 are valid. // // This member is required. FromPort *int32 @@ -1500,9 +1498,8 @@ type IpPermission struct { Protocol IpProtocol // An ending value for a range of allowed port numbers. Port numbers are - // end-inclusive. This value must be higher than FromPort. For fleets using Linux - // builds, only port 22, 443, 1026-60000 are valid. For fleets using Windows - // builds, only port 443, 1026-60000 are valid. + // end-inclusive. This value must be higher than FromPort. For fleets using Windows + // and Linux builds, only ports 1026-60000 are valid. // // This member is required. ToPort *int32 @@ -1511,9 +1508,10 @@ type IpPermission struct { } // This data type is used with the GameLift FleetIQ and game server groups. An -// Amazon EC2 launch template that contains configuration settings and game server -// code to be deployed to all instances in a game server group. The launch template -// is specified when creating a new game server group with CreateGameServerGroup. +// Amazon Elastic Compute Cloud launch template that contains configuration +// settings and game server code to be deployed to all instances in a game server +// group. The launch template is specified when creating a new game server group +// with CreateGameServerGroup. type LaunchTemplateSpecification struct { // A unique identifier for an existing Amazon EC2 launch template. @@ -1523,9 +1521,9 @@ type LaunchTemplateSpecification struct { LaunchTemplateName *string // The version of the Amazon EC2 launch template to use. If no version is - // specified, the default version will be used. With Amazon Elastic Compute Cloud, - // you can specify a default version for a launch template. If none is set, the - // default is the first version created. + // specified, the default version will be used. With Amazon EC2, you can specify a + // default version for a launch template. If none is set, the default is the first + // version created. Version *string noSmithyDocumentSerde @@ -2011,7 +2009,7 @@ type PlayerSession struct { // A unique identifier for a player session. PlayerSessionId *string - // Port number for the game session. To connect to a Amazon Web Services server + // Port number for the game session. To connect to a Amazon GameLift server // process, an app needs both the IP address and port number. Port *int32 @@ -2169,8 +2167,8 @@ type RuntimeConfiguration struct { } // The location in Amazon S3 where build or script files are stored for access by -// Amazon Web Services. This location is specified in CreateBuild, CreateScript, -// and UpdateScript requests. +// Amazon GameLift. This location is specified in CreateBuild, CreateScript, and +// UpdateScript requests. type S3Location struct { // An Amazon S3 bucket identifier. This is the name of the S3 bucket. GameLift @@ -2182,14 +2180,14 @@ type S3Location struct { Key *string // The version of the file, if object versioning is turned on for the bucket. - // Amazon Web Services uses this information when retrieving files from an S3 - // bucket that you own. Use this parameter to specify a specific version of the - // file. If not set, the latest version of the file is retrieved. + // Amazon GameLift uses this information when retrieving files from an S3 bucket + // that you own. Use this parameter to specify a specific version of the file. If + // not set, the latest version of the file is retrieved. ObjectVersion *string // The Amazon Resource Name (ARN // (https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html)) for an IAM - // role that allows Amazon Web Services to access the S3 bucket. + // role that allows Amazon GameLift to access the S3 bucket. RoleArn *string noSmithyDocumentSerde @@ -2223,9 +2221,9 @@ type ScalingPolicy struct { // The fleet location. Location *string - // Name of the Amazon Web Services-defined metric that is used to trigger a scaling - // adjustment. For detailed descriptions of fleet metrics, see Monitor Amazon Web - // Services with Amazon CloudWatch + // Name of the Amazon GameLift-defined metric that is used to trigger a scaling + // adjustment. For detailed descriptions of fleet metrics, see Monitor Amazon + // GameLift with Amazon CloudWatch // (https://docs.aws.amazon.com/gamelift/latest/developerguide/monitoring-cloudwatch.html). // // * @@ -2367,8 +2365,8 @@ type Script struct { SizeOnDisk *int64 // The location in Amazon S3 where build or script files are stored for access by - // Amazon Web Services. This location is specified in CreateBuild, CreateScript, - // and UpdateScript requests. + // Amazon GameLift. This location is specified in CreateBuild, CreateScript, and + // UpdateScript requests. StorageLocation *S3Location // Version information that is associated with a build or script. Version strings @@ -2437,13 +2435,12 @@ type Tag struct { // Settings for a target-based scaling policy (see ScalingPolicy. A target-based // policy tracks a particular fleet metric specifies a target value for the metric. -// As player usage changes, the policy triggers Amazon Web Services to adjust -// capacity so that the metric returns to the target value. The target -// configuration specifies settings as needed for the target based policy, -// including the target value. Related actions DescribeFleetCapacity | -// UpdateFleetCapacity | DescribeEC2InstanceLimits | PutScalingPolicy | -// DescribeScalingPolicies | DeleteScalingPolicy | StopFleetActions | -// StartFleetActions | All APIs by task +// As player usage changes, the policy triggers Amazon GameLift to adjust capacity +// so that the metric returns to the target value. The target configuration +// specifies settings as needed for the target based policy, including the target +// value. Related actions DescribeFleetCapacity | UpdateFleetCapacity | +// DescribeEC2InstanceLimits | PutScalingPolicy | DescribeScalingPolicies | +// DeleteScalingPolicy | StopFleetActions | StartFleetActions | All APIs by task // (https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-awssdk.html#reference-awssdk-resources-fleets) type TargetConfiguration struct { @@ -2477,7 +2474,7 @@ type TargetTrackingConfiguration struct { } // Represents an authorization for a VPC peering connection between the VPC for an -// Amazon Web Services fleet and another VPC on an account you have access to. This +// Amazon GameLift fleet and another VPC on an account you have access to. This // authorization must exist and be valid for the peering connection to be // established. Authorizations are valid for 24 hours after they are issued. // Related actions CreateVpcPeeringAuthorization | DescribeVpcPeeringAuthorizations @@ -2515,8 +2512,8 @@ type VpcPeeringAuthorization struct { } // Represents a peering connection between a VPC on one of your Amazon Web Services -// accounts and the VPC for your Amazon Web Services fleets. This record may be for -// an active peering connection or a pending connection that has not yet been +// accounts and the VPC for your Amazon GameLift fleets. This record may be for an +// active peering connection or a pending connection that has not yet been // established. Related actions CreateVpcPeeringAuthorization | // DescribeVpcPeeringAuthorizations | DeleteVpcPeeringAuthorization | // CreateVpcPeeringConnection | DescribeVpcPeeringConnections | @@ -2529,13 +2526,13 @@ type VpcPeeringConnection struct { // with the GameLift fleet resource for this connection. FleetArn *string - // A unique identifier for the fleet. This ID determines the ID of the Amazon Web - // Services VPC for your fleet. + // A unique identifier for the fleet. This ID determines the ID of the Amazon + // GameLift VPC for your fleet. FleetId *string - // A unique identifier for the VPC that contains the Amazon Web Services fleet for - // this connection. This VPC is managed by Amazon Web Services and does not appear - // in your Amazon Web Services account. + // A unique identifier for the VPC that contains the Amazon GameLift fleet for this + // connection. This VPC is managed by Amazon GameLift and does not appear in your + // Amazon Web Services account. GameLiftVpcId *string // CIDR block of IPv4 addresses assigned to the VPC peering connection for the diff --git a/service/mq/api_op_DescribeBroker.go b/service/mq/api_op_DescribeBroker.go index 10580fb1122..358858aa2f5 100644 --- a/service/mq/api_op_DescribeBroker.go +++ b/service/mq/api_op_DescribeBroker.go @@ -40,6 +40,9 @@ type DescribeBrokerInput struct { type DescribeBrokerOutput struct { + // A list of actions required for a broker. + ActionsRequired []types.ActionRequired + // The authentication strategy used to secure the broker. The default is SIMPLE. AuthenticationStrategy types.AuthenticationStrategy diff --git a/service/mq/deserializers.go b/service/mq/deserializers.go index 73d5e872f7c..0c09478cd99 100644 --- a/service/mq/deserializers.go +++ b/service/mq/deserializers.go @@ -1082,6 +1082,11 @@ func awsRestjson1_deserializeOpDocumentDescribeBrokerOutput(v **DescribeBrokerOu for key, value := range shape { switch key { + case "actionsRequired": + if err := awsRestjson1_deserializeDocument__listOfActionRequired(&sv.ActionsRequired, value); err != nil { + return err + } + case "authenticationStrategy": if value != nil { jtv, ok := value.(string) @@ -3999,6 +4004,40 @@ func awsRestjson1_deserializeDocument__listOf__string(v *[]string, value interfa return nil } +func awsRestjson1_deserializeDocument__listOfActionRequired(v *[]types.ActionRequired, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.([]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var cv []types.ActionRequired + if *v == nil { + cv = []types.ActionRequired{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.ActionRequired + destAddr := &col + if err := awsRestjson1_deserializeDocumentActionRequired(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocument__listOfAvailabilityZone(v *[]types.AvailabilityZone, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -4445,6 +4484,55 @@ func awsRestjson1_deserializeDocument__mapOf__string(v *map[string]string, value return nil } +func awsRestjson1_deserializeDocumentActionRequired(v **types.ActionRequired, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.ActionRequired + if *v == nil { + sv = &types.ActionRequired{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "actionRequiredCode": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected __string to be of type string, got %T instead", value) + } + sv.ActionRequiredCode = ptr.String(jtv) + } + + case "actionRequiredInfo": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected __string to be of type string, got %T instead", value) + } + sv.ActionRequiredInfo = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentAvailabilityZone(v **types.AvailabilityZone, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/mq/types/enums.go b/service/mq/types/enums.go index 117c7b90344..49dc3be35c3 100644 --- a/service/mq/types/enums.go +++ b/service/mq/types/enums.go @@ -24,11 +24,12 @@ type BrokerState string // Enum values for BrokerState const ( - BrokerStateCreationInProgress BrokerState = "CREATION_IN_PROGRESS" - BrokerStateCreationFailed BrokerState = "CREATION_FAILED" - BrokerStateDeletionInProgress BrokerState = "DELETION_IN_PROGRESS" - BrokerStateRunning BrokerState = "RUNNING" - BrokerStateRebootInProgress BrokerState = "REBOOT_IN_PROGRESS" + BrokerStateCreationInProgress BrokerState = "CREATION_IN_PROGRESS" + BrokerStateCreationFailed BrokerState = "CREATION_FAILED" + BrokerStateDeletionInProgress BrokerState = "DELETION_IN_PROGRESS" + BrokerStateRunning BrokerState = "RUNNING" + BrokerStateRebootInProgress BrokerState = "REBOOT_IN_PROGRESS" + BrokerStateCriticalActionRequired BrokerState = "CRITICAL_ACTION_REQUIRED" ) // Values returns all known values for BrokerState. Note that this can be expanded @@ -41,6 +42,7 @@ func (BrokerState) Values() []BrokerState { "DELETION_IN_PROGRESS", "RUNNING", "REBOOT_IN_PROGRESS", + "CRITICAL_ACTION_REQUIRED", } } diff --git a/service/mq/types/types.go b/service/mq/types/types.go index 6e39481177a..3631684cebc 100644 --- a/service/mq/types/types.go +++ b/service/mq/types/types.go @@ -7,6 +7,26 @@ import ( "time" ) +// The action required to resolve a broker issue when the broker is in a +// CRITICAL_ACTION_REQUIRED state. +type ActionRequired struct { + + // The code you can use to resolve your broker issue when the broker is in a + // CRITICAL_ACTION_REQUIRED state. You can find instructions by choosing the link + // for your code from the list of action required codes in Amazon MQ action + // required codes + // (https://docs.aws.amazon.com//latest/developer-guide/troubleshooting-action-required-codes.html). + // Each code references a topic with detailed information, instructions, and + // recommendations for how to resolve the issue and prevent future occurrences. + ActionRequiredCode *string + + // Information about the action required to resolve your broker issue when the + // broker is in a CRITICAL_ACTION_REQUIRED state. + ActionRequiredInfo *string + + noSmithyDocumentSerde +} + // Name of the availability zone. type AvailabilityZone struct { diff --git a/service/rdsdata/api_op_ExecuteStatement.go b/service/rdsdata/api_op_ExecuteStatement.go index 52f271994c1..22438a113fc 100644 --- a/service/rdsdata/api_op_ExecuteStatement.go +++ b/service/rdsdata/api_op_ExecuteStatement.go @@ -13,8 +13,8 @@ import ( // Runs a SQL statement against a database. If a call isn't part of a transaction // because it doesn't include the transactionID parameter, changes that result from -// the call are committed automatically. The response size limit is 1 MB. If the -// call returns more than 1 MB of response data, the call is terminated. +// the call are committed automatically. If the binary response data from the +// database is more than 1 MB, the call is terminated. func (c *Client) ExecuteStatement(ctx context.Context, params *ExecuteStatementInput, optFns ...func(*Options)) (*ExecuteStatementOutput, error) { if params == nil { params = &ExecuteStatementInput{} @@ -59,6 +59,15 @@ type ExecuteStatementInput struct { // The name of the database. Database *string + // A value that indicates whether to format the result set as a single JSON string. + // This parameter only applies to SELECT statements and is ignored for other types + // of statements. Allowed values are NONE and JSON. The default value is NONE. The + // result is returned in the formattedRecords field. For usage information about + // the JSON format for result sets, see Using the Data API + // (https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html) in + // the Amazon Aurora User Guide. + FormatRecordsAs types.RecordsFormatType + // A value that indicates whether to include metadata in the results. IncludeResultMetadata bool @@ -85,10 +94,18 @@ type ExecuteStatementInput struct { // against a database. type ExecuteStatementOutput struct { - // Metadata for the columns included in the results. + // Metadata for the columns included in the results. This field is blank if the + // formatRecordsAs parameter is set to JSON. ColumnMetadata []types.ColumnMetadata - // Values for fields generated during the request. The generatedFields data isn't + // A string value that represents the result set of a SELECT statement in JSON + // format. This value is only present when the formatRecordsAs parameter is set to + // JSON. The size limit for this field is currently 10 MB. If the JSON-formatted + // string representing the result set requires more than 10 MB, the call returns an + // error. + FormattedRecords *string + + // Values for fields generated during a DML request. The generatedFields data isn't // supported by Aurora PostgreSQL. To get the values of generated fields, use the // RETURNING clause. For more information, see Returning Data From Modified Rows // (https://www.postgresql.org/docs/10/dml-returning.html) in the PostgreSQL @@ -98,7 +115,8 @@ type ExecuteStatementOutput struct { // The number of records updated by the request. NumberOfRecordsUpdated int64 - // The records returned by the SQL statement. + // The records returned by the SQL statement. This field is blank if the + // formatRecordsAs parameter is set to JSON. Records [][]types.Field // Metadata pertaining to the operation's result. diff --git a/service/rdsdata/deserializers.go b/service/rdsdata/deserializers.go index f29e41841f3..d21c0fdd518 100644 --- a/service/rdsdata/deserializers.go +++ b/service/rdsdata/deserializers.go @@ -118,6 +118,9 @@ func awsRestjson1_deserializeOpErrorBatchExecuteStatement(response *smithyhttp.R } switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("BadRequestException", errorCode): return awsRestjson1_deserializeErrorBadRequestException(response, errorBody) @@ -277,6 +280,9 @@ func awsRestjson1_deserializeOpErrorBeginTransaction(response *smithyhttp.Respon } switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("BadRequestException", errorCode): return awsRestjson1_deserializeErrorBadRequestException(response, errorBody) @@ -440,6 +446,9 @@ func awsRestjson1_deserializeOpErrorCommitTransaction(response *smithyhttp.Respo } switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("BadRequestException", errorCode): return awsRestjson1_deserializeErrorBadRequestException(response, errorBody) @@ -606,6 +615,9 @@ func awsRestjson1_deserializeOpErrorExecuteSql(response *smithyhttp.Response, me } switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("BadRequestException", errorCode): return awsRestjson1_deserializeErrorBadRequestException(response, errorBody) @@ -762,6 +774,9 @@ func awsRestjson1_deserializeOpErrorExecuteStatement(response *smithyhttp.Respon } switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("BadRequestException", errorCode): return awsRestjson1_deserializeErrorBadRequestException(response, errorBody) @@ -814,6 +829,15 @@ func awsRestjson1_deserializeOpDocumentExecuteStatementOutput(v **ExecuteStateme return err } + case "formattedRecords": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected FormattedSqlRecords to be of type string, got %T instead", value) + } + sv.FormattedRecords = ptr.String(jtv) + } + case "generatedFields": if err := awsRestjson1_deserializeDocumentFieldList(&sv.GeneratedFields, value); err != nil { return err @@ -944,6 +968,9 @@ func awsRestjson1_deserializeOpErrorRollbackTransaction(response *smithyhttp.Res } switch { + case strings.EqualFold("AccessDeniedException", errorCode): + return awsRestjson1_deserializeErrorAccessDeniedException(response, errorBody) + case strings.EqualFold("BadRequestException", errorCode): return awsRestjson1_deserializeErrorBadRequestException(response, errorBody) @@ -1012,6 +1039,42 @@ func awsRestjson1_deserializeOpDocumentRollbackTransactionOutput(v **RollbackTra return nil } +func awsRestjson1_deserializeErrorAccessDeniedException(response *smithyhttp.Response, errorBody *bytes.Reader) error { + output := &types.AccessDeniedException{} + var buff [1024]byte + ringBuffer := smithyio.NewRingBuffer(buff[:]) + + body := io.TeeReader(errorBody, ringBuffer) + decoder := json.NewDecoder(body) + decoder.UseNumber() + var shape interface{} + if err := decoder.Decode(&shape); err != nil && err != io.EOF { + 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 + } + + err := awsRestjson1_deserializeDocumentAccessDeniedException(&output, shape) + + 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) + + return output +} + func awsRestjson1_deserializeErrorBadRequestException(response *smithyhttp.Response, errorBody *bytes.Reader) error { output := &types.BadRequestException{} var buff [1024]byte @@ -1166,6 +1229,46 @@ func awsRestjson1_deserializeErrorStatementTimeoutException(response *smithyhttp return output } +func awsRestjson1_deserializeDocumentAccessDeniedException(v **types.AccessDeniedException, value interface{}) error { + if v == nil { + return fmt.Errorf("unexpected nil of type %T", v) + } + if value == nil { + return nil + } + + shape, ok := value.(map[string]interface{}) + if !ok { + return fmt.Errorf("unexpected JSON type %v", value) + } + + var sv *types.AccessDeniedException + if *v == nil { + sv = &types.AccessDeniedException{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ErrorMessage to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentArrayOfArray(v *[]types.ArrayValue, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/rdsdata/doc.go b/service/rdsdata/doc.go index 229917657b8..160799aca15 100644 --- a/service/rdsdata/doc.go +++ b/service/rdsdata/doc.go @@ -6,7 +6,7 @@ // Amazon RDS Data Service Amazon RDS provides an HTTP endpoint to run SQL // statements on an Amazon Aurora Serverless DB cluster. To run these statements, // you work with the Data Service API. For more information about the Data Service -// API, see Using the Data API for Aurora Serverless +// API, see Using the Data API // (https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html) in // the Amazon Aurora User Guide. package rdsdata diff --git a/service/rdsdata/serializers.go b/service/rdsdata/serializers.go index 41f0fed5cb3..d0f3385a537 100644 --- a/service/rdsdata/serializers.go +++ b/service/rdsdata/serializers.go @@ -434,6 +434,11 @@ func awsRestjson1_serializeOpDocumentExecuteStatementInput(v *ExecuteStatementIn ok.String(*v.Database) } + if len(v.FormatRecordsAs) > 0 { + ok := object.Key("formatRecordsAs") + ok.String(string(v.FormatRecordsAs)) + } + if v.IncludeResultMetadata { ok := object.Key("includeResultMetadata") ok.Boolean(v.IncludeResultMetadata) @@ -727,6 +732,11 @@ func awsRestjson1_serializeDocumentResultSetOptions(v *types.ResultSetOptions, v ok.String(string(v.DecimalReturnType)) } + if len(v.LongReturnType) > 0 { + ok := object.Key("longReturnType") + ok.String(string(v.LongReturnType)) + } + return nil } diff --git a/service/rdsdata/types/enums.go b/service/rdsdata/types/enums.go index 72f63543c80..4b7071114a5 100644 --- a/service/rdsdata/types/enums.go +++ b/service/rdsdata/types/enums.go @@ -20,6 +20,42 @@ func (DecimalReturnType) Values() []DecimalReturnType { } } +type LongReturnType string + +// Enum values for LongReturnType +const ( + LongReturnTypeString LongReturnType = "STRING" + LongReturnTypeLong LongReturnType = "LONG" +) + +// Values returns all known values for LongReturnType. 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 (LongReturnType) Values() []LongReturnType { + return []LongReturnType{ + "STRING", + "LONG", + } +} + +type RecordsFormatType string + +// Enum values for RecordsFormatType +const ( + RecordsFormatTypeNone RecordsFormatType = "NONE" + RecordsFormatTypeJson RecordsFormatType = "JSON" +) + +// Values returns all known values for RecordsFormatType. 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 (RecordsFormatType) Values() []RecordsFormatType { + return []RecordsFormatType{ + "NONE", + "JSON", + } +} + type TypeHint string // Enum values for TypeHint diff --git a/service/rdsdata/types/errors.go b/service/rdsdata/types/errors.go index 9f65fd77a71..ec2d725babd 100644 --- a/service/rdsdata/types/errors.go +++ b/service/rdsdata/types/errors.go @@ -7,6 +7,25 @@ import ( smithy "github.com/aws/smithy-go" ) +// You do not have sufficient access to perform this action. +type AccessDeniedException struct { + Message *string + + noSmithyDocumentSerde +} + +func (e *AccessDeniedException) Error() string { + return fmt.Sprintf("%s: %s", e.ErrorCode(), e.ErrorMessage()) +} +func (e *AccessDeniedException) ErrorMessage() string { + if e.Message == nil { + return "" + } + return *e.Message +} +func (e *AccessDeniedException) ErrorCode() string { return "AccessDeniedException" } +func (e *AccessDeniedException) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } + // There is an error in the call or in a SQL statement. type BadRequestException struct { Message *string diff --git a/service/rdsdata/types/types.go b/service/rdsdata/types/types.go index f16f03de23e..52ea4aa24c0 100644 --- a/service/rdsdata/types/types.go +++ b/service/rdsdata/types/types.go @@ -36,7 +36,7 @@ type ArrayValueMemberBooleanValues struct { func (*ArrayValueMemberBooleanValues) isArrayValue() {} -// An array of integers. +// An array of floating-point numbers. type ArrayValueMemberDoubleValues struct { Value []float64 @@ -45,7 +45,7 @@ type ArrayValueMemberDoubleValues struct { func (*ArrayValueMemberDoubleValues) isArrayValue() {} -// An array of floating point numbers. +// An array of integers. type ArrayValueMemberLongValues struct { Value []int64 @@ -188,7 +188,9 @@ type FieldMemberStringValue struct { func (*FieldMemberStringValue) isField() {} -// A record returned by a call. +// A record returned by a call. This data structure is only used with the +// deprecated ExecuteSql operation. Use the BatchExecuteStatement or +// ExecuteStatement operation instead. type Record struct { // The values returned in the record. @@ -197,7 +199,9 @@ type Record struct { noSmithyDocumentSerde } -// The result set returned by a SQL statement. +// The result set returned by a SQL statement. This data structure is only used +// with the deprecated ExecuteSql operation. Use the BatchExecuteStatement or +// ExecuteStatement operation instead. type ResultFrame struct { // The records in the result set. @@ -232,6 +236,11 @@ type ResultSetOptions struct { // converting to String, especially when working with currency values. DecimalReturnType DecimalReturnType + // A value that indicates how a field of LONG type is represented. Allowed values + // are LONG and STRING. The default is LONG. Specify STRING if the length or + // precision of numeric values might cause truncation or rounding errors. + LongReturnType LongReturnType + noSmithyDocumentSerde } @@ -273,7 +282,9 @@ type SqlParameter struct { noSmithyDocumentSerde } -// The result of a SQL statement. This data type is deprecated. +// The result of a SQL statement. This data structure is only used with the +// deprecated ExecuteSql operation. Use the BatchExecuteStatement or +// ExecuteStatement operation instead. type SqlStatementResult struct { // The number of records updated by a SQL statement. @@ -285,7 +296,9 @@ type SqlStatementResult struct { noSmithyDocumentSerde } -// A structure value returned by a call. +// A structure value returned by a call. This data structure is only used with the +// deprecated ExecuteSql operation. Use the BatchExecuteStatement or +// ExecuteStatement operation instead. type StructValue struct { // The attributes returned in the record. @@ -303,7 +316,9 @@ type UpdateResult struct { noSmithyDocumentSerde } -// Contains the value of a column. This data type is deprecated. +// Contains the value of a column. This data structure is only used with the +// deprecated ExecuteSql operation. Use the BatchExecuteStatement or +// ExecuteStatement operation instead. // // The following types satisfy this interface: // ValueMemberArrayValues diff --git a/service/securityhub/api_op_CreateFindingAggregator.go b/service/securityhub/api_op_CreateFindingAggregator.go index de58756e5f4..ce563478a57 100644 --- a/service/securityhub/api_op_CreateFindingAggregator.go +++ b/service/securityhub/api_op_CreateFindingAggregator.go @@ -12,7 +12,9 @@ import ( // Used to enable finding aggregation. Must be called from the aggregation Region. // For more details about cross-Region replication, see Configuring finding -// aggregation in the Security Hub User Guide. +// aggregation +// (https://docs.aws.amazon.com/securityhub/latest/userguide/finding-aggregation.html) +// in the Security Hub User Guide. func (c *Client) CreateFindingAggregator(ctx context.Context, params *CreateFindingAggregatorInput, optFns ...func(*Options)) (*CreateFindingAggregatorOutput, error) { if params == nil { params = &CreateFindingAggregatorInput{} diff --git a/service/securityhub/api_op_DescribeOrganizationConfiguration.go b/service/securityhub/api_op_DescribeOrganizationConfiguration.go index 3e465f852ee..f6e4cdc8559 100644 --- a/service/securityhub/api_op_DescribeOrganizationConfiguration.go +++ b/service/securityhub/api_op_DescribeOrganizationConfiguration.go @@ -6,6 +6,7 @@ import ( "context" awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/securityhub/types" "github.com/aws/smithy-go/middleware" smithyhttp "github.com/aws/smithy-go/transport/http" ) @@ -38,6 +39,14 @@ type DescribeOrganizationConfigurationOutput struct { // set to false, then new accounts are not added automatically. AutoEnable bool + // Whether to automatically enable Security Hub default standards + // (https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-standards-enable-disable.html) + // for new member accounts in the organization. The default value of this parameter + // is equal to DEFAULT. If equal to DEFAULT, then Security Hub default standards + // are automatically enabled for new member accounts. If equal to NONE, then + // default standards are not automatically enabled for new member accounts. + AutoEnableStandards types.AutoEnableStandards + // Whether the maximum number of allowed member accounts are already associated // with the Security Hub administrator account. MemberAccountLimitReached bool diff --git a/service/securityhub/api_op_UpdateOrganizationConfiguration.go b/service/securityhub/api_op_UpdateOrganizationConfiguration.go index 6c97622c87d..788a8efbb8f 100644 --- a/service/securityhub/api_op_UpdateOrganizationConfiguration.go +++ b/service/securityhub/api_op_UpdateOrganizationConfiguration.go @@ -6,6 +6,7 @@ import ( "context" awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/service/securityhub/types" "github.com/aws/smithy-go/middleware" smithyhttp "github.com/aws/smithy-go/transport/http" ) @@ -37,6 +38,14 @@ type UpdateOrganizationConfigurationInput struct { // This member is required. AutoEnable bool + // Whether to automatically enable Security Hub default standards + // (https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-standards-enable-disable.html) + // for new member accounts in the organization. By default, this parameter is equal + // to DEFAULT, and new member accounts are automatically enabled with default + // Security Hub standards. To opt out of enabling default standards for new member + // accounts, set this parameter equal to NONE. + AutoEnableStandards types.AutoEnableStandards + noSmithyDocumentSerde } diff --git a/service/securityhub/deserializers.go b/service/securityhub/deserializers.go index a83610da5ac..677c06cd7cc 100644 --- a/service/securityhub/deserializers.go +++ b/service/securityhub/deserializers.go @@ -2928,6 +2928,15 @@ func awsRestjson1_deserializeOpDocumentDescribeOrganizationConfigurationOutput(v sv.AutoEnable = jtv } + case "AutoEnableStandards": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected AutoEnableStandards to be of type string, got %T instead", value) + } + sv.AutoEnableStandards = types.AutoEnableStandards(jtv) + } + case "MemberAccountLimitReached": if value != nil { jtv, ok := value.(bool) diff --git a/service/securityhub/doc.go b/service/securityhub/doc.go index b36b7f4c701..868805b7b5b 100644 --- a/service/securityhub/doc.go +++ b/service/securityhub/doc.go @@ -9,19 +9,19 @@ // security standards. Security Hub collects security data from Amazon Web Services // accounts, services, and integrated third-party products and helps you analyze // security trends in your environment to identify the highest priority security -// issues. For more information about Security Hub, see the Security HubUser Guide -// (https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html) -// . When you use operations in the Security Hub API, the requests are executed -// only in the Amazon Web Services Region that is currently active or in the -// specific Amazon Web Services Region that you specify in your request. Any -// configuration or settings change that results from the operation is applied only -// to that Region. To make the same change in other Regions, execute the same -// command for each Region to apply the change to. For example, if your Region is -// set to us-west-2, when you use CreateMembers to add a member account to Security -// Hub, the association of the member account with the administrator account is -// created only in the us-west-2 Region. Security Hub must be enabled for the -// member account in the same Region that the invitation was sent from. The -// following throttling limits apply to using Security Hub API operations. +// issues. For more information about Security Hub, see the Security HubUser Guide +// (https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html). +// When you use operations in the Security Hub API, the requests are executed only +// in the Amazon Web Services Region that is currently active or in the specific +// Amazon Web Services Region that you specify in your request. Any configuration +// or settings change that results from the operation is applied only to that +// Region. To make the same change in other Regions, execute the same command for +// each Region to apply the change to. For example, if your Region is set to +// us-west-2, when you use CreateMembers to add a member account to Security Hub, +// the association of the member account with the administrator account is created +// only in the us-west-2 Region. Security Hub must be enabled for the member +// account in the same Region that the invitation was sent from. The following +// throttling limits apply to using Security Hub API operations. // // * // BatchEnableStandards - RateLimit of 1 request per second, BurstLimit of 1 diff --git a/service/securityhub/serializers.go b/service/securityhub/serializers.go index 749ec7f7b9c..e567c257f3c 100644 --- a/service/securityhub/serializers.go +++ b/service/securityhub/serializers.go @@ -3627,6 +3627,11 @@ func awsRestjson1_serializeOpDocumentUpdateOrganizationConfigurationInput(v *Upd ok.Boolean(v.AutoEnable) } + if len(v.AutoEnableStandards) > 0 { + ok := object.Key("AutoEnableStandards") + ok.String(string(v.AutoEnableStandards)) + } + return nil } diff --git a/service/securityhub/types/enums.go b/service/securityhub/types/enums.go index 335d9d9255a..97b810c8f36 100644 --- a/service/securityhub/types/enums.go +++ b/service/securityhub/types/enums.go @@ -20,6 +20,24 @@ func (AdminStatus) Values() []AdminStatus { } } +type AutoEnableStandards string + +// Enum values for AutoEnableStandards +const ( + AutoEnableStandardsNone AutoEnableStandards = "NONE" + AutoEnableStandardsDefault AutoEnableStandards = "DEFAULT" +) + +// Values returns all known values for AutoEnableStandards. 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 (AutoEnableStandards) Values() []AutoEnableStandards { + return []AutoEnableStandards{ + "NONE", + "DEFAULT", + } +} + type AwsIamAccessKeyStatus string // Enum values for AwsIamAccessKeyStatus diff --git a/service/securityhub/types/types.go b/service/securityhub/types/types.go index 34951414c19..95a2d413c9e 100644 --- a/service/securityhub/types/types.go +++ b/service/securityhub/types/types.go @@ -7459,13 +7459,10 @@ type AwsSecurityFinding struct { Action *Action // The name of the company for the product that generated the finding. Security Hub - // populates this attribute automatically for each finding. You cannot be updated - // using BatchImportFindings or BatchUpdateFindings. The exception to this is when - // you use a custom integration. When you use the Security Hub console to filter - // findings by company name, you use this attribute. When you use the Security Hub - // API to filter findings by company name, you use the aws/securityhub/CompanyName - // attribute under ProductFields. Security Hub does not synchronize those two - // attributes. + // populates this attribute automatically for each finding. You cannot update this + // attribute with BatchImportFindings or BatchUpdateFindings. The exception to this + // is a custom integration. When you use the Security Hub console or API to filter + // findings by company name, you use this attribute. CompanyName *string // This data type is exclusive to findings that are generated as the result of a @@ -7532,13 +7529,10 @@ type AwsSecurityFinding struct { ProductFields map[string]string // The name of the product that generated the finding. Security Hub populates this - // attribute automatically for each finding. You cannot update it using - // BatchImportFindings or BatchUpdateFindings. The exception to this is when you - // use a custom integration. When you use the Security Hub console to filter - // findings by product name, you use this attribute. When you use the Security Hub - // API to filter findings by product name, you use the aws/securityhub/ProductName - // attribute under ProductFields. Security Hub does not synchronize those two - // attributes. + // attribute automatically for each finding. You cannot update this attribute with + // BatchImportFindings or BatchUpdateFindings. The exception to this is a custom + // integration. When you use the Security Hub console or API to filter findings by + // product name, you use this attribute. ProductName *string // The record state of a finding. @@ -7605,9 +7599,7 @@ type AwsSecurityFindingFilters struct { AwsAccountId []StringFilter // The name of the findings provider (company) that owns the solution (product) - // that generates findings. Note that this is a filter against the - // aws/securityhub/CompanyName field in ProductFields. It is not a filter for the - // top-level CompanyName field. + // that generates findings. CompanyName []StringFilter // Exclusive to findings that are generated as the result of a check run against a @@ -7771,9 +7763,7 @@ type AwsSecurityFindingFilters struct { // format. ProductFields []MapFilter - // The name of the solution (product) that generates findings. Note that this is a - // filter against the aws/securityhub/ProductName field in ProductFields. It is not - // a filter for the top-level ProductName field. + // The name of the solution (product) that generates findings. ProductName []StringFilter // The recommendation of what to do about the issue described in a finding.