From a847e5fbd346b1944e70d2c6d5e0f96c553e5c74 Mon Sep 17 00:00:00 2001 From: AWS SDK for Go v2 automation user Date: Thu, 19 Jan 2023 21:11:06 +0000 Subject: [PATCH] Regenerated Clients --- .../0cd0bb6e5e85482c991c079448049be7.json | 8 + .../2aefd497776d47ab9b7f12f3db1c5fd9.json | 8 + .../30c18ea28c4c4e3b908c1ae387e11d4b.json | 8 + .../73916e0a247b44b9821fc5f47c57c3c2.json | 8 + .../7be412404ac7408faa9492a2f4cfb90b.json | 8 + .../8541a5b421964efb8b2762bfd5bb13b5.json | 8 + .../a8aec360ccdf47599491ac113971b735.json | 8 + .../c0b78afd65684e098c239b2f6938d452.json | 8 + .../cfd858ec3f4144c8872942030eea4ad9.json | 8 + .../d344538919664ae2ab8a6dca520c478a.json | 8 + .../d9562fcdb6554ccf8c077eaf5b6ac795.json | 8 + .../da0d3ef8d438452db3c5bf34309fac5f.json | 8 + service/appflow/deserializers.go | 153 +++++++ service/appflow/serializers.go | 89 ++++ service/appflow/types/enums.go | 44 ++ service/appflow/types/types.go | 69 ++++ service/appflow/validators.go | 20 + .../api_op_DescribeLogStreams.go | 8 +- .../cloudwatchlogs/api_op_FilterLogEvents.go | 8 +- service/cloudwatchlogs/api_op_GetLogEvents.go | 8 +- .../api_op_GetLogGroupFields.go | 7 +- .../api_op_AssociateExternalConnection.go | 11 +- .../api_op_DeletePackageVersions.go | 2 +- .../api_op_GetPackageVersionReadme.go | 11 +- service/codeartifact/api_op_ListPackages.go | 19 +- service/codeartifact/doc.go | 95 +++-- service/codeartifact/types/types.go | 15 +- service/connect/api_op_StartChatContact.go | 10 + service/connect/deserializers.go | 18 + service/connect/serializers.go | 24 ++ service/connect/types/enums.go | 18 + service/connect/types/types.go | 35 ++ .../api_op_GetTranscript.go | 3 + service/connectparticipant/deserializers.go | 18 + service/connectparticipant/types/types.go | 10 + service/ebs/internal/endpoints/endpoints.go | 9 + .../ec2/api_op_CreateLaunchTemplateVersion.go | 7 + .../api_op_DescribeLaunchTemplateVersions.go | 9 + service/ec2/serializers.go | 10 + service/ec2/types/types.go | 39 +- service/glue/deserializers.go | 386 ++++++++++++++++++ service/glue/serializers.go | 252 ++++++++++++ service/glue/types/enums.go | 24 ++ service/glue/types/types.go | 174 ++++++++ service/glue/validators.go | 157 +++++++ .../api_op_CreateDataflowEndpointGroup.go | 10 + .../groundstation/api_op_DescribeContact.go | 189 +++++++++ .../api_op_GetDataflowEndpointGroup.go | 10 + service/groundstation/deserializers.go | 26 ++ service/groundstation/generated.json | 3 +- service/groundstation/go.mod | 1 + service/groundstation/go.sum | 6 + service/groundstation/serializers.go | 10 + service/m2/internal/endpoints/endpoints.go | 27 ++ service/medialive/deserializers.go | 34 ++ service/medialive/serializers.go | 18 + service/medialive/types/types.go | 8 + .../internal/endpoints/endpoints.go | 9 + service/opensearch/api_op_AddTags.go | 6 +- .../opensearch/api_op_CreateVpcEndpoint.go | 2 +- .../api_op_DescribeDryRunProgress.go | 137 +++++++ .../opensearch/api_op_UpdateDomainConfig.go | 19 +- service/opensearch/deserializers.go | 329 +++++++++++++++ service/opensearch/generated.json | 1 + service/opensearch/serializers.go | 71 ++++ service/opensearch/types/enums.go | 18 + service/opensearch/types/types.go | 42 ++ service/opensearch/validators.go | 39 ++ .../panorama/api_op_CreateJobForDevices.go | 6 +- service/panorama/serializers.go | 5 + service/panorama/types/types.go | 3 + service/sagemaker/api_op_UpdateEndpoint.go | 3 +- service/sagemaker/deserializers.go | 41 ++ service/sagemaker/serializers.go | 18 + service/sagemaker/types/types.go | 15 +- 75 files changed, 2863 insertions(+), 101 deletions(-) create mode 100644 .changelog/0cd0bb6e5e85482c991c079448049be7.json create mode 100644 .changelog/2aefd497776d47ab9b7f12f3db1c5fd9.json create mode 100644 .changelog/30c18ea28c4c4e3b908c1ae387e11d4b.json create mode 100644 .changelog/73916e0a247b44b9821fc5f47c57c3c2.json create mode 100644 .changelog/7be412404ac7408faa9492a2f4cfb90b.json create mode 100644 .changelog/8541a5b421964efb8b2762bfd5bb13b5.json create mode 100644 .changelog/a8aec360ccdf47599491ac113971b735.json create mode 100644 .changelog/c0b78afd65684e098c239b2f6938d452.json create mode 100644 .changelog/cfd858ec3f4144c8872942030eea4ad9.json create mode 100644 .changelog/d344538919664ae2ab8a6dca520c478a.json create mode 100644 .changelog/d9562fcdb6554ccf8c077eaf5b6ac795.json create mode 100644 .changelog/da0d3ef8d438452db3c5bf34309fac5f.json create mode 100644 service/opensearch/api_op_DescribeDryRunProgress.go diff --git a/.changelog/0cd0bb6e5e85482c991c079448049be7.json b/.changelog/0cd0bb6e5e85482c991c079448049be7.json new file mode 100644 index 00000000000..60b7bf84db0 --- /dev/null +++ b/.changelog/0cd0bb6e5e85482c991c079448049be7.json @@ -0,0 +1,8 @@ +{ + "id": "0cd0bb6e-5e85-482c-991c-079448049be7", + "type": "feature", + "description": "This release adds the enhanced dry run option, that checks for validation errors that might occur when deploying configuration changes and provides a summary of these errors, if any. The feature will also indicate whether a blue/green deployment will be required to apply a change.", + "modules": [ + "service/opensearch" + ] +} \ No newline at end of file diff --git a/.changelog/2aefd497776d47ab9b7f12f3db1c5fd9.json b/.changelog/2aefd497776d47ab9b7f12f3db1c5fd9.json new file mode 100644 index 00000000000..a7f118e53a1 --- /dev/null +++ b/.changelog/2aefd497776d47ab9b7f12f3db1c5fd9.json @@ -0,0 +1,8 @@ +{ + "id": "2aefd497-776d-47ab-9b7f-12f3db1c5fd9", + "type": "feature", + "description": "Amazon Connect Chat introduces Persistent Chat, allowing customers to resume previous conversations with context and transcripts carried over from previous chats, eliminating the need to repeat themselves and allowing agents to provide personalized service with access to entire conversation history.", + "modules": [ + "service/connect" + ] +} \ No newline at end of file diff --git a/.changelog/30c18ea28c4c4e3b908c1ae387e11d4b.json b/.changelog/30c18ea28c4c4e3b908c1ae387e11d4b.json new file mode 100644 index 00000000000..14bef7e0122 --- /dev/null +++ b/.changelog/30c18ea28c4c4e3b908c1ae387e11d4b.json @@ -0,0 +1,8 @@ +{ + "id": "30c18ea2-8c4c-4e3b-908c-1ae387e11d4b", + "type": "feature", + "description": "Documentation updates for CodeArtifact", + "modules": [ + "service/codeartifact" + ] +} \ No newline at end of file diff --git a/.changelog/73916e0a247b44b9821fc5f47c57c3c2.json b/.changelog/73916e0a247b44b9821fc5f47c57c3c2.json new file mode 100644 index 00000000000..4d17f902bec --- /dev/null +++ b/.changelog/73916e0a247b44b9821fc5f47c57c3c2.json @@ -0,0 +1,8 @@ +{ + "id": "73916e0a-247b-44b9-821f-c5f47c57c3c2", + "type": "feature", + "description": "Release Glue Studio Hudi Data Lake Format for SDK/CLI", + "modules": [ + "service/glue" + ] +} \ No newline at end of file diff --git a/.changelog/7be412404ac7408faa9492a2f4cfb90b.json b/.changelog/7be412404ac7408faa9492a2f4cfb90b.json new file mode 100644 index 00000000000..fddb6ff0388 --- /dev/null +++ b/.changelog/7be412404ac7408faa9492a2f4cfb90b.json @@ -0,0 +1,8 @@ +{ + "id": "7be41240-4ac7-408f-aa94-92a2f4cfb90b", + "type": "feature", + "description": "Added AllowMajorVersionUpdate option to OTAJobConfig to make appliance software major version updates opt-in.", + "modules": [ + "service/panorama" + ] +} \ No newline at end of file diff --git a/.changelog/8541a5b421964efb8b2762bfd5bb13b5.json b/.changelog/8541a5b421964efb8b2762bfd5bb13b5.json new file mode 100644 index 00000000000..bd8fafe138a --- /dev/null +++ b/.changelog/8541a5b421964efb8b2762bfd5bb13b5.json @@ -0,0 +1,8 @@ +{ + "id": "8541a5b4-2196-4efb-8b27-62bfd5bb13b5", + "type": "feature", + "description": "This release updates Amazon Connect Participant's GetTranscript api to provide transcripts of past chats on a persistent chat session.", + "modules": [ + "service/connectparticipant" + ] +} \ No newline at end of file diff --git a/.changelog/a8aec360ccdf47599491ac113971b735.json b/.changelog/a8aec360ccdf47599491ac113971b735.json new file mode 100644 index 00000000000..6b4e951798b --- /dev/null +++ b/.changelog/a8aec360ccdf47599491ac113971b735.json @@ -0,0 +1,8 @@ +{ + "id": "a8aec360-ccdf-4759-9491-ac113971b735", + "type": "feature", + "description": "Adds SSM Parameter Resource Aliasing support to EC2 Launch Templates. Launch Templates can now store parameter aliases in place of AMI Resource IDs. CreateLaunchTemplateVersion and DescribeLaunchTemplateVersions now support a convenience flag, ResolveAlias, to return the resolved parameter value.", + "modules": [ + "service/ec2" + ] +} \ No newline at end of file diff --git a/.changelog/c0b78afd65684e098c239b2f6938d452.json b/.changelog/c0b78afd65684e098c239b2f6938d452.json new file mode 100644 index 00000000000..f625fabd1c8 --- /dev/null +++ b/.changelog/c0b78afd65684e098c239b2f6938d452.json @@ -0,0 +1,8 @@ +{ + "id": "c0b78afd-6568-4e09-8c23-9b2f6938d452", + "type": "feature", + "description": "AWS Elemental MediaLive adds support for SCTE 35 preRollMilliSeconds.", + "modules": [ + "service/medialive" + ] +} \ No newline at end of file diff --git a/.changelog/cfd858ec3f4144c8872942030eea4ad9.json b/.changelog/cfd858ec3f4144c8872942030eea4ad9.json new file mode 100644 index 00000000000..9a99428bcfe --- /dev/null +++ b/.changelog/cfd858ec3f4144c8872942030eea4ad9.json @@ -0,0 +1,8 @@ +{ + "id": "cfd858ec-3f41-44c8-8729-42030eea4ad9", + "type": "feature", + "description": "HyperParameterTuningJobs now allow passing environment variables into the corresponding TrainingJobs", + "modules": [ + "service/sagemaker" + ] +} \ No newline at end of file diff --git a/.changelog/d344538919664ae2ab8a6dca520c478a.json b/.changelog/d344538919664ae2ab8a6dca520c478a.json new file mode 100644 index 00000000000..3a12e1f7881 --- /dev/null +++ b/.changelog/d344538919664ae2ab8a6dca520c478a.json @@ -0,0 +1,8 @@ +{ + "id": "d3445389-1966-4ae2-ab8a-6dca520c478a", + "type": "feature", + "description": "Add configurable prepass and postpass times for DataflowEndpointGroup. Add Waiter to allow customers to wait for a contact that was reserved through ReserveContact", + "modules": [ + "service/groundstation" + ] +} \ No newline at end of file diff --git a/.changelog/d9562fcdb6554ccf8c077eaf5b6ac795.json b/.changelog/d9562fcdb6554ccf8c077eaf5b6ac795.json new file mode 100644 index 00000000000..69b34a2c76a --- /dev/null +++ b/.changelog/d9562fcdb6554ccf8c077eaf5b6ac795.json @@ -0,0 +1,8 @@ +{ + "id": "d9562fcd-b655-4ccf-8c07-7eaf5b6ac795", + "type": "feature", + "description": "Adding support for Salesforce Pardot connector in Amazon AppFlow.", + "modules": [ + "service/appflow" + ] +} \ No newline at end of file diff --git a/.changelog/da0d3ef8d438452db3c5bf34309fac5f.json b/.changelog/da0d3ef8d438452db3c5bf34309fac5f.json new file mode 100644 index 00000000000..1d36c84951c --- /dev/null +++ b/.changelog/da0d3ef8d438452db3c5bf34309fac5f.json @@ -0,0 +1,8 @@ +{ + "id": "da0d3ef8-d438-452d-b3c5-bf34309fac5f", + "type": "feature", + "description": "Bug fix - Removed the regex pattern validation from CoralModel to avoid potential security issue.", + "modules": [ + "service/cloudwatchlogs" + ] +} \ No newline at end of file diff --git a/service/appflow/deserializers.go b/service/appflow/deserializers.go index e78d9a90452..9b364f2664f 100644 --- a/service/appflow/deserializers.go +++ b/service/appflow/deserializers.go @@ -5207,6 +5207,11 @@ func awsRestjson1_deserializeDocumentConnectorMetadata(v **types.ConnectorMetada return err } + case "Pardot": + if err := awsRestjson1_deserializeDocumentPardotMetadata(&sv.Pardot, value); err != nil { + return err + } + case "Redshift": if err := awsRestjson1_deserializeDocumentRedshiftMetadata(&sv.Redshift, value); err != nil { return err @@ -5397,6 +5402,15 @@ func awsRestjson1_deserializeDocumentConnectorOperator(v **types.ConnectorOperat sv.Marketo = types.MarketoConnectorOperator(jtv) } + case "Pardot": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected PardotConnectorOperator to be of type string, got %T instead", value) + } + sv.Pardot = types.PardotConnectorOperator(jtv) + } + case "S3": if value != nil { jtv, ok := value.(string) @@ -5710,6 +5724,11 @@ func awsRestjson1_deserializeDocumentConnectorProfileProperties(v **types.Connec return err } + case "Pardot": + if err := awsRestjson1_deserializeDocumentPardotConnectorProfileProperties(&sv.Pardot, value); err != nil { + return err + } + case "Redshift": if err := awsRestjson1_deserializeDocumentRedshiftConnectorProfileProperties(&sv.Redshift, value); err != nil { return err @@ -8942,6 +8961,135 @@ func awsRestjson1_deserializeDocumentOAuthScopeList(v *[]string, value interface return nil } +func awsRestjson1_deserializeDocumentPardotConnectorProfileProperties(v **types.PardotConnectorProfileProperties, 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.PardotConnectorProfileProperties + if *v == nil { + sv = &types.PardotConnectorProfileProperties{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "businessUnitId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected BusinessUnitId to be of type string, got %T instead", value) + } + sv.BusinessUnitId = ptr.String(jtv) + } + + case "instanceUrl": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected InstanceUrl to be of type string, got %T instead", value) + } + sv.InstanceUrl = ptr.String(jtv) + } + + case "isSandboxEnvironment": + if value != nil { + jtv, ok := value.(bool) + if !ok { + return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value) + } + sv.IsSandboxEnvironment = jtv + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentPardotMetadata(v **types.PardotMetadata, 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.PardotMetadata + if *v == nil { + sv = &types.PardotMetadata{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentPardotSourceProperties(v **types.PardotSourceProperties, 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.PardotSourceProperties + if *v == nil { + sv = &types.PardotSourceProperties{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "object": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected Object to be of type string, got %T instead", value) + } + sv.Object = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentPathPrefixHierarchy(v *[]types.PathPrefix, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -11080,6 +11228,11 @@ func awsRestjson1_deserializeDocumentSourceConnectorProperties(v **types.SourceC return err } + case "Pardot": + if err := awsRestjson1_deserializeDocumentPardotSourceProperties(&sv.Pardot, value); err != nil { + return err + } + case "S3": if err := awsRestjson1_deserializeDocumentS3SourceProperties(&sv.S3, value); err != nil { return err diff --git a/service/appflow/serializers.go b/service/appflow/serializers.go index 852c6ab4a9c..d6a5c290fcc 100644 --- a/service/appflow/serializers.go +++ b/service/appflow/serializers.go @@ -1997,6 +1997,11 @@ func awsRestjson1_serializeDocumentConnectorOperator(v *types.ConnectorOperator, ok.String(string(v.Marketo)) } + if len(v.Pardot) > 0 { + ok := object.Key("Pardot") + ok.String(string(v.Pardot)) + } + if len(v.S3) > 0 { ok := object.Key("S3") ok.String(string(v.S3)) @@ -2126,6 +2131,13 @@ func awsRestjson1_serializeDocumentConnectorProfileCredentials(v *types.Connecto } } + if v.Pardot != nil { + ok := object.Key("Pardot") + if err := awsRestjson1_serializeDocumentPardotConnectorProfileCredentials(v.Pardot, ok); err != nil { + return err + } + } + if v.Redshift != nil { ok := object.Key("Redshift") if err := awsRestjson1_serializeDocumentRedshiftConnectorProfileCredentials(v.Redshift, ok); err != nil { @@ -2270,6 +2282,13 @@ func awsRestjson1_serializeDocumentConnectorProfileProperties(v *types.Connector } } + if v.Pardot != nil { + ok := object.Key("Pardot") + if err := awsRestjson1_serializeDocumentPardotConnectorProfileProperties(v.Pardot, ok); err != nil { + return err + } + } + if v.Redshift != nil { ok := object.Key("Redshift") if err := awsRestjson1_serializeDocumentRedshiftConnectorProfileProperties(v.Redshift, ok); err != nil { @@ -3233,6 +3252,69 @@ func awsRestjson1_serializeDocumentOAuthScopeList(v []string, value smithyjson.V return nil } +func awsRestjson1_serializeDocumentPardotConnectorProfileCredentials(v *types.PardotConnectorProfileCredentials, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AccessToken != nil { + ok := object.Key("accessToken") + ok.String(*v.AccessToken) + } + + if v.ClientCredentialsArn != nil { + ok := object.Key("clientCredentialsArn") + ok.String(*v.ClientCredentialsArn) + } + + if v.OAuthRequest != nil { + ok := object.Key("oAuthRequest") + if err := awsRestjson1_serializeDocumentConnectorOAuthRequest(v.OAuthRequest, ok); err != nil { + return err + } + } + + if v.RefreshToken != nil { + ok := object.Key("refreshToken") + ok.String(*v.RefreshToken) + } + + return nil +} + +func awsRestjson1_serializeDocumentPardotConnectorProfileProperties(v *types.PardotConnectorProfileProperties, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.BusinessUnitId != nil { + ok := object.Key("businessUnitId") + ok.String(*v.BusinessUnitId) + } + + if v.InstanceUrl != nil { + ok := object.Key("instanceUrl") + ok.String(*v.InstanceUrl) + } + + if v.IsSandboxEnvironment { + ok := object.Key("isSandboxEnvironment") + ok.Boolean(v.IsSandboxEnvironment) + } + + return nil +} + +func awsRestjson1_serializeDocumentPardotSourceProperties(v *types.PardotSourceProperties, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.Object != nil { + ok := object.Key("object") + ok.String(*v.Object) + } + + return nil +} + func awsRestjson1_serializeDocumentPathPrefixHierarchy(v []types.PathPrefix, value smithyjson.Value) error { array := value.Array() defer array.Close() @@ -4005,6 +4087,13 @@ func awsRestjson1_serializeDocumentSourceConnectorProperties(v *types.SourceConn } } + if v.Pardot != nil { + ok := object.Key("Pardot") + if err := awsRestjson1_serializeDocumentPardotSourceProperties(v.Pardot, ok); err != nil { + return err + } + } + if v.S3 != nil { ok := object.Key("S3") if err := awsRestjson1_serializeDocumentS3SourceProperties(v.S3, ok); err != nil { diff --git a/service/appflow/types/enums.go b/service/appflow/types/enums.go index d28f4a0b864..6c05148c2cd 100644 --- a/service/appflow/types/enums.go +++ b/service/appflow/types/enums.go @@ -135,6 +135,7 @@ const ( ConnectorTypeCustomerprofiles ConnectorType = "CustomerProfiles" ConnectorTypeSapodata ConnectorType = "SAPOData" ConnectorTypeCustomconnector ConnectorType = "CustomConnector" + ConnectorTypePardot ConnectorType = "Pardot" ) // Values returns all known values for ConnectorType. Note that this can be @@ -165,6 +166,7 @@ func (ConnectorType) Values() []ConnectorType { "CustomerProfiles", "SAPOData", "CustomConnector", + "Pardot", } } @@ -645,6 +647,48 @@ func (Operators) Values() []Operators { } } +type PardotConnectorOperator string + +// Enum values for PardotConnectorOperator +const ( + PardotConnectorOperatorProjection PardotConnectorOperator = "PROJECTION" + PardotConnectorOperatorEqualTo PardotConnectorOperator = "EQUAL_TO" + PardotConnectorOperatorNoOp PardotConnectorOperator = "NO_OP" + PardotConnectorOperatorAddition PardotConnectorOperator = "ADDITION" + PardotConnectorOperatorMultiplication PardotConnectorOperator = "MULTIPLICATION" + PardotConnectorOperatorDivision PardotConnectorOperator = "DIVISION" + PardotConnectorOperatorSubtraction PardotConnectorOperator = "SUBTRACTION" + PardotConnectorOperatorMaskAll PardotConnectorOperator = "MASK_ALL" + PardotConnectorOperatorMaskFirstN PardotConnectorOperator = "MASK_FIRST_N" + PardotConnectorOperatorMaskLastN PardotConnectorOperator = "MASK_LAST_N" + PardotConnectorOperatorValidateNonNull PardotConnectorOperator = "VALIDATE_NON_NULL" + PardotConnectorOperatorValidateNonZero PardotConnectorOperator = "VALIDATE_NON_ZERO" + PardotConnectorOperatorValidateNonNegative PardotConnectorOperator = "VALIDATE_NON_NEGATIVE" + PardotConnectorOperatorValidateNumeric PardotConnectorOperator = "VALIDATE_NUMERIC" +) + +// Values returns all known values for PardotConnectorOperator. 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 (PardotConnectorOperator) Values() []PardotConnectorOperator { + return []PardotConnectorOperator{ + "PROJECTION", + "EQUAL_TO", + "NO_OP", + "ADDITION", + "MULTIPLICATION", + "DIVISION", + "SUBTRACTION", + "MASK_ALL", + "MASK_FIRST_N", + "MASK_LAST_N", + "VALIDATE_NON_NULL", + "VALIDATE_NON_ZERO", + "VALIDATE_NON_NEGATIVE", + "VALIDATE_NUMERIC", + } +} + type PathPrefix string // Enum values for PathPrefix diff --git a/service/appflow/types/types.go b/service/appflow/types/types.go index cde1cebeb3e..04a2baf1de2 100644 --- a/service/appflow/types/types.go +++ b/service/appflow/types/types.go @@ -365,6 +365,9 @@ type ConnectorMetadata struct { // The connector metadata specific to Marketo. Marketo *MarketoMetadata + // The connector metadata specific to Salesforce Pardot. + Pardot *PardotMetadata + // The connector metadata specific to Amazon Redshift. Redshift *RedshiftMetadata @@ -443,6 +446,9 @@ type ConnectorOperator struct { // The operation to be performed on the provided Marketo source fields. Marketo MarketoConnectorOperator + // The operation to be performed on the provided Salesforce Pardot source fields. + Pardot PardotConnectorOperator + // The operation to be performed on the provided Amazon S3 source fields. S3 S3ConnectorOperator @@ -557,6 +563,9 @@ type ConnectorProfileCredentials struct { // The connector-specific credentials required when using Marketo. Marketo *MarketoConnectorProfileCredentials + // The connector-specific credentials required when using Salesforce Pardot. + Pardot *PardotConnectorProfileCredentials + // The connector-specific credentials required when using Amazon Redshift. Redshift *RedshiftConnectorProfileCredentials @@ -617,6 +626,9 @@ type ConnectorProfileProperties struct { // The connector-specific properties required by Marketo. Marketo *MarketoConnectorProfileProperties + // The connector-specific properties required by Salesforce Pardot. + Pardot *PardotConnectorProfileProperties + // The connector-specific properties required by Amazon Redshift. Redshift *RedshiftConnectorProfileProperties @@ -1686,6 +1698,60 @@ type OAuthProperties struct { noSmithyDocumentSerde } +// The connector-specific profile credentials required when using Salesforce +// Pardot. +type PardotConnectorProfileCredentials struct { + + // The credentials used to access protected Salesforce Pardot resources. + AccessToken *string + + // The secret manager ARN, which contains the client ID and client secret of the + // connected app. + ClientCredentialsArn *string + + // Used by select connectors for which the OAuth workflow is supported, such as + // Salesforce, Google Analytics, Marketo, Zendesk, and Slack. + OAuthRequest *ConnectorOAuthRequest + + // The credentials used to acquire new access tokens. + RefreshToken *string + + noSmithyDocumentSerde +} + +// The connector-specific profile properties required when using Salesforce Pardot. +type PardotConnectorProfileProperties struct { + + // The business unit id of Salesforce Pardot instance. + BusinessUnitId *string + + // The location of the Salesforce Pardot resource. + InstanceUrl *string + + // Indicates whether the connector profile applies to a sandbox or production + // environment. + IsSandboxEnvironment bool + + noSmithyDocumentSerde +} + +// The connector metadata specific to Salesforce Pardot. +type PardotMetadata struct { + noSmithyDocumentSerde +} + +// The properties that are applied when Salesforce Pardot is being used as a +// source. +type PardotSourceProperties struct { + + // The object specified in the Salesforce Pardot flow source. + // + // This member is required. + Object *string + + noSmithyDocumentSerde +} + // Specifies elements that Amazon AppFlow includes in the file and folder names in // the flow destination. type PrefixConfig struct { @@ -2466,6 +2532,9 @@ type SourceConnectorProperties struct { // Specifies the information that is required for querying Marketo. Marketo *MarketoSourceProperties + // Specifies the information that is required for querying Salesforce Pardot. + Pardot *PardotSourceProperties + // Specifies the information that is required for querying Amazon S3. S3 *S3SourceProperties diff --git a/service/appflow/validators.go b/service/appflow/validators.go index dc4bcc7f872..3b279b24aea 100644 --- a/service/appflow/validators.go +++ b/service/appflow/validators.go @@ -1309,6 +1309,21 @@ func validateOAuthProperties(v *types.OAuthProperties) error { } } +func validatePardotSourceProperties(v *types.PardotSourceProperties) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "PardotSourceProperties"} + if v.Object == nil { + invalidParams.Add(smithy.NewErrParamRequired("Object")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateRedshiftConnectorProfileProperties(v *types.RedshiftConnectorProfileProperties) error { if v == nil { return nil @@ -1749,6 +1764,11 @@ func validateSourceConnectorProperties(v *types.SourceConnectorProperties) error invalidParams.AddNested("CustomConnector", err.(smithy.InvalidParamsError)) } } + if v.Pardot != nil { + if err := validatePardotSourceProperties(v.Pardot); err != nil { + invalidParams.AddNested("Pardot", err.(smithy.InvalidParamsError)) + } + } if invalidParams.Len() > 0 { return invalidParams } else { diff --git a/service/cloudwatchlogs/api_op_DescribeLogStreams.go b/service/cloudwatchlogs/api_op_DescribeLogStreams.go index 0bfc54507cc..69e40e9b3cd 100644 --- a/service/cloudwatchlogs/api_op_DescribeLogStreams.go +++ b/service/cloudwatchlogs/api_op_DescribeLogStreams.go @@ -49,12 +49,12 @@ type DescribeLogStreamsInput struct { // Specify either the name or ARN of the log group to view. If the log group is in // a source account and you are using a monitoring account, you must use the log - // group ARN. If you specify values for both logGroupName and logGroupIdentifier, - // the action returns an InvalidParameterException error. + // group ARN. You must include either logGroupIdentifier or logGroupName, but not + // both. LogGroupIdentifier *string - // The name of the log group. If you specify values for both logGroupName and - // logGroupIdentifier, the action returns an InvalidParameterException error. + // The name of the log group. You must include either logGroupIdentifier or + // logGroupName, but not both. LogGroupName *string // The prefix to match. If orderBy is LastEventTime, you cannot specify this diff --git a/service/cloudwatchlogs/api_op_FilterLogEvents.go b/service/cloudwatchlogs/api_op_FilterLogEvents.go index ea07a5dde86..60c04bfa585 100644 --- a/service/cloudwatchlogs/api_op_FilterLogEvents.go +++ b/service/cloudwatchlogs/api_op_FilterLogEvents.go @@ -74,12 +74,12 @@ type FilterLogEventsInput struct { // Specify either the name or ARN of the log group to view log events from. If the // log group is in a source account and you are using a monitoring account, you - // must use the log group ARN. If you specify values for both logGroupName and - // logGroupIdentifier, the action returns an InvalidParameterException error. + // must use the log group ARN. You must include either logGroupIdentifier or + // logGroupName, but not both. LogGroupIdentifier *string - // The name of the log group to search. If you specify values for both logGroupName - // and logGroupIdentifier, the action returns an InvalidParameterException error. + // The name of the log group to search. You must include either logGroupIdentifier + // or logGroupName, but not both. LogGroupName *string // Filters the results to include only events from log streams that have names diff --git a/service/cloudwatchlogs/api_op_GetLogEvents.go b/service/cloudwatchlogs/api_op_GetLogEvents.go index 96c91111604..ad851821bb9 100644 --- a/service/cloudwatchlogs/api_op_GetLogEvents.go +++ b/service/cloudwatchlogs/api_op_GetLogEvents.go @@ -59,12 +59,12 @@ type GetLogEventsInput struct { // Specify either the name or ARN of the log group to view events from. If the log // group is in a source account and you are using a monitoring account, you must - // use the log group ARN. If you specify values for both logGroupName and - // logGroupIdentifier, the action returns an InvalidParameterException error. + // use the log group ARN. You must include either logGroupIdentifier or + // logGroupName, but not both. LogGroupIdentifier *string - // The name of the log group. If you specify values for both logGroupName and - // logGroupIdentifier, the action returns an InvalidParameterException error. + // The name of the log group. You must include either logGroupIdentifier or + // logGroupName, but not both. LogGroupName *string // The token for the next set of items to return. (You received this token from a diff --git a/service/cloudwatchlogs/api_op_GetLogGroupFields.go b/service/cloudwatchlogs/api_op_GetLogGroupFields.go index 3c932e68c8c..118769a21a5 100644 --- a/service/cloudwatchlogs/api_op_GetLogGroupFields.go +++ b/service/cloudwatchlogs/api_op_GetLogGroupFields.go @@ -46,12 +46,11 @@ type GetLogGroupFieldsInput struct { // Specify either the name or ARN of the log group to view. If the log group is in // a source account and you are using a monitoring account, you must specify the - // ARN. If you specify values for both logGroupName and logGroupIdentifier, the - // action returns an InvalidParameterException error. + // ARN. You must include either logGroupIdentifier or logGroupName, but not both. LogGroupIdentifier *string - // The name of the log group to search. If you specify values for both logGroupName - // and logGroupIdentifier, the action returns an InvalidParameterException error. + // The name of the log group to search. You must include either logGroupIdentifier + // or logGroupName, but not both. LogGroupName *string // The time to set as the center of the query. If you specify time, the 15 minutes diff --git a/service/codeartifact/api_op_AssociateExternalConnection.go b/service/codeartifact/api_op_AssociateExternalConnection.go index e645ad423ef..b04991ae8a9 100644 --- a/service/codeartifact/api_op_AssociateExternalConnection.go +++ b/service/codeartifact/api_op_AssociateExternalConnection.go @@ -42,12 +42,15 @@ type AssociateExternalConnectionInput struct { // * public:npmjs - for the npm public repository. // // * - // public:pypi - for the Python Package Index. + // public:nuget-org - for the NuGet Gallery. // - // * public:maven-central - for Maven - // Central. + // * public:pypi - for the Python + // Package Index. // - // * public:maven-googleandroid - for the Google Android repository. + // * public:maven-central - for Maven Central. + // + // * + // public:maven-googleandroid - for the Google Android repository. // // * // public:maven-gradleplugins - for the Gradle plugins repository. diff --git a/service/codeartifact/api_op_DeletePackageVersions.go b/service/codeartifact/api_op_DeletePackageVersions.go index 6945fd359b4..523bd52a458 100644 --- a/service/codeartifact/api_op_DeletePackageVersions.go +++ b/service/codeartifact/api_op_DeletePackageVersions.go @@ -15,7 +15,7 @@ import ( // restored in your repository. If you want to remove a package version from your // repository and be able to restore it later, set its status to Archived. Archived // packages cannot be downloaded from a repository and don't show up with list -// package APIs (for example, ListackageVersions +// package APIs (for example, ListPackageVersions // (https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_ListPackageVersions.html)), // but you can restore them using UpdatePackageVersionsStatus // (https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_UpdatePackageVersionsStatus.html). diff --git a/service/codeartifact/api_op_GetPackageVersionReadme.go b/service/codeartifact/api_op_GetPackageVersionReadme.go index 79e4a2e4608..f1155eb21a3 100644 --- a/service/codeartifact/api_op_GetPackageVersionReadme.go +++ b/service/codeartifact/api_op_GetPackageVersionReadme.go @@ -11,11 +11,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Gets the readme file or descriptive text for a package version. For packages -// that do not contain a readme file, CodeArtifact extracts a description from a -// metadata file. For example, from the element in the pom.xml file of a Maven -// package. The returned text might contain formatting. For example, it might -// contain formatting for Markdown or reStructuredText. +// Gets the readme file or descriptive text for a package version. The returned +// text might contain formatting. For example, it might contain formatting for +// Markdown or reStructuredText. func (c *Client) GetPackageVersionReadme(ctx context.Context, params *GetPackageVersionReadmeInput, optFns ...func(*Options)) (*GetPackageVersionReadmeOutput, error) { if params == nil { params = &GetPackageVersionReadmeInput{} @@ -40,7 +38,8 @@ type GetPackageVersionReadmeInput struct { Domain *string // A format that specifies the type of the package version with the requested - // readme file. + // readme file. Although maven is listed as a valid value, CodeArtifact does not + // support displaying readme files for Maven packages. // // This member is required. Format types.PackageFormat diff --git a/service/codeartifact/api_op_ListPackages.go b/service/codeartifact/api_op_ListPackages.go index 6126689726f..039d192f48f 100644 --- a/service/codeartifact/api_op_ListPackages.go +++ b/service/codeartifact/api_op_ListPackages.go @@ -54,18 +54,19 @@ type ListPackagesInput struct { // The maximum number of results to return per page. MaxResults *int32 - // The namespace used to filter requested packages. Only packages with the provided - // namespace will be returned. The package component that specifies its namespace - // depends on its type. For example: + // The namespace prefix used to filter requested packages. Only packages with a + // namespace that starts with the provided string value are returned. Note that + // although this option is called --namespace and not --namespace-prefix, it has + // prefix-matching behavior. Each package format uses namespace as follows: // - // * The namespace of a Maven package is its - // groupId. + // * The + // namespace of a Maven package is its groupId. // - // * The namespace of an npm package is its scope. + // * The namespace of an npm package + // is its scope. // - // * Python and NuGet - // packages do not contain a corresponding component, packages of those formats do - // not have a namespace. + // * Python and NuGet packages do not contain a corresponding + // component, packages of those formats do not have a namespace. Namespace *string // The token for the next set of results. Use the value returned in the previous diff --git a/service/codeartifact/doc.go b/service/codeartifact/doc.go index 2ccf0d23f50..0cadbc26489 100644 --- a/service/codeartifact/doc.go +++ b/service/codeartifact/doc.go @@ -43,76 +43,73 @@ // (https://docs.aws.amazon.com/codeartifact/latest/ug/using-python.html), Maven // (https://docs.aws.amazon.com/codeartifact/latest/ug/using-maven), and NuGet // (https://docs.aws.amazon.com/codeartifact/latest/ug/using-nuget) package -// formats. +// formats. In CodeArtifact, a package consists of: // -// In CodeArtifact, a package consists of: +// * A name (for example, webpack +// is the name of a popular npm package) // -// * A name (for example, -// webpack is the name of a popular npm package) +// * An optional namespace (for example, +// @types in @types/node) // -// * An optional namespace (for -// example, @types in @types/node) -// -// * A set of versions (for example, 1.0.0, 1.0.1, -// 1.0.2, etc.) +// * A set of versions (for example, 1.0.0, 1.0.1, 1.0.2, +// etc.) // // * Package-level metadata (for example, npm tags) // -// * Package -// version: A version of a package, such as @types/node 12.6.9. The version number -// format and semantics vary for different package formats. For example, npm -// package versions must conform to the Semantic Versioning specification -// (https://semver.org/). In CodeArtifact, a package version consists of the -// version identifier, metadata at the package version level, and a set of -// assets. -// -// * Upstream repository: One repository is upstream of another when the -// package versions in it can be accessed from the repository endpoint of the -// downstream repository, effectively merging the contents of the two repositories -// from the point of view of a client. CodeArtifact allows creating an upstream -// relationship between two repositories. +// * Package version: A +// version of a package, such as @types/node 12.6.9. The version number format and +// semantics vary for different package formats. For example, npm package versions +// must conform to the Semantic Versioning specification (https://semver.org/). In +// CodeArtifact, a package version consists of the version identifier, metadata at +// the package version level, and a set of assets. +// +// * Upstream repository: One +// repository is upstream of another when the package versions in it can be +// accessed from the repository endpoint of the downstream repository, effectively +// merging the contents of the two repositories from the point of view of a client. +// CodeArtifact allows creating an upstream relationship between two +// repositories. // -// * Asset: An individual file stored in -// CodeArtifact associated with a package version, such as an npm .tgz file or -// Maven POM and JAR files. +// * Asset: An individual file stored in CodeArtifact associated +// with a package version, such as an npm .tgz file or Maven POM and JAR +// files. // // CodeArtifact supports these operations: // -// * -// AssociateExternalConnection: Adds an existing external connection to a -// repository. +// * AssociateExternalConnection: +// Adds an existing external connection to a repository. // -// * CopyPackageVersions: Copies package versions from one repository -// to another repository in the same domain. +// * CopyPackageVersions: +// Copies package versions from one repository to another repository in the same +// domain. // // * CreateDomain: Creates a domain // -// * -// CreateRepository: Creates a CodeArtifact repository in a domain. -// -// * -// DeleteDomain: Deletes a domain. You cannot delete a domain that contains -// repositories. +// * CreateRepository: Creates a +// CodeArtifact repository in a domain. // -// * DeleteDomainPermissionsPolicy: Deletes the resource policy that -// is set on a domain. +// * DeleteDomain: Deletes a domain. You +// cannot delete a domain that contains repositories. // -// * DeletePackageVersions: Deletes versions of a package. -// After a package has been deleted, it can be republished, but its assets and -// metadata cannot be restored because they have been permanently removed from -// storage. +// * +// DeleteDomainPermissionsPolicy: Deletes the resource policy that is set on a +// domain. // -// * DeleteRepository: Deletes a repository. +// * DeletePackageVersions: Deletes versions of a package. After a package +// has been deleted, it can be republished, but its assets and metadata cannot be +// restored because they have been permanently removed from storage. // // * -// DeleteRepositoryPermissionsPolicy: Deletes the resource policy that is set on a -// repository. +// DeleteRepository: Deletes a repository. +// +// * DeleteRepositoryPermissionsPolicy: +// Deletes the resource policy that is set on a repository. // -// * DescribeDomain: Returns a DomainDescription object that contains -// information about the requested domain. +// * DescribeDomain: +// Returns a DomainDescription object that contains information about the requested +// domain. // -// * DescribePackage: Returns a -// PackageDescription +// * DescribePackage: Returns a PackageDescription // (https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_PackageDescription.html) // object that contains details about a package. // diff --git a/service/codeartifact/types/types.go b/service/codeartifact/types/types.go index 9c1bb0167c9..e7d3e1c7008 100644 --- a/service/codeartifact/types/types.go +++ b/service/codeartifact/types/types.go @@ -120,8 +120,19 @@ type LicenseInfo struct { type PackageDependency struct { // The type of a package dependency. The possible values depend on the package - // type. Example types are compile, runtime, and test for Maven packages, and dev, - // prod, and optional for npm packages. + // type. + // + // * npm: regular, dev, peer, optional + // + // * maven: optional, parent, compile, + // runtime, test, system, provided. Note that parent is not a regular Maven + // dependency type; instead this is extracted from the element if one is defined + // in the package version's POM file. + // + // * nuget: The dependencyType field is never + // set for NuGet packages. + // + // * pypi: Requires-Dist DependencyType *string // The namespace of the package that this package depends on. The package component diff --git a/service/connect/api_op_StartChatContact.go b/service/connect/api_op_StartChatContact.go index 92491daef7a..0d6f47ed9fa 100644 --- a/service/connect/api_op_StartChatContact.go +++ b/service/connect/api_op_StartChatContact.go @@ -97,6 +97,12 @@ type StartChatContactInput struct { // The initial message to be sent to the newly created chat. InitialMessage *types.ChatMessage + // Enable persistent chats. For more information about enabling persistent chat, + // and for example use cases and how to configure for them, see Enable persistent + // chat + // (https://docs.aws.amazon.com/connect/latest/adminguide/chat-persistence.html). + PersistentChat *types.PersistentChat + // The supported chat message content types. Content types must always contain // text/plain. You can then put any other supported type in the list. For example, // all the following lists are valid because they contain text/plain: [text/plain, @@ -112,6 +118,10 @@ type StartChatContactOutput struct { // The identifier of this contact within the Amazon Connect instance. ContactId *string + // The contactId from which a persistent chat session is started. This field is + // populated only for persistent chats. + ContinuedFromContactId *string + // The identifier for a chat participant. The participantId for a chat participant // is the same throughout the chat lifecycle. ParticipantId *string diff --git a/service/connect/deserializers.go b/service/connect/deserializers.go index 4c733314a9b..6a6fa790268 100644 --- a/service/connect/deserializers.go +++ b/service/connect/deserializers.go @@ -18431,6 +18431,15 @@ func awsRestjson1_deserializeOpDocumentStartChatContactOutput(v **StartChatConta sv.ContactId = ptr.String(jtv) } + case "ContinuedFromContactId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ContactId to be of type string, got %T instead", value) + } + sv.ContinuedFromContactId = ptr.String(jtv) + } + case "ParticipantId": if value != nil { jtv, ok := value.(string) @@ -25625,6 +25634,15 @@ func awsRestjson1_deserializeDocumentContact(v **types.Contact, value interface{ return err } + case "RelatedContactId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ContactId to be of type string, got %T instead", value) + } + sv.RelatedContactId = ptr.String(jtv) + } + case "ScheduledTimestamp": if value != nil { switch jtv := value.(type) { diff --git a/service/connect/serializers.go b/service/connect/serializers.go index 3177c566061..fbaf1ecec6e 100644 --- a/service/connect/serializers.go +++ b/service/connect/serializers.go @@ -9609,6 +9609,13 @@ func awsRestjson1_serializeOpDocumentStartChatContactInput(v *StartChatContactIn } } + if v.PersistentChat != nil { + ok := object.Key("PersistentChat") + if err := awsRestjson1_serializeDocumentPersistentChat(v.PersistentChat, ok); err != nil { + return err + } + } + if v.SupportedMessagingContentTypes != nil { ok := object.Key("SupportedMessagingContentTypes") if err := awsRestjson1_serializeDocumentSupportedMessagingContentTypes(v.SupportedMessagingContentTypes, ok); err != nil { @@ -14778,6 +14785,23 @@ func awsRestjson1_serializeDocumentPermissionsList(v []string, value smithyjson. return nil } +func awsRestjson1_serializeDocumentPersistentChat(v *types.PersistentChat, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if len(v.RehydrationType) > 0 { + ok := object.Key("RehydrationType") + ok.String(string(v.RehydrationType)) + } + + if v.SourceContactId != nil { + ok := object.Key("SourceContactId") + ok.String(*v.SourceContactId) + } + + return nil +} + func awsRestjson1_serializeDocumentPhoneNumberCountryCodes(v []types.PhoneNumberCountryCode, value smithyjson.Value) error { array := value.Array() defer array.Close() diff --git a/service/connect/types/enums.go b/service/connect/types/enums.go index 7baa76ed148..b2f5e859ea0 100644 --- a/service/connect/types/enums.go +++ b/service/connect/types/enums.go @@ -1359,6 +1359,24 @@ func (ReferenceType) Values() []ReferenceType { } } +type RehydrationType string + +// Enum values for RehydrationType +const ( + RehydrationTypeEntirePastSession RehydrationType = "ENTIRE_PAST_SESSION" + RehydrationTypeFromSegment RehydrationType = "FROM_SEGMENT" +) + +// Values returns all known values for RehydrationType. 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 (RehydrationType) Values() []RehydrationType { + return []RehydrationType{ + "ENTIRE_PAST_SESSION", + "FROM_SEGMENT", + } +} + type ResourceType string // Enum values for ResourceType diff --git a/service/connect/types/types.go b/service/connect/types/types.go index c2fea6fdc34..aab56b3a6f6 100644 --- a/service/connect/types/types.go +++ b/service/connect/types/types.go @@ -352,6 +352,11 @@ type Contact struct { // If this contact was queued, this contains information about the queue. QueueInfo *QueueInfo + // The contactId that is related + // (https://docs.aws.amazon.com/connect/latest/adminguide/chat-persistence.html#relatedcontactid) + // to this contact. + RelatedContactId *string + // The timestamp, in Unix epoch time format, at which to start running the inbound // flow. ScheduledTimestamp *time.Time @@ -1383,6 +1388,36 @@ type ParticipantTimerValueMemberParticipantTimerDurationInMinutes struct { func (*ParticipantTimerValueMemberParticipantTimerDurationInMinutes) isParticipantTimerValue() {} +// Enable persistent chats. For more information about enabling persistent chat, +// and for example use cases and how to configure for them, see Enable persistent +// chat +// (https://docs.aws.amazon.com/connect/latest/adminguide/chat-persistence.html). +type PersistentChat struct { + + // The contactId that is used for rehydration depends on the rehydration type. + // RehydrationType is required for persistent chat. + // + // * ENTIRE_PAST_SESSION: + // Rehydrates a chat from the most recently terminated past chat contact of the + // specified past ended chat session. To use this type, provide the + // initialContactId of the past ended chat session in the sourceContactId field. In + // this type, Amazon Connect determines the most recent chat contact on the + // specified chat session that has ended, and uses it to start a persistent + // chat. + // + // * FROM_SEGMENT: Rehydrates a chat from the past chat contact that is + // specified in the sourceContactId field. + // + // The actual contactId used for + // rehydration is provided in the response of this API. + RehydrationType RehydrationType + + // The contactId from which a persistent chat session must be started. + SourceContactId *string + + noSmithyDocumentSerde +} + // Contains information about a phone number for a quick connect. type PhoneNumberQuickConnectConfig struct { diff --git a/service/connectparticipant/api_op_GetTranscript.go b/service/connectparticipant/api_op_GetTranscript.go index ccbe0b4f394..f9b0a8bd710 100644 --- a/service/connectparticipant/api_op_GetTranscript.go +++ b/service/connectparticipant/api_op_GetTranscript.go @@ -13,6 +13,9 @@ import ( ) // Retrieves a transcript of the session, including details about any attachments. +// For information about accessing past chat contact transcripts for a persistent +// chat, see Enable persistent chat +// (https://docs.aws.amazon.com/connect/latest/adminguide/chat-persistence.html). // ConnectionToken is used for invoking this API instead of ParticipantToken. The // Amazon Connect Participant Service APIs do not use Signature Version 4 // authentication diff --git a/service/connectparticipant/deserializers.go b/service/connectparticipant/deserializers.go index 23008b0c541..98d06fc4ccc 100644 --- a/service/connectparticipant/deserializers.go +++ b/service/connectparticipant/deserializers.go @@ -1740,6 +1740,15 @@ func awsRestjson1_deserializeDocumentItem(v **types.Item, value interface{}) err return err } + case "ContactId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ContactId to be of type string, got %T instead", value) + } + sv.ContactId = ptr.String(jtv) + } + case "Content": if value != nil { jtv, ok := value.(string) @@ -1799,6 +1808,15 @@ func awsRestjson1_deserializeDocumentItem(v **types.Item, value interface{}) err sv.ParticipantRole = types.ParticipantRole(jtv) } + case "RelatedContactId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected ContactId to be of type string, got %T instead", value) + } + sv.RelatedContactId = ptr.String(jtv) + } + case "Type": if value != nil { jtv, ok := value.(string) diff --git a/service/connectparticipant/types/types.go b/service/connectparticipant/types/types.go index 3764a6975f3..0a191138060 100644 --- a/service/connectparticipant/types/types.go +++ b/service/connectparticipant/types/types.go @@ -51,6 +51,10 @@ type Item struct { // Provides information about the attachments. Attachments []AttachmentItem + // The contactId on which the transcript item was originally sent. This field is + // populated only when the transcript item is from the current chat session. + ContactId *string + // The content of the message or event. Content *string @@ -73,6 +77,12 @@ type Item struct { // The role of the sender. For example, is it a customer, agent, or system. ParticipantRole ParticipantRole + // The contactId on which the transcript item was originally sent. This field is + // only populated for persistent chats when the transcript item is from the past + // chat session. For more information, see Enable persistent chat + // (https://docs.aws.amazon.com/connect/latest/adminguide/chat-persistence.html). + RelatedContactId *string + // Type of the item: message or event. Type ChatItemType diff --git a/service/ebs/internal/endpoints/endpoints.go b/service/ebs/internal/endpoints/endpoints.go index 9ded3a6986e..54465d4164a 100644 --- a/service/ebs/internal/endpoints/endpoints.go +++ b/service/ebs/internal/endpoints/endpoints.go @@ -153,6 +153,9 @@ var defaultPartitions = endpoints.Partitions{ endpoints.EndpointKey{ Region: "ap-south-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ap-south-2", + }: endpoints.Endpoint{}, endpoints.EndpointKey{ Region: "ap-southeast-1", }: endpoints.Endpoint{}, @@ -174,12 +177,18 @@ var defaultPartitions = endpoints.Partitions{ endpoints.EndpointKey{ Region: "eu-central-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "eu-central-2", + }: endpoints.Endpoint{}, endpoints.EndpointKey{ Region: "eu-north-1", }: endpoints.Endpoint{}, endpoints.EndpointKey{ Region: "eu-south-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "eu-south-2", + }: endpoints.Endpoint{}, endpoints.EndpointKey{ Region: "eu-west-1", }: endpoints.Endpoint{}, diff --git a/service/ec2/api_op_CreateLaunchTemplateVersion.go b/service/ec2/api_op_CreateLaunchTemplateVersion.go index 7e3fbabc40a..ba5bfb84f2f 100644 --- a/service/ec2/api_op_CreateLaunchTemplateVersion.go +++ b/service/ec2/api_op_CreateLaunchTemplateVersion.go @@ -63,6 +63,13 @@ type CreateLaunchTemplateVersionInput struct { // LaunchTemplateId, but not both. LaunchTemplateName *string + // If true, and if a Systems Manager parameter is specified for ImageId, the AMI ID + // is displayed in the response for imageID. For more information, see Use a + // Systems Manager parameter instead of an AMI ID + // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#use-an-ssm-parameter-instead-of-an-ami-id) + // in the Amazon Elastic Compute Cloud User Guide. Default: false + ResolveAlias *bool + // The version number of the launch template version on which to base the new // version. The new version inherits the same launch parameters as the source // version, except for parameters that you specify in LaunchTemplateData. Snapshots diff --git a/service/ec2/api_op_DescribeLaunchTemplateVersions.go b/service/ec2/api_op_DescribeLaunchTemplateVersions.go index bebcd2ee46e..caab8a26af8 100644 --- a/service/ec2/api_op_DescribeLaunchTemplateVersions.go +++ b/service/ec2/api_op_DescribeLaunchTemplateVersions.go @@ -110,6 +110,15 @@ type DescribeLaunchTemplateVersionsInput struct { // The token to request the next page of results. NextToken *string + // If true, and if a Systems Manager parameter is specified for ImageId, the AMI ID + // is displayed in the response for imageId. If false, and if a Systems Manager + // parameter is specified for ImageId, the parameter is displayed in the response + // for imageId. For more information, see Use a Systems Manager parameter instead + // of an AMI ID + // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#use-an-ssm-parameter-instead-of-an-ami-id) + // in the Amazon Elastic Compute Cloud User Guide. Default: false + ResolveAlias *bool + // One or more versions of the launch template. Valid values depend on whether you // are describing a specified launch template (by ID or name) or all launch // templates in your account. To describe one or more versions of a specified diff --git a/service/ec2/serializers.go b/service/ec2/serializers.go index 74be8722a32..08bae41022f 100644 --- a/service/ec2/serializers.go +++ b/service/ec2/serializers.go @@ -48923,6 +48923,11 @@ func awsEc2query_serializeOpDocumentCreateLaunchTemplateVersionInput(v *CreateLa objectKey.String(*v.LaunchTemplateName) } + if v.ResolveAlias != nil { + objectKey := object.Key("ResolveAlias") + objectKey.Boolean(*v.ResolveAlias) + } + if v.SourceVersion != nil { objectKey := object.Key("SourceVersion") objectKey.String(*v.SourceVersion) @@ -54724,6 +54729,11 @@ func awsEc2query_serializeOpDocumentDescribeLaunchTemplateVersionsInput(v *Descr objectKey.String(*v.NextToken) } + if v.ResolveAlias != nil { + objectKey := object.Key("ResolveAlias") + objectKey.Boolean(*v.ResolveAlias) + } + if v.Versions != nil { objectKey := object.FlatKey("LaunchTemplateVersion") if err := awsEc2query_serializeDocumentVersionStringList(v.Versions, objectKey); err != nil { diff --git a/service/ec2/types/types.go b/service/ec2/types/types.go index e82954ccc7a..80393f0cac6 100644 --- a/service/ec2/types/types.go +++ b/service/ec2/types/types.go @@ -11455,7 +11455,24 @@ type RequestLaunchTemplateData struct { // The name or Amazon Resource Name (ARN) of an IAM instance profile. IamInstanceProfile *LaunchTemplateIamInstanceProfileSpecificationRequest - // The ID of the AMI. + // The ID of the AMI. Alternatively, you can specify a Systems Manager parameter, + // which will resolve to an AMI ID on launch. Valid formats: + // + // * + // ami-17characters00000 + // + // * resolve:ssm:parameter-name + // + // * + // resolve:ssm:parameter-name:version-number + // + // * + // resolve:ssm:parameter-name:label + // + // For more information, see Use a Systems + // Manager parameter instead of an AMI ID + // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#use-an-ssm-parameter-instead-of-an-ami-id) + // in the Amazon Elastic Compute Cloud User Guide. ImageId *string // Indicates whether an instance stops or terminates when you initiate shutdown @@ -12084,7 +12101,25 @@ type ResponseLaunchTemplateData struct { // The IAM instance profile. IamInstanceProfile *LaunchTemplateIamInstanceProfileSpecification - // The ID of the AMI that was used to launch the instance. + // The ID of the AMI or a Systems Manager parameter. The Systems Manager parameter + // will resolve to the ID of the AMI at instance launch. The value depends on what + // you specified in the request. The possible values are: + // + // * If an AMI ID was + // specified in the request, then this is the AMI ID. + // + // * If a Systems Manager + // parameter was specified in the request, and ResolveAlias was configured as true, + // then this is the AMI ID that the parameter is mapped to in the Parameter + // Store. + // + // * If a Systems Manager parameter was specified in the request, and + // ResolveAlias was configured as false, then this is the parameter value. + // + // For + // more information, see Use a Systems Manager parameter instead of an AMI ID + // (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#use-an-ssm-parameter-instead-of-an-ami-id) + // in the Amazon Elastic Compute Cloud User Guide. ImageId *string // Indicates whether an instance stops or terminates when you initiate shutdown diff --git a/service/glue/deserializers.go b/service/glue/deserializers.go index 03136f3a6e1..ba3bec74a44 100644 --- a/service/glue/deserializers.go +++ b/service/glue/deserializers.go @@ -27159,6 +27159,74 @@ func awsAwsjson11_deserializeDocumentBoundedPartitionValueList(v *[]string, valu return nil } +func awsAwsjson11_deserializeDocumentCatalogHudiSource(v **types.CatalogHudiSource, 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.CatalogHudiSource + if *v == nil { + sv = &types.CatalogHudiSource{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AdditionalHudiOptions": + if err := awsAwsjson11_deserializeDocumentAdditionalOptions(&sv.AdditionalHudiOptions, value); err != nil { + return err + } + + case "Database": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EnclosedInStringProperty to be of type string, got %T instead", value) + } + sv.Database = ptr.String(jtv) + } + + case "Name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NodeName to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + case "OutputSchemas": + if err := awsAwsjson11_deserializeDocumentGlueSchemas(&sv.OutputSchemas, value); err != nil { + return err + } + + case "Table": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EnclosedInStringProperty to be of type string, got %T instead", value) + } + sv.Table = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeDocumentCatalogImportStatus(v **types.CatalogImportStatus, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -27860,6 +27928,11 @@ func awsAwsjson11_deserializeDocumentCodeGenConfigurationNode(v **types.CodeGenC return err } + case "CatalogHudiSource": + if err := awsAwsjson11_deserializeDocumentCatalogHudiSource(&sv.CatalogHudiSource, value); err != nil { + return err + } + case "CatalogKafkaSource": if err := awsAwsjson11_deserializeDocumentCatalogKafkaSource(&sv.CatalogKafkaSource, value); err != nil { return err @@ -28030,6 +28103,11 @@ func awsAwsjson11_deserializeDocumentCodeGenConfigurationNode(v **types.CodeGenC return err } + case "S3CatalogHudiSource": + if err := awsAwsjson11_deserializeDocumentS3CatalogHudiSource(&sv.S3CatalogHudiSource, value); err != nil { + return err + } + case "S3CatalogSource": if err := awsAwsjson11_deserializeDocumentS3CatalogSource(&sv.S3CatalogSource, value); err != nil { return err @@ -28055,6 +28133,21 @@ func awsAwsjson11_deserializeDocumentCodeGenConfigurationNode(v **types.CodeGenC return err } + case "S3HudiCatalogTarget": + if err := awsAwsjson11_deserializeDocumentS3HudiCatalogTarget(&sv.S3HudiCatalogTarget, value); err != nil { + return err + } + + case "S3HudiDirectTarget": + if err := awsAwsjson11_deserializeDocumentS3HudiDirectTarget(&sv.S3HudiDirectTarget, value); err != nil { + return err + } + + case "S3HudiSource": + if err := awsAwsjson11_deserializeDocumentS3HudiSource(&sv.S3HudiSource, value); err != nil { + return err + } + case "S3JsonSource": if err := awsAwsjson11_deserializeDocumentS3JsonSource(&sv.S3JsonSource, value); err != nil { return err @@ -42818,6 +42911,74 @@ func awsAwsjson11_deserializeDocumentRulesetNames(v *[]string, value interface{} return nil } +func awsAwsjson11_deserializeDocumentS3CatalogHudiSource(v **types.S3CatalogHudiSource, 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.S3CatalogHudiSource + if *v == nil { + sv = &types.S3CatalogHudiSource{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AdditionalHudiOptions": + if err := awsAwsjson11_deserializeDocumentAdditionalOptions(&sv.AdditionalHudiOptions, value); err != nil { + return err + } + + case "Database": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EnclosedInStringProperty to be of type string, got %T instead", value) + } + sv.Database = ptr.String(jtv) + } + + case "Name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NodeName to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + case "OutputSchemas": + if err := awsAwsjson11_deserializeDocumentGlueSchemas(&sv.OutputSchemas, value); err != nil { + return err + } + + case "Table": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EnclosedInStringProperty to be of type string, got %T instead", value) + } + sv.Table = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeDocumentS3CatalogSource(v **types.S3CatalogSource, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -43470,6 +43631,231 @@ func awsAwsjson11_deserializeDocumentS3GlueParquetTarget(v **types.S3GlueParquet return nil } +func awsAwsjson11_deserializeDocumentS3HudiCatalogTarget(v **types.S3HudiCatalogTarget, 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.S3HudiCatalogTarget + if *v == nil { + sv = &types.S3HudiCatalogTarget{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AdditionalOptions": + if err := awsAwsjson11_deserializeDocumentAdditionalOptions(&sv.AdditionalOptions, value); err != nil { + return err + } + + case "Database": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EnclosedInStringProperty to be of type string, got %T instead", value) + } + sv.Database = ptr.String(jtv) + } + + case "Inputs": + if err := awsAwsjson11_deserializeDocumentOneInput(&sv.Inputs, value); err != nil { + return err + } + + case "Name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NodeName to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + case "PartitionKeys": + if err := awsAwsjson11_deserializeDocumentGlueStudioPathList(&sv.PartitionKeys, value); err != nil { + return err + } + + case "SchemaChangePolicy": + if err := awsAwsjson11_deserializeDocumentCatalogSchemaChangePolicy(&sv.SchemaChangePolicy, value); err != nil { + return err + } + + case "Table": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EnclosedInStringProperty to be of type string, got %T instead", value) + } + sv.Table = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentS3HudiDirectTarget(v **types.S3HudiDirectTarget, 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.S3HudiDirectTarget + if *v == nil { + sv = &types.S3HudiDirectTarget{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AdditionalOptions": + if err := awsAwsjson11_deserializeDocumentAdditionalOptions(&sv.AdditionalOptions, value); err != nil { + return err + } + + case "Compression": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected HudiTargetCompressionType to be of type string, got %T instead", value) + } + sv.Compression = types.HudiTargetCompressionType(jtv) + } + + case "Format": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected TargetFormat to be of type string, got %T instead", value) + } + sv.Format = types.TargetFormat(jtv) + } + + case "Inputs": + if err := awsAwsjson11_deserializeDocumentOneInput(&sv.Inputs, value); err != nil { + return err + } + + case "Name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NodeName to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + case "PartitionKeys": + if err := awsAwsjson11_deserializeDocumentGlueStudioPathList(&sv.PartitionKeys, value); err != nil { + return err + } + + case "Path": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected EnclosedInStringProperty to be of type string, got %T instead", value) + } + sv.Path = ptr.String(jtv) + } + + case "SchemaChangePolicy": + if err := awsAwsjson11_deserializeDocumentDirectSchemaChangePolicy(&sv.SchemaChangePolicy, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsAwsjson11_deserializeDocumentS3HudiSource(v **types.S3HudiSource, 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.S3HudiSource + if *v == nil { + sv = &types.S3HudiSource{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "AdditionalHudiOptions": + if err := awsAwsjson11_deserializeDocumentAdditionalOptions(&sv.AdditionalHudiOptions, value); err != nil { + return err + } + + case "AdditionalOptions": + if err := awsAwsjson11_deserializeDocumentS3DirectSourceAdditionalOptions(&sv.AdditionalOptions, value); err != nil { + return err + } + + case "Name": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected NodeName to be of type string, got %T instead", value) + } + sv.Name = ptr.String(jtv) + } + + case "OutputSchemas": + if err := awsAwsjson11_deserializeDocumentGlueSchemas(&sv.OutputSchemas, value); err != nil { + return err + } + + case "Paths": + if err := awsAwsjson11_deserializeDocumentEnclosedInStringProperties(&sv.Paths, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsAwsjson11_deserializeDocumentS3JsonSource(v **types.S3JsonSource, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/glue/serializers.go b/service/glue/serializers.go index 3d635e599f2..5a07a8aa111 100644 --- a/service/glue/serializers.go +++ b/service/glue/serializers.go @@ -11603,6 +11603,42 @@ func awsAwsjson11_serializeDocumentCatalogEntry(v *types.CatalogEntry, value smi return nil } +func awsAwsjson11_serializeDocumentCatalogHudiSource(v *types.CatalogHudiSource, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AdditionalHudiOptions != nil { + ok := object.Key("AdditionalHudiOptions") + if err := awsAwsjson11_serializeDocumentAdditionalOptions(v.AdditionalHudiOptions, ok); err != nil { + return err + } + } + + if v.Database != nil { + ok := object.Key("Database") + ok.String(*v.Database) + } + + if v.Name != nil { + ok := object.Key("Name") + ok.String(*v.Name) + } + + if v.OutputSchemas != nil { + ok := object.Key("OutputSchemas") + if err := awsAwsjson11_serializeDocumentGlueSchemas(v.OutputSchemas, ok); err != nil { + return err + } + } + + if v.Table != nil { + ok := object.Key("Table") + ok.String(*v.Table) + } + + return nil +} + func awsAwsjson11_serializeDocumentCatalogKafkaSource(v *types.CatalogKafkaSource, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -11845,6 +11881,13 @@ func awsAwsjson11_serializeDocumentCodeGenConfigurationNode(v *types.CodeGenConf } } + if v.CatalogHudiSource != nil { + ok := object.Key("CatalogHudiSource") + if err := awsAwsjson11_serializeDocumentCatalogHudiSource(v.CatalogHudiSource, ok); err != nil { + return err + } + } + if v.CatalogKafkaSource != nil { ok := object.Key("CatalogKafkaSource") if err := awsAwsjson11_serializeDocumentCatalogKafkaSource(v.CatalogKafkaSource, ok); err != nil { @@ -12083,6 +12126,13 @@ func awsAwsjson11_serializeDocumentCodeGenConfigurationNode(v *types.CodeGenConf } } + if v.S3CatalogHudiSource != nil { + ok := object.Key("S3CatalogHudiSource") + if err := awsAwsjson11_serializeDocumentS3CatalogHudiSource(v.S3CatalogHudiSource, ok); err != nil { + return err + } + } + if v.S3CatalogSource != nil { ok := object.Key("S3CatalogSource") if err := awsAwsjson11_serializeDocumentS3CatalogSource(v.S3CatalogSource, ok); err != nil { @@ -12118,6 +12168,27 @@ func awsAwsjson11_serializeDocumentCodeGenConfigurationNode(v *types.CodeGenConf } } + if v.S3HudiCatalogTarget != nil { + ok := object.Key("S3HudiCatalogTarget") + if err := awsAwsjson11_serializeDocumentS3HudiCatalogTarget(v.S3HudiCatalogTarget, ok); err != nil { + return err + } + } + + if v.S3HudiDirectTarget != nil { + ok := object.Key("S3HudiDirectTarget") + if err := awsAwsjson11_serializeDocumentS3HudiDirectTarget(v.S3HudiDirectTarget, ok); err != nil { + return err + } + } + + if v.S3HudiSource != nil { + ok := object.Key("S3HudiSource") + if err := awsAwsjson11_serializeDocumentS3HudiSource(v.S3HudiSource, ok); err != nil { + return err + } + } + if v.S3JsonSource != nil { ok := object.Key("S3JsonSource") if err := awsAwsjson11_serializeDocumentS3JsonSource(v.S3JsonSource, ok); err != nil { @@ -16229,6 +16300,42 @@ func awsAwsjson11_serializeDocumentRulesetNames(v []string, value smithyjson.Val return nil } +func awsAwsjson11_serializeDocumentS3CatalogHudiSource(v *types.S3CatalogHudiSource, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AdditionalHudiOptions != nil { + ok := object.Key("AdditionalHudiOptions") + if err := awsAwsjson11_serializeDocumentAdditionalOptions(v.AdditionalHudiOptions, ok); err != nil { + return err + } + } + + if v.Database != nil { + ok := object.Key("Database") + ok.String(*v.Database) + } + + if v.Name != nil { + ok := object.Key("Name") + ok.String(*v.Name) + } + + if v.OutputSchemas != nil { + ok := object.Key("OutputSchemas") + if err := awsAwsjson11_serializeDocumentGlueSchemas(v.OutputSchemas, ok); err != nil { + return err + } + } + + if v.Table != nil { + ok := object.Key("Table") + ok.String(*v.Table) + } + + return nil +} + func awsAwsjson11_serializeDocumentS3CatalogSource(v *types.S3CatalogSource, value smithyjson.Value) error { object := value.Object() defer object.Close() @@ -16564,6 +16671,151 @@ func awsAwsjson11_serializeDocumentS3GlueParquetTarget(v *types.S3GlueParquetTar return nil } +func awsAwsjson11_serializeDocumentS3HudiCatalogTarget(v *types.S3HudiCatalogTarget, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AdditionalOptions != nil { + ok := object.Key("AdditionalOptions") + if err := awsAwsjson11_serializeDocumentAdditionalOptions(v.AdditionalOptions, ok); err != nil { + return err + } + } + + if v.Database != nil { + ok := object.Key("Database") + ok.String(*v.Database) + } + + if v.Inputs != nil { + ok := object.Key("Inputs") + if err := awsAwsjson11_serializeDocumentOneInput(v.Inputs, ok); err != nil { + return err + } + } + + if v.Name != nil { + ok := object.Key("Name") + ok.String(*v.Name) + } + + if v.PartitionKeys != nil { + ok := object.Key("PartitionKeys") + if err := awsAwsjson11_serializeDocumentGlueStudioPathList(v.PartitionKeys, ok); err != nil { + return err + } + } + + if v.SchemaChangePolicy != nil { + ok := object.Key("SchemaChangePolicy") + if err := awsAwsjson11_serializeDocumentCatalogSchemaChangePolicy(v.SchemaChangePolicy, ok); err != nil { + return err + } + } + + if v.Table != nil { + ok := object.Key("Table") + ok.String(*v.Table) + } + + return nil +} + +func awsAwsjson11_serializeDocumentS3HudiDirectTarget(v *types.S3HudiDirectTarget, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AdditionalOptions != nil { + ok := object.Key("AdditionalOptions") + if err := awsAwsjson11_serializeDocumentAdditionalOptions(v.AdditionalOptions, ok); err != nil { + return err + } + } + + if len(v.Compression) > 0 { + ok := object.Key("Compression") + ok.String(string(v.Compression)) + } + + if len(v.Format) > 0 { + ok := object.Key("Format") + ok.String(string(v.Format)) + } + + if v.Inputs != nil { + ok := object.Key("Inputs") + if err := awsAwsjson11_serializeDocumentOneInput(v.Inputs, ok); err != nil { + return err + } + } + + if v.Name != nil { + ok := object.Key("Name") + ok.String(*v.Name) + } + + if v.PartitionKeys != nil { + ok := object.Key("PartitionKeys") + if err := awsAwsjson11_serializeDocumentGlueStudioPathList(v.PartitionKeys, ok); err != nil { + return err + } + } + + if v.Path != nil { + ok := object.Key("Path") + ok.String(*v.Path) + } + + if v.SchemaChangePolicy != nil { + ok := object.Key("SchemaChangePolicy") + if err := awsAwsjson11_serializeDocumentDirectSchemaChangePolicy(v.SchemaChangePolicy, ok); err != nil { + return err + } + } + + return nil +} + +func awsAwsjson11_serializeDocumentS3HudiSource(v *types.S3HudiSource, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + if v.AdditionalHudiOptions != nil { + ok := object.Key("AdditionalHudiOptions") + if err := awsAwsjson11_serializeDocumentAdditionalOptions(v.AdditionalHudiOptions, ok); err != nil { + return err + } + } + + if v.AdditionalOptions != nil { + ok := object.Key("AdditionalOptions") + if err := awsAwsjson11_serializeDocumentS3DirectSourceAdditionalOptions(v.AdditionalOptions, ok); err != nil { + return err + } + } + + if v.Name != nil { + ok := object.Key("Name") + ok.String(*v.Name) + } + + if v.OutputSchemas != nil { + ok := object.Key("OutputSchemas") + if err := awsAwsjson11_serializeDocumentGlueSchemas(v.OutputSchemas, ok); err != nil { + return err + } + } + + if v.Paths != nil { + ok := object.Key("Paths") + if err := awsAwsjson11_serializeDocumentEnclosedInStringProperties(v.Paths, ok); err != nil { + return err + } + } + + return nil +} + func awsAwsjson11_serializeDocumentS3JsonSource(v *types.S3JsonSource, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/glue/types/enums.go b/service/glue/types/enums.go index a3f5c4f68ed..b00855c6f44 100644 --- a/service/glue/types/enums.go +++ b/service/glue/types/enums.go @@ -758,6 +758,28 @@ func (GlueRecordType) Values() []GlueRecordType { } } +type HudiTargetCompressionType string + +// Enum values for HudiTargetCompressionType +const ( + HudiTargetCompressionTypeGzip HudiTargetCompressionType = "gzip" + HudiTargetCompressionTypeLzo HudiTargetCompressionType = "lzo" + HudiTargetCompressionTypeUncompressed HudiTargetCompressionType = "uncompressed" + HudiTargetCompressionTypeSnappy HudiTargetCompressionType = "snappy" +) + +// Values returns all known values for HudiTargetCompressionType. 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 (HudiTargetCompressionType) Values() []HudiTargetCompressionType { + return []HudiTargetCompressionType{ + "gzip", + "lzo", + "uncompressed", + "snappy", + } +} + type JDBCDataType string // Enum values for JDBCDataType @@ -1594,6 +1616,7 @@ const ( TargetFormatAvro TargetFormat = "avro" TargetFormatOrc TargetFormat = "orc" TargetFormatParquet TargetFormat = "parquet" + TargetFormatHudi TargetFormat = "hudi" ) // Values returns all known values for TargetFormat. Note that this can be expanded @@ -1606,6 +1629,7 @@ func (TargetFormat) Values() []TargetFormat { "avro", "orc", "parquet", + "hudi", } } diff --git a/service/glue/types/types.go b/service/glue/types/types.go index 05bddb777fd..3fc8bce1266 100644 --- a/service/glue/types/types.go +++ b/service/glue/types/types.go @@ -459,6 +459,33 @@ type CatalogEntry struct { noSmithyDocumentSerde } +// Specifies a Hudi data source that is registered in the Glue Data Catalog. +type CatalogHudiSource struct { + + // The name of the database to read from. + // + // This member is required. + Database *string + + // The name of the Hudi data source. + // + // This member is required. + Name *string + + // The name of the table in the database to read from. + // + // This member is required. + Table *string + + // Specifies additional connection options. + AdditionalHudiOptions map[string]string + + // Specifies the data schema for the Hudi source. + OutputSchemas []GlueSchema + + noSmithyDocumentSerde +} + // A structure containing migration status information. type CatalogImportStatus struct { @@ -655,6 +682,9 @@ type CodeGenConfigurationNode struct { // Specifies a connector to an Amazon Athena data source. AthenaConnectorSource *AthenaConnectorSource + // Specifies a Hudi data source that is registered in the Glue Data Catalog. + CatalogHudiSource *CatalogHudiSource + // Specifies an Apache Kafka data store in the Data Catalog. CatalogKafkaSource *CatalogKafkaSource @@ -770,6 +800,10 @@ type CodeGenConfigurationNode struct { // Specifies a transform that renames a single data property key. RenameField *RenameField + // Specifies a Hudi data source that is registered in the Glue Data Catalog. The + // Hudi data source must be stored in Amazon S3. + S3CatalogHudiSource *S3CatalogHudiSource + // Specifies an Amazon S3 data store in the Glue Data Catalog. S3CatalogSource *S3CatalogSource @@ -786,6 +820,15 @@ type CodeGenConfigurationNode struct { // storage. S3GlueParquetTarget *S3GlueParquetTarget + // Specifies a target that writes to a Hudi data source in the Glue Data Catalog. + S3HudiCatalogTarget *S3HudiCatalogTarget + + // Specifies a target that writes to a Hudi data source in Amazon S3. + S3HudiDirectTarget *S3HudiDirectTarget + + // Specifies a Hudi data source stored in Amazon S3. + S3HudiSource *S3HudiSource + // Specifies a JSON data store stored in Amazon S3. S3JsonSource *S3JsonSource @@ -5241,6 +5284,34 @@ type ResourceUri struct { noSmithyDocumentSerde } +// Specifies a Hudi data source that is registered in the Glue Data Catalog. The +// Hudi data source must be stored in Amazon S3. +type S3CatalogHudiSource struct { + + // The name of the database to read from. + // + // This member is required. + Database *string + + // The name of the Hudi data source. + // + // This member is required. + Name *string + + // The name of the table in the database to read from. + // + // This member is required. + Table *string + + // Specifies additional connection options. + AdditionalHudiOptions map[string]string + + // Specifies the data schema for the Hudi source. + OutputSchemas []GlueSchema + + noSmithyDocumentSerde +} + // Specifies an Amazon S3 data store in the Glue Data Catalog. type S3CatalogSource struct { @@ -5499,6 +5570,109 @@ type S3GlueParquetTarget struct { noSmithyDocumentSerde } +// Specifies a target that writes to a Hudi data source in the Glue Data Catalog. +type S3HudiCatalogTarget struct { + + // Specifies additional connection options for the connector. + // + // This member is required. + AdditionalOptions map[string]string + + // The name of the database to write to. + // + // This member is required. + Database *string + + // The nodes that are inputs to the data target. + // + // This member is required. + Inputs []string + + // The name of the data target. + // + // This member is required. + Name *string + + // The name of the table in the database to write to. + // + // This member is required. + Table *string + + // Specifies native partitioning using a sequence of keys. + PartitionKeys [][]string + + // A policy that specifies update behavior for the crawler. + SchemaChangePolicy *CatalogSchemaChangePolicy + + noSmithyDocumentSerde +} + +// Specifies a target that writes to a Hudi data source in Amazon S3. +type S3HudiDirectTarget struct { + + // This member is required. + AdditionalOptions map[string]string + + // Specifies how the data is compressed. This is generally not necessary if the + // data has a standard file extension. Possible values are "gzip" and "bzip"). + // + // This member is required. + Compression HudiTargetCompressionType + + // Specifies the data output format for the target. + // + // This member is required. + Format TargetFormat + + // The nodes that are inputs to the data target. + // + // This member is required. + Inputs []string + + // The name of the data target. + // + // This member is required. + Name *string + + // The Amazon S3 path of your Hudi data source to write to. + // + // This member is required. + Path *string + + // Specifies native partitioning using a sequence of keys. + PartitionKeys [][]string + + // A policy that specifies update behavior for the crawler. + SchemaChangePolicy *DirectSchemaChangePolicy + + noSmithyDocumentSerde +} + +// Specifies a Hudi data source stored in Amazon S3. +type S3HudiSource struct { + + // The name of the Hudi source. + // + // This member is required. + Name *string + + // A list of the Amazon S3 paths to read from. + // + // This member is required. + Paths []string + + // Specifies additional connection options. + AdditionalHudiOptions map[string]string + + // Specifies additional connection options for the Amazon S3 data store. + AdditionalOptions *S3DirectSourceAdditionalOptions + + // Specifies the data schema for the Hudi source. + OutputSchemas []GlueSchema + + noSmithyDocumentSerde +} + // Specifies a JSON data store stored in Amazon S3. type S3JsonSource struct { diff --git a/service/glue/validators.go b/service/glue/validators.go index 9c75dbbeb64..47b1a62f21b 100644 --- a/service/glue/validators.go +++ b/service/glue/validators.go @@ -4386,6 +4386,32 @@ func validateCatalogEntry(v *types.CatalogEntry) error { } } +func validateCatalogHudiSource(v *types.CatalogHudiSource) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "CatalogHudiSource"} + if v.Name == nil { + invalidParams.Add(smithy.NewErrParamRequired("Name")) + } + if v.Database == nil { + invalidParams.Add(smithy.NewErrParamRequired("Database")) + } + if v.Table == nil { + invalidParams.Add(smithy.NewErrParamRequired("Table")) + } + if v.OutputSchemas != nil { + if err := validateGlueSchemas(v.OutputSchemas); err != nil { + invalidParams.AddNested("OutputSchemas", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateCatalogKafkaSource(v *types.CatalogKafkaSource) error { if v == nil { return nil @@ -4749,6 +4775,31 @@ func validateCodeGenConfigurationNode(v *types.CodeGenConfigurationNode) error { invalidParams.AddNested("EvaluateDataQuality", err.(smithy.InvalidParamsError)) } } + if v.S3CatalogHudiSource != nil { + if err := validateS3CatalogHudiSource(v.S3CatalogHudiSource); err != nil { + invalidParams.AddNested("S3CatalogHudiSource", err.(smithy.InvalidParamsError)) + } + } + if v.CatalogHudiSource != nil { + if err := validateCatalogHudiSource(v.CatalogHudiSource); err != nil { + invalidParams.AddNested("CatalogHudiSource", err.(smithy.InvalidParamsError)) + } + } + if v.S3HudiSource != nil { + if err := validateS3HudiSource(v.S3HudiSource); err != nil { + invalidParams.AddNested("S3HudiSource", err.(smithy.InvalidParamsError)) + } + } + if v.S3HudiCatalogTarget != nil { + if err := validateS3HudiCatalogTarget(v.S3HudiCatalogTarget); err != nil { + invalidParams.AddNested("S3HudiCatalogTarget", err.(smithy.InvalidParamsError)) + } + } + if v.S3HudiDirectTarget != nil { + if err := validateS3HudiDirectTarget(v.S3HudiDirectTarget); err != nil { + invalidParams.AddNested("S3HudiDirectTarget", err.(smithy.InvalidParamsError)) + } + } if invalidParams.Len() > 0 { return invalidParams } else { @@ -6505,6 +6556,32 @@ func validateRenameField(v *types.RenameField) error { } } +func validateS3CatalogHudiSource(v *types.S3CatalogHudiSource) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "S3CatalogHudiSource"} + if v.Name == nil { + invalidParams.Add(smithy.NewErrParamRequired("Name")) + } + if v.Database == nil { + invalidParams.Add(smithy.NewErrParamRequired("Database")) + } + if v.Table == nil { + invalidParams.Add(smithy.NewErrParamRequired("Table")) + } + if v.OutputSchemas != nil { + if err := validateGlueSchemas(v.OutputSchemas); err != nil { + invalidParams.AddNested("OutputSchemas", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateS3CatalogSource(v *types.S3CatalogSource) error { if v == nil { return nil @@ -6624,6 +6701,86 @@ func validateS3GlueParquetTarget(v *types.S3GlueParquetTarget) error { } } +func validateS3HudiCatalogTarget(v *types.S3HudiCatalogTarget) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "S3HudiCatalogTarget"} + if v.Name == nil { + invalidParams.Add(smithy.NewErrParamRequired("Name")) + } + if v.Inputs == nil { + invalidParams.Add(smithy.NewErrParamRequired("Inputs")) + } + if v.Table == nil { + invalidParams.Add(smithy.NewErrParamRequired("Table")) + } + if v.Database == nil { + invalidParams.Add(smithy.NewErrParamRequired("Database")) + } + if v.AdditionalOptions == nil { + invalidParams.Add(smithy.NewErrParamRequired("AdditionalOptions")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateS3HudiDirectTarget(v *types.S3HudiDirectTarget) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "S3HudiDirectTarget"} + if v.Name == nil { + invalidParams.Add(smithy.NewErrParamRequired("Name")) + } + if v.Inputs == nil { + invalidParams.Add(smithy.NewErrParamRequired("Inputs")) + } + if v.Path == nil { + invalidParams.Add(smithy.NewErrParamRequired("Path")) + } + if len(v.Compression) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("Compression")) + } + if len(v.Format) == 0 { + invalidParams.Add(smithy.NewErrParamRequired("Format")) + } + if v.AdditionalOptions == nil { + invalidParams.Add(smithy.NewErrParamRequired("AdditionalOptions")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + +func validateS3HudiSource(v *types.S3HudiSource) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "S3HudiSource"} + if v.Name == nil { + invalidParams.Add(smithy.NewErrParamRequired("Name")) + } + if v.Paths == nil { + invalidParams.Add(smithy.NewErrParamRequired("Paths")) + } + if v.OutputSchemas != nil { + if err := validateGlueSchemas(v.OutputSchemas); err != nil { + invalidParams.AddNested("OutputSchemas", err.(smithy.InvalidParamsError)) + } + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateS3JsonSource(v *types.S3JsonSource) error { if v == nil { return nil diff --git a/service/groundstation/api_op_CreateDataflowEndpointGroup.go b/service/groundstation/api_op_CreateDataflowEndpointGroup.go index 892e97b4a1f..469fbdbcefc 100644 --- a/service/groundstation/api_op_CreateDataflowEndpointGroup.go +++ b/service/groundstation/api_op_CreateDataflowEndpointGroup.go @@ -38,6 +38,16 @@ type CreateDataflowEndpointGroupInput struct { // This member is required. EndpointDetails []types.EndpointDetails + // Amount of time, in seconds, after a contact ends for the contact to remain in a + // POSTPASS state. A CloudWatch event is emitted when the contact enters and exits + // the POSTPASS state. + ContactPostPassDurationSeconds *int32 + + // Amount of time, in seconds, prior to contact start for the contact to remain in + // a PREPASS state. A CloudWatch event is emitted when the contact enters and exits + // the PREPASS state. + ContactPrePassDurationSeconds *int32 + // Tags of a dataflow endpoint group. Tags map[string]string diff --git a/service/groundstation/api_op_DescribeContact.go b/service/groundstation/api_op_DescribeContact.go index 8b89343efd6..db95def1c73 100644 --- a/service/groundstation/api_op_DescribeContact.go +++ b/service/groundstation/api_op_DescribeContact.go @@ -4,11 +4,15 @@ package groundstation 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/groundstation/types" "github.com/aws/smithy-go/middleware" + smithytime "github.com/aws/smithy-go/time" smithyhttp "github.com/aws/smithy-go/transport/http" + smithywaiter "github.com/aws/smithy-go/waiter" + "github.com/jmespath/go-jmespath" "time" ) @@ -153,6 +157,191 @@ func (c *Client) addOperationDescribeContactMiddlewares(stack *middleware.Stack, return nil } +// DescribeContactAPIClient is a client that implements the DescribeContact +// operation. +type DescribeContactAPIClient interface { + DescribeContact(context.Context, *DescribeContactInput, ...func(*Options)) (*DescribeContactOutput, error) +} + +var _ DescribeContactAPIClient = (*Client)(nil) + +// ContactScheduledWaiterOptions are waiter options for ContactScheduledWaiter +type ContactScheduledWaiterOptions struct { + + // Set of options to modify how an operation is invoked. These apply to all + // operations invoked for this client. Use functional options on operation call to + // modify this list for per operation behavior. + APIOptions []func(*middleware.Stack) error + + // MinDelay is the minimum amount of time to delay between retries. If unset, + // ContactScheduledWaiter will use default minimum delay of 5 seconds. Note that + // MinDelay must resolve to a value lesser than or equal to the MaxDelay. + MinDelay time.Duration + + // MaxDelay is the maximum amount of time to delay between retries. If unset or set + // to zero, ContactScheduledWaiter will use default max delay of 900 seconds. Note + // that MaxDelay must resolve to value greater than or equal to the MinDelay. + MaxDelay time.Duration + + // LogWaitAttempts is used to enable logging for waiter retry attempts + LogWaitAttempts bool + + // Retryable is function that can be used to override the service defined + // waiter-behavior based on operation output, or returned error. This function is + // used by the waiter to decide if a state is retryable or a terminal state. By + // default service-modeled logic will populate this option. This option can thus be + // used to define a custom waiter state with fall-back to service-modeled waiter + // state mutators.The function returns an error in case of a failure state. In case + // of retry state, this function returns a bool value of true and nil error, while + // in case of success it returns a bool value of false and nil error. + Retryable func(context.Context, *DescribeContactInput, *DescribeContactOutput, error) (bool, error) +} + +// ContactScheduledWaiter defines the waiters for ContactScheduled +type ContactScheduledWaiter struct { + client DescribeContactAPIClient + + options ContactScheduledWaiterOptions +} + +// NewContactScheduledWaiter constructs a ContactScheduledWaiter. +func NewContactScheduledWaiter(client DescribeContactAPIClient, optFns ...func(*ContactScheduledWaiterOptions)) *ContactScheduledWaiter { + options := ContactScheduledWaiterOptions{} + options.MinDelay = 5 * time.Second + options.MaxDelay = 900 * time.Second + options.Retryable = contactScheduledStateRetryable + + for _, fn := range optFns { + fn(&options) + } + return &ContactScheduledWaiter{ + client: client, + options: options, + } +} + +// Wait calls the waiter function for ContactScheduled waiter. The maxWaitDur is +// the maximum wait duration the waiter will wait. The maxWaitDur is required and +// must be greater than zero. +func (w *ContactScheduledWaiter) Wait(ctx context.Context, params *DescribeContactInput, maxWaitDur time.Duration, optFns ...func(*ContactScheduledWaiterOptions)) error { + _, err := w.WaitForOutput(ctx, params, maxWaitDur, optFns...) + return err +} + +// WaitForOutput calls the waiter function for ContactScheduled waiter and returns +// the output of the successful operation. The maxWaitDur is the maximum wait +// duration the waiter will wait. The maxWaitDur is required and must be greater +// than zero. +func (w *ContactScheduledWaiter) WaitForOutput(ctx context.Context, params *DescribeContactInput, maxWaitDur time.Duration, optFns ...func(*ContactScheduledWaiterOptions)) (*DescribeContactOutput, error) { + if maxWaitDur <= 0 { + return nil, fmt.Errorf("maximum wait time for waiter must be greater than zero") + } + + options := w.options + for _, fn := range optFns { + fn(&options) + } + + if options.MaxDelay <= 0 { + options.MaxDelay = 900 * time.Second + } + + if options.MinDelay > options.MaxDelay { + return nil, fmt.Errorf("minimum waiter delay %v must be lesser than or equal to maximum waiter delay of %v.", options.MinDelay, options.MaxDelay) + } + + ctx, cancelFn := context.WithTimeout(ctx, maxWaitDur) + defer cancelFn() + + logger := smithywaiter.Logger{} + remainingTime := maxWaitDur + + var attempt int64 + for { + + attempt++ + apiOptions := options.APIOptions + start := time.Now() + + if options.LogWaitAttempts { + logger.Attempt = attempt + apiOptions = append([]func(*middleware.Stack) error{}, options.APIOptions...) + apiOptions = append(apiOptions, logger.AddLogger) + } + + out, err := w.client.DescribeContact(ctx, params, func(o *Options) { + o.APIOptions = append(o.APIOptions, apiOptions...) + }) + + retryable, err := options.Retryable(ctx, params, out, err) + if err != nil { + return nil, err + } + if !retryable { + return out, nil + } + + remainingTime -= time.Since(start) + if remainingTime < options.MinDelay || remainingTime <= 0 { + break + } + + // compute exponential backoff between waiter retries + delay, err := smithywaiter.ComputeDelay( + attempt, options.MinDelay, options.MaxDelay, remainingTime, + ) + if err != nil { + return nil, fmt.Errorf("error computing waiter delay, %w", err) + } + + remainingTime -= delay + // sleep for the delay amount before invoking a request + if err := smithytime.SleepWithContext(ctx, delay); err != nil { + return nil, fmt.Errorf("request cancelled while waiting, %w", err) + } + } + return nil, fmt.Errorf("exceeded max wait time for ContactScheduled waiter") +} + +func contactScheduledStateRetryable(ctx context.Context, input *DescribeContactInput, output *DescribeContactOutput, err error) (bool, error) { + + if err == nil { + pathValue, err := jmespath.Search("contactStatus", output) + if err != nil { + return false, fmt.Errorf("error evaluating waiter state: %w", err) + } + + expectedValue := "FAILED_TO_SCHEDULE" + value, ok := pathValue.(types.ContactStatus) + if !ok { + return false, fmt.Errorf("waiter comparator expected types.ContactStatus value, got %T", pathValue) + } + + if string(value) == expectedValue { + return false, fmt.Errorf("waiter state transitioned to Failure") + } + } + + if err == nil { + pathValue, err := jmespath.Search("contactStatus", output) + if err != nil { + return false, fmt.Errorf("error evaluating waiter state: %w", err) + } + + expectedValue := "SCHEDULED" + value, ok := pathValue.(types.ContactStatus) + if !ok { + return false, fmt.Errorf("waiter comparator expected types.ContactStatus value, got %T", pathValue) + } + + if string(value) == expectedValue { + return false, nil + } + } + + return true, nil +} + func newServiceMetadataMiddleware_opDescribeContact(region string) *awsmiddleware.RegisterServiceMetadata { return &awsmiddleware.RegisterServiceMetadata{ Region: region, diff --git a/service/groundstation/api_op_GetDataflowEndpointGroup.go b/service/groundstation/api_op_GetDataflowEndpointGroup.go index b88f53ebcac..edd70b8a052 100644 --- a/service/groundstation/api_op_GetDataflowEndpointGroup.go +++ b/service/groundstation/api_op_GetDataflowEndpointGroup.go @@ -39,6 +39,16 @@ type GetDataflowEndpointGroupInput struct { type GetDataflowEndpointGroupOutput struct { + // Amount of time, in seconds, after a contact ends for the contact to remain in a + // POSTPASS state. A CloudWatch event is emitted when the contact enters and exits + // the POSTPASS state. + ContactPostPassDurationSeconds *int32 + + // Amount of time, in seconds, prior to contact start for the contact to remain in + // a PREPASS state. A CloudWatch event is emitted when the contact enters and exits + // the PREPASS state. + ContactPrePassDurationSeconds *int32 + // ARN of a dataflow endpoint group. DataflowEndpointGroupArn *string diff --git a/service/groundstation/deserializers.go b/service/groundstation/deserializers.go index 42e48554934..bea6b156998 100644 --- a/service/groundstation/deserializers.go +++ b/service/groundstation/deserializers.go @@ -2336,6 +2336,32 @@ func awsRestjson1_deserializeOpDocumentGetDataflowEndpointGroupOutput(v **GetDat for key, value := range shape { switch key { + case "contactPostPassDurationSeconds": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected DataflowEndpointGroupDurationInSeconds to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.ContactPostPassDurationSeconds = ptr.Int32(int32(i64)) + } + + case "contactPrePassDurationSeconds": + if value != nil { + jtv, ok := value.(json.Number) + if !ok { + return fmt.Errorf("expected DataflowEndpointGroupDurationInSeconds to be json.Number, got %T instead", value) + } + i64, err := jtv.Int64() + if err != nil { + return err + } + sv.ContactPrePassDurationSeconds = ptr.Int32(int32(i64)) + } + case "dataflowEndpointGroupArn": if value != nil { jtv, ok := value.(string) diff --git a/service/groundstation/generated.json b/service/groundstation/generated.json index 791c4463839..19f832fa44d 100644 --- a/service/groundstation/generated.json +++ b/service/groundstation/generated.json @@ -3,7 +3,8 @@ "github.com/aws/aws-sdk-go-v2": "v1.4.0", "github.com/aws/aws-sdk-go-v2/internal/configsources": "v0.0.0-00010101000000-000000000000", "github.com/aws/aws-sdk-go-v2/internal/endpoints/v2": "v2.0.0-00010101000000-000000000000", - "github.com/aws/smithy-go": "v1.4.0" + "github.com/aws/smithy-go": "v1.4.0", + "github.com/jmespath/go-jmespath": "v0.4.0" }, "files": [ "api_client.go", diff --git a/service/groundstation/go.mod b/service/groundstation/go.mod index d4bf3df2d63..46d5748cb6f 100644 --- a/service/groundstation/go.mod +++ b/service/groundstation/go.mod @@ -7,6 +7,7 @@ require ( github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.27 github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.21 github.com/aws/smithy-go v1.13.5 + github.com/jmespath/go-jmespath v0.4.0 ) replace github.com/aws/aws-sdk-go-v2 => ../../ diff --git a/service/groundstation/go.sum b/service/groundstation/go.sum index 6f859610e44..1c8cdf7114e 100644 --- a/service/groundstation/go.sum +++ b/service/groundstation/go.sum @@ -1,11 +1,17 @@ github.com/aws/smithy-go v1.13.5 h1:hgz0X/DX0dGqTYpGALqXJoRKRj5oQ7150i5FdTePzO8= github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= +github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/service/groundstation/serializers.go b/service/groundstation/serializers.go index 46a4fc406d9..cf669d5239e 100644 --- a/service/groundstation/serializers.go +++ b/service/groundstation/serializers.go @@ -216,6 +216,16 @@ func awsRestjson1_serializeOpDocumentCreateDataflowEndpointGroupInput(v *CreateD object := value.Object() defer object.Close() + if v.ContactPostPassDurationSeconds != nil { + ok := object.Key("contactPostPassDurationSeconds") + ok.Integer(*v.ContactPostPassDurationSeconds) + } + + if v.ContactPrePassDurationSeconds != nil { + ok := object.Key("contactPrePassDurationSeconds") + ok.Integer(*v.ContactPrePassDurationSeconds) + } + if v.EndpointDetails != nil { ok := object.Key("endpointDetails") if err := awsRestjson1_serializeDocumentEndpointDetailsList(v.EndpointDetails, ok); err != nil { diff --git a/service/m2/internal/endpoints/endpoints.go b/service/m2/internal/endpoints/endpoints.go index 535cb947c0b..b86dec27045 100644 --- a/service/m2/internal/endpoints/endpoints.go +++ b/service/m2/internal/endpoints/endpoints.go @@ -138,6 +138,9 @@ var defaultPartitions = endpoints.Partitions{ endpoints.EndpointKey{ Region: "ap-northeast-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ap-northeast-2", + }: endpoints.Endpoint{}, endpoints.EndpointKey{ Region: "ap-south-1", }: endpoints.Endpoint{}, @@ -176,6 +179,16 @@ var defaultPartitions = endpoints.Partitions{ }: endpoints.Endpoint{ Deprecated: aws.TrueTernary, }, + endpoints.EndpointKey{ + Region: "fips-us-east-2", + }: endpoints.Endpoint{ + Deprecated: aws.TrueTernary, + }, + endpoints.EndpointKey{ + Region: "fips-us-west-1", + }: endpoints.Endpoint{ + Deprecated: aws.TrueTernary, + }, endpoints.EndpointKey{ Region: "fips-us-west-2", }: endpoints.Endpoint{ @@ -191,6 +204,20 @@ var defaultPartitions = endpoints.Partitions{ Region: "us-east-1", Variant: endpoints.FIPSVariant, }: {}, + endpoints.EndpointKey{ + Region: "us-east-2", + }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "us-east-2", + Variant: endpoints.FIPSVariant, + }: {}, + endpoints.EndpointKey{ + Region: "us-west-1", + }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "us-west-1", + Variant: endpoints.FIPSVariant, + }: {}, endpoints.EndpointKey{ Region: "us-west-2", }: endpoints.Endpoint{}, diff --git a/service/medialive/deserializers.go b/service/medialive/deserializers.go index 88aed7f37a8..a29a606f572 100644 --- a/service/medialive/deserializers.go +++ b/service/medialive/deserializers.go @@ -22468,6 +22468,40 @@ func awsRestjson1_deserializeDocumentM2tsSettings(v **types.M2tsSettings, value sv.Scte35Pid = ptr.String(jtv) } + case "scte35PrerollPullupMilliseconds": + if value != nil { + switch jtv := value.(type) { + case json.Number: + f64, err := jtv.Float64() + if err != nil { + return err + } + sv.Scte35PrerollPullupMilliseconds = f64 + + case string: + var f64 float64 + switch { + case strings.EqualFold(jtv, "NaN"): + f64 = math.NaN() + + case strings.EqualFold(jtv, "Infinity"): + f64 = math.Inf(1) + + case strings.EqualFold(jtv, "-Infinity"): + f64 = math.Inf(-1) + + default: + return fmt.Errorf("unknown JSON number value: %s", jtv) + + } + sv.Scte35PrerollPullupMilliseconds = f64 + + default: + return fmt.Errorf("expected __doubleMin0Max5000 to be a JSON Number, got %T instead", value) + + } + } + case "segmentationMarkers": if value != nil { jtv, ok := value.(string) diff --git a/service/medialive/serializers.go b/service/medialive/serializers.go index 466e78e9bf4..c46ff9ddedd 100644 --- a/service/medialive/serializers.go +++ b/service/medialive/serializers.go @@ -8609,6 +8609,24 @@ func awsRestjson1_serializeDocumentM2tsSettings(v *types.M2tsSettings, value smi ok.String(*v.Scte35Pid) } + if v.Scte35PrerollPullupMilliseconds != 0 { + ok := object.Key("scte35PrerollPullupMilliseconds") + switch { + case math.IsNaN(v.Scte35PrerollPullupMilliseconds): + ok.String("NaN") + + case math.IsInf(v.Scte35PrerollPullupMilliseconds, 1): + ok.String("Infinity") + + case math.IsInf(v.Scte35PrerollPullupMilliseconds, -1): + ok.String("-Infinity") + + default: + ok.Double(v.Scte35PrerollPullupMilliseconds) + + } + } + if len(v.SegmentationMarkers) > 0 { ok := object.Key("segmentationMarkers") ok.String(string(v.SegmentationMarkers)) diff --git a/service/medialive/types/types.go b/service/medialive/types/types.go index e77008b2a38..4ad9bc562db 100644 --- a/service/medialive/types/types.go +++ b/service/medialive/types/types.go @@ -3520,6 +3520,14 @@ type M2tsSettings struct { // (or 0x1ff6). Scte35Pid *string + // Defines the amount SCTE-35 preroll will be increased (in milliseconds) on the + // output. Preroll is the amount of time between the presence of a SCTE-35 + // indication in a transport stream and the PTS of the video frame it references. + // Zero means don't add pullup (it doesn't mean set the preroll to zero). Negative + // pullup is not supported, which means that you can't make the preroll shorter. Be + // aware that latency in the output will increase by the pullup amount. + Scte35PrerollPullupMilliseconds float64 + // Inserts segmentation markers at each segmentationTime period. raiSegstart sets // the Random Access Indicator bit in the adaptation field. raiAdapt sets the RAI // bit and adds the current timecode in the private data bytes. psiSegstart inserts diff --git a/service/mediatailor/internal/endpoints/endpoints.go b/service/mediatailor/internal/endpoints/endpoints.go index 01f0cc8cc46..74208821303 100644 --- a/service/mediatailor/internal/endpoints/endpoints.go +++ b/service/mediatailor/internal/endpoints/endpoints.go @@ -135,9 +135,15 @@ var defaultPartitions = endpoints.Partitions{ RegionRegex: partitionRegexp.Aws, IsRegionalized: true, Endpoints: endpoints.Endpoints{ + endpoints.EndpointKey{ + Region: "af-south-1", + }: endpoints.Endpoint{}, endpoints.EndpointKey{ Region: "ap-northeast-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ap-south-1", + }: endpoints.Endpoint{}, endpoints.EndpointKey{ Region: "ap-southeast-1", }: endpoints.Endpoint{}, @@ -153,6 +159,9 @@ var defaultPartitions = endpoints.Partitions{ endpoints.EndpointKey{ Region: "us-east-1", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "us-east-2", + }: endpoints.Endpoint{}, endpoints.EndpointKey{ Region: "us-west-2", }: endpoints.Endpoint{}, diff --git a/service/opensearch/api_op_AddTags.go b/service/opensearch/api_op_AddTags.go index f49d36b7a38..e95da171590 100644 --- a/service/opensearch/api_op_AddTags.go +++ b/service/opensearch/api_op_AddTags.go @@ -12,9 +12,9 @@ import ( ) // Attaches tags to an existing Amazon OpenSearch Service domain. Tags are a set of -// case-sensitive key-value pairs. An domain can have up to 10 tags. For more -// information, see Tagging Amazon OpenSearch Service domains -// (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains.html#managedomains-awsresorcetagging). +// case-sensitive key-value pairs. A domain can have up to 10 tags. For more +// information, see Tagging Amazon OpenSearch Service domains +// (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-awsresourcetagging.html). func (c *Client) AddTags(ctx context.Context, params *AddTagsInput, optFns ...func(*Options)) (*AddTagsOutput, error) { if params == nil { params = &AddTagsInput{} diff --git a/service/opensearch/api_op_CreateVpcEndpoint.go b/service/opensearch/api_op_CreateVpcEndpoint.go index 08d0e31bf33..27183282d9f 100644 --- a/service/opensearch/api_op_CreateVpcEndpoint.go +++ b/service/opensearch/api_op_CreateVpcEndpoint.go @@ -29,7 +29,7 @@ func (c *Client) CreateVpcEndpoint(ctx context.Context, params *CreateVpcEndpoin type CreateVpcEndpointInput struct { - // The Amazon Resource Name (ARN) of the domain to grant access to. + // The Amazon Resource Name (ARN) of the domain to create the endpoint for. // // This member is required. DomainArn *string diff --git a/service/opensearch/api_op_DescribeDryRunProgress.go b/service/opensearch/api_op_DescribeDryRunProgress.go new file mode 100644 index 00000000000..03f1e4f2d23 --- /dev/null +++ b/service/opensearch/api_op_DescribeDryRunProgress.go @@ -0,0 +1,137 @@ +// Code generated by smithy-go-codegen DO NOT EDIT. + +package opensearch + +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/opensearch/types" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +// Describes the progress of a pre-update dry run analysis on an Amazon OpenSearch +// Service domain. For more information, see Determining whether a change will +// cause a blue/green deployment +// (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-configuration-changes#dryrun). +func (c *Client) DescribeDryRunProgress(ctx context.Context, params *DescribeDryRunProgressInput, optFns ...func(*Options)) (*DescribeDryRunProgressOutput, error) { + if params == nil { + params = &DescribeDryRunProgressInput{} + } + + result, metadata, err := c.invokeOperation(ctx, "DescribeDryRunProgress", params, optFns, c.addOperationDescribeDryRunProgressMiddlewares) + if err != nil { + return nil, err + } + + out := result.(*DescribeDryRunProgressOutput) + out.ResultMetadata = metadata + return out, nil +} + +type DescribeDryRunProgressInput struct { + + // The name of the domain. + // + // This member is required. + DomainName *string + + // The unique identifier of the dry run. + DryRunId *string + + // Whether to include the configuration of the dry run in the response. The + // configuration specifies the updates that you're planning to make on the domain. + LoadDryRunConfig *bool + + noSmithyDocumentSerde +} + +type DescribeDryRunProgressOutput struct { + + // Details about the changes you're planning to make on the domain. + DryRunConfig *types.DomainStatus + + // The current status of the dry run, including any validation errors. + DryRunProgressStatus *types.DryRunProgressStatus + + // The results of the dry run. + DryRunResults *types.DryRunResults + + // Metadata pertaining to the operation's result. + ResultMetadata middleware.Metadata + + noSmithyDocumentSerde +} + +func (c *Client) addOperationDescribeDryRunProgressMiddlewares(stack *middleware.Stack, options Options) (err error) { + err = stack.Serialize.Add(&awsRestjson1_serializeOpDescribeDryRunProgress{}, middleware.After) + if err != nil { + return err + } + err = stack.Deserialize.Add(&awsRestjson1_deserializeOpDescribeDryRunProgress{}, 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 = addOpDescribeDryRunProgressValidationMiddleware(stack); err != nil { + return err + } + if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDescribeDryRunProgress(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 +} + +func newServiceMetadataMiddleware_opDescribeDryRunProgress(region string) *awsmiddleware.RegisterServiceMetadata { + return &awsmiddleware.RegisterServiceMetadata{ + Region: region, + ServiceID: ServiceID, + SigningName: "es", + OperationName: "DescribeDryRunProgress", + } +} diff --git a/service/opensearch/api_op_UpdateDomainConfig.go b/service/opensearch/api_op_UpdateDomainConfig.go index fe96086ea7c..160568ed8e4 100644 --- a/service/opensearch/api_op_UpdateDomainConfig.go +++ b/service/opensearch/api_op_UpdateDomainConfig.go @@ -88,9 +88,21 @@ type UpdateDomainConfigInput struct { DomainEndpointOptions *types.DomainEndpointOptions // This flag, when set to True, specifies whether the UpdateDomain request should - // return the results of validation check without actually applying the change. + // return the results of a dry run analysis without actually applying the change. A + // dry run determines what type of deployment the update will cause. DryRun *bool + // The type of dry run to perform. + // + // * Basic only returns the type of deployment + // (blue/green or dynamic) that the update will cause. + // + // * Verbose runs an + // additional check to validate the changes you're making. For more information, + // see Validating a domain update + // (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-configuration-changes#validation-check). + DryRunMode types.DryRunMode + // The type and size of the EBS volume to attach to instances in the domain. EBSOptions *types.EBSOptions @@ -124,7 +136,10 @@ type UpdateDomainConfigOutput struct { // This member is required. DomainConfig *types.DomainConfig - // Results of a dry run performed in an update domain request. + // The status of the dry run being performed on the domain, if any. + DryRunProgressStatus *types.DryRunProgressStatus + + // Results of the dry run performed in the update domain request. DryRunResults *types.DryRunResults // Metadata pertaining to the operation's result. diff --git a/service/opensearch/deserializers.go b/service/opensearch/deserializers.go index 075b1eab41e..17c51da1730 100644 --- a/service/opensearch/deserializers.go +++ b/service/opensearch/deserializers.go @@ -2988,6 +2988,175 @@ func awsRestjson1_deserializeOpDocumentDescribeDomainsOutput(v **DescribeDomains return nil } +type awsRestjson1_deserializeOpDescribeDryRunProgress struct { +} + +func (*awsRestjson1_deserializeOpDescribeDryRunProgress) ID() string { + return "OperationDeserializer" +} + +func (m *awsRestjson1_deserializeOpDescribeDryRunProgress) 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_deserializeOpErrorDescribeDryRunProgress(response, &metadata) + } + output := &DescribeDryRunProgressOutput{} + 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_deserializeOpDocumentDescribeDryRunProgressOutput(&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_deserializeOpErrorDescribeDryRunProgress(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("BaseException", errorCode): + return awsRestjson1_deserializeErrorBaseException(response, errorBody) + + case strings.EqualFold("DisabledOperationException", errorCode): + return awsRestjson1_deserializeErrorDisabledOperationException(response, errorBody) + + case strings.EqualFold("InternalException", errorCode): + return awsRestjson1_deserializeErrorInternalException(response, errorBody) + + case strings.EqualFold("ResourceNotFoundException", errorCode): + return awsRestjson1_deserializeErrorResourceNotFoundException(response, errorBody) + + case strings.EqualFold("ValidationException", errorCode): + return awsRestjson1_deserializeErrorValidationException(response, errorBody) + + default: + genericError := &smithy.GenericAPIError{ + Code: errorCode, + Message: errorMessage, + } + return genericError + + } +} + +func awsRestjson1_deserializeOpDocumentDescribeDryRunProgressOutput(v **DescribeDryRunProgressOutput, 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 *DescribeDryRunProgressOutput + if *v == nil { + sv = &DescribeDryRunProgressOutput{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "DryRunConfig": + if err := awsRestjson1_deserializeDocumentDomainStatus(&sv.DryRunConfig, value); err != nil { + return err + } + + case "DryRunProgressStatus": + if err := awsRestjson1_deserializeDocumentDryRunProgressStatus(&sv.DryRunProgressStatus, value); err != nil { + return err + } + + case "DryRunResults": + if err := awsRestjson1_deserializeDocumentDryRunResults(&sv.DryRunResults, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + type awsRestjson1_deserializeOpDescribeInboundConnections struct { } @@ -7262,6 +7431,11 @@ func awsRestjson1_deserializeOpDocumentUpdateDomainConfigOutput(v **UpdateDomain return err } + case "DryRunProgressStatus": + if err := awsRestjson1_deserializeDocumentDryRunProgressStatus(&sv.DryRunProgressStatus, value); err != nil { + return err + } + case "DryRunResults": if err := awsRestjson1_deserializeDocumentDryRunResults(&sv.DryRunResults, value); err != nil { return err @@ -10651,6 +10825,78 @@ func awsRestjson1_deserializeDocumentDomainStatusList(v *[]types.DomainStatus, v return nil } +func awsRestjson1_deserializeDocumentDryRunProgressStatus(v **types.DryRunProgressStatus, 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.DryRunProgressStatus + if *v == nil { + sv = &types.DryRunProgressStatus{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "CreationDate": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.CreationDate = ptr.String(jtv) + } + + case "DryRunId": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected GUID to be of type string, got %T instead", value) + } + sv.DryRunId = ptr.String(jtv) + } + + case "DryRunStatus": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.DryRunStatus = ptr.String(jtv) + } + + case "UpdateDate": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.UpdateDate = ptr.String(jtv) + } + + case "ValidationFailures": + if err := awsRestjson1_deserializeDocumentValidationFailures(&sv.ValidationFailures, value); err != nil { + return err + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + func awsRestjson1_deserializeDocumentDryRunResults(v **types.DryRunResults, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) @@ -14040,6 +14286,89 @@ func awsRestjson1_deserializeDocumentValidationException(v **types.ValidationExc return nil } +func awsRestjson1_deserializeDocumentValidationFailure(v **types.ValidationFailure, 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.ValidationFailure + if *v == nil { + sv = &types.ValidationFailure{} + } else { + sv = *v + } + + for key, value := range shape { + switch key { + case "Code": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Code = ptr.String(jtv) + } + + case "Message": + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected String to be of type string, got %T instead", value) + } + sv.Message = ptr.String(jtv) + } + + default: + _, _ = key, value + + } + } + *v = sv + return nil +} + +func awsRestjson1_deserializeDocumentValidationFailures(v *[]types.ValidationFailure, 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.ValidationFailure + if *v == nil { + cv = []types.ValidationFailure{} + } else { + cv = *v + } + + for _, value := range shape { + var col types.ValidationFailure + destAddr := &col + if err := awsRestjson1_deserializeDocumentValidationFailure(&destAddr, value); err != nil { + return err + } + col = *destAddr + cv = append(cv, col) + + } + *v = cv + return nil +} + func awsRestjson1_deserializeDocumentVersionList(v *[]string, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/opensearch/generated.json b/service/opensearch/generated.json index 5ef2dd91a53..5c4b392046a 100644 --- a/service/opensearch/generated.json +++ b/service/opensearch/generated.json @@ -27,6 +27,7 @@ "api_op_DescribeDomainChangeProgress.go", "api_op_DescribeDomainConfig.go", "api_op_DescribeDomains.go", + "api_op_DescribeDryRunProgress.go", "api_op_DescribeInboundConnections.go", "api_op_DescribeInstanceTypeLimits.go", "api_op_DescribeOutboundConnections.go", diff --git a/service/opensearch/serializers.go b/service/opensearch/serializers.go index fbfe4d86eeb..f2c8c2364c1 100644 --- a/service/opensearch/serializers.go +++ b/service/opensearch/serializers.go @@ -1404,6 +1404,72 @@ func awsRestjson1_serializeOpDocumentDescribeDomainsInput(v *DescribeDomainsInpu return nil } +type awsRestjson1_serializeOpDescribeDryRunProgress struct { +} + +func (*awsRestjson1_serializeOpDescribeDryRunProgress) ID() string { + return "OperationSerializer" +} + +func (m *awsRestjson1_serializeOpDescribeDryRunProgress) 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.(*DescribeDryRunProgressInput) + _ = input + if !ok { + return out, metadata, &smithy.SerializationError{Err: fmt.Errorf("unknown input parameters type %T", in.Parameters)} + } + + opPath, opQuery := httpbinding.SplitURI("/2021-01-01/opensearch/domain/{DomainName}/dryRun") + request.URL.Path = smithyhttp.JoinPath(request.URL.Path, opPath) + request.URL.RawQuery = smithyhttp.JoinRawQuery(request.URL.RawQuery, opQuery) + request.Method = "GET" + restEncoder, err := httpbinding.NewEncoder(request.URL.Path, request.URL.RawQuery, request.Header) + if err != nil { + return out, metadata, &smithy.SerializationError{Err: err} + } + + if err := awsRestjson1_serializeOpHttpBindingsDescribeDryRunProgressInput(input, restEncoder); 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_serializeOpHttpBindingsDescribeDryRunProgressInput(v *DescribeDryRunProgressInput, encoder *httpbinding.Encoder) error { + if v == nil { + return fmt.Errorf("unsupported serialization of nil %T", v) + } + + if v.DomainName == nil || len(*v.DomainName) == 0 { + return &smithy.SerializationError{Err: fmt.Errorf("input member DomainName must not be empty")} + } + if v.DomainName != nil { + if err := encoder.SetURI("DomainName").String(*v.DomainName); err != nil { + return err + } + } + + if v.DryRunId != nil { + encoder.SetQuery("dryRunId").String(*v.DryRunId) + } + + if v.LoadDryRunConfig != nil { + encoder.SetQuery("loadDryRunConfig").Boolean(*v.LoadDryRunConfig) + } + + return nil +} + type awsRestjson1_serializeOpDescribeInboundConnections struct { } @@ -3244,6 +3310,11 @@ func awsRestjson1_serializeOpDocumentUpdateDomainConfigInput(v *UpdateDomainConf ok.Boolean(*v.DryRun) } + if len(v.DryRunMode) > 0 { + ok := object.Key("DryRunMode") + ok.String(string(v.DryRunMode)) + } + if v.EBSOptions != nil { ok := object.Key("EBSOptions") if err := awsRestjson1_serializeDocumentEBSOptions(v.EBSOptions, ok); err != nil { diff --git a/service/opensearch/types/enums.go b/service/opensearch/types/enums.go index 630c87344e1..284306445ba 100644 --- a/service/opensearch/types/enums.go +++ b/service/opensearch/types/enums.go @@ -136,6 +136,24 @@ func (DomainPackageStatus) Values() []DomainPackageStatus { } } +type DryRunMode string + +// Enum values for DryRunMode +const ( + DryRunModeBasic DryRunMode = "Basic" + DryRunModeVerbose DryRunMode = "Verbose" +) + +// Values returns all known values for DryRunMode. 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 (DryRunMode) Values() []DryRunMode { + return []DryRunMode{ + "Basic", + "Verbose", + } +} + type EngineType string // Enum values for EngineType diff --git a/service/opensearch/types/types.go b/service/opensearch/types/types.go index 1ff39347be7..d4b5924cc15 100644 --- a/service/opensearch/types/types.go +++ b/service/opensearch/types/types.go @@ -800,6 +800,35 @@ type DomainStatus struct { noSmithyDocumentSerde } +// Information about the progress of a pre-upgrade dry run analysis. +type DryRunProgressStatus struct { + + // The timestamp when the dry run was initiated. + // + // This member is required. + CreationDate *string + + // The unique identifier of the dry run. + // + // This member is required. + DryRunId *string + + // The current status of the dry run. + // + // This member is required. + DryRunStatus *string + + // The timestamp when the dry run was last updated. + // + // This member is required. + UpdateDate *string + + // Any validation failures that occurred as a result of the dry run. + ValidationFailures []ValidationFailure + + noSmithyDocumentSerde +} + // Results of a dry run performed in an update domain request. type DryRunResults struct { @@ -1670,6 +1699,19 @@ type UpgradeStepItem struct { noSmithyDocumentSerde } +// A validation failure that occurred as the result of a pre-update validation +// check (verbose dry run) on a domain. +type ValidationFailure struct { + + // The error code of the failure. + Code *string + + // A message corresponding to the failure. + Message *string + + noSmithyDocumentSerde +} + // The status of the the OpenSearch or Elasticsearch version options for the // specified Amazon OpenSearch Service domain. type VersionStatus struct { diff --git a/service/opensearch/validators.go b/service/opensearch/validators.go index b086b364543..7ac81feb9b0 100644 --- a/service/opensearch/validators.go +++ b/service/opensearch/validators.go @@ -390,6 +390,26 @@ func (m *validateOpDescribeDomains) HandleInitialize(ctx context.Context, in mid return next.HandleInitialize(ctx, in) } +type validateOpDescribeDryRunProgress struct { +} + +func (*validateOpDescribeDryRunProgress) ID() string { + return "OperationInputValidation" +} + +func (m *validateOpDescribeDryRunProgress) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( + out middleware.InitializeOutput, metadata middleware.Metadata, err error, +) { + input, ok := in.Parameters.(*DescribeDryRunProgressInput) + if !ok { + return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters) + } + if err := validateOpDescribeDryRunProgressInput(input); err != nil { + return out, metadata, err + } + return next.HandleInitialize(ctx, in) +} + type validateOpDescribeInstanceTypeLimits struct { } @@ -886,6 +906,10 @@ func addOpDescribeDomainsValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDescribeDomains{}, middleware.After) } +func addOpDescribeDryRunProgressValidationMiddleware(stack *middleware.Stack) error { + return stack.Initialize.Add(&validateOpDescribeDryRunProgress{}, middleware.After) +} + func addOpDescribeInstanceTypeLimitsValidationMiddleware(stack *middleware.Stack) error { return stack.Initialize.Add(&validateOpDescribeInstanceTypeLimits{}, middleware.After) } @@ -1457,6 +1481,21 @@ func validateOpDescribeDomainsInput(v *DescribeDomainsInput) error { } } +func validateOpDescribeDryRunProgressInput(v *DescribeDryRunProgressInput) error { + if v == nil { + return nil + } + invalidParams := smithy.InvalidParamsError{Context: "DescribeDryRunProgressInput"} + if v.DomainName == nil { + invalidParams.Add(smithy.NewErrParamRequired("DomainName")) + } + if invalidParams.Len() > 0 { + return invalidParams + } else { + return nil + } +} + func validateOpDescribeInstanceTypeLimitsInput(v *DescribeInstanceTypeLimitsInput) error { if v == nil { return nil diff --git a/service/panorama/api_op_CreateJobForDevices.go b/service/panorama/api_op_CreateJobForDevices.go index 01370a00627..4f89047d776 100644 --- a/service/panorama/api_op_CreateJobForDevices.go +++ b/service/panorama/api_op_CreateJobForDevices.go @@ -11,8 +11,8 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates a job to run on one or more devices. A job can update a device's -// software or reboot it. +// Creates a job to run on a device. A job can update a device's software or reboot +// it. func (c *Client) CreateJobForDevices(ctx context.Context, params *CreateJobForDevicesInput, optFns ...func(*Options)) (*CreateJobForDevicesOutput, error) { if params == nil { params = &CreateJobForDevicesInput{} @@ -30,7 +30,7 @@ func (c *Client) CreateJobForDevices(ctx context.Context, params *CreateJobForDe type CreateJobForDevicesInput struct { - // IDs of target devices. + // ID of target device. // // This member is required. DeviceIds []string diff --git a/service/panorama/serializers.go b/service/panorama/serializers.go index 07fbbbb58c1..77cfaeda30c 100644 --- a/service/panorama/serializers.go +++ b/service/panorama/serializers.go @@ -2626,6 +2626,11 @@ func awsRestjson1_serializeDocumentOTAJobConfig(v *types.OTAJobConfig, value smi object := value.Object() defer object.Close() + if v.AllowMajorVersionUpdate { + ok := object.Key("AllowMajorVersionUpdate") + ok.Boolean(v.AllowMajorVersionUpdate) + } + if v.ImageVersion != nil { ok := object.Key("ImageVersion") ok.String(*v.ImageVersion) diff --git a/service/panorama/types/types.go b/service/panorama/types/types.go index 2dfb06b62ce..993127693c7 100644 --- a/service/panorama/types/types.go +++ b/service/panorama/types/types.go @@ -510,6 +510,9 @@ type OTAJobConfig struct { // This member is required. ImageVersion *string + // Whether to apply the update if it is a major version change. + AllowMajorVersionUpdate bool + noSmithyDocumentSerde } diff --git a/service/sagemaker/api_op_UpdateEndpoint.go b/service/sagemaker/api_op_UpdateEndpoint.go index 85be019b93b..dd835fb4a04 100644 --- a/service/sagemaker/api_op_UpdateEndpoint.go +++ b/service/sagemaker/api_op_UpdateEndpoint.go @@ -58,7 +58,8 @@ type UpdateEndpointInput struct { // UpdateEndpointInput$RetainAllVariantProperties, whose value is set to true, // ExcludeRetainedVariantProperties specifies the list of type VariantProperty to // override with the values provided by EndpointConfig. If you don't specify a - // value for ExcludeAllVariantProperties, no variant properties are overridden. + // value for ExcludeRetainedVariantProperties, no variant properties are + // overridden. ExcludeRetainedVariantProperties []types.VariantProperty // When updating endpoint resources, enables or disables the retention of variant diff --git a/service/sagemaker/deserializers.go b/service/sagemaker/deserializers.go index 7c761a92348..28f4d698f9e 100644 --- a/service/sagemaker/deserializers.go +++ b/service/sagemaker/deserializers.go @@ -46542,6 +46542,11 @@ func awsAwsjson11_deserializeDocumentHyperParameterTrainingJobDefinition(v **typ sv.EnableNetworkIsolation = jtv } + case "Environment": + if err := awsAwsjson11_deserializeDocumentHyperParameterTrainingJobEnvironmentMap(&sv.Environment, value); err != nil { + return err + } + case "HyperParameterRanges": if err := awsAwsjson11_deserializeDocumentParameterRanges(&sv.HyperParameterRanges, value); err != nil { return err @@ -46644,6 +46649,42 @@ func awsAwsjson11_deserializeDocumentHyperParameterTrainingJobDefinitions(v *[]t return nil } +func awsAwsjson11_deserializeDocumentHyperParameterTrainingJobEnvironmentMap(v *map[string]string, 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 mv map[string]string + if *v == nil { + mv = map[string]string{} + } else { + mv = *v + } + + for key, value := range shape { + var parsedVal string + if value != nil { + jtv, ok := value.(string) + if !ok { + return fmt.Errorf("expected HyperParameterTrainingJobEnvironmentValue to be of type string, got %T instead", value) + } + parsedVal = jtv + } + mv[key] = parsedVal + + } + *v = mv + return nil +} + func awsAwsjson11_deserializeDocumentHyperParameterTrainingJobSummaries(v *[]types.HyperParameterTrainingJobSummary, value interface{}) error { if v == nil { return fmt.Errorf("unexpected nil of type %T", v) diff --git a/service/sagemaker/serializers.go b/service/sagemaker/serializers.go index 073a21ae833..855f2d4161a 100644 --- a/service/sagemaker/serializers.go +++ b/service/sagemaker/serializers.go @@ -19872,6 +19872,13 @@ func awsAwsjson11_serializeDocumentHyperParameterTrainingJobDefinition(v *types. ok.Boolean(v.EnableNetworkIsolation) } + if v.Environment != nil { + ok := object.Key("Environment") + if err := awsAwsjson11_serializeDocumentHyperParameterTrainingJobEnvironmentMap(v.Environment, ok); err != nil { + return err + } + } + if v.HyperParameterRanges != nil { ok := object.Key("HyperParameterRanges") if err := awsAwsjson11_serializeDocumentParameterRanges(v.HyperParameterRanges, ok); err != nil { @@ -19963,6 +19970,17 @@ func awsAwsjson11_serializeDocumentHyperParameterTrainingJobDefinitions(v []type return nil } +func awsAwsjson11_serializeDocumentHyperParameterTrainingJobEnvironmentMap(v map[string]string, value smithyjson.Value) error { + object := value.Object() + defer object.Close() + + for key := range v { + om := object.Key(key) + om.String(v[key]) + } + return nil +} + func awsAwsjson11_serializeDocumentHyperParameterTuningInstanceConfig(v *types.HyperParameterTuningInstanceConfig, value smithyjson.Value) error { object := value.Object() defer object.Close() diff --git a/service/sagemaker/types/types.go b/service/sagemaker/types/types.go index 03976875649..2bea2e05926 100644 --- a/service/sagemaker/types/types.go +++ b/service/sagemaker/types/types.go @@ -6706,6 +6706,19 @@ type HyperParameterTrainingJobDefinition struct { // access. EnableNetworkIsolation bool + // An environment variable that you can pass into the SageMaker CreateTrainingJob + // (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html) + // API. You can use an existing environment variable from the training container + // (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html#sagemaker-CreateTrainingJob-request-Environment) + // or use your own. See Define metrics and variables + // (https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-metrics.html) + // for more information. The maximum number of items specified for Map Entries + // refers to the maximum number of environment variables for each + // TrainingJobDefinition and also the maximum for the hyperparameter tuning job + // itself. That is, the sum of the number of environment variables for all the + // training job definitions can't exceed the maximum number specified. + Environment map[string]string + // Specifies ranges of integer, continuous, and categorical hyperparameters that a // hyperparameter tuning job searches. The hyperparameter tuning job launches // training jobs with hyperparameter values within these ranges to find the @@ -6839,7 +6852,7 @@ type HyperParameterTuningInstanceConfig struct { // The number of instances of the type specified by InstanceType. Choose an // instance count larger than 1 for distributed training algorithms. See SageMaker // distributed training jobs - // (https://docs.aws.amazon.com/data-parallel-use-api.html) for more informcration. + // (https://docs.aws.amazon.com/data-parallel-use-api.html) for more information. // // This member is required. InstanceCount int32