From e2e6cebba22a7a8aa87977e6174989f6fb846aab Mon Sep 17 00:00:00 2001 From: AWS SDK Swift Automation Date: Thu, 13 Jul 2023 18:57:10 +0000 Subject: [PATCH] chore: Updates version to 0.21.0 --- Package.swift | 2 +- Package.version | 2 +- Sources/Services/AWSBatch/BatchClient.swift | 4 +- .../AWSBatch/BatchClientProtocol.swift | 4 +- Sources/Services/AWSBatch/models/Models.swift | 81 +- .../CloudWatchLogsClient.swift | 22 +- .../CloudWatchLogsClientProtocol.swift | 22 +- .../AWSCloudWatchLogs/models/Models.swift | 70 +- .../models/Models.swift | 155 +- .../ComprehendMedicalClient.swift | 4 +- .../ComprehendMedicalClientProtocol.swift | 6 +- .../AWSComprehendMedical/models/Models.swift | 76 +- .../Services/AWSConnect/ConnectClient.swift | 10 +- .../AWSConnect/ConnectClientProtocol.swift | 10 +- .../Services/AWSConnect/models/Models.swift | 2 +- .../DatabaseMigrationClient.swift | 335 ++- .../DatabaseMigrationClientProtocol.swift | 20 +- .../Paginators.swift | 67 + .../models/Models.swift | 2626 ++++++++++++++++- Sources/Services/AWSEC2/EC2Client.swift | 2 +- .../Services/AWSEC2/EC2ClientProtocol.swift | 2 +- Sources/Services/AWSEC2/models/Models.swift | 54 +- Sources/Services/AWSGlue/models/Models.swift | 122 + Sources/Services/AWSKMS/KMSClient.swift | 2 +- .../Services/AWSKMS/KMSClientProtocol.swift | 2 +- Sources/Services/AWSKMS/models/Models.swift | 249 +- .../Services/AWSLocation/LocationClient.swift | 13 +- .../AWSLocation/LocationClientProtocol.swift | 8 +- .../Services/AWSLocation/models/Models.swift | 200 +- .../AWSMediaLive/MediaLiveClient.swift | 103 + .../MediaLiveClientProtocol.swift | 6 + .../Services/AWSMediaLive/models/Models.swift | 584 ++++ .../AWSMediaTailor/models/Models.swift | 123 + Sources/Services/AWSMgn/MgnClient.swift | 144 + .../Services/AWSMgn/MgnClientProtocol.swift | 8 + Sources/Services/AWSMgn/Paginators.swift | 29 + Sources/Services/AWSMgn/models/Models.swift | 1661 ++++++++++- Sources/Services/AWSOutposts/Paginators.swift | 54 + .../Services/AWSOutposts/models/Models.swift | 7 +- .../AWSQuickSight/QuickSightClient.swift | 4 +- .../QuickSightClientProtocol.swift | 4 +- .../AWSQuickSight/models/Models.swift | 291 +- Sources/Services/AWSRDS/RDSClient.swift | 2 +- .../Services/AWSRDS/RDSClientProtocol.swift | 2 +- Sources/Services/AWSRDS/models/Models.swift | 118 +- .../Services/AWSSageMaker/models/Models.swift | 95 +- .../AWSSecurityHub/models/Models.swift | 40 +- packageDependencies.plist | 2 +- 48 files changed, 6966 insertions(+), 483 deletions(-) diff --git a/Package.swift b/Package.swift index 3c42ea0af71..bb49aa8cbf0 100644 --- a/Package.swift +++ b/Package.swift @@ -169,7 +169,7 @@ func addProtocolTests() { // MARK: - Generated addDependencies( - clientRuntimeVersion: "0.24.0", + clientRuntimeVersion: "0.25.0", crtVersion: "0.12.0" ) diff --git a/Package.version b/Package.version index a881cf79f29..1db0edecc06 100644 --- a/Package.version +++ b/Package.version @@ -1 +1 @@ -0.20.0 \ No newline at end of file +0.21.0 \ No newline at end of file diff --git a/Sources/Services/AWSBatch/BatchClient.swift b/Sources/Services/AWSBatch/BatchClient.swift index cb3e48a3a05..f496d72a6a9 100644 --- a/Sources/Services/AWSBatch/BatchClient.swift +++ b/Sources/Services/AWSBatch/BatchClient.swift @@ -67,7 +67,7 @@ public struct BatchClientLogHandlerFactory: ClientRuntime.SDKLogHandlerFactory { } extension BatchClient: BatchClientProtocol { - /// Cancels a job in an Batch job queue. Jobs that are in the SUBMITTED or PENDING are canceled. A job inRUNNABLE remains in RUNNABLE until it reaches the head of the job queue. Then the job status is updated to FAILED. Jobs that progressed to the STARTING or RUNNING state aren't canceled. However, the API operation still succeeds, even if no job is canceled. These jobs must be terminated with the [TerminateJob] operation. + /// Cancels a job in an Batch job queue. Jobs that are in the SUBMITTED or PENDING are canceled. A job inRUNNABLE remains in RUNNABLE until it reaches the head of the job queue. Then the job status is updated to FAILED. A PENDING job is canceled after all dependency jobs are completed. Therefore, it may take longer than expected to cancel a job in PENDING status. When you try to cancel an array parent job in PENDING, Batch attempts to cancel all child jobs. The array parent job is canceled when all child jobs are completed. Jobs that progressed to the STARTING or RUNNING state aren't canceled. However, the API operation still succeeds, even if no job is canceled. These jobs must be terminated with the [TerminateJob] operation. public func cancelJob(input: CancelJobInput) async throws -> CancelJobOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -120,7 +120,7 @@ extension BatchClient: BatchClientProtocol { /// /// * Set the allocation strategy (allocationStrategy) parameter to BEST_FIT_PROGRESSIVE or SPOT_CAPACITY_OPTIMIZED. /// - /// * Set the update to latest image version (updateToLatestImageVersion) parameter to true. + /// * Set the update to latest image version (updateToLatestImageVersion) parameter to true. The updateToLatestImageVersion parameter is used when you update a compute environment. This parameter is ignored when you create a compute environment. /// /// * Don't specify an AMI ID in imageId, imageIdOverride (in [ec2Configuration](https://docs.aws.amazon.com/batch/latest/APIReference/API_Ec2Configuration.html)), or in the launch template (launchTemplate). In that case, Batch selects the latest Amazon ECS optimized AMI that's supported by Batch at the time the infrastructure update is initiated. Alternatively, you can specify the AMI ID in the imageId or imageIdOverride parameters, or the launch template identified by the LaunchTemplate properties. Changing any of these properties starts an infrastructure update. If the AMI ID is specified in the launch template, it can't be replaced by specifying an AMI ID in either the imageId or imageIdOverride parameters. It can only be replaced by specifying a different launch template, or if the launch template version is set to $Default or $Latest, by setting either a new default version for the launch template (if $Default) or by adding a new version to the launch template (if $Latest). /// diff --git a/Sources/Services/AWSBatch/BatchClientProtocol.swift b/Sources/Services/AWSBatch/BatchClientProtocol.swift index cb055d9fa8c..c74c4bbf4a4 100644 --- a/Sources/Services/AWSBatch/BatchClientProtocol.swift +++ b/Sources/Services/AWSBatch/BatchClientProtocol.swift @@ -4,7 +4,7 @@ import ClientRuntime /// Batch Using Batch, you can run batch computing workloads on the Amazon Web Services Cloud. Batch computing is a common means for developers, scientists, and engineers to access large amounts of compute resources. Batch uses the advantages of the batch computing to remove the undifferentiated heavy lifting of configuring and managing required infrastructure. At the same time, it also adopts a familiar batch computing software approach. You can use Batch to efficiently provision resources d, and work toward eliminating capacity constraints, reducing your overall compute costs, and delivering results more quickly. As a fully managed service, Batch can run batch computing workloads of any scale. Batch automatically provisions compute resources and optimizes workload distribution based on the quantity and scale of your specific workloads. With Batch, there's no need to install or manage batch computing software. This means that you can focus on analyzing results and solving your specific problems instead. public protocol BatchClientProtocol { - /// Cancels a job in an Batch job queue. Jobs that are in the SUBMITTED or PENDING are canceled. A job inRUNNABLE remains in RUNNABLE until it reaches the head of the job queue. Then the job status is updated to FAILED. Jobs that progressed to the STARTING or RUNNING state aren't canceled. However, the API operation still succeeds, even if no job is canceled. These jobs must be terminated with the [TerminateJob] operation. + /// Cancels a job in an Batch job queue. Jobs that are in the SUBMITTED or PENDING are canceled. A job inRUNNABLE remains in RUNNABLE until it reaches the head of the job queue. Then the job status is updated to FAILED. A PENDING job is canceled after all dependency jobs are completed. Therefore, it may take longer than expected to cancel a job in PENDING status. When you try to cancel an array parent job in PENDING, Batch attempts to cancel all child jobs. The array parent job is canceled when all child jobs are completed. Jobs that progressed to the STARTING or RUNNING state aren't canceled. However, the API operation still succeeds, even if no job is canceled. These jobs must be terminated with the [TerminateJob] operation. func cancelJob(input: CancelJobInput) async throws -> CancelJobOutputResponse /// Creates an Batch compute environment. You can create MANAGED or UNMANAGED compute environments. MANAGED compute environments can use Amazon EC2 or Fargate resources. UNMANAGED compute environments can only use EC2 resources. In a managed compute environment, Batch manages the capacity and instance types of the compute resources within the environment. This is based on the compute resource specification that you define or the [launch template](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html) that you specify when you create the compute environment. Either, you can choose to use EC2 On-Demand Instances and EC2 Spot Instances. Or, you can use Fargate and Fargate Spot capacity in your managed compute environment. You can optionally set a maximum price so that Spot Instances only launch when the Spot Instance price is less than a specified percentage of the On-Demand price. Multi-node parallel jobs aren't supported on Spot Instances. In an unmanaged compute environment, you can manage your own EC2 compute resources and have flexibility with how you configure your compute resources. For example, you can use custom AMIs. However, you must verify that each of your AMIs meet the Amazon ECS container instance AMI specification. For more information, see [container instance AMIs](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/container_instance_AMIs.html) in the Amazon Elastic Container Service Developer Guide. After you created your unmanaged compute environment, you can use the [DescribeComputeEnvironments] operation to find the Amazon ECS cluster that's associated with it. Then, launch your container instances into that Amazon ECS cluster. For more information, see [Launching an Amazon ECS container instance](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_container_instance.html) in the Amazon Elastic Container Service Developer Guide. To create a compute environment that uses EKS resources, the caller must have permissions to call eks:DescribeCluster. Batch doesn't automatically upgrade the AMIs in a compute environment after it's created. For example, it also doesn't update the AMIs in your compute environment when a newer version of the Amazon ECS optimized AMI is available. You're responsible for the management of the guest operating system. This includes any updates and security patches. You're also responsible for any additional application software or utilities that you install on the compute resources. There are two ways to use a new AMI for your Batch jobs. The original method is to complete these steps: /// @@ -23,7 +23,7 @@ public protocol BatchClientProtocol { /// /// * Set the allocation strategy (allocationStrategy) parameter to BEST_FIT_PROGRESSIVE or SPOT_CAPACITY_OPTIMIZED. /// - /// * Set the update to latest image version (updateToLatestImageVersion) parameter to true. + /// * Set the update to latest image version (updateToLatestImageVersion) parameter to true. The updateToLatestImageVersion parameter is used when you update a compute environment. This parameter is ignored when you create a compute environment. /// /// * Don't specify an AMI ID in imageId, imageIdOverride (in [ec2Configuration](https://docs.aws.amazon.com/batch/latest/APIReference/API_Ec2Configuration.html)), or in the launch template (launchTemplate). In that case, Batch selects the latest Amazon ECS optimized AMI that's supported by Batch at the time the infrastructure update is initiated. Alternatively, you can specify the AMI ID in the imageId or imageIdOverride parameters, or the launch template identified by the LaunchTemplate properties. Changing any of these properties starts an infrastructure update. If the AMI ID is specified in the launch template, it can't be replaced by specifying an AMI ID in either the imageId or imageIdOverride parameters. It can only be replaced by specifying a different launch template, or if the launch template version is set to $Default or $Latest, by setting either a new default version for the launch template (if $Default) or by adding a new version to the launch template (if $Latest). /// diff --git a/Sources/Services/AWSBatch/models/Models.swift b/Sources/Services/AWSBatch/models/Models.swift index 3a9d0fd52f9..874a546e65a 100644 --- a/Sources/Services/AWSBatch/models/Models.swift +++ b/Sources/Services/AWSBatch/models/Models.swift @@ -1145,7 +1145,7 @@ extension BatchClientTypes { public var allocationStrategy: BatchClientTypes.CRAllocationStrategy? /// The maximum percentage that a Spot Instance price can be when compared with the On-Demand price for that instance type before instances are launched. For example, if your maximum percentage is 20%, then the Spot price must be less than 20% of the current On-Demand price for that Amazon EC2 instance. You always pay the lowest (market) price and never more than your maximum percentage. If you leave this field empty, the default value is 100% of the On-Demand price. For most use cases, we recommend leaving this field empty. This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it. public var bidPercentage: Swift.Int? - /// The desired number of Amazon EC2 vCPUS in the compute environment. Batch modifies this value between the minimum and maximum values based on job queue demand. This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it. + /// The desired number of vCPUS in the compute environment. Batch modifies this value between the minimum and maximum values based on job queue demand. This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it. public var desiredvCpus: Swift.Int? /// Provides information that's used to select Amazon Machine Images (AMIs) for EC2 instances in the compute environment. If Ec2Configuration isn't specified, the default is ECS_AL2. One or two values can be provided. This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it. public var ec2Configuration: [BatchClientTypes.Ec2Configuration]? @@ -1160,10 +1160,10 @@ extension BatchClientTypes { public var instanceTypes: [Swift.String]? /// The launch template to use for your compute resources. Any other compute resource parameters that you specify in a [CreateComputeEnvironment] API operation override the same parameters in the launch template. You must specify either the launch template ID or launch template name in the request, but not both. For more information, see [Launch template support](https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html) in the Batch User Guide. This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it. public var launchTemplate: BatchClientTypes.LaunchTemplateSpecification? - /// The maximum number of Amazon EC2 vCPUs that a compute environment can reach. With both BEST_FIT_PROGRESSIVE and SPOT_CAPACITY_OPTIMIZED allocation strategies using On-Demand or Spot Instances, and the BEST_FIT strategy using Spot Instances, Batch might need to exceed maxvCpus to meet your capacity requirements. In this event, Batch never exceeds maxvCpus by more than a single instance. For example, no more than a single instance from among those specified in your compute environment is allocated. + /// The maximum number of vCPUs that a compute environment can support. With both BEST_FIT_PROGRESSIVE and SPOT_CAPACITY_OPTIMIZED allocation strategies using On-Demand or Spot Instances, and the BEST_FIT strategy using Spot Instances, Batch might need to exceed maxvCpus to meet your capacity requirements. In this event, Batch never exceeds maxvCpus by more than a single instance. For example, no more than a single instance from among those specified in your compute environment is allocated. /// This member is required. public var maxvCpus: Swift.Int? - /// The minimum number of Amazon EC2 vCPUs that an environment should maintain (even if the compute environment is DISABLED). This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it. + /// The minimum number of vCPUs that a compute environment should maintain (even if the compute environment is DISABLED). This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it. public var minvCpus: Swift.Int? /// The Amazon EC2 placement group to associate with your compute resources. If you intend to submit multi-node parallel jobs to your compute environment, you should consider creating a cluster placement group and associate it with your compute resources. This keeps your multi-node parallel job on a logical grouping of instances within a single Availability Zone with high network flow potential. For more information, see [Placement groups](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html) in the Amazon EC2 User Guide for Linux Instances. This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it. public var placementGroup: Swift.String? @@ -1404,7 +1404,7 @@ extension BatchClientTypes { public var allocationStrategy: BatchClientTypes.CRUpdateAllocationStrategy? /// The maximum percentage that a Spot Instance price can be when compared with the On-Demand price for that instance type before instances are launched. For example, if your maximum percentage is 20%, the Spot price must be less than 20% of the current On-Demand price for that Amazon EC2 instance. You always pay the lowest (market) price and never more than your maximum percentage. For most use cases, we recommend leaving this field empty. When updating a compute environment, changing the bid percentage requires an infrastructure update of the compute environment. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the Batch User Guide. This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it. public var bidPercentage: Swift.Int? - /// The desired number of Amazon EC2 vCPUS in the compute environment. Batch modifies this value between the minimum and maximum values based on job queue demand. This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it. Batch doesn't support changing the desired number of vCPUs of an existing compute environment. Don't specify this parameter for compute environments using Amazon EKS clusters. When you update the desiredvCpus setting, the value must be between the minvCpus and maxvCpus values. Additionally, the updated desiredvCpus value must be greater than or equal to the current desiredvCpus value. For more information, see [Troubleshooting Batch](https://docs.aws.amazon.com/batch/latest/userguide/troubleshooting.html#error-desired-vcpus-update) in the Batch User Guide. + /// The desired number of vCPUS in the compute environment. Batch modifies this value between the minimum and maximum values based on job queue demand. This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it. Batch doesn't support changing the desired number of vCPUs of an existing compute environment. Don't specify this parameter for compute environments using Amazon EKS clusters. When you update the desiredvCpus setting, the value must be between the minvCpus and maxvCpus values. Additionally, the updated desiredvCpus value must be greater than or equal to the current desiredvCpus value. For more information, see [Troubleshooting Batch](https://docs.aws.amazon.com/batch/latest/userguide/troubleshooting.html#error-desired-vcpus-update) in the Batch User Guide. public var desiredvCpus: Swift.Int? /// Provides information used to select Amazon Machine Images (AMIs) for EC2 instances in the compute environment. If Ec2Configuration isn't specified, the default is ECS_AL2. When updating a compute environment, changing this setting requires an infrastructure update of the compute environment. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the Batch User Guide. To remove the EC2 configuration and any custom AMI ID specified in imageIdOverride, set this value to an empty string. One or two values can be provided. This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it. public var ec2Configuration: [BatchClientTypes.Ec2Configuration]? @@ -1420,7 +1420,7 @@ extension BatchClientTypes { public var launchTemplate: BatchClientTypes.LaunchTemplateSpecification? /// The maximum number of Amazon EC2 vCPUs that an environment can reach. With both BEST_FIT_PROGRESSIVE and SPOT_CAPACITY_OPTIMIZED allocation strategies using On-Demand or Spot Instances, and the BEST_FIT strategy using Spot Instances, Batch might need to exceed maxvCpus to meet your capacity requirements. In this event, Batch never exceeds maxvCpus by more than a single instance. That is, no more than a single instance from among those specified in your compute environment. public var maxvCpus: Swift.Int? - /// The minimum number of Amazon EC2 vCPUs that an environment should maintain (even if the compute environment is DISABLED). This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it. + /// The minimum number of vCPUs that an environment should maintain (even if the compute environment is DISABLED). This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it. public var minvCpus: Swift.Int? /// The Amazon EC2 placement group to associate with your compute resources. If you intend to submit multi-node parallel jobs to your compute environment, you should consider creating a cluster placement group and associate it with your compute resources. This keeps your multi-node parallel job on a logical grouping of instances within a single Availability Zone with high network flow potential. For more information, see [Placement groups](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html) in the Amazon EC2 User Guide for Linux Instances. When updating a compute environment, changing the placement group requires an infrastructure update of the compute environment. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the Batch User Guide. This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it. public var placementGroup: Swift.String? @@ -1500,6 +1500,7 @@ extension BatchClientTypes.ContainerDetail: Swift.Codable { case readonlyRootFilesystem case reason case resourceRequirements + case runtimePlatform case secrets case taskArn case ulimits @@ -1588,6 +1589,9 @@ extension BatchClientTypes.ContainerDetail: Swift.Codable { try resourceRequirementsContainer.encode(resourcerequirement0) } } + if let runtimePlatform = self.runtimePlatform { + try encodeContainer.encode(runtimePlatform, forKey: .runtimePlatform) + } if let secrets = secrets { var secretsContainer = encodeContainer.nestedUnkeyedContainer(forKey: .secrets) for secret0 in secrets { @@ -1745,6 +1749,8 @@ extension BatchClientTypes.ContainerDetail: Swift.Codable { fargatePlatformConfiguration = fargatePlatformConfigurationDecoded let ephemeralStorageDecoded = try containerValues.decodeIfPresent(BatchClientTypes.EphemeralStorage.self, forKey: .ephemeralStorage) ephemeralStorage = ephemeralStorageDecoded + let runtimePlatformDecoded = try containerValues.decodeIfPresent(BatchClientTypes.RuntimePlatform.self, forKey: .runtimePlatform) + runtimePlatform = runtimePlatformDecoded } } @@ -1793,6 +1799,8 @@ extension BatchClientTypes { public var reason: Swift.String? /// The type and amount of resources to assign to a container. The supported resources include GPU, MEMORY, and VCPU. public var resourceRequirements: [BatchClientTypes.ResourceRequirement]? + /// An object that represents the compute environment architecture for Batch jobs on Fargate. + public var runtimePlatform: BatchClientTypes.RuntimePlatform? /// The secrets to pass to the container. For more information, see [Specifying sensitive data](https://docs.aws.amazon.com/batch/latest/userguide/specifying-sensitive-data.html) in the Batch User Guide. public var secrets: [BatchClientTypes.Secret]? /// The Amazon Resource Name (ARN) of the Amazon ECS task that's associated with the container job. Each container attempt receives a task ARN when they reach the STARTING status. @@ -1828,6 +1836,7 @@ extension BatchClientTypes { readonlyRootFilesystem: Swift.Bool? = nil, reason: Swift.String? = nil, resourceRequirements: [BatchClientTypes.ResourceRequirement]? = nil, + runtimePlatform: BatchClientTypes.RuntimePlatform? = nil, secrets: [BatchClientTypes.Secret]? = nil, taskArn: Swift.String? = nil, ulimits: [BatchClientTypes.Ulimit]? = nil, @@ -1857,6 +1866,7 @@ extension BatchClientTypes { self.readonlyRootFilesystem = readonlyRootFilesystem self.reason = reason self.resourceRequirements = resourceRequirements + self.runtimePlatform = runtimePlatform self.secrets = secrets self.taskArn = taskArn self.ulimits = ulimits @@ -1954,9 +1964,9 @@ extension BatchClientTypes.ContainerOverrides: Swift.Codable { } extension BatchClientTypes { - /// The overrides that should be sent to a container. + /// The overrides that should be sent to a container. For information about using Batch overrides when you connect event sources to targets, see [BatchContainerOverrides](https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_BatchContainerOverrides.html). public struct ContainerOverrides: Swift.Equatable { - /// The command to send to the container that overrides the default command from the Docker image or the job definition. + /// The command to send to the container that overrides the default command from the Docker image or the job definition. This parameter can't contain an empty string. public var command: [Swift.String]? /// The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the job definition. Environment variables cannot start with "AWS_BATCH". This naming convention is reserved for variables that Batch sets. public var environment: [BatchClientTypes.KeyValuePair]? @@ -2009,6 +2019,7 @@ extension BatchClientTypes.ContainerProperties: Swift.Codable { case privileged case readonlyRootFilesystem case resourceRequirements + case runtimePlatform case secrets case ulimits case user @@ -2078,6 +2089,9 @@ extension BatchClientTypes.ContainerProperties: Swift.Codable { try resourceRequirementsContainer.encode(resourcerequirement0) } } + if let runtimePlatform = self.runtimePlatform { + try encodeContainer.encode(runtimePlatform, forKey: .runtimePlatform) + } if let secrets = secrets { var secretsContainer = encodeContainer.nestedUnkeyedContainer(forKey: .secrets) for secret0 in secrets { @@ -2211,6 +2225,8 @@ extension BatchClientTypes.ContainerProperties: Swift.Codable { fargatePlatformConfiguration = fargatePlatformConfigurationDecoded let ephemeralStorageDecoded = try containerValues.decodeIfPresent(BatchClientTypes.EphemeralStorage.self, forKey: .ephemeralStorage) ephemeralStorage = ephemeralStorageDecoded + let runtimePlatformDecoded = try containerValues.decodeIfPresent(BatchClientTypes.RuntimePlatform.self, forKey: .runtimePlatform) + runtimePlatform = runtimePlatformDecoded } } @@ -2260,6 +2276,8 @@ extension BatchClientTypes { public var readonlyRootFilesystem: Swift.Bool? /// The type and amount of resources to assign to a container. The supported resources include GPU, MEMORY, and VCPU. public var resourceRequirements: [BatchClientTypes.ResourceRequirement]? + /// An object that represents the compute environment architecture for Batch jobs on Fargate. + public var runtimePlatform: BatchClientTypes.RuntimePlatform? /// The secrets for the container. For more information, see [Specifying sensitive data](https://docs.aws.amazon.com/batch/latest/userguide/specifying-sensitive-data.html) in the Batch User Guide. public var secrets: [BatchClientTypes.Secret]? /// A list of ulimits to set in the container. This parameter maps to Ulimits in the [Create a container](https://docs.docker.com/engine/api/v1.23/#create-a-container) section of the [Docker Remote API](https://docs.docker.com/engine/api/v1.23/) and the --ulimit option to [docker run](https://docs.docker.com/engine/reference/run/). This parameter isn't applicable to jobs that are running on Fargate resources and shouldn't be provided. @@ -2289,6 +2307,7 @@ extension BatchClientTypes { privileged: Swift.Bool? = nil, readonlyRootFilesystem: Swift.Bool? = nil, resourceRequirements: [BatchClientTypes.ResourceRequirement]? = nil, + runtimePlatform: BatchClientTypes.RuntimePlatform? = nil, secrets: [BatchClientTypes.Secret]? = nil, ulimits: [BatchClientTypes.Ulimit]? = nil, user: Swift.String? = nil, @@ -2312,6 +2331,7 @@ extension BatchClientTypes { self.privileged = privileged self.readonlyRootFilesystem = readonlyRootFilesystem self.resourceRequirements = resourceRequirements + self.runtimePlatform = runtimePlatform self.secrets = secrets self.ulimits = ulimits self.user = user @@ -9015,6 +9035,51 @@ extension BatchClientTypes { } +extension BatchClientTypes.RuntimePlatform: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case cpuArchitecture + case operatingSystemFamily + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let cpuArchitecture = self.cpuArchitecture { + try encodeContainer.encode(cpuArchitecture, forKey: .cpuArchitecture) + } + if let operatingSystemFamily = self.operatingSystemFamily { + try encodeContainer.encode(operatingSystemFamily, forKey: .operatingSystemFamily) + } + } + + public init(from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let operatingSystemFamilyDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .operatingSystemFamily) + operatingSystemFamily = operatingSystemFamilyDecoded + let cpuArchitectureDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .cpuArchitecture) + cpuArchitecture = cpuArchitectureDecoded + } +} + +extension BatchClientTypes { + /// An object that represents the compute environment architecture for Batch jobs on Fargate. + public struct RuntimePlatform: Swift.Equatable { + /// The vCPU architecture. The default value is X86_64. Valid values are X86_64 and ARM64. This parameter must be set to X86_64 for Windows containers. + public var cpuArchitecture: Swift.String? + /// The operating system for the compute environment. Valid values are: LINUX (default), WINDOWS_SERVER_2019_CORE, WINDOWS_SERVER_2019_FULL, WINDOWS_SERVER_2022_CORE, and WINDOWS_SERVER_2022_FULL. The following parameters can’t be set for Windows containers: linuxParameters, privileged, user, ulimits, readonlyRootFilesystem, and efsVolumeConfiguration. The Batch Scheduler checks before registering a task definition with Fargate. If the job requires a Windows container and the first compute environment is LINUX, the compute environment is skipped and the next is checked until a Windows-based compute environment is found. Fargate Spot is not supported for Windows-based containers on Fargate. A job queue will be blocked if a Fargate Windows job is submitted to a job queue with only Fargate Spot compute environments. However, you can attach both FARGATE and FARGATE_SPOT compute environments to the same job queue. + public var operatingSystemFamily: Swift.String? + + public init( + cpuArchitecture: Swift.String? = nil, + operatingSystemFamily: Swift.String? = nil + ) + { + self.cpuArchitecture = cpuArchitecture + self.operatingSystemFamily = operatingSystemFamily + } + } + +} + extension BatchClientTypes.SchedulingPolicyDetail: Swift.Codable { enum CodingKeys: Swift.String, Swift.CodingKey { case arn @@ -9398,7 +9463,7 @@ public struct SubmitJobInput: Swift.Equatable { public var retryStrategy: BatchClientTypes.RetryStrategy? /// The scheduling priority for the job. This only affects jobs in job queues with a fair share policy. Jobs with a higher scheduling priority are scheduled before jobs with a lower scheduling priority. This overrides any scheduling priority in the job definition. The minimum supported value is 0 and the maximum supported value is 9999. public var schedulingPriorityOverride: Swift.Int? - /// The share identifier for the job. If the job queue doesn't have a scheduling policy, then this parameter must not be specified. If the job queue has a scheduling policy, then this parameter must be specified. + /// The share identifier for the job. Don't specify this parameter if the job queue doesn't have a scheduling policy. If the job queue has a scheduling policy, then this parameter must be specified. This string is limited to 255 alphanumeric characters, and can be followed by an asterisk (*). public var shareIdentifier: Swift.String? /// The tags that you apply to the job request to help you categorize and organize your resources. Each tag consists of a key and an optional value. For more information, see [Tagging Amazon Web Services Resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) in Amazon Web Services General Reference. public var tags: [Swift.String:Swift.String]? diff --git a/Sources/Services/AWSCloudWatchLogs/CloudWatchLogsClient.swift b/Sources/Services/AWSCloudWatchLogs/CloudWatchLogsClient.swift index f328920d790..70bd4ce3007 100644 --- a/Sources/Services/AWSCloudWatchLogs/CloudWatchLogsClient.swift +++ b/Sources/Services/AWSCloudWatchLogs/CloudWatchLogsClient.swift @@ -67,7 +67,14 @@ public struct CloudWatchLogsClientLogHandlerFactory: ClientRuntime.SDKLogHandler } extension CloudWatchLogsClient: CloudWatchLogsClientProtocol { - /// Associates the specified KMS key with the specified log group. Associating a KMS key with a log group overrides any existing associations between the log group and a KMS key. After a KMS key is associated with a log group, all newly ingested data for the log group is encrypted using the KMS key. This association is stored as long as the data encrypted with the KMS keyis still within CloudWatch Logs. This enables CloudWatch Logs to decrypt this data whenever it is requested. CloudWatch Logs supports only symmetric KMS keys. Do not use an associate an asymmetric KMS key with your log group. For more information, see [Using Symmetric and Asymmetric Keys](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html). It can take up to 5 minutes for this operation to take effect. If you attempt to associate a KMS key with a log group but the KMS key does not exist or the KMS key is disabled, you receive an InvalidParameterException error. + /// Associates the specified KMS key with either one log group in the account, or with all stored CloudWatch Logs query insights results in the account. When you use AssociateKmsKey, you specify either the logGroupName parameter or the resourceIdentifier parameter. You can't specify both of those parameters in the same operation. + /// + /// * Specify the logGroupName parameter to cause all log events stored in the log group to be encrypted with that key. Only the log events ingested after the key is associated are encrypted with that key. Associating a KMS key with a log group overrides any existing associations between the log group and a KMS key. After a KMS key is associated with a log group, all newly ingested data for the log group is encrypted using the KMS key. This association is stored as long as the data encrypted with the KMS key is still within CloudWatch Logs. This enables CloudWatch Logs to decrypt this data whenever it is requested. Associating a key with a log group does not cause the results of queries of that log group to be encrypted with that key. To have query results encrypted with a KMS key, you must use an AssociateKmsKey operation with the resourceIdentifier parameter that specifies a query-result resource. + /// + /// * Specify the resourceIdentifier parameter with a query-result resource, to use that key to encrypt the stored results of all future [StartQuery](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_StartQuery.html) operations in the account. The response from a [GetQueryResults](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_GetQueryResults.html) operation will still return the query results in plain text. Even if you have not associated a key with your query results, the query results are encrypted when stored, using the default CloudWatch Logs method. If you run a query from a monitoring account that queries logs in a source account, the query results key from the monitoring account, if any, is used. + /// + /// + /// If you delete the key that is used to encrypt log events or log group query results, then all the associated stored log events or query results that were encrypted with that key will be unencryptable and unusable. CloudWatch Logs supports only symmetric KMS keys. Do not use an associate an asymmetric KMS key with your log group or query results. For more information, see [Using Symmetric and Asymmetric Keys](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html). It can take up to 5 minutes for this operation to take effect. If you attempt to associate a KMS key with a log group but the KMS key does not exist or the KMS key is disabled, you receive an InvalidParameterException error. public func associateKmsKey(input: AssociateKmsKeyInput) async throws -> AssociateKmsKeyOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -1007,7 +1014,14 @@ extension CloudWatchLogsClient: CloudWatchLogsClientProtocol { return result } - /// Disassociates the associated KMS key from the specified log group. After the KMS key is disassociated from the log group, CloudWatch Logs stops encrypting newly ingested data for the log group. All previously ingested data remains encrypted, and CloudWatch Logs requires permissions for the KMS key whenever the encrypted data is requested. Note that it can take up to 5 minutes for this operation to take effect. + /// Disassociates the specified KMS key from the specified log group or from all CloudWatch Logs Insights query results in the account. When you use DisassociateKmsKey, you specify either the logGroupName parameter or the resourceIdentifier parameter. You can't specify both of those parameters in the same operation. + /// + /// * Specify the logGroupName parameter to stop using the KMS key to encrypt future log events ingested and stored in the log group. Instead, they will be encrypted with the default CloudWatch Logs method. The log events that were ingested while the key was associated with the log group are still encrypted with that key. Therefore, CloudWatch Logs will need permissions for the key whenever that data is accessed. + /// + /// * Specify the resourceIdentifier parameter with the query-result resource to stop using the KMS key to encrypt the results of all future [StartQuery](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_StartQuery.html) operations in the account. They will instead be encrypted with the default CloudWatch Logs method. The results from queries that ran while the key was associated with the account are still encrypted with that key. Therefore, CloudWatch Logs will need permissions for the key whenever that data is accessed. + /// + /// + /// It can take up to 5 minutes for this operation to take effect. public func disassociateKmsKey(input: DisassociateKmsKeyInput) async throws -> DisassociateKmsKeyOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -1697,7 +1711,7 @@ extension CloudWatchLogsClient: CloudWatchLogsClientProtocol { /// /// * An Amazon Kinesis data stream belonging to the same account as the subscription filter, for same-account delivery. /// - /// * A logical destination that belongs to a different account, for cross-account delivery. + /// * A logical destination created with [PutDestination](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDestination.html) that belongs to a different account, for cross-account delivery. We currently support Kinesis Data Streams and Kinesis Data Firehose as logical destinations. /// /// * An Amazon Kinesis Data Firehose delivery stream that belongs to the same account as the subscription filter, for same-account delivery. /// @@ -1741,7 +1755,7 @@ extension CloudWatchLogsClient: CloudWatchLogsClientProtocol { return result } - /// Schedules a query of a log group using CloudWatch Logs Insights. You specify the log group and time range to query and the query string to use. For more information, see [CloudWatch Logs Insights Query Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html). Queries time out after 60 minutes of runtime. If your queries are timing out, reduce the time range being searched or partition your query into a number of queries. If you are using CloudWatch cross-account observability, you can use this operation in a monitoring account to start a query in a linked source account. For more information, see [CloudWatch cross-account observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html). For a cross-account StartQuery operation, the query definition must be defined in the monitoring account. You can have up to 30 concurrent CloudWatch Logs insights queries, including queries that have been added to dashboards. + /// Schedules a query of a log group using CloudWatch Logs Insights. You specify the log group and time range to query and the query string to use. For more information, see [CloudWatch Logs Insights Query Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html). After you run a query using StartQuery, the query results are stored by CloudWatch Logs. You can use [GetQueryResults](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_GetQueryResults.html) to retrieve the results of a query, using the queryId that StartQuery returns. If you have associated a KMS key with the query results in this account, then [StartQuery](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_StartQuery.html) uses that key to encrypt the results when it stores them. If no key is associated with query results, the query results are encrypted with the default CloudWatch Logs encryption method. Queries time out after 60 minutes of runtime. If your queries are timing out, reduce the time range being searched or partition your query into a number of queries. If you are using CloudWatch cross-account observability, you can use this operation in a monitoring account to start a query in a linked source account. For more information, see [CloudWatch cross-account observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html). For a cross-account StartQuery operation, the query definition must be defined in the monitoring account. You can have up to 30 concurrent CloudWatch Logs insights queries, including queries that have been added to dashboards. public func startQuery(input: StartQueryInput) async throws -> StartQueryOutputResponse { let context = ClientRuntime.HttpContextBuilder() diff --git a/Sources/Services/AWSCloudWatchLogs/CloudWatchLogsClientProtocol.swift b/Sources/Services/AWSCloudWatchLogs/CloudWatchLogsClientProtocol.swift index 5eaf054e7c4..7a672e3e519 100644 --- a/Sources/Services/AWSCloudWatchLogs/CloudWatchLogsClientProtocol.swift +++ b/Sources/Services/AWSCloudWatchLogs/CloudWatchLogsClientProtocol.swift @@ -10,7 +10,14 @@ import ClientRuntime /// /// * Archive log data: You can use CloudWatch Logs to store your log data in highly durable storage. You can change the log retention setting so that any log events earlier than this setting are automatically deleted. The CloudWatch Logs agent helps to quickly send both rotated and non-rotated log data off of a host and into the log service. You can then access the raw log data when you need it. public protocol CloudWatchLogsClientProtocol { - /// Associates the specified KMS key with the specified log group. Associating a KMS key with a log group overrides any existing associations between the log group and a KMS key. After a KMS key is associated with a log group, all newly ingested data for the log group is encrypted using the KMS key. This association is stored as long as the data encrypted with the KMS keyis still within CloudWatch Logs. This enables CloudWatch Logs to decrypt this data whenever it is requested. CloudWatch Logs supports only symmetric KMS keys. Do not use an associate an asymmetric KMS key with your log group. For more information, see [Using Symmetric and Asymmetric Keys](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html). It can take up to 5 minutes for this operation to take effect. If you attempt to associate a KMS key with a log group but the KMS key does not exist or the KMS key is disabled, you receive an InvalidParameterException error. + /// Associates the specified KMS key with either one log group in the account, or with all stored CloudWatch Logs query insights results in the account. When you use AssociateKmsKey, you specify either the logGroupName parameter or the resourceIdentifier parameter. You can't specify both of those parameters in the same operation. + /// + /// * Specify the logGroupName parameter to cause all log events stored in the log group to be encrypted with that key. Only the log events ingested after the key is associated are encrypted with that key. Associating a KMS key with a log group overrides any existing associations between the log group and a KMS key. After a KMS key is associated with a log group, all newly ingested data for the log group is encrypted using the KMS key. This association is stored as long as the data encrypted with the KMS key is still within CloudWatch Logs. This enables CloudWatch Logs to decrypt this data whenever it is requested. Associating a key with a log group does not cause the results of queries of that log group to be encrypted with that key. To have query results encrypted with a KMS key, you must use an AssociateKmsKey operation with the resourceIdentifier parameter that specifies a query-result resource. + /// + /// * Specify the resourceIdentifier parameter with a query-result resource, to use that key to encrypt the stored results of all future [StartQuery](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_StartQuery.html) operations in the account. The response from a [GetQueryResults](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_GetQueryResults.html) operation will still return the query results in plain text. Even if you have not associated a key with your query results, the query results are encrypted when stored, using the default CloudWatch Logs method. If you run a query from a monitoring account that queries logs in a source account, the query results key from the monitoring account, if any, is used. + /// + /// + /// If you delete the key that is used to encrypt log events or log group query results, then all the associated stored log events or query results that were encrypted with that key will be unencryptable and unusable. CloudWatch Logs supports only symmetric KMS keys. Do not use an associate an asymmetric KMS key with your log group or query results. For more information, see [Using Symmetric and Asymmetric Keys](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html). It can take up to 5 minutes for this operation to take effect. If you attempt to associate a KMS key with a log group but the KMS key does not exist or the KMS key is disabled, you receive an InvalidParameterException error. func associateKmsKey(input: AssociateKmsKeyInput) async throws -> AssociateKmsKeyOutputResponse /// Cancels the specified export task. The task must be in the PENDING or RUNNING state. func cancelExportTask(input: CancelExportTaskInput) async throws -> CancelExportTaskOutputResponse @@ -75,7 +82,14 @@ public protocol CloudWatchLogsClientProtocol { func describeResourcePolicies(input: DescribeResourcePoliciesInput) async throws -> DescribeResourcePoliciesOutputResponse /// Lists the subscription filters for the specified log group. You can list all the subscription filters or filter the results by prefix. The results are ASCII-sorted by filter name. func describeSubscriptionFilters(input: DescribeSubscriptionFiltersInput) async throws -> DescribeSubscriptionFiltersOutputResponse - /// Disassociates the associated KMS key from the specified log group. After the KMS key is disassociated from the log group, CloudWatch Logs stops encrypting newly ingested data for the log group. All previously ingested data remains encrypted, and CloudWatch Logs requires permissions for the KMS key whenever the encrypted data is requested. Note that it can take up to 5 minutes for this operation to take effect. + /// Disassociates the specified KMS key from the specified log group or from all CloudWatch Logs Insights query results in the account. When you use DisassociateKmsKey, you specify either the logGroupName parameter or the resourceIdentifier parameter. You can't specify both of those parameters in the same operation. + /// + /// * Specify the logGroupName parameter to stop using the KMS key to encrypt future log events ingested and stored in the log group. Instead, they will be encrypted with the default CloudWatch Logs method. The log events that were ingested while the key was associated with the log group are still encrypted with that key. Therefore, CloudWatch Logs will need permissions for the key whenever that data is accessed. + /// + /// * Specify the resourceIdentifier parameter with the query-result resource to stop using the KMS key to encrypt the results of all future [StartQuery](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_StartQuery.html) operations in the account. They will instead be encrypted with the default CloudWatch Logs method. The results from queries that ran while the key was associated with the account are still encrypted with that key. Therefore, CloudWatch Logs will need permissions for the key whenever that data is accessed. + /// + /// + /// It can take up to 5 minutes for this operation to take effect. func disassociateKmsKey(input: DisassociateKmsKeyInput) async throws -> DisassociateKmsKeyOutputResponse /// Lists log events from the specified log group. You can list all the log events or filter the results using a filter pattern, a time range, and the name of the log stream. You must have the logs:FilterLogEvents permission to perform this operation. You can specify the log group to search by using either logGroupIdentifier or logGroupName. You must include one of these two parameters, but you can't include both. By default, this operation returns as many log events as can fit in 1 MB (up to 10,000 log events) or all the events found within the specified time range. If the results include a token, that means there are more log events available. You can get additional results by specifying the token in a subsequent call. This operation can return empty results while there are more log events available through the token. The returned log events are sorted by event timestamp, the timestamp when the event was ingested by CloudWatch Logs, and the ID of the PutLogEvents request. If you are using CloudWatch cross-account observability, you can use this operation in a monitoring account and view data from the linked source accounts. For more information, see [CloudWatch cross-account observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html). func filterLogEvents(input: FilterLogEventsInput) async throws -> FilterLogEventsOutputResponse @@ -135,7 +149,7 @@ public protocol CloudWatchLogsClientProtocol { /// /// * An Amazon Kinesis data stream belonging to the same account as the subscription filter, for same-account delivery. /// - /// * A logical destination that belongs to a different account, for cross-account delivery. + /// * A logical destination created with [PutDestination](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDestination.html) that belongs to a different account, for cross-account delivery. We currently support Kinesis Data Streams and Kinesis Data Firehose as logical destinations. /// /// * An Amazon Kinesis Data Firehose delivery stream that belongs to the same account as the subscription filter, for same-account delivery. /// @@ -144,7 +158,7 @@ public protocol CloudWatchLogsClientProtocol { /// /// Each log group can have up to two subscription filters associated with it. If you are updating an existing filter, you must specify the correct name in filterName. To perform a PutSubscriptionFilter operation for any destination except a Lambda function, you must also have the iam:PassRole permission. func putSubscriptionFilter(input: PutSubscriptionFilterInput) async throws -> PutSubscriptionFilterOutputResponse - /// Schedules a query of a log group using CloudWatch Logs Insights. You specify the log group and time range to query and the query string to use. For more information, see [CloudWatch Logs Insights Query Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html). Queries time out after 60 minutes of runtime. If your queries are timing out, reduce the time range being searched or partition your query into a number of queries. If you are using CloudWatch cross-account observability, you can use this operation in a monitoring account to start a query in a linked source account. For more information, see [CloudWatch cross-account observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html). For a cross-account StartQuery operation, the query definition must be defined in the monitoring account. You can have up to 30 concurrent CloudWatch Logs insights queries, including queries that have been added to dashboards. + /// Schedules a query of a log group using CloudWatch Logs Insights. You specify the log group and time range to query and the query string to use. For more information, see [CloudWatch Logs Insights Query Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html). After you run a query using StartQuery, the query results are stored by CloudWatch Logs. You can use [GetQueryResults](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_GetQueryResults.html) to retrieve the results of a query, using the queryId that StartQuery returns. If you have associated a KMS key with the query results in this account, then [StartQuery](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_StartQuery.html) uses that key to encrypt the results when it stores them. If no key is associated with query results, the query results are encrypted with the default CloudWatch Logs encryption method. Queries time out after 60 minutes of runtime. If your queries are timing out, reduce the time range being searched or partition your query into a number of queries. If you are using CloudWatch cross-account observability, you can use this operation in a monitoring account to start a query in a linked source account. For more information, see [CloudWatch cross-account observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html). For a cross-account StartQuery operation, the query definition must be defined in the monitoring account. You can have up to 30 concurrent CloudWatch Logs insights queries, including queries that have been added to dashboards. func startQuery(input: StartQueryInput) async throws -> StartQueryOutputResponse /// Stops a CloudWatch Logs Insights query that is in progress. If the query has already ended, the operation returns an error indicating that the specified query is not running. func stopQuery(input: StopQueryInput) async throws -> StopQueryOutputResponse diff --git a/Sources/Services/AWSCloudWatchLogs/models/Models.swift b/Sources/Services/AWSCloudWatchLogs/models/Models.swift index 2b3c402ff7a..d1dc0687559 100644 --- a/Sources/Services/AWSCloudWatchLogs/models/Models.swift +++ b/Sources/Services/AWSCloudWatchLogs/models/Models.swift @@ -91,6 +91,7 @@ extension AssociateKmsKeyInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { case kmsKeyId case logGroupName + case resourceIdentifier } public func encode(to encoder: Swift.Encoder) throws { @@ -101,6 +102,9 @@ extension AssociateKmsKeyInput: Swift.Encodable { if let logGroupName = self.logGroupName { try encodeContainer.encode(logGroupName, forKey: .logGroupName) } + if let resourceIdentifier = self.resourceIdentifier { + try encodeContainer.encode(resourceIdentifier, forKey: .resourceIdentifier) + } } } @@ -114,29 +118,41 @@ public struct AssociateKmsKeyInput: Swift.Equatable { /// The Amazon Resource Name (ARN) of the KMS key to use when encrypting log data. This must be a symmetric KMS key. For more information, see [Amazon Resource Names](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-kms) and [Using Symmetric and Asymmetric Keys](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html). /// This member is required. public var kmsKeyId: Swift.String? - /// The name of the log group. - /// This member is required. + /// The name of the log group. In your AssociateKmsKey operation, you must specify either the resourceIdentifier parameter or the logGroup parameter, but you can't specify both. public var logGroupName: Swift.String? + /// Specifies the target for this operation. You must specify one of the following: + /// + /// * Specify the following ARN to have future [GetQueryResults](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_GetQueryResults.html) operations in this account encrypt the results with the specified KMS key. Replace REGION and ACCOUNT_ID with your Region and account ID. arn:aws:logs:REGION:ACCOUNT_ID:query-result:* + /// + /// * Specify the ARN of a log group to have CloudWatch Logs use the KMS key to encrypt log events that are ingested and stored by that log group. The log group ARN must be in the following format. Replace REGION and ACCOUNT_ID with your Region and account ID. arn:aws:logs:REGION:ACCOUNT_ID:log-group:LOG_GROUP_NAME + /// + /// + /// In your AssociateKmsKey operation, you must specify either the resourceIdentifier parameter or the logGroup parameter, but you can't specify both. + public var resourceIdentifier: Swift.String? public init( kmsKeyId: Swift.String? = nil, - logGroupName: Swift.String? = nil + logGroupName: Swift.String? = nil, + resourceIdentifier: Swift.String? = nil ) { self.kmsKeyId = kmsKeyId self.logGroupName = logGroupName + self.resourceIdentifier = resourceIdentifier } } struct AssociateKmsKeyInputBody: Swift.Equatable { let logGroupName: Swift.String? let kmsKeyId: Swift.String? + let resourceIdentifier: Swift.String? } extension AssociateKmsKeyInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { case kmsKeyId case logGroupName + case resourceIdentifier } public init(from decoder: Swift.Decoder) throws { @@ -145,6 +161,8 @@ extension AssociateKmsKeyInputBody: Swift.Decodable { logGroupName = logGroupNameDecoded let kmsKeyIdDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .kmsKeyId) kmsKeyId = kmsKeyIdDecoded + let resourceIdentifierDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .resourceIdentifier) + resourceIdentifier = resourceIdentifierDecoded } } @@ -3192,6 +3210,7 @@ extension CloudWatchLogsClientTypes { extension DisassociateKmsKeyInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { case logGroupName + case resourceIdentifier } public func encode(to encoder: Swift.Encoder) throws { @@ -3199,6 +3218,9 @@ extension DisassociateKmsKeyInput: Swift.Encodable { if let logGroupName = self.logGroupName { try encodeContainer.encode(logGroupName, forKey: .logGroupName) } + if let resourceIdentifier = self.resourceIdentifier { + try encodeContainer.encode(resourceIdentifier, forKey: .resourceIdentifier) + } } } @@ -3209,31 +3231,45 @@ extension DisassociateKmsKeyInput: ClientRuntime.URLPathProvider { } public struct DisassociateKmsKeyInput: Swift.Equatable { - /// The name of the log group. - /// This member is required. + /// The name of the log group. In your DisassociateKmsKey operation, you must specify either the resourceIdentifier parameter or the logGroup parameter, but you can't specify both. public var logGroupName: Swift.String? + /// Specifies the target for this operation. You must specify one of the following: + /// + /// * Specify the ARN of a log group to stop having CloudWatch Logs use the KMS key to encrypt log events that are ingested and stored by that log group. After you run this operation, CloudWatch Logs encrypts ingested log events with the default CloudWatch Logs method. The log group ARN must be in the following format. Replace REGION and ACCOUNT_ID with your Region and account ID. arn:aws:logs:REGION:ACCOUNT_ID:log-group:LOG_GROUP_NAME + /// + /// * Specify the following ARN to stop using this key to encrypt the results of future [StartQuery](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_StartQuery.html) operations in this account. Replace REGION and ACCOUNT_ID with your Region and account ID. arn:aws:logs:REGION:ACCOUNT_ID:query-result:* + /// + /// + /// In your DisssociateKmsKey operation, you must specify either the resourceIdentifier parameter or the logGroup parameter, but you can't specify both. + public var resourceIdentifier: Swift.String? public init( - logGroupName: Swift.String? = nil + logGroupName: Swift.String? = nil, + resourceIdentifier: Swift.String? = nil ) { self.logGroupName = logGroupName + self.resourceIdentifier = resourceIdentifier } } struct DisassociateKmsKeyInputBody: Swift.Equatable { let logGroupName: Swift.String? + let resourceIdentifier: Swift.String? } extension DisassociateKmsKeyInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { case logGroupName + case resourceIdentifier } public init(from decoder: Swift.Decoder) throws { let containerValues = try decoder.container(keyedBy: CodingKeys.self) let logGroupNameDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .logGroupName) logGroupName = logGroupNameDecoded + let resourceIdentifierDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .resourceIdentifier) + resourceIdentifier = resourceIdentifierDecoded } } @@ -4269,7 +4305,7 @@ public struct GetLogGroupFieldsInput: Swift.Equatable { public var logGroupIdentifier: Swift.String? /// The name of the log group to search. You must include either logGroupIdentifier or logGroupName, but not both. public var logGroupName: Swift.String? - /// The time to set as the center of the query. If you specify time, the 15 minutes before this time are queries. If you omit time, the 8 minutes before and 8 minutes after this time are searched. The time value is specified as epoch time, which is the number of seconds since January 1, 1970, 00:00:00 UTC. + /// The time to set as the center of the query. If you specify time, the 8 minutes before and 8 minutes after this time are searched. If you omit time, the most recent 15 minutes up to the current time are searched. The time value is specified as epoch time, which is the number of seconds since January 1, 1970, 00:00:00 UTC. public var time: Swift.Int? public init( @@ -4560,10 +4596,12 @@ extension GetQueryResultsOutputResponse: ClientRuntime.HttpResponseBinding { if let data = try await httpResponse.body.readData(), let responseDecoder = decoder { let output: GetQueryResultsOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.encryptionKey = output.encryptionKey self.results = output.results self.statistics = output.statistics self.status = output.status } else { + self.encryptionKey = nil self.results = nil self.statistics = nil self.status = nil @@ -4572,19 +4610,23 @@ extension GetQueryResultsOutputResponse: ClientRuntime.HttpResponseBinding { } public struct GetQueryResultsOutputResponse: Swift.Equatable { + /// If you associated an KMS key with the CloudWatch Logs Insights query results in this account, this field displays the ARN of the key that's used to encrypt the query results when [StartQuery](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_StartQuery.html) stores them. + public var encryptionKey: Swift.String? /// The log events that matched the query criteria during the most recent time it ran. The results value is an array of arrays. Each log event is one object in the top-level array. Each of these log event objects is an array of field/value pairs. public var results: [[CloudWatchLogsClientTypes.ResultField]]? - /// Includes the number of log events scanned by the query, the number of log events that matched the query criteria, and the total number of bytes in the log events that were scanned. These values reflect the full raw results of the query. + /// Includes the number of log events scanned by the query, the number of log events that matched the query criteria, and the total number of bytes in the scanned log events. These values reflect the full raw results of the query. public var statistics: CloudWatchLogsClientTypes.QueryStatistics? /// The status of the most recent running of the query. Possible values are Cancelled, Complete, Failed, Running, Scheduled, Timeout, and Unknown. Queries time out after 60 minutes of runtime. To avoid having your queries time out, reduce the time range being searched or partition your query into a number of queries. public var status: CloudWatchLogsClientTypes.QueryStatus? public init( + encryptionKey: Swift.String? = nil, results: [[CloudWatchLogsClientTypes.ResultField]]? = nil, statistics: CloudWatchLogsClientTypes.QueryStatistics? = nil, status: CloudWatchLogsClientTypes.QueryStatus? = nil ) { + self.encryptionKey = encryptionKey self.results = results self.statistics = statistics self.status = status @@ -4595,10 +4637,12 @@ struct GetQueryResultsOutputResponseBody: Swift.Equatable { let results: [[CloudWatchLogsClientTypes.ResultField]]? let statistics: CloudWatchLogsClientTypes.QueryStatistics? let status: CloudWatchLogsClientTypes.QueryStatus? + let encryptionKey: Swift.String? } extension GetQueryResultsOutputResponseBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case encryptionKey case results case statistics case status @@ -4630,6 +4674,8 @@ extension GetQueryResultsOutputResponseBody: Swift.Decodable { statistics = statisticsDecoded let statusDecoded = try containerValues.decodeIfPresent(CloudWatchLogsClientTypes.QueryStatus.self, forKey: .status) status = statusDecoded + let encryptionKeyDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .encryptionKey) + encryptionKey = encryptionKeyDecoded } } @@ -5975,7 +6021,7 @@ public struct PutAccountPolicyInput: Swift.Equatable { /// Currently the only valid value for this parameter is DATA_PROTECTION_POLICY. /// This member is required. public var policyType: CloudWatchLogsClientTypes.PolicyType? - /// Currently the only valid value for this parameter is GLOBAL, which specifies that the data protection policy applies to all log groups in the account. If you omit this parameter, the default of GLOBAL is used. + /// Currently the only valid value for this parameter is ALL, which specifies that the data protection policy applies to all log groups in the account. If you omit this parameter, the default of ALL is used. public var scope: CloudWatchLogsClientTypes.Scope? public init( @@ -8154,11 +8200,11 @@ public struct StartQueryInput: Swift.Equatable { public var endTime: Swift.Int? /// The maximum number of log events to return in the query. If the query string uses the fields command, only the specified fields and their values are returned. The default is 1000. public var limit: Swift.Int? - /// The list of log groups to query. You can include up to 50 log groups. You can specify them by the log group name or ARN. If a log group that you're querying is in a source account and you're using a monitoring account, you must specify the ARN of the log group here. The query definition must also be defined in the monitoring account. If you specify an ARN, the ARN can't end with an asterisk (*). A StartQuery operation must include exactly one of the following parameters: logGroupName, logGroupNames or logGroupIdentifiers. + /// The list of log groups to query. You can include up to 50 log groups. You can specify them by the log group name or ARN. If a log group that you're querying is in a source account and you're using a monitoring account, you must specify the ARN of the log group here. The query definition must also be defined in the monitoring account. If you specify an ARN, the ARN can't end with an asterisk (*). A StartQuery operation must include exactly one of the following parameters: logGroupName, logGroupNames, or logGroupIdentifiers. public var logGroupIdentifiers: [Swift.String]? - /// The log group on which to perform the query. A StartQuery operation must include exactly one of the following parameters: logGroupName, logGroupNames or logGroupIdentifiers. + /// The log group on which to perform the query. A StartQuery operation must include exactly one of the following parameters: logGroupName, logGroupNames, or logGroupIdentifiers. public var logGroupName: Swift.String? - /// The list of log groups to be queried. You can include up to 50 log groups. A StartQuery operation must include exactly one of the following parameters: logGroupName, logGroupNames or logGroupIdentifiers. + /// The list of log groups to be queried. You can include up to 50 log groups. A StartQuery operation must include exactly one of the following parameters: logGroupName, logGroupNames, or logGroupIdentifiers. public var logGroupNames: [Swift.String]? /// The query string to use. For more information, see [CloudWatch Logs Insights Query Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html). /// This member is required. diff --git a/Sources/Services/AWSCognitoIdentityProvider/models/Models.swift b/Sources/Services/AWSCognitoIdentityProvider/models/Models.swift index 9333335563d..f277c52a870 100644 --- a/Sources/Services/AWSCognitoIdentityProvider/models/Models.swift +++ b/Sources/Services/AWSCognitoIdentityProvider/models/Models.swift @@ -665,7 +665,7 @@ extension AdminCreateUserInput: Swift.Encodable { try desiredDeliveryMediumsContainer.encode(deliverymediumtype0.rawValue) } } - if forceAliasCreation != false { + if let forceAliasCreation = self.forceAliasCreation { try encodeContainer.encode(forceAliasCreation, forKey: .forceAliasCreation) } if let messageAction = self.messageAction { @@ -714,7 +714,7 @@ public struct AdminCreateUserInput: Swift.Equatable { /// Specify "EMAIL" if email will be used to send the welcome message. Specify "SMS" if the phone number will be used. The default value is "SMS". You can specify more than one value. public var desiredDeliveryMediums: [CognitoIdentityProviderClientTypes.DeliveryMediumType]? /// This parameter is used only if the phone_number_verified or email_verified attribute is set to True. Otherwise, it is ignored. If this parameter is set to True and the phone number or email address specified in the UserAttributes parameter already exists as an alias with a different user, the API call will migrate the alias from the previous user to the newly created user. The previous user will no longer be able to log in using that alias. If this parameter is set to False, the API throws an AliasExistsException error if the alias already exists. The default value is False. - public var forceAliasCreation: Swift.Bool + public var forceAliasCreation: Swift.Bool? /// Set to RESEND to resend the invitation message to a user that already exists and reset the expiration limit on the user's account. Set to SUPPRESS to suppress sending the message. You can specify only one value. public var messageAction: CognitoIdentityProviderClientTypes.MessageActionType? /// The user's temporary password. This password must conform to the password policy that you specified when you created the user pool. The temporary password is valid only once. To complete the Admin Create User flow, the user must enter the temporary password in the sign-in page, along with a new password to be used in all future sign-ins. This parameter isn't required. If you don't specify a value, Amazon Cognito generates one for you. The temporary password can only be used until the user account expiration limit that you specified when you created the user pool. To reset the account after that time limit, you must call AdminCreateUser again, specifying "RESEND" for the MessageAction parameter. @@ -737,7 +737,7 @@ public struct AdminCreateUserInput: Swift.Equatable { public init( clientMetadata: [Swift.String:Swift.String]? = nil, desiredDeliveryMediums: [CognitoIdentityProviderClientTypes.DeliveryMediumType]? = nil, - forceAliasCreation: Swift.Bool = false, + forceAliasCreation: Swift.Bool? = nil, messageAction: CognitoIdentityProviderClientTypes.MessageActionType? = nil, temporaryPassword: Swift.String? = nil, userAttributes: [CognitoIdentityProviderClientTypes.AttributeType]? = nil, @@ -764,7 +764,7 @@ struct AdminCreateUserInputBody: Swift.Equatable { let userAttributes: [CognitoIdentityProviderClientTypes.AttributeType]? let validationData: [CognitoIdentityProviderClientTypes.AttributeType]? let temporaryPassword: Swift.String? - let forceAliasCreation: Swift.Bool + let forceAliasCreation: Swift.Bool? let messageAction: CognitoIdentityProviderClientTypes.MessageActionType? let desiredDeliveryMediums: [CognitoIdentityProviderClientTypes.DeliveryMediumType]? let clientMetadata: [Swift.String:Swift.String]? @@ -813,7 +813,7 @@ extension AdminCreateUserInputBody: Swift.Decodable { validationData = validationDataDecoded0 let temporaryPasswordDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .temporaryPassword) temporaryPassword = temporaryPasswordDecoded - let forceAliasCreationDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .forceAliasCreation) ?? false + let forceAliasCreationDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .forceAliasCreation) forceAliasCreation = forceAliasCreationDecoded let messageActionDecoded = try containerValues.decodeIfPresent(CognitoIdentityProviderClientTypes.MessageActionType.self, forKey: .messageAction) messageAction = messageActionDecoded @@ -2125,6 +2125,11 @@ public enum AdminInitiateAuthOutputError: ClientRuntime.HttpResponseErrorBinding } } +extension AdminInitiateAuthOutputResponse: Swift.CustomDebugStringConvertible { + public var debugDescription: Swift.String { + "AdminInitiateAuthOutputResponse(authenticationResult: \(Swift.String(describing: authenticationResult)), challengeName: \(Swift.String(describing: challengeName)), challengeParameters: \(Swift.String(describing: challengeParameters)), session: \"CONTENT_REDACTED\")"} +} + extension AdminInitiateAuthOutputResponse: ClientRuntime.HttpResponseBinding { public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) async throws { if let data = try await httpResponse.body.readData(), @@ -3063,7 +3068,7 @@ public struct AdminResetUserPasswordOutputResponse: Swift.Equatable { extension AdminRespondToAuthChallengeInput: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "AdminRespondToAuthChallengeInput(analyticsMetadata: \(Swift.String(describing: analyticsMetadata)), challengeName: \(Swift.String(describing: challengeName)), challengeResponses: \(Swift.String(describing: challengeResponses)), clientMetadata: \(Swift.String(describing: clientMetadata)), contextData: \(Swift.String(describing: contextData)), session: \(Swift.String(describing: session)), userPoolId: \(Swift.String(describing: userPoolId)), clientId: \"CONTENT_REDACTED\")"} + "AdminRespondToAuthChallengeInput(analyticsMetadata: \(Swift.String(describing: analyticsMetadata)), challengeName: \(Swift.String(describing: challengeName)), clientMetadata: \(Swift.String(describing: clientMetadata)), contextData: \(Swift.String(describing: contextData)), userPoolId: \(Swift.String(describing: userPoolId)), challengeResponses: \"CONTENT_REDACTED\", clientId: \"CONTENT_REDACTED\", session: \"CONTENT_REDACTED\")"} } extension AdminRespondToAuthChallengeInput: Swift.Encodable { @@ -3293,6 +3298,11 @@ public enum AdminRespondToAuthChallengeOutputError: ClientRuntime.HttpResponseEr } } +extension AdminRespondToAuthChallengeOutputResponse: Swift.CustomDebugStringConvertible { + public var debugDescription: Swift.String { + "AdminRespondToAuthChallengeOutputResponse(authenticationResult: \(Swift.String(describing: authenticationResult)), challengeName: \(Swift.String(describing: challengeName)), challengeParameters: \(Swift.String(describing: challengeParameters)), session: \"CONTENT_REDACTED\")"} +} + extension AdminRespondToAuthChallengeOutputResponse: ClientRuntime.HttpResponseBinding { public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) async throws { if let data = try await httpResponse.body.readData(), @@ -3508,7 +3518,7 @@ extension AdminSetUserPasswordInput: Swift.Encodable { if let password = self.password { try encodeContainer.encode(password, forKey: .password) } - if permanent != false { + if let permanent = self.permanent { try encodeContainer.encode(permanent, forKey: .permanent) } if let userPoolId = self.userPoolId { @@ -3531,7 +3541,7 @@ public struct AdminSetUserPasswordInput: Swift.Equatable { /// This member is required. public var password: Swift.String? /// True if the password is permanent, False if it is temporary. - public var permanent: Swift.Bool + public var permanent: Swift.Bool? /// The user pool ID for the user pool where you want to set the user's password. /// This member is required. public var userPoolId: Swift.String? @@ -3541,7 +3551,7 @@ public struct AdminSetUserPasswordInput: Swift.Equatable { public init( password: Swift.String? = nil, - permanent: Swift.Bool = false, + permanent: Swift.Bool? = nil, userPoolId: Swift.String? = nil, username: Swift.String? = nil ) @@ -3557,7 +3567,7 @@ struct AdminSetUserPasswordInputBody: Swift.Equatable { let userPoolId: Swift.String? let username: Swift.String? let password: Swift.String? - let permanent: Swift.Bool + let permanent: Swift.Bool? } extension AdminSetUserPasswordInputBody: Swift.Decodable { @@ -3576,7 +3586,7 @@ extension AdminSetUserPasswordInputBody: Swift.Decodable { username = usernameDecoded let passwordDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .password) password = passwordDecoded - let permanentDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .permanent) ?? false + let permanentDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .permanent) permanent = permanentDecoded } } @@ -4453,7 +4463,7 @@ extension CognitoIdentityProviderClientTypes { extension AssociateSoftwareTokenInput: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "AssociateSoftwareTokenInput(session: \(Swift.String(describing: session)), accessToken: \"CONTENT_REDACTED\")"} + "AssociateSoftwareTokenInput(accessToken: \"CONTENT_REDACTED\", session: \"CONTENT_REDACTED\")"} } extension AssociateSoftwareTokenInput: Swift.Encodable { @@ -4534,7 +4544,7 @@ public enum AssociateSoftwareTokenOutputError: ClientRuntime.HttpResponseErrorBi extension AssociateSoftwareTokenOutputResponse: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "AssociateSoftwareTokenOutputResponse(session: \(Swift.String(describing: session)), secretCode: \"CONTENT_REDACTED\")"} + "AssociateSoftwareTokenOutputResponse(secretCode: \"CONTENT_REDACTED\", session: \"CONTENT_REDACTED\")"} } extension AssociateSoftwareTokenOutputResponse: ClientRuntime.HttpResponseBinding { @@ -5941,7 +5951,7 @@ extension ConfirmSignUpInput: Swift.Encodable { if let confirmationCode = self.confirmationCode { try encodeContainer.encode(confirmationCode, forKey: .confirmationCode) } - if forceAliasCreation != false { + if let forceAliasCreation = self.forceAliasCreation { try encodeContainer.encode(forceAliasCreation, forKey: .forceAliasCreation) } if let secretHash = self.secretHash { @@ -5981,7 +5991,7 @@ public struct ConfirmSignUpInput: Swift.Equatable { /// This member is required. public var confirmationCode: Swift.String? /// Boolean to be specified to force user confirmation irrespective of existing alias. By default set to False. If this parameter is set to True and the phone number/email used for sign up confirmation already exists as an alias with a different user, the API call will migrate the alias from the previous user to the newly created user being confirmed. If set to False, the API will throw an AliasExistsException error. - public var forceAliasCreation: Swift.Bool + public var forceAliasCreation: Swift.Bool? /// A keyed-hash message authentication code (HMAC) calculated using the secret key of a user pool client and username plus the client ID in the message. public var secretHash: Swift.String? /// Contextual data about your user session, such as the device fingerprint, IP address, or location. Amazon Cognito advanced security evaluates the risk of an authentication event based on the context that your app generates and passes to Amazon Cognito when it makes API requests. @@ -5995,7 +6005,7 @@ public struct ConfirmSignUpInput: Swift.Equatable { clientId: Swift.String? = nil, clientMetadata: [Swift.String:Swift.String]? = nil, confirmationCode: Swift.String? = nil, - forceAliasCreation: Swift.Bool = false, + forceAliasCreation: Swift.Bool? = nil, secretHash: Swift.String? = nil, userContextData: CognitoIdentityProviderClientTypes.UserContextDataType? = nil, username: Swift.String? = nil @@ -6017,7 +6027,7 @@ struct ConfirmSignUpInputBody: Swift.Equatable { let secretHash: Swift.String? let username: Swift.String? let confirmationCode: Swift.String? - let forceAliasCreation: Swift.Bool + let forceAliasCreation: Swift.Bool? let analyticsMetadata: CognitoIdentityProviderClientTypes.AnalyticsMetadataType? let userContextData: CognitoIdentityProviderClientTypes.UserContextDataType? let clientMetadata: [Swift.String:Swift.String]? @@ -6045,7 +6055,7 @@ extension ConfirmSignUpInputBody: Swift.Decodable { username = usernameDecoded let confirmationCodeDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .confirmationCode) confirmationCode = confirmationCodeDecoded - let forceAliasCreationDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .forceAliasCreation) ?? false + let forceAliasCreationDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .forceAliasCreation) forceAliasCreation = forceAliasCreationDecoded let analyticsMetadataDecoded = try containerValues.decodeIfPresent(CognitoIdentityProviderClientTypes.AnalyticsMetadataType.self, forKey: .analyticsMetadata) analyticsMetadata = analyticsMetadataDecoded @@ -6956,7 +6966,7 @@ extension CreateUserPoolClientInput: Swift.Encodable { try allowedOAuthFlowsContainer.encode(oauthflowtype0.rawValue) } } - if allowedOAuthFlowsUserPoolClient != false { + if let allowedOAuthFlowsUserPoolClient = self.allowedOAuthFlowsUserPoolClient { try encodeContainer.encode(allowedOAuthFlowsUserPoolClient, forKey: .allowedOAuthFlowsUserPoolClient) } if let allowedOAuthScopes = allowedOAuthScopes { @@ -6995,7 +7005,7 @@ extension CreateUserPoolClientInput: Swift.Encodable { try explicitAuthFlowsContainer.encode(explicitauthflowstype0.rawValue) } } - if generateSecret != false { + if let generateSecret = self.generateSecret { try encodeContainer.encode(generateSecret, forKey: .generateSecret) } if let idTokenValidity = self.idTokenValidity { @@ -7016,7 +7026,7 @@ extension CreateUserPoolClientInput: Swift.Encodable { try readAttributesContainer.encode(clientpermissiontype0) } } - if refreshTokenValidity != 0 { + if let refreshTokenValidity = self.refreshTokenValidity { try encodeContainer.encode(refreshTokenValidity, forKey: .refreshTokenValidity) } if let supportedIdentityProviders = supportedIdentityProviders { @@ -7053,7 +7063,7 @@ public struct CreateUserPoolClientInput: Swift.Equatable { /// The allowed OAuth flows. code Use a code grant flow, which provides an authorization code as the response. This code can be exchanged for access tokens with the /oauth2/token endpoint. implicit Issue the access token (and, optionally, ID token, based on scopes) directly to your user. client_credentials Issue the access token from the /oauth2/token endpoint directly to a non-person user using a combination of the client ID and client secret. public var allowedOAuthFlows: [CognitoIdentityProviderClientTypes.OAuthFlowType]? /// Set to true if the client is allowed to follow the OAuth protocol when interacting with Amazon Cognito user pools. - public var allowedOAuthFlowsUserPoolClient: Swift.Bool + public var allowedOAuthFlowsUserPoolClient: Swift.Bool? /// The allowed OAuth scopes. Possible values provided by OAuth are phone, email, openid, and profile. Possible values provided by Amazon Web Services are aws.cognito.signin.user.admin. Custom scopes created in Resource Servers are also supported. public var allowedOAuthScopes: [Swift.String]? /// The user pool analytics configuration for collecting metrics and sending them to your Amazon Pinpoint campaign. In Amazon Web Services Regions where Amazon Pinpoint isn't available, user pools only support sending events to Amazon Pinpoint projects in Amazon Web Services Region us-east-1. In Regions where Amazon Pinpoint is available, user pools support sending events to Amazon Pinpoint projects within that same Region. @@ -7105,7 +7115,7 @@ public struct CreateUserPoolClientInput: Swift.Equatable { /// In some environments, you will see the values ADMIN_NO_SRP_AUTH, CUSTOM_AUTH_FLOW_ONLY, or USER_PASSWORD_AUTH. You can't assign these legacy ExplicitAuthFlows values to user pool clients at the same time as values that begin with ALLOW_, like ALLOW_USER_SRP_AUTH. public var explicitAuthFlows: [CognitoIdentityProviderClientTypes.ExplicitAuthFlowsType]? /// Boolean to specify whether you want to generate a secret for the user pool client being created. - public var generateSecret: Swift.Bool + public var generateSecret: Swift.Bool? /// The ID token time limit. After this limit expires, your user can't use their ID token. To specify the time unit for IdTokenValidity as seconds, minutes, hours, or days, set a TokenValidityUnits value in your API request. For example, when you set IdTokenValidity as 10 and TokenValidityUnits as hours, your user can authenticate their session with their ID token for 10 hours. The default time unit for AccessTokenValidity in an API request is hours. Valid range is displayed below in seconds. If you don't specify otherwise in the configuration of your app client, your ID tokens are valid for one hour. public var idTokenValidity: Swift.Int? /// A list of allowed logout URLs for the IdPs. @@ -7119,7 +7129,7 @@ public struct CreateUserPoolClientInput: Swift.Equatable { /// The read attributes. public var readAttributes: [Swift.String]? /// The refresh token time limit. After this limit expires, your user can't use their refresh token. To specify the time unit for RefreshTokenValidity as seconds, minutes, hours, or days, set a TokenValidityUnits value in your API request. For example, when you set RefreshTokenValidity as 10 and TokenValidityUnits as days, your user can refresh their session and retrieve new access and ID tokens for 10 days. The default time unit for RefreshTokenValidity in an API request is days. You can't set RefreshTokenValidity to 0. If you do, Amazon Cognito overrides the value with the default value of 30 days. Valid range is displayed below in seconds. If you don't specify otherwise in the configuration of your app client, your refresh tokens are valid for 30 days. - public var refreshTokenValidity: Swift.Int + public var refreshTokenValidity: Swift.Int? /// A list of provider names for the identity providers (IdPs) that are supported on this client. The following are supported: COGNITO, Facebook, Google, SignInWithApple, and LoginWithAmazon. You can also specify the names that you configured for the SAML and OIDC IdPs in your user pool, for example MySAMLIdP or MyOIDCIdP. public var supportedIdentityProviders: [Swift.String]? /// The units in which the validity times are represented. The default unit for RefreshToken is days, and default for ID and access tokens are hours. @@ -7133,7 +7143,7 @@ public struct CreateUserPoolClientInput: Swift.Equatable { public init( accessTokenValidity: Swift.Int? = nil, allowedOAuthFlows: [CognitoIdentityProviderClientTypes.OAuthFlowType]? = nil, - allowedOAuthFlowsUserPoolClient: Swift.Bool = false, + allowedOAuthFlowsUserPoolClient: Swift.Bool? = nil, allowedOAuthScopes: [Swift.String]? = nil, analyticsConfiguration: CognitoIdentityProviderClientTypes.AnalyticsConfigurationType? = nil, authSessionValidity: Swift.Int? = nil, @@ -7143,12 +7153,12 @@ public struct CreateUserPoolClientInput: Swift.Equatable { enablePropagateAdditionalUserContextData: Swift.Bool? = nil, enableTokenRevocation: Swift.Bool? = nil, explicitAuthFlows: [CognitoIdentityProviderClientTypes.ExplicitAuthFlowsType]? = nil, - generateSecret: Swift.Bool = false, + generateSecret: Swift.Bool? = nil, idTokenValidity: Swift.Int? = nil, logoutURLs: [Swift.String]? = nil, preventUserExistenceErrors: CognitoIdentityProviderClientTypes.PreventUserExistenceErrorTypes? = nil, readAttributes: [Swift.String]? = nil, - refreshTokenValidity: Swift.Int = 0, + refreshTokenValidity: Swift.Int? = nil, supportedIdentityProviders: [Swift.String]? = nil, tokenValidityUnits: CognitoIdentityProviderClientTypes.TokenValidityUnitsType? = nil, userPoolId: Swift.String? = nil, @@ -7183,8 +7193,8 @@ public struct CreateUserPoolClientInput: Swift.Equatable { struct CreateUserPoolClientInputBody: Swift.Equatable { let userPoolId: Swift.String? let clientName: Swift.String? - let generateSecret: Swift.Bool - let refreshTokenValidity: Swift.Int + let generateSecret: Swift.Bool? + let refreshTokenValidity: Swift.Int? let accessTokenValidity: Swift.Int? let idTokenValidity: Swift.Int? let tokenValidityUnits: CognitoIdentityProviderClientTypes.TokenValidityUnitsType? @@ -7197,7 +7207,7 @@ struct CreateUserPoolClientInputBody: Swift.Equatable { let defaultRedirectURI: Swift.String? let allowedOAuthFlows: [CognitoIdentityProviderClientTypes.OAuthFlowType]? let allowedOAuthScopes: [Swift.String]? - let allowedOAuthFlowsUserPoolClient: Swift.Bool + let allowedOAuthFlowsUserPoolClient: Swift.Bool? let analyticsConfiguration: CognitoIdentityProviderClientTypes.AnalyticsConfigurationType? let preventUserExistenceErrors: CognitoIdentityProviderClientTypes.PreventUserExistenceErrorTypes? let enableTokenRevocation: Swift.Bool? @@ -7237,9 +7247,9 @@ extension CreateUserPoolClientInputBody: Swift.Decodable { userPoolId = userPoolIdDecoded let clientNameDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .clientName) clientName = clientNameDecoded - let generateSecretDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .generateSecret) ?? false + let generateSecretDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .generateSecret) generateSecret = generateSecretDecoded - let refreshTokenValidityDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .refreshTokenValidity) ?? 0 + let refreshTokenValidityDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .refreshTokenValidity) refreshTokenValidity = refreshTokenValidityDecoded let accessTokenValidityDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .accessTokenValidity) accessTokenValidity = accessTokenValidityDecoded @@ -7337,7 +7347,7 @@ extension CreateUserPoolClientInputBody: Swift.Decodable { } } allowedOAuthScopes = allowedOAuthScopesDecoded0 - let allowedOAuthFlowsUserPoolClientDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .allowedOAuthFlowsUserPoolClient) ?? false + let allowedOAuthFlowsUserPoolClientDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .allowedOAuthFlowsUserPoolClient) allowedOAuthFlowsUserPoolClient = allowedOAuthFlowsUserPoolClientDecoded let analyticsConfigurationDecoded = try containerValues.decodeIfPresent(CognitoIdentityProviderClientTypes.AnalyticsConfigurationType.self, forKey: .analyticsConfiguration) analyticsConfiguration = analyticsConfigurationDecoded @@ -13086,6 +13096,11 @@ public enum InitiateAuthOutputError: ClientRuntime.HttpResponseErrorBinding { } } +extension InitiateAuthOutputResponse: Swift.CustomDebugStringConvertible { + public var debugDescription: Swift.String { + "InitiateAuthOutputResponse(authenticationResult: \(Swift.String(describing: authenticationResult)), challengeName: \(Swift.String(describing: challengeName)), challengeParameters: \(Swift.String(describing: challengeParameters)), session: \"CONTENT_REDACTED\")"} +} + extension InitiateAuthOutputResponse: ClientRuntime.HttpResponseBinding { public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) async throws { if let data = try await httpResponse.body.readData(), @@ -14354,7 +14369,7 @@ extension ListResourceServersInput: Swift.Encodable { public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) - if maxResults != 0 { + if let maxResults = self.maxResults { try encodeContainer.encode(maxResults, forKey: .maxResults) } if let nextToken = self.nextToken { @@ -14374,7 +14389,7 @@ extension ListResourceServersInput: ClientRuntime.URLPathProvider { public struct ListResourceServersInput: Swift.Equatable { /// The maximum number of resource servers to return. - public var maxResults: Swift.Int + public var maxResults: Swift.Int? /// A pagination token. public var nextToken: Swift.String? /// The user pool ID for the user pool. @@ -14382,7 +14397,7 @@ public struct ListResourceServersInput: Swift.Equatable { public var userPoolId: Swift.String? public init( - maxResults: Swift.Int = 0, + maxResults: Swift.Int? = nil, nextToken: Swift.String? = nil, userPoolId: Swift.String? = nil ) @@ -14395,7 +14410,7 @@ public struct ListResourceServersInput: Swift.Equatable { struct ListResourceServersInputBody: Swift.Equatable { let userPoolId: Swift.String? - let maxResults: Swift.Int + let maxResults: Swift.Int? let nextToken: Swift.String? } @@ -14410,7 +14425,7 @@ extension ListResourceServersInputBody: Swift.Decodable { let containerValues = try decoder.container(keyedBy: CodingKeys.self) let userPoolIdDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .userPoolId) userPoolId = userPoolIdDecoded - let maxResultsDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .maxResults) ?? 0 + let maxResultsDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .maxResults) maxResults = maxResultsDecoded let nextTokenDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .nextToken) nextToken = nextTokenDecoded @@ -14613,7 +14628,7 @@ extension ListUserImportJobsInput: Swift.Encodable { public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) - if maxResults != 0 { + if let maxResults = self.maxResults { try encodeContainer.encode(maxResults, forKey: .maxResults) } if let paginationToken = self.paginationToken { @@ -14635,7 +14650,7 @@ extension ListUserImportJobsInput: ClientRuntime.URLPathProvider { public struct ListUserImportJobsInput: Swift.Equatable { /// The maximum number of import jobs you want the request to return. /// This member is required. - public var maxResults: Swift.Int + public var maxResults: Swift.Int? /// An identifier that was returned from the previous call to ListUserImportJobs, which can be used to return the next set of import jobs in the list. public var paginationToken: Swift.String? /// The user pool ID for the user pool that the users are being imported into. @@ -14643,7 +14658,7 @@ public struct ListUserImportJobsInput: Swift.Equatable { public var userPoolId: Swift.String? public init( - maxResults: Swift.Int = 0, + maxResults: Swift.Int? = nil, paginationToken: Swift.String? = nil, userPoolId: Swift.String? = nil ) @@ -14656,7 +14671,7 @@ public struct ListUserImportJobsInput: Swift.Equatable { struct ListUserImportJobsInputBody: Swift.Equatable { let userPoolId: Swift.String? - let maxResults: Swift.Int + let maxResults: Swift.Int? let paginationToken: Swift.String? } @@ -14671,7 +14686,7 @@ extension ListUserImportJobsInputBody: Swift.Decodable { let containerValues = try decoder.container(keyedBy: CodingKeys.self) let userPoolIdDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .userPoolId) userPoolId = userPoolIdDecoded - let maxResultsDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .maxResults) ?? 0 + let maxResultsDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .maxResults) maxResults = maxResultsDecoded let paginationTokenDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .paginationToken) paginationToken = paginationTokenDecoded @@ -14762,7 +14777,7 @@ extension ListUserPoolClientsInput: Swift.Encodable { public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) - if maxResults != 0 { + if let maxResults = self.maxResults { try encodeContainer.encode(maxResults, forKey: .maxResults) } if let nextToken = self.nextToken { @@ -14783,7 +14798,7 @@ extension ListUserPoolClientsInput: ClientRuntime.URLPathProvider { /// Represents the request to list the user pool clients. public struct ListUserPoolClientsInput: Swift.Equatable { /// The maximum number of results you want the request to return when listing the user pool clients. - public var maxResults: Swift.Int + public var maxResults: Swift.Int? /// An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. public var nextToken: Swift.String? /// The user pool ID for the user pool where you want to list user pool clients. @@ -14791,7 +14806,7 @@ public struct ListUserPoolClientsInput: Swift.Equatable { public var userPoolId: Swift.String? public init( - maxResults: Swift.Int = 0, + maxResults: Swift.Int? = nil, nextToken: Swift.String? = nil, userPoolId: Swift.String? = nil ) @@ -14804,7 +14819,7 @@ public struct ListUserPoolClientsInput: Swift.Equatable { struct ListUserPoolClientsInputBody: Swift.Equatable { let userPoolId: Swift.String? - let maxResults: Swift.Int + let maxResults: Swift.Int? let nextToken: Swift.String? } @@ -14819,7 +14834,7 @@ extension ListUserPoolClientsInputBody: Swift.Decodable { let containerValues = try decoder.container(keyedBy: CodingKeys.self) let userPoolIdDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .userPoolId) userPoolId = userPoolIdDecoded - let maxResultsDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .maxResults) ?? 0 + let maxResultsDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .maxResults) maxResults = maxResultsDecoded let nextTokenDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .nextToken) nextToken = nextTokenDecoded @@ -14909,7 +14924,7 @@ extension ListUserPoolsInput: Swift.Encodable { public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) - if maxResults != 0 { + if let maxResults = self.maxResults { try encodeContainer.encode(maxResults, forKey: .maxResults) } if let nextToken = self.nextToken { @@ -14928,12 +14943,12 @@ extension ListUserPoolsInput: ClientRuntime.URLPathProvider { public struct ListUserPoolsInput: Swift.Equatable { /// The maximum number of results you want the request to return when listing the user pools. /// This member is required. - public var maxResults: Swift.Int + public var maxResults: Swift.Int? /// An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list. public var nextToken: Swift.String? public init( - maxResults: Swift.Int = 0, + maxResults: Swift.Int? = nil, nextToken: Swift.String? = nil ) { @@ -14944,7 +14959,7 @@ public struct ListUserPoolsInput: Swift.Equatable { struct ListUserPoolsInputBody: Swift.Equatable { let nextToken: Swift.String? - let maxResults: Swift.Int + let maxResults: Swift.Int? } extension ListUserPoolsInputBody: Swift.Decodable { @@ -14957,7 +14972,7 @@ extension ListUserPoolsInputBody: Swift.Decodable { let containerValues = try decoder.container(keyedBy: CodingKeys.self) let nextTokenDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .nextToken) nextToken = nextTokenDecoded - let maxResultsDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .maxResults) ?? 0 + let maxResultsDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .maxResults) maxResults = maxResultsDecoded } } @@ -16734,7 +16749,7 @@ extension CognitoIdentityProviderClientTypes { extension RespondToAuthChallengeInput: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "RespondToAuthChallengeInput(analyticsMetadata: \(Swift.String(describing: analyticsMetadata)), challengeName: \(Swift.String(describing: challengeName)), challengeResponses: \(Swift.String(describing: challengeResponses)), clientMetadata: \(Swift.String(describing: clientMetadata)), session: \(Swift.String(describing: session)), userContextData: \(Swift.String(describing: userContextData)), clientId: \"CONTENT_REDACTED\")"} + "RespondToAuthChallengeInput(analyticsMetadata: \(Swift.String(describing: analyticsMetadata)), challengeName: \(Swift.String(describing: challengeName)), clientMetadata: \(Swift.String(describing: clientMetadata)), userContextData: \(Swift.String(describing: userContextData)), challengeResponses: \"CONTENT_REDACTED\", clientId: \"CONTENT_REDACTED\", session: \"CONTENT_REDACTED\")"} } extension RespondToAuthChallengeInput: Swift.Encodable { @@ -16934,6 +16949,11 @@ public enum RespondToAuthChallengeOutputError: ClientRuntime.HttpResponseErrorBi } } +extension RespondToAuthChallengeOutputResponse: Swift.CustomDebugStringConvertible { + public var debugDescription: Swift.String { + "RespondToAuthChallengeOutputResponse(authenticationResult: \(Swift.String(describing: authenticationResult)), challengeName: \(Swift.String(describing: challengeName)), challengeParameters: \(Swift.String(describing: challengeParameters)), session: \"CONTENT_REDACTED\")"} +} + extension RespondToAuthChallengeOutputResponse: ClientRuntime.HttpResponseBinding { public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) async throws { if let data = try await httpResponse.body.readData(), @@ -20869,7 +20889,7 @@ extension UpdateUserPoolClientInput: Swift.Encodable { try allowedOAuthFlowsContainer.encode(oauthflowtype0.rawValue) } } - if allowedOAuthFlowsUserPoolClient != false { + if let allowedOAuthFlowsUserPoolClient = self.allowedOAuthFlowsUserPoolClient { try encodeContainer.encode(allowedOAuthFlowsUserPoolClient, forKey: .allowedOAuthFlowsUserPoolClient) } if let allowedOAuthScopes = allowedOAuthScopes { @@ -20929,7 +20949,7 @@ extension UpdateUserPoolClientInput: Swift.Encodable { try readAttributesContainer.encode(clientpermissiontype0) } } - if refreshTokenValidity != 0 { + if let refreshTokenValidity = self.refreshTokenValidity { try encodeContainer.encode(refreshTokenValidity, forKey: .refreshTokenValidity) } if let supportedIdentityProviders = supportedIdentityProviders { @@ -20966,7 +20986,7 @@ public struct UpdateUserPoolClientInput: Swift.Equatable { /// The allowed OAuth flows. code Use a code grant flow, which provides an authorization code as the response. This code can be exchanged for access tokens with the /oauth2/token endpoint. implicit Issue the access token (and, optionally, ID token, based on scopes) directly to your user. client_credentials Issue the access token from the /oauth2/token endpoint directly to a non-person user using a combination of the client ID and client secret. public var allowedOAuthFlows: [CognitoIdentityProviderClientTypes.OAuthFlowType]? /// Set to true if the client is allowed to follow the OAuth protocol when interacting with Amazon Cognito user pools. - public var allowedOAuthFlowsUserPoolClient: Swift.Bool + public var allowedOAuthFlowsUserPoolClient: Swift.Bool? /// The allowed OAuth scopes. Possible values provided by OAuth are phone, email, openid, and profile. Possible values provided by Amazon Web Services are aws.cognito.signin.user.admin. Custom scopes created in Resource Servers are also supported. public var allowedOAuthScopes: [Swift.String]? /// The Amazon Pinpoint analytics configuration necessary to collect metrics for this user pool. In Amazon Web Services Regions where Amazon Pinpoint isn't available, user pools only support sending events to Amazon Pinpoint projects in us-east-1. In Regions where Amazon Pinpoint is available, user pools support sending events to Amazon Pinpoint projects within that same Region. @@ -21032,7 +21052,7 @@ public struct UpdateUserPoolClientInput: Swift.Equatable { /// The read-only attributes of the user pool. public var readAttributes: [Swift.String]? /// The refresh token time limit. After this limit expires, your user can't use their refresh token. To specify the time unit for RefreshTokenValidity as seconds, minutes, hours, or days, set a TokenValidityUnits value in your API request. For example, when you set RefreshTokenValidity as 10 and TokenValidityUnits as days, your user can refresh their session and retrieve new access and ID tokens for 10 days. The default time unit for RefreshTokenValidity in an API request is days. You can't set RefreshTokenValidity to 0. If you do, Amazon Cognito overrides the value with the default value of 30 days. Valid range is displayed below in seconds. If you don't specify otherwise in the configuration of your app client, your refresh tokens are valid for 30 days. - public var refreshTokenValidity: Swift.Int + public var refreshTokenValidity: Swift.Int? /// A list of provider names for the IdPs that this client supports. The following are supported: COGNITO, Facebook, Google, SignInWithApple, LoginWithAmazon, and the names of your own SAML and OIDC providers. public var supportedIdentityProviders: [Swift.String]? /// The units in which the validity times are represented. The default unit for RefreshToken is days, and the default for ID and access tokens is hours. @@ -21046,7 +21066,7 @@ public struct UpdateUserPoolClientInput: Swift.Equatable { public init( accessTokenValidity: Swift.Int? = nil, allowedOAuthFlows: [CognitoIdentityProviderClientTypes.OAuthFlowType]? = nil, - allowedOAuthFlowsUserPoolClient: Swift.Bool = false, + allowedOAuthFlowsUserPoolClient: Swift.Bool? = nil, allowedOAuthScopes: [Swift.String]? = nil, analyticsConfiguration: CognitoIdentityProviderClientTypes.AnalyticsConfigurationType? = nil, authSessionValidity: Swift.Int? = nil, @@ -21061,7 +21081,7 @@ public struct UpdateUserPoolClientInput: Swift.Equatable { logoutURLs: [Swift.String]? = nil, preventUserExistenceErrors: CognitoIdentityProviderClientTypes.PreventUserExistenceErrorTypes? = nil, readAttributes: [Swift.String]? = nil, - refreshTokenValidity: Swift.Int = 0, + refreshTokenValidity: Swift.Int? = nil, supportedIdentityProviders: [Swift.String]? = nil, tokenValidityUnits: CognitoIdentityProviderClientTypes.TokenValidityUnitsType? = nil, userPoolId: Swift.String? = nil, @@ -21097,7 +21117,7 @@ struct UpdateUserPoolClientInputBody: Swift.Equatable { let userPoolId: Swift.String? let clientId: Swift.String? let clientName: Swift.String? - let refreshTokenValidity: Swift.Int + let refreshTokenValidity: Swift.Int? let accessTokenValidity: Swift.Int? let idTokenValidity: Swift.Int? let tokenValidityUnits: CognitoIdentityProviderClientTypes.TokenValidityUnitsType? @@ -21110,7 +21130,7 @@ struct UpdateUserPoolClientInputBody: Swift.Equatable { let defaultRedirectURI: Swift.String? let allowedOAuthFlows: [CognitoIdentityProviderClientTypes.OAuthFlowType]? let allowedOAuthScopes: [Swift.String]? - let allowedOAuthFlowsUserPoolClient: Swift.Bool + let allowedOAuthFlowsUserPoolClient: Swift.Bool? let analyticsConfiguration: CognitoIdentityProviderClientTypes.AnalyticsConfigurationType? let preventUserExistenceErrors: CognitoIdentityProviderClientTypes.PreventUserExistenceErrorTypes? let enableTokenRevocation: Swift.Bool? @@ -21152,7 +21172,7 @@ extension UpdateUserPoolClientInputBody: Swift.Decodable { clientId = clientIdDecoded let clientNameDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .clientName) clientName = clientNameDecoded - let refreshTokenValidityDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .refreshTokenValidity) ?? 0 + let refreshTokenValidityDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .refreshTokenValidity) refreshTokenValidity = refreshTokenValidityDecoded let accessTokenValidityDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .accessTokenValidity) accessTokenValidity = accessTokenValidityDecoded @@ -21250,7 +21270,7 @@ extension UpdateUserPoolClientInputBody: Swift.Decodable { } } allowedOAuthScopes = allowedOAuthScopesDecoded0 - let allowedOAuthFlowsUserPoolClientDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .allowedOAuthFlowsUserPoolClient) ?? false + let allowedOAuthFlowsUserPoolClientDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .allowedOAuthFlowsUserPoolClient) allowedOAuthFlowsUserPoolClient = allowedOAuthFlowsUserPoolClientDecoded let analyticsConfigurationDecoded = try containerValues.decodeIfPresent(CognitoIdentityProviderClientTypes.AnalyticsConfigurationType.self, forKey: .analyticsConfiguration) analyticsConfiguration = analyticsConfigurationDecoded @@ -23940,7 +23960,7 @@ extension CognitoIdentityProviderClientTypes { extension VerifySoftwareTokenInput: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "VerifySoftwareTokenInput(friendlyDeviceName: \(Swift.String(describing: friendlyDeviceName)), session: \(Swift.String(describing: session)), userCode: \(Swift.String(describing: userCode)), accessToken: \"CONTENT_REDACTED\")"} + "VerifySoftwareTokenInput(friendlyDeviceName: \(Swift.String(describing: friendlyDeviceName)), userCode: \(Swift.String(describing: userCode)), accessToken: \"CONTENT_REDACTED\", session: \"CONTENT_REDACTED\")"} } extension VerifySoftwareTokenInput: Swift.Encodable { @@ -24050,6 +24070,11 @@ public enum VerifySoftwareTokenOutputError: ClientRuntime.HttpResponseErrorBindi } } +extension VerifySoftwareTokenOutputResponse: Swift.CustomDebugStringConvertible { + public var debugDescription: Swift.String { + "VerifySoftwareTokenOutputResponse(status: \(Swift.String(describing: status)), session: \"CONTENT_REDACTED\")"} +} + extension VerifySoftwareTokenOutputResponse: ClientRuntime.HttpResponseBinding { public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) async throws { if let data = try await httpResponse.body.readData(), diff --git a/Sources/Services/AWSComprehendMedical/ComprehendMedicalClient.swift b/Sources/Services/AWSComprehendMedical/ComprehendMedicalClient.swift index 7c1bfc938ae..dd41466f3f1 100644 --- a/Sources/Services/AWSComprehendMedical/ComprehendMedicalClient.swift +++ b/Sources/Services/AWSComprehendMedical/ComprehendMedicalClient.swift @@ -252,7 +252,7 @@ extension ComprehendMedicalClient: ComprehendMedicalClientProtocol { return result } - /// The DetectEntities operation is deprecated. You should use the [DetectEntitiesV2] operation instead. Inspects the clinical text for a variety of medical entities and returns specific information about them such as entity category, location, and confidence score on that information . + /// The DetectEntities operation is deprecated. You should use the [DetectEntitiesV2] operation instead. Inspects the clinical text for a variety of medical entities and returns specific information about them such as entity category, location, and confidence score on that information. @available(*, deprecated, message: "This operation is deprecated, use DetectEntitiesV2 instead.") public func detectEntities(input: DetectEntitiesInput) async throws -> DetectEntitiesOutputResponse { @@ -549,7 +549,7 @@ extension ComprehendMedicalClient: ComprehendMedicalClientProtocol { return result } - /// Gets a list of protected health information (PHI) detection jobs that you have submitted. + /// Gets a list of protected health information (PHI) detection jobs you have submitted. public func listPHIDetectionJobs(input: ListPHIDetectionJobsInput) async throws -> ListPHIDetectionJobsOutputResponse { let context = ClientRuntime.HttpContextBuilder() diff --git a/Sources/Services/AWSComprehendMedical/ComprehendMedicalClientProtocol.swift b/Sources/Services/AWSComprehendMedical/ComprehendMedicalClientProtocol.swift index 788a8ac085a..55500e9380f 100644 --- a/Sources/Services/AWSComprehendMedical/ComprehendMedicalClientProtocol.swift +++ b/Sources/Services/AWSComprehendMedical/ComprehendMedicalClientProtocol.swift @@ -2,7 +2,7 @@ import ClientRuntime -/// Comprehend Medical; extracts structured information from unstructured clinical text. Use these actions to gain insight in your documents. +/// Amazon Comprehend Medical extracts structured information from unstructured clinical text. Use these actions to gain insight in your documents. Amazon Comprehend Medical only detects entities in English language texts. Amazon Comprehend Medical places limits on the sizes of files allowed for different API operations. To learn more, see [Guidelines and quotas](https://docs.aws.amazon.com/comprehend-medical/latest/dev/comprehendmedical-quotas.html) in the Amazon Comprehend Medical Developer Guide. public protocol ComprehendMedicalClientProtocol { /// Gets the properties associated with a medical entities detection job. Use this operation to get the status of a detection job. func describeEntitiesDetectionV2Job(input: DescribeEntitiesDetectionV2JobInput) async throws -> DescribeEntitiesDetectionV2JobOutputResponse @@ -14,7 +14,7 @@ public protocol ComprehendMedicalClientProtocol { func describeRxNormInferenceJob(input: DescribeRxNormInferenceJobInput) async throws -> DescribeRxNormInferenceJobOutputResponse /// Gets the properties associated with an InferSNOMEDCT job. Use this operation to get the status of an inference job. func describeSNOMEDCTInferenceJob(input: DescribeSNOMEDCTInferenceJobInput) async throws -> DescribeSNOMEDCTInferenceJobOutputResponse - /// The DetectEntities operation is deprecated. You should use the [DetectEntitiesV2] operation instead. Inspects the clinical text for a variety of medical entities and returns specific information about them such as entity category, location, and confidence score on that information . + /// The DetectEntities operation is deprecated. You should use the [DetectEntitiesV2] operation instead. Inspects the clinical text for a variety of medical entities and returns specific information about them such as entity category, location, and confidence score on that information. @available(*, deprecated, message: "This operation is deprecated, use DetectEntitiesV2 instead.") func detectEntities(input: DetectEntitiesInput) async throws -> DetectEntitiesOutputResponse /// Inspects the clinical text for a variety of medical entities and returns specific information about them such as entity category, location, and confidence score on that information. Amazon Comprehend Medical only detects medical entities in English language texts. The DetectEntitiesV2 operation replaces the [DetectEntities] operation. This new action uses a different model for determining the entities in your medical text and changes the way that some entities are returned in the output. You should use the DetectEntitiesV2 operation in all new applications. The DetectEntitiesV2 operation returns the Acuity and Direction entities as attributes instead of types. @@ -31,7 +31,7 @@ public protocol ComprehendMedicalClientProtocol { func listEntitiesDetectionV2Jobs(input: ListEntitiesDetectionV2JobsInput) async throws -> ListEntitiesDetectionV2JobsOutputResponse /// Gets a list of InferICD10CM jobs that you have submitted. func listICD10CMInferenceJobs(input: ListICD10CMInferenceJobsInput) async throws -> ListICD10CMInferenceJobsOutputResponse - /// Gets a list of protected health information (PHI) detection jobs that you have submitted. + /// Gets a list of protected health information (PHI) detection jobs you have submitted. func listPHIDetectionJobs(input: ListPHIDetectionJobsInput) async throws -> ListPHIDetectionJobsOutputResponse /// Gets a list of InferRxNorm jobs that you have submitted. func listRxNormInferenceJobs(input: ListRxNormInferenceJobsInput) async throws -> ListRxNormInferenceJobsOutputResponse diff --git a/Sources/Services/AWSComprehendMedical/models/Models.swift b/Sources/Services/AWSComprehendMedical/models/Models.swift index 6a148d0ebfb..1bed7d97e47 100644 --- a/Sources/Services/AWSComprehendMedical/models/Models.swift +++ b/Sources/Services/AWSComprehendMedical/models/Models.swift @@ -98,11 +98,11 @@ extension ComprehendMedicalClientTypes { public var endOffset: Swift.Int? /// The numeric identifier for this attribute. This is a monotonically increasing id unique within this response rather than a global unique identifier. public var id: Swift.Int? - /// The level of confidence that Comprehend Medical; has that this attribute is correctly related to this entity. + /// The level of confidence that Amazon Comprehend Medical has that this attribute is correctly related to this entity. public var relationshipScore: Swift.Float? /// The type of relationship between the entity and attribute. Type for the relationship is OVERLAP, indicating that the entity occurred at the same time as the Date_Expression. public var relationshipType: ComprehendMedicalClientTypes.RelationshipType? - /// The level of confidence that Comprehend Medical; has that the segment of text is correctly recognized as an attribute. + /// The level of confidence that Amazon Comprehend Medical has that the segment of text is correctly recognized as an attribute. public var score: Swift.Float? /// The segment of input text extracted as this attribute. public var text: Swift.String? @@ -214,7 +214,7 @@ extension ComprehendMedicalClientTypes.Characters: Swift.Codable { extension ComprehendMedicalClientTypes { /// The number of characters in the input text to be analyzed. public struct Characters: Swift.Equatable { - /// The number of characters present in the input text document as processed by Comprehend Medical. + /// The number of characters present in the input text document as processed by Amazon Comprehend Medical. public var originalTextCharacters: Swift.Int? public init( @@ -392,7 +392,7 @@ extension ComprehendMedicalClientTypes.ComprehendMedicalAsyncJobProperties: Swif extension ComprehendMedicalClientTypes { /// Provides information about a detection job. public struct ComprehendMedicalAsyncJobProperties: Swift.Equatable { - /// The Amazon Resource Name (ARN) that gives Comprehend Medical; read access to your input data. + /// The Amazon Resource Name (ARN) that gives Amazon Comprehend Medical read access to your input data. public var dataAccessRoleArn: Swift.String? /// The time that the detection job completed. public var endTime: ClientRuntime.Date? @@ -477,7 +477,7 @@ extension DescribeEntitiesDetectionV2JobInput: ClientRuntime.URLPathProvider { } public struct DescribeEntitiesDetectionV2JobInput: Swift.Equatable { - /// The identifier that Comprehend Medical; generated for the job. The StartEntitiesDetectionV2Job operation returns this identifier in its response. + /// The identifier that Amazon Comprehend Medical generated for the job. The StartEntitiesDetectionV2Job operation returns this identifier in its response. /// This member is required. public var jobId: Swift.String? @@ -681,7 +681,7 @@ extension DescribePHIDetectionJobInput: ClientRuntime.URLPathProvider { } public struct DescribePHIDetectionJobInput: Swift.Equatable { - /// The identifier that Comprehend Medical; generated for the job. The StartPHIDetectionJob operation returns this identifier in its response. + /// The identifier that Amazon Comprehend Medical generated for the job. The StartPHIDetectionJob operation returns this identifier in its response. /// This member is required. public var jobId: Swift.String? @@ -987,7 +987,7 @@ extension DetectEntitiesInput: ClientRuntime.URLPathProvider { } public struct DetectEntitiesInput: Swift.Equatable { - /// A UTF-8 text string containing the clinical content being examined for entities. Each string must contain fewer than 20,000 bytes of characters. + /// A UTF-8 text string containing the clinical content being examined for entities. /// This member is required. public var text: Swift.String? @@ -1050,7 +1050,7 @@ extension DetectEntitiesOutputResponse: ClientRuntime.HttpResponseBinding { } public struct DetectEntitiesOutputResponse: Swift.Equatable { - /// The collection of medical entities extracted from the input text and their associated information. For each entity, the response provides the entity text, the entity category, where the entity text begins and ends, and the level of confidence that Comprehend Medical; has in the detection and analysis. Attributes and traits of the entity are also returned. + /// The collection of medical entities extracted from the input text and their associated information. For each entity, the response provides the entity text, the entity category, where the entity text begins and ends, and the level of confidence that Amazon Comprehend Medical has in the detection and analysis. Attributes and traits of the entity are also returned. /// This member is required. public var entities: [ComprehendMedicalClientTypes.Entity]? /// The version of the model used to analyze the documents. The version number looks like X.X.X. You can use this information to track the model used for a particular batch of documents. @@ -1141,7 +1141,7 @@ extension DetectEntitiesV2Input: ClientRuntime.URLPathProvider { } public struct DetectEntitiesV2Input: Swift.Equatable { - /// A UTF-8 string containing the clinical content being examined for entities. Each string must contain fewer than 20,000 bytes of characters. + /// A UTF-8 string containing the clinical content being examined for entities. /// This member is required. public var text: Swift.String? @@ -1295,7 +1295,7 @@ extension DetectPHIInput: ClientRuntime.URLPathProvider { } public struct DetectPHIInput: Swift.Equatable { - /// A UTF-8 text string containing the clinical content being examined for PHI entities. Each string must contain fewer than 20,000 bytes of characters. + /// A UTF-8 text string containing the clinical content being examined for PHI entities. /// This member is required. public var text: Swift.String? @@ -1356,7 +1356,7 @@ extension DetectPHIOutputResponse: ClientRuntime.HttpResponseBinding { } public struct DetectPHIOutputResponse: Swift.Equatable { - /// The collection of PHI entities extracted from the input text and their associated information. For each entity, the response provides the entity text, the entity category, where the entity text begins and ends, and the level of confidence that Comprehend Medical; has in its detection. + /// The collection of PHI entities extracted from the input text and their associated information. For each entity, the response provides the entity text, the entity category, where the entity text begins and ends, and the level of confidence that Amazon Comprehend Medical has in its detection. /// This member is required. public var entities: [ComprehendMedicalClientTypes.Entity]? /// The version of the model used to analyze the documents. The version number looks like X.X.X. You can use this information to track the model used for a particular batch of documents. @@ -1514,7 +1514,7 @@ extension ComprehendMedicalClientTypes { public var endOffset: Swift.Int? /// The numeric identifier for the entity. This is a monotonically increasing id unique within this response rather than a global unique identifier. public var id: Swift.Int? - /// The level of confidence that Comprehend Medical; has in the accuracy of the detection. + /// The level of confidence that Amazon Comprehend Medical has in the accuracy of the detection. public var score: Swift.Float? /// The segment of input text extracted as this entity. public var text: Swift.String? @@ -2283,7 +2283,7 @@ extension ComprehendMedicalClientTypes { public struct ICD10CMTrait: Swift.Equatable { /// Provides a name or contextual description about the trait. public var name: ComprehendMedicalClientTypes.ICD10CMTraitName? - /// The level of confidence that Comprehend Medical; has that the segment of text is correctly recognized as a trait. + /// The level of confidence that Amazon Comprehend Medical has that the segment of text is correctly recognized as a trait. public var score: Swift.Float? public init( @@ -2365,7 +2365,7 @@ extension InferICD10CMInput: ClientRuntime.URLPathProvider { } public struct InferICD10CMInput: Swift.Equatable { - /// The input text used for analysis. The input for InferICD10CM is a string from 1 to 10000 characters. + /// The input text used for analysis. /// This member is required. public var text: Swift.String? @@ -2499,7 +2499,7 @@ extension InferRxNormInput: ClientRuntime.URLPathProvider { } public struct InferRxNormInput: Swift.Equatable { - /// The input text used for analysis. The input for InferRxNorm is a string from 1 to 10000 characters. + /// The input text used for analysis. /// This member is required. public var text: Swift.String? @@ -2633,7 +2633,7 @@ extension InferSNOMEDCTInput: ClientRuntime.URLPathProvider { } public struct InferSNOMEDCTInput: Swift.Equatable { - /// The input text to be analyzed using InferSNOMEDCT. The text should be a string with 1 to 10000 characters. + /// The input text to be analyzed using InferSNOMEDCT. /// This member is required. public var text: Swift.String? @@ -2700,7 +2700,7 @@ extension InferSNOMEDCTOutputResponse: ClientRuntime.HttpResponseBinding { public struct InferSNOMEDCTOutputResponse: Swift.Equatable { /// The number of characters in the input request documentation. public var characters: ComprehendMedicalClientTypes.Characters? - /// The collection of medical concept entities extracted from the input text and their associated information. For each entity, the response provides the entity text, the entity category, where the entity text begins and ends, and the level of confidence that Comprehend Medical has in the detection and analysis. Attributes and traits of the entity are also returned. + /// The collection of medical concept entities extracted from the input text and their associated information. For each entity, the response provides the entity text, the entity category, where the entity text begins and ends, and the level of confidence that Amazon Comprehend Medical has in the detection and analysis. Attributes and traits of the entity are also returned. /// This member is required. public var entities: [ComprehendMedicalClientTypes.SNOMEDCTEntity]? /// The version of the model used to analyze the documents, in the format n.n.n You can use this information to track the model used for a particular batch of documents. @@ -2795,7 +2795,7 @@ extension ComprehendMedicalClientTypes.InputDataConfig: Swift.Codable { extension ComprehendMedicalClientTypes { /// The input properties for an entities detection job. This includes the name of the S3 bucket and the path to the files to be analyzed. public struct InputDataConfig: Swift.Equatable { - /// The URI of the S3 bucket that contains the input data. The bucket must be in the same region as the API endpoint that you are calling. Each file in the document collection must be less than 40 KB. You can store a maximum of 30 GB in the bucket. + /// The URI of the S3 bucket that contains the input data. The bucket must be in the same region as the API endpoint that you are calling. /// This member is required. public var s3Bucket: Swift.String? /// The path to the input data files in the S3 bucket. @@ -3805,7 +3805,7 @@ extension ComprehendMedicalClientTypes { /// When you use the OutputDataConfig object with asynchronous operations, you specify the Amazon S3 location where you want to write the output data. The URI must be in the same region as the API endpoint that you are calling. The location is used as the prefix for the actual location of the output. /// This member is required. public var s3Bucket: Swift.String? - /// The path to the output data files in the S3 bucket. Comprehend Medical; creates an output directory using the job ID so that the output from one job does not overwrite the output of another. + /// The path to the output data files in the S3 bucket. Amazon Comprehend Medical creates an output directory using the job ID so that the output from one job does not overwrite the output of another. public var s3Key: Swift.String? public init( @@ -4051,7 +4051,7 @@ extension ComprehendMedicalClientTypes { public var id: Swift.Int? /// The level of confidence that Amazon Comprehend Medical has that the attribute is accurately linked to an entity. public var relationshipScore: Swift.Float? - /// The level of confidence that Comprehend Medical has that the segment of text is correctly recognized as an attribute. + /// The level of confidence that Amazon Comprehend Medical has that the segment of text is correctly recognized as an attribute. public var score: Swift.Float? /// The segment of input text which corresponds to the detected attribute. public var text: Swift.String? @@ -4599,11 +4599,11 @@ extension ComprehendMedicalClientTypes { public var endOffset: Swift.Int? /// The numeric identifier for this attribute. This is a monotonically increasing id unique within this response rather than a global unique identifier. public var id: Swift.Int? - /// The level of confidence that Comprehend Medical has that this attribute is correctly related to this entity. + /// The level of confidence that Amazon Comprehend Medical has that this attribute is correctly related to this entity. public var relationshipScore: Swift.Float? /// The type of relationship that exists between the entity and the related attribute. public var relationshipType: ComprehendMedicalClientTypes.SNOMEDCTRelationshipType? - /// The level of confidence that Comprehend Medical has that the segment of text is correctly recognized as an attribute. + /// The level of confidence that Amazon Comprehend Medical has that the segment of text is correctly recognized as an attribute. public var score: Swift.Float? /// The SNOMED-CT concepts specific to an attribute, along with a score indicating the likelihood of the match. public var snomedctConcepts: [ComprehendMedicalClientTypes.SNOMEDCTConcept]? @@ -4726,7 +4726,7 @@ extension ComprehendMedicalClientTypes { public var code: Swift.String? /// The description of the SNOMED-CT concept. public var description: Swift.String? - /// The level of confidence Comprehend Medical has that the entity should be linked to the identified SNOMED-CT concept. + /// The level of confidence Amazon Comprehend Medical has that the entity should be linked to the identified SNOMED-CT concept. public var score: Swift.Float? public init( @@ -4908,7 +4908,7 @@ extension ComprehendMedicalClientTypes.SNOMEDCTEntity: Swift.Codable { } extension ComprehendMedicalClientTypes { - /// The collection of medical entities extracted from the input text and their associated information. For each entity, the response provides the entity text, the entity category, where the entity text begins and ends, and the level of confidence that Comprehend Medical has in the detection and analysis. Attributes and traits of the entity are also returned. + /// The collection of medical entities extracted from the input text and their associated information. For each entity, the response provides the entity text, the entity category, where the entity text begins and ends, and the level of confidence that Amazon Comprehend Medical has in the detection and analysis. Attributes and traits of the entity are also returned. public struct SNOMEDCTEntity: Swift.Equatable { /// An extracted segment of the text that is an attribute of an entity, or otherwise related to an entity, such as the dosage of a medication taken. public var attributes: [ComprehendMedicalClientTypes.SNOMEDCTAttribute]? @@ -4920,7 +4920,7 @@ extension ComprehendMedicalClientTypes { public var endOffset: Swift.Int? /// The numeric identifier for the entity. This is a monotonically increasing id unique within this response rather than a global unique identifier. public var id: Swift.Int? - /// The level of confidence that Comprehend Medical has in the accuracy of the detected entity. + /// The level of confidence that Amazon Comprehend Medical has in the accuracy of the detected entity. public var score: Swift.Float? /// The SNOMED concepts that the entity could refer to, along with a score indicating the likelihood of the match. public var snomedctConcepts: [ComprehendMedicalClientTypes.SNOMEDCTConcept]? @@ -5109,7 +5109,7 @@ extension ComprehendMedicalClientTypes { public struct SNOMEDCTTrait: Swift.Equatable { /// The name or contextual description of a detected trait. public var name: ComprehendMedicalClientTypes.SNOMEDCTTraitName? - /// The level of confidence that Comprehend Medical has in the accuracy of a detected trait. + /// The level of confidence that Amazon Comprehend Medical has in the accuracy of a detected trait. public var score: Swift.Float? public init( @@ -5192,7 +5192,7 @@ extension ServiceUnavailableException { } } -/// The Comprehend Medical; service is temporarily unavailable. Please wait and then retry your request. +/// The Amazon Comprehend Medical service is temporarily unavailable. Please wait and then retry your request. public struct ServiceUnavailableException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { public struct Properties { @@ -5276,9 +5276,9 @@ extension StartEntitiesDetectionV2JobInput: ClientRuntime.URLPathProvider { } public struct StartEntitiesDetectionV2JobInput: Swift.Equatable { - /// A unique identifier for the request. If you don't set the client request token, Comprehend Medical; generates one for you. + /// A unique identifier for the request. If you don't set the client request token, Amazon Comprehend Medical generates one for you. public var clientRequestToken: Swift.String? - /// The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that grants Comprehend Medical; read access to your input data. For more information, see [ Role-Based Permissions Required for Asynchronous Operations](https://docs.aws.amazon.com/comprehend/latest/dg/access-control-managing-permissions-med.html#auth-role-permissions-med). + /// The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that grants Amazon Comprehend Medical read access to your input data. For more information, see [Role-Based Permissions Required for Asynchronous Operations](https://docs.aws.amazon.com/comprehend/latest/dg/access-control-managing-permissions-med.html#auth-role-permissions-med). /// This member is required. public var dataAccessRoleArn: Swift.String? /// The input configuration that specifies the format and location of the input data for the job. @@ -5288,7 +5288,7 @@ public struct StartEntitiesDetectionV2JobInput: Swift.Equatable { public var jobName: Swift.String? /// An AWS Key Management Service key to encrypt your output files. If you do not specify a key, the files are written in plain text. public var kmsKey: Swift.String? - /// The language of the input documents. All documents must be in the same language. Comprehend Medical; processes files in US English (en). + /// The language of the input documents. All documents must be in the same language. Amazon Comprehend Medical processes files in US English (en). /// This member is required. public var languageCode: ComprehendMedicalClientTypes.LanguageCode? /// The output configuration that specifies where to send the output files. @@ -5453,9 +5453,9 @@ extension StartICD10CMInferenceJobInput: ClientRuntime.URLPathProvider { } public struct StartICD10CMInferenceJobInput: Swift.Equatable { - /// A unique identifier for the request. If you don't set the client request token, Comprehend Medical; generates one. + /// A unique identifier for the request. If you don't set the client request token, Amazon Comprehend Medical generates one. public var clientRequestToken: Swift.String? - /// The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that grants Comprehend Medical; read access to your input data. For more information, see [ Role-Based Permissions Required for Asynchronous Operations](https://docs.aws.amazon.com/comprehend/latest/dg/access-control-managing-permissions-med.html#auth-role-permissions-med). + /// The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that grants Amazon Comprehend Medical read access to your input data. For more information, see [ Role-Based Permissions Required for Asynchronous Operations](https://docs.aws.amazon.com/comprehend/latest/dg/access-control-managing-permissions-med.html#auth-role-permissions-med). /// This member is required. public var dataAccessRoleArn: Swift.String? /// Specifies the format and location of the input data for the job. @@ -5630,9 +5630,9 @@ extension StartPHIDetectionJobInput: ClientRuntime.URLPathProvider { } public struct StartPHIDetectionJobInput: Swift.Equatable { - /// A unique identifier for the request. If you don't set the client request token, Comprehend Medical; generates one. + /// A unique identifier for the request. If you don't set the client request token, Amazon Comprehend Medical generates one. public var clientRequestToken: Swift.String? - /// The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that grants Comprehend Medical; read access to your input data. For more information, see [ Role-Based Permissions Required for Asynchronous Operations](https://docs.aws.amazon.com/comprehend/latest/dg/access-control-managing-permissions-med.html#auth-role-permissions-med). + /// The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that grants Amazon Comprehend Medical read access to your input data. For more information, see [ Role-Based Permissions Required for Asynchronous Operations](https://docs.aws.amazon.com/comprehend/latest/dg/access-control-managing-permissions-med.html#auth-role-permissions-med). /// This member is required. public var dataAccessRoleArn: Swift.String? /// Specifies the format and location of the input data for the job. @@ -5807,9 +5807,9 @@ extension StartRxNormInferenceJobInput: ClientRuntime.URLPathProvider { } public struct StartRxNormInferenceJobInput: Swift.Equatable { - /// A unique identifier for the request. If you don't set the client request token, Comprehend Medical; generates one. + /// A unique identifier for the request. If you don't set the client request token, Amazon Comprehend Medical generates one. public var clientRequestToken: Swift.String? - /// The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that grants Comprehend Medical; read access to your input data. For more information, see [ Role-Based Permissions Required for Asynchronous Operations](https://docs.aws.amazon.com/comprehend/latest/dg/access-control-managing-permissions-med.html#auth-role-permissions-med). + /// The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that grants Amazon Comprehend Medical read access to your input data. For more information, see [ Role-Based Permissions Required for Asynchronous Operations](https://docs.aws.amazon.com/comprehend/latest/dg/access-control-managing-permissions-med.html#auth-role-permissions-med). /// This member is required. public var dataAccessRoleArn: Swift.String? /// Specifies the format and location of the input data for the job. @@ -6763,7 +6763,7 @@ extension ComprehendMedicalClientTypes { public struct Trait: Swift.Equatable { /// Provides a name or contextual description about the trait. public var name: ComprehendMedicalClientTypes.AttributeName? - /// The level of confidence that Comprehend Medical; has in the accuracy of this trait. + /// The level of confidence that Amazon Comprehend Medical has in the accuracy of this trait. public var score: Swift.Float? public init( @@ -6804,7 +6804,7 @@ extension ComprehendMedicalClientTypes.UnmappedAttribute: Swift.Codable { } extension ComprehendMedicalClientTypes { - /// An attribute that was extracted, but Comprehend Medical; was unable to relate to an entity. + /// An attribute that was extracted, but Amazon Comprehend Medical was unable to relate to an entity. public struct UnmappedAttribute: Swift.Equatable { /// The specific attribute that has been extracted but not mapped to an entity. public var attribute: ComprehendMedicalClientTypes.Attribute? diff --git a/Sources/Services/AWSConnect/ConnectClient.swift b/Sources/Services/AWSConnect/ConnectClient.swift index cd3dd0c42b3..0de724a08e7 100644 --- a/Sources/Services/AWSConnect/ConnectClient.swift +++ b/Sources/Services/AWSConnect/ConnectClient.swift @@ -855,7 +855,7 @@ extension ConnectClient: ConnectClientProtocol { return result } - /// This API is in preview release for Amazon Connect and is subject to change. Creates a new queue for the specified Amazon Connect instance. If the number being used in the input is claimed to a traffic distribution group, and you are calling this API using an instance in the Amazon Web Services Region where the traffic distribution group was created, you can use either a full phone number ARN or UUID value for the OutboundCallerIdNumberId value of the [OutboundCallerConfig](https://docs.aws.amazon.com/connect/latest/APIReference/API_OutboundCallerConfig) request body parameter. However, if the number is claimed to a traffic distribution group and you are calling this API using an instance in the alternate Amazon Web Services Region associated with the traffic distribution group, you must provide a full phone number ARN. If a UUID is provided in this scenario, you will receive a ResourceNotFoundException. + /// This API is in preview release for Amazon Connect and is subject to change. Creates a new queue for the specified Amazon Connect instance. If the number being used in the input is claimed to a traffic distribution group, and you are calling this API using an instance in the Amazon Web Services Region where the traffic distribution group was created, you can use either a full phone number ARN or UUID value for the OutboundCallerIdNumberId value of the [OutboundCallerConfig](https://docs.aws.amazon.com/connect/latest/APIReference/API_OutboundCallerConfig) request body parameter. However, if the number is claimed to a traffic distribution group and you are calling this API using an instance in the alternate Amazon Web Services Region associated with the traffic distribution group, you must provide a full phone number ARN. If a UUID is provided in this scenario, you will receive a ResourceNotFoundException. Only use the phone number ARN format that doesn't contain instance in the path, for example, arn:aws:connect:us-east-1:1234567890:phone-number/uuid. This is the same ARN format that is returned when you call the [ListPhoneNumbersV2](https://docs.aws.amazon.com/connect/latest/APIReference/API_ListPhoneNumbersV2.html) API. public func createQueue(input: CreateQueueInput) async throws -> CreateQueueOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -4773,7 +4773,7 @@ extension ConnectClient: ConnectClientProtocol { return result } - /// This API is in preview release for Amazon Connect and is subject to change. Searches queues in an Amazon Connect instance, with optional filtering. + /// Searches queues in an Amazon Connect instance, with optional filtering. public func searchQueues(input: SearchQueuesInput) async throws -> SearchQueuesOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -4881,7 +4881,7 @@ extension ConnectClient: ConnectClientProtocol { return result } - /// This API is in preview release for Amazon Connect and is subject to change. Searches routing profiles in an Amazon Connect instance, with optional filtering. + /// Searches routing profiles in an Amazon Connect instance, with optional filtering. public func searchRoutingProfiles(input: SearchRoutingProfilesInput) async throws -> SearchRoutingProfilesOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -4917,7 +4917,7 @@ extension ConnectClient: ConnectClientProtocol { return result } - /// This API is in preview release for Amazon Connect and is subject to change. Searches security profiles in an Amazon Connect instance, with optional filtering. + /// Searches security profiles in an Amazon Connect instance, with optional filtering. public func searchSecurityProfiles(input: SearchSecurityProfilesInput) async throws -> SearchSecurityProfilesOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -6353,7 +6353,7 @@ extension ConnectClient: ConnectClientProtocol { return result } - /// This API is in preview release for Amazon Connect and is subject to change. Updates the outbound caller ID name, number, and outbound whisper flow for a specified queue. If the number being used in the input is claimed to a traffic distribution group, and you are calling this API using an instance in the Amazon Web Services Region where the traffic distribution group was created, you can use either a full phone number ARN or UUID value for the OutboundCallerIdNumberId value of the [OutboundCallerConfig](https://docs.aws.amazon.com/connect/latest/APIReference/API_OutboundCallerConfig) request body parameter. However, if the number is claimed to a traffic distribution group and you are calling this API using an instance in the alternate Amazon Web Services Region associated with the traffic distribution group, you must provide a full phone number ARN. If a UUID is provided in this scenario, you will receive a ResourceNotFoundException. + /// This API is in preview release for Amazon Connect and is subject to change. Updates the outbound caller ID name, number, and outbound whisper flow for a specified queue. If the number being used in the input is claimed to a traffic distribution group, and you are calling this API using an instance in the Amazon Web Services Region where the traffic distribution group was created, you can use either a full phone number ARN or UUID value for the OutboundCallerIdNumberId value of the [OutboundCallerConfig](https://docs.aws.amazon.com/connect/latest/APIReference/API_OutboundCallerConfig) request body parameter. However, if the number is claimed to a traffic distribution group and you are calling this API using an instance in the alternate Amazon Web Services Region associated with the traffic distribution group, you must provide a full phone number ARN. If a UUID is provided in this scenario, you will receive a ResourceNotFoundException. Only use the phone number ARN format that doesn't contain instance in the path, for example, arn:aws:connect:us-east-1:1234567890:phone-number/uuid. This is the same ARN format that is returned when you call the [ListPhoneNumbersV2](https://docs.aws.amazon.com/connect/latest/APIReference/API_ListPhoneNumbersV2.html) API. public func updateQueueOutboundCallerConfig(input: UpdateQueueOutboundCallerConfigInput) async throws -> UpdateQueueOutboundCallerConfigOutputResponse { let context = ClientRuntime.HttpContextBuilder() diff --git a/Sources/Services/AWSConnect/ConnectClientProtocol.swift b/Sources/Services/AWSConnect/ConnectClientProtocol.swift index e6a70657a0a..9b37303efaf 100644 --- a/Sources/Services/AWSConnect/ConnectClientProtocol.swift +++ b/Sources/Services/AWSConnect/ConnectClientProtocol.swift @@ -46,7 +46,7 @@ public protocol ConnectClientProtocol { func createParticipant(input: CreateParticipantInput) async throws -> CreateParticipantOutputResponse /// Creates a prompt. For more information about prompts, such as supported file types and maximum length, see [Create prompts](https://docs.aws.amazon.com/connect/latest/adminguide/prompts.html) in the Amazon Connect Administrator's Guide. func createPrompt(input: CreatePromptInput) async throws -> CreatePromptOutputResponse - /// This API is in preview release for Amazon Connect and is subject to change. Creates a new queue for the specified Amazon Connect instance. If the number being used in the input is claimed to a traffic distribution group, and you are calling this API using an instance in the Amazon Web Services Region where the traffic distribution group was created, you can use either a full phone number ARN or UUID value for the OutboundCallerIdNumberId value of the [OutboundCallerConfig](https://docs.aws.amazon.com/connect/latest/APIReference/API_OutboundCallerConfig) request body parameter. However, if the number is claimed to a traffic distribution group and you are calling this API using an instance in the alternate Amazon Web Services Region associated with the traffic distribution group, you must provide a full phone number ARN. If a UUID is provided in this scenario, you will receive a ResourceNotFoundException. + /// This API is in preview release for Amazon Connect and is subject to change. Creates a new queue for the specified Amazon Connect instance. If the number being used in the input is claimed to a traffic distribution group, and you are calling this API using an instance in the Amazon Web Services Region where the traffic distribution group was created, you can use either a full phone number ARN or UUID value for the OutboundCallerIdNumberId value of the [OutboundCallerConfig](https://docs.aws.amazon.com/connect/latest/APIReference/API_OutboundCallerConfig) request body parameter. However, if the number is claimed to a traffic distribution group and you are calling this API using an instance in the alternate Amazon Web Services Region associated with the traffic distribution group, you must provide a full phone number ARN. If a UUID is provided in this scenario, you will receive a ResourceNotFoundException. Only use the phone number ARN format that doesn't contain instance in the path, for example, arn:aws:connect:us-east-1:1234567890:phone-number/uuid. This is the same ARN format that is returned when you call the [ListPhoneNumbersV2](https://docs.aws.amazon.com/connect/latest/APIReference/API_ListPhoneNumbersV2.html) API. func createQueue(input: CreateQueueInput) async throws -> CreateQueueOutputResponse /// Creates a quick connect for the specified Amazon Connect instance. func createQuickConnect(input: CreateQuickConnectInput) async throws -> CreateQuickConnectOutputResponse @@ -276,15 +276,15 @@ public protocol ConnectClientProtocol { func searchHoursOfOperations(input: SearchHoursOfOperationsInput) async throws -> SearchHoursOfOperationsOutputResponse /// Searches prompts in an Amazon Connect instance, with optional filtering. func searchPrompts(input: SearchPromptsInput) async throws -> SearchPromptsOutputResponse - /// This API is in preview release for Amazon Connect and is subject to change. Searches queues in an Amazon Connect instance, with optional filtering. + /// Searches queues in an Amazon Connect instance, with optional filtering. func searchQueues(input: SearchQueuesInput) async throws -> SearchQueuesOutputResponse /// Searches quick connects in an Amazon Connect instance, with optional filtering. func searchQuickConnects(input: SearchQuickConnectsInput) async throws -> SearchQuickConnectsOutputResponse /// Searches tags used in an Amazon Connect instance using optional search criteria. func searchResourceTags(input: SearchResourceTagsInput) async throws -> SearchResourceTagsOutputResponse - /// This API is in preview release for Amazon Connect and is subject to change. Searches routing profiles in an Amazon Connect instance, with optional filtering. + /// Searches routing profiles in an Amazon Connect instance, with optional filtering. func searchRoutingProfiles(input: SearchRoutingProfilesInput) async throws -> SearchRoutingProfilesOutputResponse - /// This API is in preview release for Amazon Connect and is subject to change. Searches security profiles in an Amazon Connect instance, with optional filtering. + /// Searches security profiles in an Amazon Connect instance, with optional filtering. func searchSecurityProfiles(input: SearchSecurityProfilesInput) async throws -> SearchSecurityProfilesOutputResponse /// Searches users in an Amazon Connect instance, with optional filtering. AfterContactWorkTimeLimit is returned in milliseconds. func searchUsers(input: SearchUsersInput) async throws -> SearchUsersOutputResponse @@ -399,7 +399,7 @@ public protocol ConnectClientProtocol { func updateQueueMaxContacts(input: UpdateQueueMaxContactsInput) async throws -> UpdateQueueMaxContactsOutputResponse /// This API is in preview release for Amazon Connect and is subject to change. Updates the name and description of a queue. At least Name or Description must be provided. func updateQueueName(input: UpdateQueueNameInput) async throws -> UpdateQueueNameOutputResponse - /// This API is in preview release for Amazon Connect and is subject to change. Updates the outbound caller ID name, number, and outbound whisper flow for a specified queue. If the number being used in the input is claimed to a traffic distribution group, and you are calling this API using an instance in the Amazon Web Services Region where the traffic distribution group was created, you can use either a full phone number ARN or UUID value for the OutboundCallerIdNumberId value of the [OutboundCallerConfig](https://docs.aws.amazon.com/connect/latest/APIReference/API_OutboundCallerConfig) request body parameter. However, if the number is claimed to a traffic distribution group and you are calling this API using an instance in the alternate Amazon Web Services Region associated with the traffic distribution group, you must provide a full phone number ARN. If a UUID is provided in this scenario, you will receive a ResourceNotFoundException. + /// This API is in preview release for Amazon Connect and is subject to change. Updates the outbound caller ID name, number, and outbound whisper flow for a specified queue. If the number being used in the input is claimed to a traffic distribution group, and you are calling this API using an instance in the Amazon Web Services Region where the traffic distribution group was created, you can use either a full phone number ARN or UUID value for the OutboundCallerIdNumberId value of the [OutboundCallerConfig](https://docs.aws.amazon.com/connect/latest/APIReference/API_OutboundCallerConfig) request body parameter. However, if the number is claimed to a traffic distribution group and you are calling this API using an instance in the alternate Amazon Web Services Region associated with the traffic distribution group, you must provide a full phone number ARN. If a UUID is provided in this scenario, you will receive a ResourceNotFoundException. Only use the phone number ARN format that doesn't contain instance in the path, for example, arn:aws:connect:us-east-1:1234567890:phone-number/uuid. This is the same ARN format that is returned when you call the [ListPhoneNumbersV2](https://docs.aws.amazon.com/connect/latest/APIReference/API_ListPhoneNumbersV2.html) API. func updateQueueOutboundCallerConfig(input: UpdateQueueOutboundCallerConfigInput) async throws -> UpdateQueueOutboundCallerConfigOutputResponse /// This API is in preview release for Amazon Connect and is subject to change. Updates the status of the queue. func updateQueueStatus(input: UpdateQueueStatusInput) async throws -> UpdateQueueStatusOutputResponse diff --git a/Sources/Services/AWSConnect/models/Models.swift b/Sources/Services/AWSConnect/models/Models.swift index 8eb0b435460..a2d259d442b 100644 --- a/Sources/Services/AWSConnect/models/Models.swift +++ b/Sources/Services/AWSConnect/models/Models.swift @@ -15732,7 +15732,7 @@ public struct GetMetricDataV2Input: Swift.Equatable { /// /// * Filter keys: A maximum of 5 filter keys are supported in a single request. Valid filter keys: QUEUE | ROUTING_PROFILE | AGENT | CHANNEL | AGENT_HIERARCHY_LEVEL_ONE | AGENT_HIERARCHY_LEVEL_TWO | AGENT_HIERARCHY_LEVEL_THREE | AGENT_HIERARCHY_LEVEL_FOUR | AGENT_HIERARCHY_LEVEL_FIVE /// - /// * Filter values: A maximum of 100 filter values are supported in a single request. For example, a GetMetricDataV2 request can filter by 50 queues, 35 agents, and 15 routing profiles for a total of 100 filter values. VOICE, CHAT, and TASK are valid filterValue for the CHANNEL filter key. + /// * Filter values: A maximum of 100 filter values are supported in a single request. VOICE, CHAT, and TASK are valid filterValue for the CHANNEL filter key. They do not count towards limitation of 100 filter values. For example, a GetMetricDataV2 request can filter by 50 queues, 35 agents, and 15 routing profiles for a total of 100 filter values, along with 3 channel filters. /// This member is required. public var filters: [ConnectClientTypes.FilterV2]? /// The grouping applied to the metrics that are returned. For example, when results are grouped by queue, the metrics returned are grouped by queue. The values that are returned apply to the metrics for each queue. They are not aggregated for all queues. If no grouping is specified, a summary of all metrics is returned. Valid grouping keys: QUEUE | ROUTING_PROFILE | AGENT | CHANNEL | AGENT_HIERARCHY_LEVEL_ONE | AGENT_HIERARCHY_LEVEL_TWO | AGENT_HIERARCHY_LEVEL_THREE | AGENT_HIERARCHY_LEVEL_FOUR | AGENT_HIERARCHY_LEVEL_FIVE diff --git a/Sources/Services/AWSDatabaseMigrationService/DatabaseMigrationClient.swift b/Sources/Services/AWSDatabaseMigrationService/DatabaseMigrationClient.swift index 25100c7fec9..62185e785a8 100644 --- a/Sources/Services/AWSDatabaseMigrationService/DatabaseMigrationClient.swift +++ b/Sources/Services/AWSDatabaseMigrationService/DatabaseMigrationClient.swift @@ -326,6 +326,43 @@ extension DatabaseMigrationClient: DatabaseMigrationClientProtocol { return result } + /// Creates a configuration that you can later provide to configure and start an DMS Serverless replication. You can also provide options to validate the configuration inputs before you start the replication. + public func createReplicationConfig(input: CreateReplicationConfigInput) async throws -> CreateReplicationConfigOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "createReplicationConfig") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "dms") + .withSigningRegion(value: config.signingRegion) + .build() + var operation = ClientRuntime.OperationStack(id: "createReplicationConfig") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.serviceSpecific.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .before, middleware: AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "AmazonDMSv20160101.CreateReplicationConfig")) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.SerializableBodyMiddleware(xmlName: "CreateReplicationConfigMessage")) + operation.serializeStep.intercept(position: .after, middleware: ContentTypeMiddleware(contentType: "application/x-amz-json-1.1")) + operation.finalizeStep.intercept(position: .before, middleware: ClientRuntime.ContentLengthMiddleware()) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryMiddleware(options: config.retryStrategyOptions)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false, signingAlgorithm: .sigv4) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + let result = try await operation.handleMiddleware(context: context, input: input, next: client.getHandler()) + return result + } + /// Creates the replication instance using the specified parameters. DMS requires that your account have certain roles with appropriate permissions before you can create a replication instance. For information on the required roles, see [Creating the IAM Roles to Use With the CLI and DMS API](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#CHAP_Security.APIRole). For information on the required permissions, see [IAM Permissions Needed to Use DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#CHAP_Security.IAMPermissions). public func createReplicationInstance(input: CreateReplicationInstanceInput) async throws -> CreateReplicationInstanceOutputResponse { @@ -363,7 +400,7 @@ extension DatabaseMigrationClient: DatabaseMigrationClientProtocol { return result } - /// Creates a replication subnet group given a list of the subnet IDs in a VPC. The VPC needs to have at least one subnet in at least two availability zones in the Amazon Web Services Region, otherwise the service will throw a ReplicationSubnetGroupDoesNotCoverEnoughAZs exception. + /// Creates a replication subnet group given a list of the subnet IDs in a VPC. The VPC needs to have at least one subnet in at least two availability zones in the Amazon Web Services Region, otherwise the service will throw a ReplicationSubnetGroupDoesNotCoverEnoughAZs exception. If a replication subnet group exists in your Amazon Web Services account, the CreateReplicationSubnetGroup action returns the following error message: The Replication Subnet Group already exists. In this case, delete the existing replication subnet group. To do so, use the [DeleteReplicationSubnetGroup](https://docs.aws.amazon.com/en_us/dms/latest/APIReference/API_DeleteReplicationSubnetGroup.html) action. Optionally, choose Subnet groups in the DMS console, then choose your subnet group. Next, choose Delete from Actions. public func createReplicationSubnetGroup(input: CreateReplicationSubnetGroupInput) async throws -> CreateReplicationSubnetGroupOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -659,6 +696,43 @@ extension DatabaseMigrationClient: DatabaseMigrationClientProtocol { return result } + /// Deletes an DMS Serverless replication configuration. This effectively deprovisions any and all replications that use this configuration. You can't delete the configuration for an DMS Serverless replication that is ongoing. You can delete the configuration when the replication is in a non-RUNNING and non-STARTING state. + public func deleteReplicationConfig(input: DeleteReplicationConfigInput) async throws -> DeleteReplicationConfigOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "deleteReplicationConfig") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "dms") + .withSigningRegion(value: config.signingRegion) + .build() + var operation = ClientRuntime.OperationStack(id: "deleteReplicationConfig") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.serviceSpecific.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .before, middleware: AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "AmazonDMSv20160101.DeleteReplicationConfig")) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.SerializableBodyMiddleware(xmlName: "DeleteReplicationConfigMessage")) + operation.serializeStep.intercept(position: .after, middleware: ContentTypeMiddleware(contentType: "application/x-amz-json-1.1")) + operation.finalizeStep.intercept(position: .before, middleware: ClientRuntime.ContentLengthMiddleware()) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryMiddleware(options: config.retryStrategyOptions)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false, signingAlgorithm: .sigv4) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + let result = try await operation.handleMiddleware(context: context, input: input, next: client.getHandler()) + return result + } + /// Deletes the specified replication instance. You must delete any migration tasks that are associated with the replication instance before you can delete it. public func deleteReplicationInstance(input: DeleteReplicationInstanceInput) async throws -> DeleteReplicationInstanceOutputResponse { @@ -1547,6 +1621,43 @@ extension DatabaseMigrationClient: DatabaseMigrationClientProtocol { return result } + /// Returns one or more existing DMS Serverless replication configurations as a list of structures. + public func describeReplicationConfigs(input: DescribeReplicationConfigsInput) async throws -> DescribeReplicationConfigsOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "describeReplicationConfigs") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "dms") + .withSigningRegion(value: config.signingRegion) + .build() + var operation = ClientRuntime.OperationStack(id: "describeReplicationConfigs") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.serviceSpecific.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .before, middleware: AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "AmazonDMSv20160101.DescribeReplicationConfigs")) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.SerializableBodyMiddleware(xmlName: "DescribeReplicationConfigsMessage")) + operation.serializeStep.intercept(position: .after, middleware: ContentTypeMiddleware(contentType: "application/x-amz-json-1.1")) + operation.finalizeStep.intercept(position: .before, middleware: ClientRuntime.ContentLengthMiddleware()) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryMiddleware(options: config.retryStrategyOptions)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false, signingAlgorithm: .sigv4) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + let result = try await operation.handleMiddleware(context: context, input: input, next: client.getHandler()) + return result + } + /// Returns information about the task logs for the specified task. public func describeReplicationInstanceTaskLogs(input: DescribeReplicationInstanceTaskLogsInput) async throws -> DescribeReplicationInstanceTaskLogsOutputResponse { @@ -1658,6 +1769,43 @@ extension DatabaseMigrationClient: DatabaseMigrationClientProtocol { return result } + /// Returns table and schema statistics for one or more provisioned replications that use a given DMS Serverless replication configuration. + public func describeReplicationTableStatistics(input: DescribeReplicationTableStatisticsInput) async throws -> DescribeReplicationTableStatisticsOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "describeReplicationTableStatistics") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "dms") + .withSigningRegion(value: config.signingRegion) + .build() + var operation = ClientRuntime.OperationStack(id: "describeReplicationTableStatistics") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.serviceSpecific.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .before, middleware: AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "AmazonDMSv20160101.DescribeReplicationTableStatistics")) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.SerializableBodyMiddleware(xmlName: "DescribeReplicationTableStatisticsMessage")) + operation.serializeStep.intercept(position: .after, middleware: ContentTypeMiddleware(contentType: "application/x-amz-json-1.1")) + operation.finalizeStep.intercept(position: .before, middleware: ClientRuntime.ContentLengthMiddleware()) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryMiddleware(options: config.retryStrategyOptions)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false, signingAlgorithm: .sigv4) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + let result = try await operation.handleMiddleware(context: context, input: input, next: client.getHandler()) + return result + } + /// Returns the task assessment results from the Amazon S3 bucket that DMS creates in your Amazon Web Services account. This action always returns the latest results. For more information about DMS task assessments, see [Creating a task assessment report](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.AssessmentReport.html) in the Database Migration Service User Guide. public func describeReplicationTaskAssessmentResults(input: DescribeReplicationTaskAssessmentResultsInput) async throws -> DescribeReplicationTaskAssessmentResultsOutputResponse { @@ -1806,6 +1954,43 @@ extension DatabaseMigrationClient: DatabaseMigrationClientProtocol { return result } + /// Provides details on replication progress by returning status information for one or more provisioned DMS Serverless replications. + public func describeReplications(input: DescribeReplicationsInput) async throws -> DescribeReplicationsOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "describeReplications") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "dms") + .withSigningRegion(value: config.signingRegion) + .build() + var operation = ClientRuntime.OperationStack(id: "describeReplications") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.serviceSpecific.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .before, middleware: AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "AmazonDMSv20160101.DescribeReplications")) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.SerializableBodyMiddleware(xmlName: "DescribeReplicationsMessage")) + operation.serializeStep.intercept(position: .after, middleware: ContentTypeMiddleware(contentType: "application/x-amz-json-1.1")) + operation.finalizeStep.intercept(position: .before, middleware: ClientRuntime.ContentLengthMiddleware()) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryMiddleware(options: config.retryStrategyOptions)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false, signingAlgorithm: .sigv4) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + let result = try await operation.handleMiddleware(context: context, input: input, next: client.getHandler()) + return result + } + /// Returns information about the schema for the specified endpoint. public func describeSchemas(input: DescribeSchemasInput) async throws -> DescribeSchemasOutputResponse { @@ -2028,6 +2213,43 @@ extension DatabaseMigrationClient: DatabaseMigrationClientProtocol { return result } + /// Modifies an existing DMS Serverless replication configuration that you can use to start a replication. This command includes input validation and logic to check the state of any replication that uses this configuration. You can only modify a replication configuration before any replication that uses it has started. As soon as you have initially started a replication with a given configuiration, you can't modify that configuration, even if you stop it. Other run statuses that allow you to run this command include FAILED and CREATED. A provisioning state that allows you to run this command is FAILED_PROVISION. + public func modifyReplicationConfig(input: ModifyReplicationConfigInput) async throws -> ModifyReplicationConfigOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "modifyReplicationConfig") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "dms") + .withSigningRegion(value: config.signingRegion) + .build() + var operation = ClientRuntime.OperationStack(id: "modifyReplicationConfig") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.serviceSpecific.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .before, middleware: AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "AmazonDMSv20160101.ModifyReplicationConfig")) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.SerializableBodyMiddleware(xmlName: "ModifyReplicationConfigMessage")) + operation.serializeStep.intercept(position: .after, middleware: ContentTypeMiddleware(contentType: "application/x-amz-json-1.1")) + operation.finalizeStep.intercept(position: .before, middleware: ClientRuntime.ContentLengthMiddleware()) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryMiddleware(options: config.retryStrategyOptions)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false, signingAlgorithm: .sigv4) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + let result = try await operation.handleMiddleware(context: context, input: input, next: client.getHandler()) + return result + } + /// Modifies the replication instance to apply new settings. You can change one or more parameters by specifying these parameters and the new values in the request. Some settings are applied during the maintenance window. public func modifyReplicationInstance(input: ModifyReplicationInstanceInput) async throws -> ModifyReplicationInstanceOutputResponse { @@ -2250,6 +2472,43 @@ extension DatabaseMigrationClient: DatabaseMigrationClientProtocol { return result } + /// Reloads the target database table with the source data for a given DMS Serverless replication configuration. You can only use this operation with a task in the RUNNING state, otherwise the service will throw an InvalidResourceStateFault exception. + public func reloadReplicationTables(input: ReloadReplicationTablesInput) async throws -> ReloadReplicationTablesOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "reloadReplicationTables") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "dms") + .withSigningRegion(value: config.signingRegion) + .build() + var operation = ClientRuntime.OperationStack(id: "reloadReplicationTables") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.serviceSpecific.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .before, middleware: AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "AmazonDMSv20160101.ReloadReplicationTables")) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.SerializableBodyMiddleware(xmlName: "ReloadReplicationTablesMessage")) + operation.serializeStep.intercept(position: .after, middleware: ContentTypeMiddleware(contentType: "application/x-amz-json-1.1")) + operation.finalizeStep.intercept(position: .before, middleware: ClientRuntime.ContentLengthMiddleware()) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryMiddleware(options: config.retryStrategyOptions)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false, signingAlgorithm: .sigv4) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + let result = try await operation.handleMiddleware(context: context, input: input, next: client.getHandler()) + return result + } + /// Reloads the target database table with the source data. You can only use this operation with a task in the RUNNING state, otherwise the service will throw an InvalidResourceStateFault exception. public func reloadTables(input: ReloadTablesInput) async throws -> ReloadTablesOutputResponse { @@ -2398,6 +2657,43 @@ extension DatabaseMigrationClient: DatabaseMigrationClientProtocol { return result } + /// For a given DMS Serverless replication configuration, DMS connects to the source endpoint and collects the metadata to analyze the replication workload. Using this metadata, DMS then computes and provisions the required capacity and starts replicating to the target endpoint using the server resources that DMS has provisioned for the DMS Serverless replication. + public func startReplication(input: StartReplicationInput) async throws -> StartReplicationOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "startReplication") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "dms") + .withSigningRegion(value: config.signingRegion) + .build() + var operation = ClientRuntime.OperationStack(id: "startReplication") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.serviceSpecific.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .before, middleware: AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "AmazonDMSv20160101.StartReplication")) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.SerializableBodyMiddleware(xmlName: "StartReplicationMessage")) + operation.serializeStep.intercept(position: .after, middleware: ContentTypeMiddleware(contentType: "application/x-amz-json-1.1")) + operation.finalizeStep.intercept(position: .before, middleware: ClientRuntime.ContentLengthMiddleware()) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryMiddleware(options: config.retryStrategyOptions)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false, signingAlgorithm: .sigv4) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + let result = try await operation.handleMiddleware(context: context, input: input, next: client.getHandler()) + return result + } + /// Starts the replication task. For more information about DMS tasks, see [Working with Migration Tasks ](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.html) in the Database Migration Service User Guide. public func startReplicationTask(input: StartReplicationTaskInput) async throws -> StartReplicationTaskOutputResponse { @@ -2516,6 +2812,43 @@ extension DatabaseMigrationClient: DatabaseMigrationClientProtocol { return result } + /// For a given DMS Serverless replication configuration, DMS stops any and all ongoing DMS Serverless replications. This command doesn't deprovision the stopped replications. + public func stopReplication(input: StopReplicationInput) async throws -> StopReplicationOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "stopReplication") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "dms") + .withSigningRegion(value: config.signingRegion) + .build() + var operation = ClientRuntime.OperationStack(id: "stopReplication") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.serviceSpecific.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .before, middleware: AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "AmazonDMSv20160101.StopReplication")) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.SerializableBodyMiddleware(xmlName: "StopReplicationMessage")) + operation.serializeStep.intercept(position: .after, middleware: ContentTypeMiddleware(contentType: "application/x-amz-json-1.1")) + operation.finalizeStep.intercept(position: .before, middleware: ClientRuntime.ContentLengthMiddleware()) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryMiddleware(options: config.retryStrategyOptions)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false, signingAlgorithm: .sigv4) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + let result = try await operation.handleMiddleware(context: context, input: input, next: client.getHandler()) + return result + } + /// Stops the replication task. public func stopReplicationTask(input: StopReplicationTaskInput) async throws -> StopReplicationTaskOutputResponse { diff --git a/Sources/Services/AWSDatabaseMigrationService/DatabaseMigrationClientProtocol.swift b/Sources/Services/AWSDatabaseMigrationService/DatabaseMigrationClientProtocol.swift index bf4a76f5e23..0a31f5495cb 100644 --- a/Sources/Services/AWSDatabaseMigrationService/DatabaseMigrationClientProtocol.swift +++ b/Sources/Services/AWSDatabaseMigrationService/DatabaseMigrationClientProtocol.swift @@ -18,9 +18,11 @@ public protocol DatabaseMigrationClientProtocol { func createEventSubscription(input: CreateEventSubscriptionInput) async throws -> CreateEventSubscriptionOutputResponse /// Creates a Fleet Advisor collector using the specified parameters. func createFleetAdvisorCollector(input: CreateFleetAdvisorCollectorInput) async throws -> CreateFleetAdvisorCollectorOutputResponse + /// Creates a configuration that you can later provide to configure and start an DMS Serverless replication. You can also provide options to validate the configuration inputs before you start the replication. + func createReplicationConfig(input: CreateReplicationConfigInput) async throws -> CreateReplicationConfigOutputResponse /// Creates the replication instance using the specified parameters. DMS requires that your account have certain roles with appropriate permissions before you can create a replication instance. For information on the required roles, see [Creating the IAM Roles to Use With the CLI and DMS API](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#CHAP_Security.APIRole). For information on the required permissions, see [IAM Permissions Needed to Use DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#CHAP_Security.IAMPermissions). func createReplicationInstance(input: CreateReplicationInstanceInput) async throws -> CreateReplicationInstanceOutputResponse - /// Creates a replication subnet group given a list of the subnet IDs in a VPC. The VPC needs to have at least one subnet in at least two availability zones in the Amazon Web Services Region, otherwise the service will throw a ReplicationSubnetGroupDoesNotCoverEnoughAZs exception. + /// Creates a replication subnet group given a list of the subnet IDs in a VPC. The VPC needs to have at least one subnet in at least two availability zones in the Amazon Web Services Region, otherwise the service will throw a ReplicationSubnetGroupDoesNotCoverEnoughAZs exception. If a replication subnet group exists in your Amazon Web Services account, the CreateReplicationSubnetGroup action returns the following error message: The Replication Subnet Group already exists. In this case, delete the existing replication subnet group. To do so, use the [DeleteReplicationSubnetGroup](https://docs.aws.amazon.com/en_us/dms/latest/APIReference/API_DeleteReplicationSubnetGroup.html) action. Optionally, choose Subnet groups in the DMS console, then choose your subnet group. Next, choose Delete from Actions. func createReplicationSubnetGroup(input: CreateReplicationSubnetGroupInput) async throws -> CreateReplicationSubnetGroupOutputResponse /// Creates a replication task using the specified parameters. func createReplicationTask(input: CreateReplicationTaskInput) async throws -> CreateReplicationTaskOutputResponse @@ -36,6 +38,8 @@ public protocol DatabaseMigrationClientProtocol { func deleteFleetAdvisorCollector(input: DeleteFleetAdvisorCollectorInput) async throws -> DeleteFleetAdvisorCollectorOutputResponse /// Deletes the specified Fleet Advisor collector databases. func deleteFleetAdvisorDatabases(input: DeleteFleetAdvisorDatabasesInput) async throws -> DeleteFleetAdvisorDatabasesOutputResponse + /// Deletes an DMS Serverless replication configuration. This effectively deprovisions any and all replications that use this configuration. You can't delete the configuration for an DMS Serverless replication that is ongoing. You can delete the configuration when the replication is in a non-RUNNING and non-STARTING state. + func deleteReplicationConfig(input: DeleteReplicationConfigInput) async throws -> DeleteReplicationConfigOutputResponse /// Deletes the specified replication instance. You must delete any migration tasks that are associated with the replication instance before you can delete it. func deleteReplicationInstance(input: DeleteReplicationInstanceInput) async throws -> DeleteReplicationInstanceOutputResponse /// Deletes a subnet group. @@ -84,12 +88,18 @@ public protocol DatabaseMigrationClientProtocol { func describeRecommendations(input: DescribeRecommendationsInput) async throws -> DescribeRecommendationsOutputResponse /// Returns the status of the RefreshSchemas operation. func describeRefreshSchemasStatus(input: DescribeRefreshSchemasStatusInput) async throws -> DescribeRefreshSchemasStatusOutputResponse + /// Returns one or more existing DMS Serverless replication configurations as a list of structures. + func describeReplicationConfigs(input: DescribeReplicationConfigsInput) async throws -> DescribeReplicationConfigsOutputResponse /// Returns information about replication instances for your account in the current region. func describeReplicationInstances(input: DescribeReplicationInstancesInput) async throws -> DescribeReplicationInstancesOutputResponse /// Returns information about the task logs for the specified task. func describeReplicationInstanceTaskLogs(input: DescribeReplicationInstanceTaskLogsInput) async throws -> DescribeReplicationInstanceTaskLogsOutputResponse + /// Provides details on replication progress by returning status information for one or more provisioned DMS Serverless replications. + func describeReplications(input: DescribeReplicationsInput) async throws -> DescribeReplicationsOutputResponse /// Returns information about the replication subnet groups. func describeReplicationSubnetGroups(input: DescribeReplicationSubnetGroupsInput) async throws -> DescribeReplicationSubnetGroupsOutputResponse + /// Returns table and schema statistics for one or more provisioned replications that use a given DMS Serverless replication configuration. + func describeReplicationTableStatistics(input: DescribeReplicationTableStatisticsInput) async throws -> DescribeReplicationTableStatisticsOutputResponse /// Returns the task assessment results from the Amazon S3 bucket that DMS creates in your Amazon Web Services account. This action always returns the latest results. For more information about DMS task assessments, see [Creating a task assessment report](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.AssessmentReport.html) in the Database Migration Service User Guide. func describeReplicationTaskAssessmentResults(input: DescribeReplicationTaskAssessmentResultsInput) async throws -> DescribeReplicationTaskAssessmentResultsOutputResponse /// Returns a paginated list of premigration assessment runs based on filter settings. These filter settings can specify a combination of premigration assessment runs, migration tasks, replication instances, and assessment run status values. This operation doesn't return information about individual assessments. For this information, see the DescribeReplicationTaskIndividualAssessments operation. @@ -110,6 +120,8 @@ public protocol DatabaseMigrationClientProtocol { func modifyEndpoint(input: ModifyEndpointInput) async throws -> ModifyEndpointOutputResponse /// Modifies an existing DMS event notification subscription. func modifyEventSubscription(input: ModifyEventSubscriptionInput) async throws -> ModifyEventSubscriptionOutputResponse + /// Modifies an existing DMS Serverless replication configuration that you can use to start a replication. This command includes input validation and logic to check the state of any replication that uses this configuration. You can only modify a replication configuration before any replication that uses it has started. As soon as you have initially started a replication with a given configuiration, you can't modify that configuration, even if you stop it. Other run statuses that allow you to run this command include FAILED and CREATED. A provisioning state that allows you to run this command is FAILED_PROVISION. + func modifyReplicationConfig(input: ModifyReplicationConfigInput) async throws -> ModifyReplicationConfigOutputResponse /// Modifies the replication instance to apply new settings. You can change one or more parameters by specifying these parameters and the new values in the request. Some settings are applied during the maintenance window. func modifyReplicationInstance(input: ModifyReplicationInstanceInput) async throws -> ModifyReplicationInstanceOutputResponse /// Modifies the settings for the specified replication subnet group. @@ -122,6 +134,8 @@ public protocol DatabaseMigrationClientProtocol { func rebootReplicationInstance(input: RebootReplicationInstanceInput) async throws -> RebootReplicationInstanceOutputResponse /// Populates the schema for the specified endpoint. This is an asynchronous operation and can take several minutes. You can check the status of this operation by calling the DescribeRefreshSchemasStatus operation. func refreshSchemas(input: RefreshSchemasInput) async throws -> RefreshSchemasOutputResponse + /// Reloads the target database table with the source data for a given DMS Serverless replication configuration. You can only use this operation with a task in the RUNNING state, otherwise the service will throw an InvalidResourceStateFault exception. + func reloadReplicationTables(input: ReloadReplicationTablesInput) async throws -> ReloadReplicationTablesOutputResponse /// Reloads the target database table with the source data. You can only use this operation with a task in the RUNNING state, otherwise the service will throw an InvalidResourceStateFault exception. func reloadTables(input: ReloadTablesInput) async throws -> ReloadTablesOutputResponse /// Removes metadata tags from an DMS resource, including replication instance, endpoint, subnet group, and migration task. For more information, see [Tag](https://docs.aws.amazon.com/dms/latest/APIReference/API_Tag.html) data type description. @@ -130,6 +144,8 @@ public protocol DatabaseMigrationClientProtocol { func runFleetAdvisorLsaAnalysis(input: RunFleetAdvisorLsaAnalysisInput) async throws -> RunFleetAdvisorLsaAnalysisOutputResponse /// Starts the analysis of your source database to provide recommendations of target engines. You can create recommendations for multiple source databases using [BatchStartRecommendations](https://docs.aws.amazon.com/dms/latest/APIReference/API_BatchStartRecommendations.html). func startRecommendations(input: StartRecommendationsInput) async throws -> StartRecommendationsOutputResponse + /// For a given DMS Serverless replication configuration, DMS connects to the source endpoint and collects the metadata to analyze the replication workload. Using this metadata, DMS then computes and provisions the required capacity and starts replicating to the target endpoint using the server resources that DMS has provisioned for the DMS Serverless replication. + func startReplication(input: StartReplicationInput) async throws -> StartReplicationOutputResponse /// Starts the replication task. For more information about DMS tasks, see [Working with Migration Tasks ](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.html) in the Database Migration Service User Guide. func startReplicationTask(input: StartReplicationTaskInput) async throws -> StartReplicationTaskOutputResponse /// Starts the replication task assessment for unsupported data types in the source database. You can only use this operation for a task if the following conditions are true: @@ -143,6 +159,8 @@ public protocol DatabaseMigrationClientProtocol { func startReplicationTaskAssessment(input: StartReplicationTaskAssessmentInput) async throws -> StartReplicationTaskAssessmentOutputResponse /// Starts a new premigration assessment run for one or more individual assessments of a migration task. The assessments that you can specify depend on the source and target database engine and the migration type defined for the given task. To run this operation, your migration task must already be created. After you run this operation, you can review the status of each individual assessment. You can also run the migration task manually after the assessment run and its individual assessments complete. func startReplicationTaskAssessmentRun(input: StartReplicationTaskAssessmentRunInput) async throws -> StartReplicationTaskAssessmentRunOutputResponse + /// For a given DMS Serverless replication configuration, DMS stops any and all ongoing DMS Serverless replications. This command doesn't deprovision the stopped replications. + func stopReplication(input: StopReplicationInput) async throws -> StopReplicationOutputResponse /// Stops the replication task. func stopReplicationTask(input: StopReplicationTaskInput) async throws -> StopReplicationTaskOutputResponse /// Tests the connection between the replication instance and the endpoint. diff --git a/Sources/Services/AWSDatabaseMigrationService/Paginators.swift b/Sources/Services/AWSDatabaseMigrationService/Paginators.swift index 6836f50002c..f4c6fedcde2 100644 --- a/Sources/Services/AWSDatabaseMigrationService/Paginators.swift +++ b/Sources/Services/AWSDatabaseMigrationService/Paginators.swift @@ -386,6 +386,28 @@ extension DescribeRecommendationsInput: ClientRuntime.PaginateToken { nextToken: token )} } +extension DatabaseMigrationClient { + /// Paginate over `[DescribeReplicationConfigsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeReplicationConfigsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeReplicationConfigsOutputResponse` + public func describeReplicationConfigsPaginated(input: DescribeReplicationConfigsInput) -> ClientRuntime.PaginatorSequence { + return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeReplicationConfigsInput.marker, outputKey: \DescribeReplicationConfigsOutputResponse.marker, paginationFunction: self.describeReplicationConfigs(input:)) + } +} + +extension DescribeReplicationConfigsInput: ClientRuntime.PaginateToken { + public func usingPaginationToken(_ token: Swift.String) -> DescribeReplicationConfigsInput { + return DescribeReplicationConfigsInput( + filters: self.filters, + marker: token, + maxRecords: self.maxRecords + )} +} extension DatabaseMigrationClient { /// Paginate over `[DescribeReplicationInstancesOutputResponse]` results. /// @@ -430,6 +452,28 @@ extension DescribeReplicationInstanceTaskLogsInput: ClientRuntime.PaginateToken replicationInstanceArn: self.replicationInstanceArn )} } +extension DatabaseMigrationClient { + /// Paginate over `[DescribeReplicationsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeReplicationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeReplicationsOutputResponse` + public func describeReplicationsPaginated(input: DescribeReplicationsInput) -> ClientRuntime.PaginatorSequence { + return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeReplicationsInput.marker, outputKey: \DescribeReplicationsOutputResponse.marker, paginationFunction: self.describeReplications(input:)) + } +} + +extension DescribeReplicationsInput: ClientRuntime.PaginateToken { + public func usingPaginationToken(_ token: Swift.String) -> DescribeReplicationsInput { + return DescribeReplicationsInput( + filters: self.filters, + marker: token, + maxRecords: self.maxRecords + )} +} extension DatabaseMigrationClient { /// Paginate over `[DescribeReplicationSubnetGroupsOutputResponse]` results. /// @@ -452,6 +496,29 @@ extension DescribeReplicationSubnetGroupsInput: ClientRuntime.PaginateToken { maxRecords: self.maxRecords )} } +extension DatabaseMigrationClient { + /// Paginate over `[DescribeReplicationTableStatisticsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[DescribeReplicationTableStatisticsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeReplicationTableStatisticsOutputResponse` + public func describeReplicationTableStatisticsPaginated(input: DescribeReplicationTableStatisticsInput) -> ClientRuntime.PaginatorSequence { + return ClientRuntime.PaginatorSequence(input: input, inputKey: \DescribeReplicationTableStatisticsInput.marker, outputKey: \DescribeReplicationTableStatisticsOutputResponse.marker, paginationFunction: self.describeReplicationTableStatistics(input:)) + } +} + +extension DescribeReplicationTableStatisticsInput: ClientRuntime.PaginateToken { + public func usingPaginationToken(_ token: Swift.String) -> DescribeReplicationTableStatisticsInput { + return DescribeReplicationTableStatisticsInput( + filters: self.filters, + marker: token, + maxRecords: self.maxRecords, + replicationConfigArn: self.replicationConfigArn + )} +} extension DatabaseMigrationClient { /// Paginate over `[DescribeReplicationTaskAssessmentResultsOutputResponse]` results. /// diff --git a/Sources/Services/AWSDatabaseMigrationService/models/Models.swift b/Sources/Services/AWSDatabaseMigrationService/models/Models.swift index 3a6ea0d79ac..31b9efeeb7e 100644 --- a/Sources/Services/AWSDatabaseMigrationService/models/Models.swift +++ b/Sources/Services/AWSDatabaseMigrationService/models/Models.swift @@ -1317,6 +1317,133 @@ extension DatabaseMigrationClientTypes { } } +extension DatabaseMigrationClientTypes.ComputeConfig: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case availabilityZone = "AvailabilityZone" + case dnsNameServers = "DnsNameServers" + case kmsKeyId = "KmsKeyId" + case maxCapacityUnits = "MaxCapacityUnits" + case minCapacityUnits = "MinCapacityUnits" + case multiAZ = "MultiAZ" + case preferredMaintenanceWindow = "PreferredMaintenanceWindow" + case replicationSubnetGroupId = "ReplicationSubnetGroupId" + case vpcSecurityGroupIds = "VpcSecurityGroupIds" + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let availabilityZone = self.availabilityZone { + try encodeContainer.encode(availabilityZone, forKey: .availabilityZone) + } + if let dnsNameServers = self.dnsNameServers { + try encodeContainer.encode(dnsNameServers, forKey: .dnsNameServers) + } + if let kmsKeyId = self.kmsKeyId { + try encodeContainer.encode(kmsKeyId, forKey: .kmsKeyId) + } + if let maxCapacityUnits = self.maxCapacityUnits { + try encodeContainer.encode(maxCapacityUnits, forKey: .maxCapacityUnits) + } + if let minCapacityUnits = self.minCapacityUnits { + try encodeContainer.encode(minCapacityUnits, forKey: .minCapacityUnits) + } + if let multiAZ = self.multiAZ { + try encodeContainer.encode(multiAZ, forKey: .multiAZ) + } + if let preferredMaintenanceWindow = self.preferredMaintenanceWindow { + try encodeContainer.encode(preferredMaintenanceWindow, forKey: .preferredMaintenanceWindow) + } + if let replicationSubnetGroupId = self.replicationSubnetGroupId { + try encodeContainer.encode(replicationSubnetGroupId, forKey: .replicationSubnetGroupId) + } + if let vpcSecurityGroupIds = vpcSecurityGroupIds { + var vpcSecurityGroupIdsContainer = encodeContainer.nestedUnkeyedContainer(forKey: .vpcSecurityGroupIds) + for string0 in vpcSecurityGroupIds { + try vpcSecurityGroupIdsContainer.encode(string0) + } + } + } + + public init(from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let availabilityZoneDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .availabilityZone) + availabilityZone = availabilityZoneDecoded + let dnsNameServersDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .dnsNameServers) + dnsNameServers = dnsNameServersDecoded + let kmsKeyIdDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .kmsKeyId) + kmsKeyId = kmsKeyIdDecoded + let maxCapacityUnitsDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .maxCapacityUnits) + maxCapacityUnits = maxCapacityUnitsDecoded + let minCapacityUnitsDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .minCapacityUnits) + minCapacityUnits = minCapacityUnitsDecoded + let multiAZDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .multiAZ) + multiAZ = multiAZDecoded + let preferredMaintenanceWindowDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .preferredMaintenanceWindow) + preferredMaintenanceWindow = preferredMaintenanceWindowDecoded + let replicationSubnetGroupIdDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .replicationSubnetGroupId) + replicationSubnetGroupId = replicationSubnetGroupIdDecoded + let vpcSecurityGroupIdsContainer = try containerValues.decodeIfPresent([Swift.String?].self, forKey: .vpcSecurityGroupIds) + var vpcSecurityGroupIdsDecoded0:[Swift.String]? = nil + if let vpcSecurityGroupIdsContainer = vpcSecurityGroupIdsContainer { + vpcSecurityGroupIdsDecoded0 = [Swift.String]() + for string0 in vpcSecurityGroupIdsContainer { + if let string0 = string0 { + vpcSecurityGroupIdsDecoded0?.append(string0) + } + } + } + vpcSecurityGroupIds = vpcSecurityGroupIdsDecoded0 + } +} + +extension DatabaseMigrationClientTypes { + /// Configuration parameters for provisioning an DMS Serverless replication. + public struct ComputeConfig: Swift.Equatable { + /// The Availability Zone where the DMS Serverless replication using this configuration will run. The default value is a random, system-chosen Availability Zone in the configuration's Amazon Web Services Region, for example, "us-west-2". You can't set this parameter if the MultiAZ parameter is set to true. + public var availabilityZone: Swift.String? + /// A list of custom DNS name servers supported for the DMS Serverless replication to access your source or target database. This list overrides the default name servers supported by the DMS Serverless replication. You can specify a comma-separated list of internet addresses for up to four DNS name servers. For example: "1.1.1.1,2.2.2.2,3.3.3.3,4.4.4.4" + public var dnsNameServers: Swift.String? + /// An Key Management Service (KMS) key Amazon Resource Name (ARN) that is used to encrypt the data during DMS Serverless replication. If you don't specify a value for the KmsKeyId parameter, DMS uses your default encryption key. KMS creates the default encryption key for your Amazon Web Services account. Your Amazon Web Services account has a different default encryption key for each Amazon Web Services Region. + public var kmsKeyId: Swift.String? + /// Specifies the maximum value of the DMS capacity units (DCUs) for which a given DMS Serverless replication can be provisioned. A single DCU is 2GB of RAM, with 2 DCUs as the minimum value allowed. The list of valid DCU values includes 2, 4, 8, 16, 32, 64, 128, 192, 256, and 384. So, the maximum value that you can specify for DMS Serverless is 384. The MaxCapacityUnits parameter is the only DCU parameter you are required to specify. + public var maxCapacityUnits: Swift.Int? + /// Specifies the minimum value of the DMS capacity units (DCUs) for which a given DMS Serverless replication can be provisioned. A single DCU is 2GB of RAM, with 2 DCUs as the minimum value allowed. The list of valid DCU values includes 2, 4, 8, 16, 32, 64, 128, 192, 256, and 384. So, the minimum DCU value that you can specify for DMS Serverless is 2. You don't have to specify a value for the MinCapacityUnits parameter. If you don't set this value, DMS scans the current activity of available source tables to identify an optimum setting for this parameter. If there is no current source activity or DMS can't otherwise identify a more appropriate value, it sets this parameter to the minimum DCU value allowed, 2. + public var minCapacityUnits: Swift.Int? + /// Specifies whether the DMS Serverless replication is a Multi-AZ deployment. You can't set the AvailabilityZone parameter if the MultiAZ parameter is set to true. + public var multiAZ: Swift.Bool? + /// The weekly time range during which system maintenance can occur for the DMS Serverless replication, in Universal Coordinated Time (UTC). The format is ddd:hh24:mi-ddd:hh24:mi. The default is a 30-minute window selected at random from an 8-hour block of time per Amazon Web Services Region. This maintenance occurs on a random day of the week. Valid values for days of the week include Mon, Tue, Wed, Thu, Fri, Sat, and Sun. Constraints include a minimum 30-minute window. + public var preferredMaintenanceWindow: Swift.String? + /// Specifies a subnet group identifier to associate with the DMS Serverless replication. + public var replicationSubnetGroupId: Swift.String? + /// Specifies the virtual private cloud (VPC) security group to use with the DMS Serverless replication. The VPC security group must work with the VPC containing the replication. + public var vpcSecurityGroupIds: [Swift.String]? + + public init( + availabilityZone: Swift.String? = nil, + dnsNameServers: Swift.String? = nil, + kmsKeyId: Swift.String? = nil, + maxCapacityUnits: Swift.Int? = nil, + minCapacityUnits: Swift.Int? = nil, + multiAZ: Swift.Bool? = nil, + preferredMaintenanceWindow: Swift.String? = nil, + replicationSubnetGroupId: Swift.String? = nil, + vpcSecurityGroupIds: [Swift.String]? = nil + ) + { + self.availabilityZone = availabilityZone + self.dnsNameServers = dnsNameServers + self.kmsKeyId = kmsKeyId + self.maxCapacityUnits = maxCapacityUnits + self.minCapacityUnits = minCapacityUnits + self.multiAZ = multiAZ + self.preferredMaintenanceWindow = preferredMaintenanceWindow + self.replicationSubnetGroupId = replicationSubnetGroupId + self.vpcSecurityGroupIds = vpcSecurityGroupIds + } + } + +} + extension DatabaseMigrationClientTypes.Connection: Swift.Codable { enum CodingKeys: Swift.String, Swift.CodingKey { case endpointArn = "EndpointArn" @@ -1412,7 +1539,7 @@ extension DatabaseMigrationClientTypes { extension CreateEndpointInput: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "CreateEndpointInput(certificateArn: \(Swift.String(describing: certificateArn)), databaseName: \(Swift.String(describing: databaseName)), dmsTransferSettings: \(Swift.String(describing: dmsTransferSettings)), docDbSettings: \(Swift.String(describing: docDbSettings)), dynamoDbSettings: \(Swift.String(describing: dynamoDbSettings)), elasticsearchSettings: \(Swift.String(describing: elasticsearchSettings)), endpointIdentifier: \(Swift.String(describing: endpointIdentifier)), endpointType: \(Swift.String(describing: endpointType)), engineName: \(Swift.String(describing: engineName)), externalTableDefinition: \(Swift.String(describing: externalTableDefinition)), extraConnectionAttributes: \(Swift.String(describing: extraConnectionAttributes)), gcpMySQLSettings: \(Swift.String(describing: gcpMySQLSettings)), ibmDb2Settings: \(Swift.String(describing: ibmDb2Settings)), kafkaSettings: \(Swift.String(describing: kafkaSettings)), kinesisSettings: \(Swift.String(describing: kinesisSettings)), kmsKeyId: \(Swift.String(describing: kmsKeyId)), microsoftSQLServerSettings: \(Swift.String(describing: microsoftSQLServerSettings)), mongoDbSettings: \(Swift.String(describing: mongoDbSettings)), mySQLSettings: \(Swift.String(describing: mySQLSettings)), neptuneSettings: \(Swift.String(describing: neptuneSettings)), oracleSettings: \(Swift.String(describing: oracleSettings)), port: \(Swift.String(describing: port)), postgreSQLSettings: \(Swift.String(describing: postgreSQLSettings)), redisSettings: \(Swift.String(describing: redisSettings)), redshiftSettings: \(Swift.String(describing: redshiftSettings)), resourceIdentifier: \(Swift.String(describing: resourceIdentifier)), s3Settings: \(Swift.String(describing: s3Settings)), serverName: \(Swift.String(describing: serverName)), serviceAccessRoleArn: \(Swift.String(describing: serviceAccessRoleArn)), sslMode: \(Swift.String(describing: sslMode)), sybaseSettings: \(Swift.String(describing: sybaseSettings)), tags: \(Swift.String(describing: tags)), username: \(Swift.String(describing: username)), password: \"CONTENT_REDACTED\")"} + "CreateEndpointInput(certificateArn: \(Swift.String(describing: certificateArn)), databaseName: \(Swift.String(describing: databaseName)), dmsTransferSettings: \(Swift.String(describing: dmsTransferSettings)), docDbSettings: \(Swift.String(describing: docDbSettings)), dynamoDbSettings: \(Swift.String(describing: dynamoDbSettings)), elasticsearchSettings: \(Swift.String(describing: elasticsearchSettings)), endpointIdentifier: \(Swift.String(describing: endpointIdentifier)), endpointType: \(Swift.String(describing: endpointType)), engineName: \(Swift.String(describing: engineName)), externalTableDefinition: \(Swift.String(describing: externalTableDefinition)), extraConnectionAttributes: \(Swift.String(describing: extraConnectionAttributes)), gcpMySQLSettings: \(Swift.String(describing: gcpMySQLSettings)), ibmDb2Settings: \(Swift.String(describing: ibmDb2Settings)), kafkaSettings: \(Swift.String(describing: kafkaSettings)), kinesisSettings: \(Swift.String(describing: kinesisSettings)), kmsKeyId: \(Swift.String(describing: kmsKeyId)), microsoftSQLServerSettings: \(Swift.String(describing: microsoftSQLServerSettings)), mongoDbSettings: \(Swift.String(describing: mongoDbSettings)), mySQLSettings: \(Swift.String(describing: mySQLSettings)), neptuneSettings: \(Swift.String(describing: neptuneSettings)), oracleSettings: \(Swift.String(describing: oracleSettings)), port: \(Swift.String(describing: port)), postgreSQLSettings: \(Swift.String(describing: postgreSQLSettings)), redisSettings: \(Swift.String(describing: redisSettings)), redshiftSettings: \(Swift.String(describing: redshiftSettings)), resourceIdentifier: \(Swift.String(describing: resourceIdentifier)), s3Settings: \(Swift.String(describing: s3Settings)), serverName: \(Swift.String(describing: serverName)), serviceAccessRoleArn: \(Swift.String(describing: serviceAccessRoleArn)), sslMode: \(Swift.String(describing: sslMode)), sybaseSettings: \(Swift.String(describing: sybaseSettings)), tags: \(Swift.String(describing: tags)), timestreamSettings: \(Swift.String(describing: timestreamSettings)), username: \(Swift.String(describing: username)), password: \"CONTENT_REDACTED\")"} } extension CreateEndpointInput: Swift.Encodable { @@ -1450,6 +1577,7 @@ extension CreateEndpointInput: Swift.Encodable { case sslMode = "SslMode" case sybaseSettings = "SybaseSettings" case tags = "Tags" + case timestreamSettings = "TimestreamSettings" case username = "Username" } @@ -1557,6 +1685,9 @@ extension CreateEndpointInput: Swift.Encodable { try tagsContainer.encode(tag0) } } + if let timestreamSettings = self.timestreamSettings { + try encodeContainer.encode(timestreamSettings, forKey: .timestreamSettings) + } if let username = self.username { try encodeContainer.encode(username, forKey: .username) } @@ -1647,6 +1778,8 @@ public struct CreateEndpointInput: Swift.Equatable { public var sybaseSettings: DatabaseMigrationClientTypes.SybaseSettings? /// One or more tags to be assigned to the endpoint. public var tags: [DatabaseMigrationClientTypes.Tag]? + /// Settings in JSON format for the target Amazon Timestream endpoint. + public var timestreamSettings: DatabaseMigrationClientTypes.TimestreamSettings? /// The user name to be used to log in to the endpoint database. public var username: Swift.String? @@ -1684,6 +1817,7 @@ public struct CreateEndpointInput: Swift.Equatable { sslMode: DatabaseMigrationClientTypes.DmsSslModeValue? = nil, sybaseSettings: DatabaseMigrationClientTypes.SybaseSettings? = nil, tags: [DatabaseMigrationClientTypes.Tag]? = nil, + timestreamSettings: DatabaseMigrationClientTypes.TimestreamSettings? = nil, username: Swift.String? = nil ) { @@ -1720,6 +1854,7 @@ public struct CreateEndpointInput: Swift.Equatable { self.sslMode = sslMode self.sybaseSettings = sybaseSettings self.tags = tags + self.timestreamSettings = timestreamSettings self.username = username } } @@ -1759,6 +1894,7 @@ struct CreateEndpointInputBody: Swift.Equatable { let docDbSettings: DatabaseMigrationClientTypes.DocDbSettings? let redisSettings: DatabaseMigrationClientTypes.RedisSettings? let gcpMySQLSettings: DatabaseMigrationClientTypes.GcpMySQLSettings? + let timestreamSettings: DatabaseMigrationClientTypes.TimestreamSettings? } extension CreateEndpointInputBody: Swift.Decodable { @@ -1796,6 +1932,7 @@ extension CreateEndpointInputBody: Swift.Decodable { case sslMode = "SslMode" case sybaseSettings = "SybaseSettings" case tags = "Tags" + case timestreamSettings = "TimestreamSettings" case username = "Username" } @@ -1878,6 +2015,8 @@ extension CreateEndpointInputBody: Swift.Decodable { redisSettings = redisSettingsDecoded let gcpMySQLSettingsDecoded = try containerValues.decodeIfPresent(DatabaseMigrationClientTypes.GcpMySQLSettings.self, forKey: .gcpMySQLSettings) gcpMySQLSettings = gcpMySQLSettingsDecoded + let timestreamSettingsDecoded = try containerValues.decodeIfPresent(DatabaseMigrationClientTypes.TimestreamSettings.self, forKey: .timestreamSettings) + timestreamSettings = timestreamSettingsDecoded } } @@ -2339,6 +2478,245 @@ extension CreateFleetAdvisorCollectorOutputResponseBody: Swift.Decodable { } } +extension CreateReplicationConfigInput: Swift.Encodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case computeConfig = "ComputeConfig" + case replicationConfigIdentifier = "ReplicationConfigIdentifier" + case replicationSettings = "ReplicationSettings" + case replicationType = "ReplicationType" + case resourceIdentifier = "ResourceIdentifier" + case sourceEndpointArn = "SourceEndpointArn" + case supplementalSettings = "SupplementalSettings" + case tableMappings = "TableMappings" + case tags = "Tags" + case targetEndpointArn = "TargetEndpointArn" + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let computeConfig = self.computeConfig { + try encodeContainer.encode(computeConfig, forKey: .computeConfig) + } + if let replicationConfigIdentifier = self.replicationConfigIdentifier { + try encodeContainer.encode(replicationConfigIdentifier, forKey: .replicationConfigIdentifier) + } + if let replicationSettings = self.replicationSettings { + try encodeContainer.encode(replicationSettings, forKey: .replicationSettings) + } + if let replicationType = self.replicationType { + try encodeContainer.encode(replicationType.rawValue, forKey: .replicationType) + } + if let resourceIdentifier = self.resourceIdentifier { + try encodeContainer.encode(resourceIdentifier, forKey: .resourceIdentifier) + } + if let sourceEndpointArn = self.sourceEndpointArn { + try encodeContainer.encode(sourceEndpointArn, forKey: .sourceEndpointArn) + } + if let supplementalSettings = self.supplementalSettings { + try encodeContainer.encode(supplementalSettings, forKey: .supplementalSettings) + } + if let tableMappings = self.tableMappings { + try encodeContainer.encode(tableMappings, forKey: .tableMappings) + } + if let tags = tags { + var tagsContainer = encodeContainer.nestedUnkeyedContainer(forKey: .tags) + for tag0 in tags { + try tagsContainer.encode(tag0) + } + } + if let targetEndpointArn = self.targetEndpointArn { + try encodeContainer.encode(targetEndpointArn, forKey: .targetEndpointArn) + } + } +} + +extension CreateReplicationConfigInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + return "/" + } +} + +/// +public struct CreateReplicationConfigInput: Swift.Equatable { + /// Configuration parameters for provisioning an DMS Serverless replication. + /// This member is required. + public var computeConfig: DatabaseMigrationClientTypes.ComputeConfig? + /// A unique identifier that you want to use to create a ReplicationConfigArn that is returned as part of the output from this action. You can then pass this output ReplicationConfigArn as the value of the ReplicationConfigArn option for other actions to identify both DMS Serverless replications and replication configurations that you want those actions to operate on. For some actions, you can also use either this unique identifier or a corresponding ARN in action filters to identify the specific replication and replication configuration to operate on. + /// This member is required. + public var replicationConfigIdentifier: Swift.String? + /// Optional JSON settings for DMS Serverless replications that are provisioned using this replication configuration. For example, see [ Change processing tuning settings](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TaskSettings.ChangeProcessingTuning.html). + public var replicationSettings: Swift.String? + /// The type of DMS Serverless replication to provision using this replication configuration. Possible values: + /// + /// * "full-load" + /// + /// * "cdc" + /// + /// * "full-load-and-cdc" + /// This member is required. + public var replicationType: DatabaseMigrationClientTypes.MigrationTypeValue? + /// Optional unique value or name that you set for a given resource that can be used to construct an Amazon Resource Name (ARN) for that resource. For more information, see [ Fine-grained access control using resource names and tags](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#CHAP_Security.FineGrainedAccess). + public var resourceIdentifier: Swift.String? + /// The Amazon Resource Name (ARN) of the source endpoint for this DMS Serverless replication configuration. + /// This member is required. + public var sourceEndpointArn: Swift.String? + /// Optional JSON settings for specifying supplemental data. For more information, see [ Specifying supplemental data for task settings](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.TaskData.html). + public var supplementalSettings: Swift.String? + /// JSON table mappings for DMS Serverless replications that are provisioned using this replication configuration. For more information, see [ Specifying table selection and transformations rules using JSON](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.html). + /// This member is required. + public var tableMappings: Swift.String? + /// One or more optional tags associated with resources used by the DMS Serverless replication. For more information, see [ Tagging resources in Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tagging.html). + public var tags: [DatabaseMigrationClientTypes.Tag]? + /// The Amazon Resource Name (ARN) of the target endpoint for this DMS serverless replication configuration. + /// This member is required. + public var targetEndpointArn: Swift.String? + + public init( + computeConfig: DatabaseMigrationClientTypes.ComputeConfig? = nil, + replicationConfigIdentifier: Swift.String? = nil, + replicationSettings: Swift.String? = nil, + replicationType: DatabaseMigrationClientTypes.MigrationTypeValue? = nil, + resourceIdentifier: Swift.String? = nil, + sourceEndpointArn: Swift.String? = nil, + supplementalSettings: Swift.String? = nil, + tableMappings: Swift.String? = nil, + tags: [DatabaseMigrationClientTypes.Tag]? = nil, + targetEndpointArn: Swift.String? = nil + ) + { + self.computeConfig = computeConfig + self.replicationConfigIdentifier = replicationConfigIdentifier + self.replicationSettings = replicationSettings + self.replicationType = replicationType + self.resourceIdentifier = resourceIdentifier + self.sourceEndpointArn = sourceEndpointArn + self.supplementalSettings = supplementalSettings + self.tableMappings = tableMappings + self.tags = tags + self.targetEndpointArn = targetEndpointArn + } +} + +struct CreateReplicationConfigInputBody: Swift.Equatable { + let replicationConfigIdentifier: Swift.String? + let sourceEndpointArn: Swift.String? + let targetEndpointArn: Swift.String? + let computeConfig: DatabaseMigrationClientTypes.ComputeConfig? + let replicationType: DatabaseMigrationClientTypes.MigrationTypeValue? + let tableMappings: Swift.String? + let replicationSettings: Swift.String? + let supplementalSettings: Swift.String? + let resourceIdentifier: Swift.String? + let tags: [DatabaseMigrationClientTypes.Tag]? +} + +extension CreateReplicationConfigInputBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case computeConfig = "ComputeConfig" + case replicationConfigIdentifier = "ReplicationConfigIdentifier" + case replicationSettings = "ReplicationSettings" + case replicationType = "ReplicationType" + case resourceIdentifier = "ResourceIdentifier" + case sourceEndpointArn = "SourceEndpointArn" + case supplementalSettings = "SupplementalSettings" + case tableMappings = "TableMappings" + case tags = "Tags" + case targetEndpointArn = "TargetEndpointArn" + } + + public init(from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let replicationConfigIdentifierDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .replicationConfigIdentifier) + replicationConfigIdentifier = replicationConfigIdentifierDecoded + let sourceEndpointArnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .sourceEndpointArn) + sourceEndpointArn = sourceEndpointArnDecoded + let targetEndpointArnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .targetEndpointArn) + targetEndpointArn = targetEndpointArnDecoded + let computeConfigDecoded = try containerValues.decodeIfPresent(DatabaseMigrationClientTypes.ComputeConfig.self, forKey: .computeConfig) + computeConfig = computeConfigDecoded + let replicationTypeDecoded = try containerValues.decodeIfPresent(DatabaseMigrationClientTypes.MigrationTypeValue.self, forKey: .replicationType) + replicationType = replicationTypeDecoded + let tableMappingsDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .tableMappings) + tableMappings = tableMappingsDecoded + let replicationSettingsDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .replicationSettings) + replicationSettings = replicationSettingsDecoded + let supplementalSettingsDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .supplementalSettings) + supplementalSettings = supplementalSettingsDecoded + let resourceIdentifierDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .resourceIdentifier) + resourceIdentifier = resourceIdentifierDecoded + let tagsContainer = try containerValues.decodeIfPresent([DatabaseMigrationClientTypes.Tag?].self, forKey: .tags) + var tagsDecoded0:[DatabaseMigrationClientTypes.Tag]? = nil + if let tagsContainer = tagsContainer { + tagsDecoded0 = [DatabaseMigrationClientTypes.Tag]() + for structure0 in tagsContainer { + if let structure0 = structure0 { + tagsDecoded0?.append(structure0) + } + } + } + tags = tagsDecoded0 + } +} + +public enum CreateReplicationConfigOutputError: ClientRuntime.HttpResponseErrorBinding { + public static func makeError(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) async throws -> Swift.Error { + let restJSONError = try await AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.requestId + switch restJSONError.errorType { + case "AccessDeniedFault": return try await AccessDeniedFault(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "InvalidResourceStateFault": return try await InvalidResourceStateFault(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "InvalidSubnet": return try await InvalidSubnet(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "KMSKeyNotAccessibleFault": return try await KMSKeyNotAccessibleFault(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "ReplicationSubnetGroupDoesNotCoverEnoughAZs": return try await ReplicationSubnetGroupDoesNotCoverEnoughAZs(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "ResourceAlreadyExistsFault": return try await ResourceAlreadyExistsFault(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "ResourceNotFoundFault": return try await ResourceNotFoundFault(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "ResourceQuotaExceededFault": return try await ResourceQuotaExceededFault(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + default: return try await AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(httpResponse: httpResponse, message: restJSONError.errorMessage, requestID: requestID, typeName: restJSONError.errorType) + } + } +} + +extension CreateReplicationConfigOutputResponse: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) async throws { + if let data = try await httpResponse.body.readData(), + let responseDecoder = decoder { + let output: CreateReplicationConfigOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.replicationConfig = output.replicationConfig + } else { + self.replicationConfig = nil + } + } +} + +/// +public struct CreateReplicationConfigOutputResponse: Swift.Equatable { + /// Configuration parameters returned from the DMS Serverless replication after it is created. + public var replicationConfig: DatabaseMigrationClientTypes.ReplicationConfig? + + public init( + replicationConfig: DatabaseMigrationClientTypes.ReplicationConfig? = nil + ) + { + self.replicationConfig = replicationConfig + } +} + +struct CreateReplicationConfigOutputResponseBody: Swift.Equatable { + let replicationConfig: DatabaseMigrationClientTypes.ReplicationConfig? +} + +extension CreateReplicationConfigOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case replicationConfig = "ReplicationConfig" + } + + public init(from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let replicationConfigDecoded = try containerValues.decodeIfPresent(DatabaseMigrationClientTypes.ReplicationConfig.self, forKey: .replicationConfig) + replicationConfig = replicationConfigDecoded + } +} + extension CreateReplicationInstanceInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { case allocatedStorage = "AllocatedStorage" @@ -2430,7 +2808,7 @@ public struct CreateReplicationInstanceInput: Swift.Equatable { public var allocatedStorage: Swift.Int? /// A value that indicates whether minor engine upgrades are applied automatically to the replication instance during the maintenance window. This parameter defaults to true. Default: true When AutoMinorVersionUpgrade is enabled, DMS uses the current default engine version when you create a replication instance. For example, if you set EngineVersion to a lower version number than the current default version, DMS uses the default version. If AutoMinorVersionUpgrade isn’t enabled when you create a replication instance, DMS uses the engine version specified by the EngineVersion parameter. public var autoMinorVersionUpgrade: Swift.Bool? - /// The Availability Zone where the replication instance will be created. The default value is a random, system-chosen Availability Zone in the endpoint's Amazon Web Services Region, for example: us-east-1d + /// The Availability Zone where the replication instance will be created. The default value is a random, system-chosen Availability Zone in the endpoint's Amazon Web Services Region, for example: us-east-1d. public var availabilityZone: Swift.String? /// A list of custom DNS name servers supported for the replication instance to access your on-premise source or target database. This list overrides the default name servers supported by the replication instance. You can specify a comma-separated list of internet addresses for up to four on-premise DNS name servers. For example: "1.1.1.1,2.2.2.2,3.3.3.3,4.4.4.4" public var dnsNameServers: Swift.String? @@ -2446,7 +2824,7 @@ public struct CreateReplicationInstanceInput: Swift.Equatable { public var preferredMaintenanceWindow: Swift.String? /// Specifies the accessibility options for the replication instance. A value of true represents an instance with a public IP address. A value of false represents an instance with a private IP address. The default value is true. public var publiclyAccessible: Swift.Bool? - /// The compute and memory capacity of the replication instance as defined for the specified replication instance class. For example to specify the instance class dms.c4.large, set this parameter to "dms.c4.large". For more information on the settings and capacities for the available replication instance classes, see [ Selecting the right DMS replication instance for your migration](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.html#CHAP_ReplicationInstance.InDepth). + /// The compute and memory capacity of the replication instance as defined for the specified replication instance class. For example to specify the instance class dms.c4.large, set this parameter to "dms.c4.large". For more information on the settings and capacities for the available replication instance classes, see [ Choosing the right DMS replication instance](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.Types.html); and, [Selecting the best size for a replication instance](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_BestPractices.SizingReplicationInstance.html). /// This member is required. public var replicationInstanceClass: Swift.String? /// The replication instance identifier. This parameter is stored as a lowercase string. Constraints: @@ -4093,41 +4471,144 @@ extension DeleteFleetAdvisorDatabasesOutputResponseBody: Swift.Decodable { } } -extension DeleteReplicationInstanceInput: Swift.Encodable { +extension DeleteReplicationConfigInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { - case replicationInstanceArn = "ReplicationInstanceArn" + case replicationConfigArn = "ReplicationConfigArn" } public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) - if let replicationInstanceArn = self.replicationInstanceArn { - try encodeContainer.encode(replicationInstanceArn, forKey: .replicationInstanceArn) + if let replicationConfigArn = self.replicationConfigArn { + try encodeContainer.encode(replicationConfigArn, forKey: .replicationConfigArn) } } } -extension DeleteReplicationInstanceInput: ClientRuntime.URLPathProvider { +extension DeleteReplicationConfigInput: ClientRuntime.URLPathProvider { public var urlPath: Swift.String? { return "/" } } /// -public struct DeleteReplicationInstanceInput: Swift.Equatable { - /// The Amazon Resource Name (ARN) of the replication instance to be deleted. +public struct DeleteReplicationConfigInput: Swift.Equatable { + /// The replication config to delete. /// This member is required. - public var replicationInstanceArn: Swift.String? + public var replicationConfigArn: Swift.String? public init( - replicationInstanceArn: Swift.String? = nil + replicationConfigArn: Swift.String? = nil ) { - self.replicationInstanceArn = replicationInstanceArn + self.replicationConfigArn = replicationConfigArn } } -struct DeleteReplicationInstanceInputBody: Swift.Equatable { - let replicationInstanceArn: Swift.String? +struct DeleteReplicationConfigInputBody: Swift.Equatable { + let replicationConfigArn: Swift.String? +} + +extension DeleteReplicationConfigInputBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case replicationConfigArn = "ReplicationConfigArn" + } + + public init(from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let replicationConfigArnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .replicationConfigArn) + replicationConfigArn = replicationConfigArnDecoded + } +} + +public enum DeleteReplicationConfigOutputError: ClientRuntime.HttpResponseErrorBinding { + public static func makeError(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) async throws -> Swift.Error { + let restJSONError = try await AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.requestId + switch restJSONError.errorType { + case "AccessDeniedFault": return try await AccessDeniedFault(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "InvalidResourceStateFault": return try await InvalidResourceStateFault(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "ResourceNotFoundFault": return try await ResourceNotFoundFault(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + default: return try await AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(httpResponse: httpResponse, message: restJSONError.errorMessage, requestID: requestID, typeName: restJSONError.errorType) + } + } +} + +extension DeleteReplicationConfigOutputResponse: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) async throws { + if let data = try await httpResponse.body.readData(), + let responseDecoder = decoder { + let output: DeleteReplicationConfigOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.replicationConfig = output.replicationConfig + } else { + self.replicationConfig = nil + } + } +} + +/// +public struct DeleteReplicationConfigOutputResponse: Swift.Equatable { + /// Configuration parameters returned for the DMS Serverless replication after it is deleted. + public var replicationConfig: DatabaseMigrationClientTypes.ReplicationConfig? + + public init( + replicationConfig: DatabaseMigrationClientTypes.ReplicationConfig? = nil + ) + { + self.replicationConfig = replicationConfig + } +} + +struct DeleteReplicationConfigOutputResponseBody: Swift.Equatable { + let replicationConfig: DatabaseMigrationClientTypes.ReplicationConfig? +} + +extension DeleteReplicationConfigOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case replicationConfig = "ReplicationConfig" + } + + public init(from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let replicationConfigDecoded = try containerValues.decodeIfPresent(DatabaseMigrationClientTypes.ReplicationConfig.self, forKey: .replicationConfig) + replicationConfig = replicationConfigDecoded + } +} + +extension DeleteReplicationInstanceInput: Swift.Encodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case replicationInstanceArn = "ReplicationInstanceArn" + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let replicationInstanceArn = self.replicationInstanceArn { + try encodeContainer.encode(replicationInstanceArn, forKey: .replicationInstanceArn) + } + } +} + +extension DeleteReplicationInstanceInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + return "/" + } +} + +/// +public struct DeleteReplicationInstanceInput: Swift.Equatable { + /// The Amazon Resource Name (ARN) of the replication instance to be deleted. + /// This member is required. + public var replicationInstanceArn: Swift.String? + + public init( + replicationInstanceArn: Swift.String? = nil + ) + { + self.replicationInstanceArn = replicationInstanceArn + } +} + +struct DeleteReplicationInstanceInputBody: Swift.Equatable { + let replicationInstanceArn: Swift.String? } extension DeleteReplicationInstanceInputBody: Swift.Decodable { @@ -5100,7 +5581,7 @@ extension DescribeEndpointSettingsInput: ClientRuntime.URLPathProvider { } public struct DescribeEndpointSettingsInput: Swift.Equatable { - /// The databse engine used for your source or target endpoint. + /// The database engine used for your source or target endpoint. /// This member is required. public var engineName: Swift.String? /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. @@ -7555,6 +8036,161 @@ extension DescribeRefreshSchemasStatusOutputResponseBody: Swift.Decodable { } } +extension DescribeReplicationConfigsInput: Swift.Encodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case filters = "Filters" + case marker = "Marker" + case maxRecords = "MaxRecords" + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let filters = filters { + var filtersContainer = encodeContainer.nestedUnkeyedContainer(forKey: .filters) + for filter0 in filters { + try filtersContainer.encode(filter0) + } + } + if let marker = self.marker { + try encodeContainer.encode(marker, forKey: .marker) + } + if let maxRecords = self.maxRecords { + try encodeContainer.encode(maxRecords, forKey: .maxRecords) + } + } +} + +extension DescribeReplicationConfigsInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + return "/" + } +} + +/// +public struct DescribeReplicationConfigsInput: Swift.Equatable { + /// Filters applied to the replication configs. + public var filters: [DatabaseMigrationClientTypes.Filter]? + /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. + public var marker: Swift.String? + /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. + public var maxRecords: Swift.Int? + + public init( + filters: [DatabaseMigrationClientTypes.Filter]? = nil, + marker: Swift.String? = nil, + maxRecords: Swift.Int? = nil + ) + { + self.filters = filters + self.marker = marker + self.maxRecords = maxRecords + } +} + +struct DescribeReplicationConfigsInputBody: Swift.Equatable { + let filters: [DatabaseMigrationClientTypes.Filter]? + let maxRecords: Swift.Int? + let marker: Swift.String? +} + +extension DescribeReplicationConfigsInputBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case filters = "Filters" + case marker = "Marker" + case maxRecords = "MaxRecords" + } + + public init(from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let filtersContainer = try containerValues.decodeIfPresent([DatabaseMigrationClientTypes.Filter?].self, forKey: .filters) + var filtersDecoded0:[DatabaseMigrationClientTypes.Filter]? = nil + if let filtersContainer = filtersContainer { + filtersDecoded0 = [DatabaseMigrationClientTypes.Filter]() + for structure0 in filtersContainer { + if let structure0 = structure0 { + filtersDecoded0?.append(structure0) + } + } + } + filters = filtersDecoded0 + let maxRecordsDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .maxRecords) + maxRecords = maxRecordsDecoded + let markerDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .marker) + marker = markerDecoded + } +} + +public enum DescribeReplicationConfigsOutputError: ClientRuntime.HttpResponseErrorBinding { + public static func makeError(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) async throws -> Swift.Error { + let restJSONError = try await AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.requestId + switch restJSONError.errorType { + case "ResourceNotFoundFault": return try await ResourceNotFoundFault(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + default: return try await AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(httpResponse: httpResponse, message: restJSONError.errorMessage, requestID: requestID, typeName: restJSONError.errorType) + } + } +} + +extension DescribeReplicationConfigsOutputResponse: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) async throws { + if let data = try await httpResponse.body.readData(), + let responseDecoder = decoder { + let output: DescribeReplicationConfigsOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.marker = output.marker + self.replicationConfigs = output.replicationConfigs + } else { + self.marker = nil + self.replicationConfigs = nil + } + } +} + +/// +public struct DescribeReplicationConfigsOutputResponse: Swift.Equatable { + /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. + public var marker: Swift.String? + /// Returned configuration parameters that describe each provisioned DMS Serverless replication. + public var replicationConfigs: [DatabaseMigrationClientTypes.ReplicationConfig]? + + public init( + marker: Swift.String? = nil, + replicationConfigs: [DatabaseMigrationClientTypes.ReplicationConfig]? = nil + ) + { + self.marker = marker + self.replicationConfigs = replicationConfigs + } +} + +struct DescribeReplicationConfigsOutputResponseBody: Swift.Equatable { + let marker: Swift.String? + let replicationConfigs: [DatabaseMigrationClientTypes.ReplicationConfig]? +} + +extension DescribeReplicationConfigsOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case marker = "Marker" + case replicationConfigs = "ReplicationConfigs" + } + + public init(from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let markerDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .marker) + marker = markerDecoded + let replicationConfigsContainer = try containerValues.decodeIfPresent([DatabaseMigrationClientTypes.ReplicationConfig?].self, forKey: .replicationConfigs) + var replicationConfigsDecoded0:[DatabaseMigrationClientTypes.ReplicationConfig]? = nil + if let replicationConfigsContainer = replicationConfigsContainer { + replicationConfigsDecoded0 = [DatabaseMigrationClientTypes.ReplicationConfig]() + for structure0 in replicationConfigsContainer { + if let structure0 = structure0 { + replicationConfigsDecoded0?.append(structure0) + } + } + } + replicationConfigs = replicationConfigsDecoded0 + } +} + extension DescribeReplicationInstanceTaskLogsInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { case marker = "Marker" @@ -8018,90 +8654,269 @@ extension DescribeReplicationSubnetGroupsOutputResponseBody: Swift.Decodable { } } -extension DescribeReplicationTaskAssessmentResultsInput: Swift.Encodable { +extension DescribeReplicationTableStatisticsInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case filters = "Filters" case marker = "Marker" case maxRecords = "MaxRecords" - case replicationTaskArn = "ReplicationTaskArn" + case replicationConfigArn = "ReplicationConfigArn" } public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let filters = filters { + var filtersContainer = encodeContainer.nestedUnkeyedContainer(forKey: .filters) + for filter0 in filters { + try filtersContainer.encode(filter0) + } + } if let marker = self.marker { try encodeContainer.encode(marker, forKey: .marker) } if let maxRecords = self.maxRecords { try encodeContainer.encode(maxRecords, forKey: .maxRecords) } - if let replicationTaskArn = self.replicationTaskArn { - try encodeContainer.encode(replicationTaskArn, forKey: .replicationTaskArn) + if let replicationConfigArn = self.replicationConfigArn { + try encodeContainer.encode(replicationConfigArn, forKey: .replicationConfigArn) } } } -extension DescribeReplicationTaskAssessmentResultsInput: ClientRuntime.URLPathProvider { +extension DescribeReplicationTableStatisticsInput: ClientRuntime.URLPathProvider { public var urlPath: Swift.String? { return "/" } } /// -public struct DescribeReplicationTaskAssessmentResultsInput: Swift.Equatable { +public struct DescribeReplicationTableStatisticsInput: Swift.Equatable { + /// Filters applied to the replication table statistics. + public var filters: [DatabaseMigrationClientTypes.Filter]? /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. public var marker: Swift.String? - /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100. + /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. public var maxRecords: Swift.Int? - /// The Amazon Resource Name (ARN) string that uniquely identifies the task. When this input parameter is specified, the API returns only one result and ignore the values of the MaxRecords and Marker parameters. - public var replicationTaskArn: Swift.String? + /// The replication config to describe. + /// This member is required. + public var replicationConfigArn: Swift.String? public init( + filters: [DatabaseMigrationClientTypes.Filter]? = nil, marker: Swift.String? = nil, maxRecords: Swift.Int? = nil, - replicationTaskArn: Swift.String? = nil + replicationConfigArn: Swift.String? = nil ) { + self.filters = filters self.marker = marker self.maxRecords = maxRecords - self.replicationTaskArn = replicationTaskArn + self.replicationConfigArn = replicationConfigArn } } -struct DescribeReplicationTaskAssessmentResultsInputBody: Swift.Equatable { - let replicationTaskArn: Swift.String? +struct DescribeReplicationTableStatisticsInputBody: Swift.Equatable { + let replicationConfigArn: Swift.String? let maxRecords: Swift.Int? let marker: Swift.String? + let filters: [DatabaseMigrationClientTypes.Filter]? } -extension DescribeReplicationTaskAssessmentResultsInputBody: Swift.Decodable { +extension DescribeReplicationTableStatisticsInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case filters = "Filters" case marker = "Marker" case maxRecords = "MaxRecords" - case replicationTaskArn = "ReplicationTaskArn" + case replicationConfigArn = "ReplicationConfigArn" } public init(from decoder: Swift.Decoder) throws { let containerValues = try decoder.container(keyedBy: CodingKeys.self) - let replicationTaskArnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .replicationTaskArn) - replicationTaskArn = replicationTaskArnDecoded + let replicationConfigArnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .replicationConfigArn) + replicationConfigArn = replicationConfigArnDecoded let maxRecordsDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .maxRecords) maxRecords = maxRecordsDecoded let markerDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .marker) marker = markerDecoded + let filtersContainer = try containerValues.decodeIfPresent([DatabaseMigrationClientTypes.Filter?].self, forKey: .filters) + var filtersDecoded0:[DatabaseMigrationClientTypes.Filter]? = nil + if let filtersContainer = filtersContainer { + filtersDecoded0 = [DatabaseMigrationClientTypes.Filter]() + for structure0 in filtersContainer { + if let structure0 = structure0 { + filtersDecoded0?.append(structure0) + } + } + } + filters = filtersDecoded0 } } -public enum DescribeReplicationTaskAssessmentResultsOutputError: ClientRuntime.HttpResponseErrorBinding { +public enum DescribeReplicationTableStatisticsOutputError: ClientRuntime.HttpResponseErrorBinding { public static func makeError(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) async throws -> Swift.Error { let restJSONError = try await AWSClientRuntime.RestJSONError(httpResponse: httpResponse) let requestID = httpResponse.requestId switch restJSONError.errorType { + case "InvalidResourceStateFault": return try await InvalidResourceStateFault(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "ResourceNotFoundFault": return try await ResourceNotFoundFault(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) default: return try await AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(httpResponse: httpResponse, message: restJSONError.errorMessage, requestID: requestID, typeName: restJSONError.errorType) } } } -extension DescribeReplicationTaskAssessmentResultsOutputResponse: ClientRuntime.HttpResponseBinding { +extension DescribeReplicationTableStatisticsOutputResponse: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) async throws { + if let data = try await httpResponse.body.readData(), + let responseDecoder = decoder { + let output: DescribeReplicationTableStatisticsOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.marker = output.marker + self.replicationConfigArn = output.replicationConfigArn + self.replicationTableStatistics = output.replicationTableStatistics + } else { + self.marker = nil + self.replicationConfigArn = nil + self.replicationTableStatistics = nil + } + } +} + +/// +public struct DescribeReplicationTableStatisticsOutputResponse: Swift.Equatable { + /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. + public var marker: Swift.String? + /// The Amazon Resource Name of the replication config. + public var replicationConfigArn: Swift.String? + /// Returns table statistics on the replication, including table name, rows inserted, rows updated, and rows deleted. + public var replicationTableStatistics: [DatabaseMigrationClientTypes.TableStatistics]? + + public init( + marker: Swift.String? = nil, + replicationConfigArn: Swift.String? = nil, + replicationTableStatistics: [DatabaseMigrationClientTypes.TableStatistics]? = nil + ) + { + self.marker = marker + self.replicationConfigArn = replicationConfigArn + self.replicationTableStatistics = replicationTableStatistics + } +} + +struct DescribeReplicationTableStatisticsOutputResponseBody: Swift.Equatable { + let replicationConfigArn: Swift.String? + let marker: Swift.String? + let replicationTableStatistics: [DatabaseMigrationClientTypes.TableStatistics]? +} + +extension DescribeReplicationTableStatisticsOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case marker = "Marker" + case replicationConfigArn = "ReplicationConfigArn" + case replicationTableStatistics = "ReplicationTableStatistics" + } + + public init(from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let replicationConfigArnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .replicationConfigArn) + replicationConfigArn = replicationConfigArnDecoded + let markerDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .marker) + marker = markerDecoded + let replicationTableStatisticsContainer = try containerValues.decodeIfPresent([DatabaseMigrationClientTypes.TableStatistics?].self, forKey: .replicationTableStatistics) + var replicationTableStatisticsDecoded0:[DatabaseMigrationClientTypes.TableStatistics]? = nil + if let replicationTableStatisticsContainer = replicationTableStatisticsContainer { + replicationTableStatisticsDecoded0 = [DatabaseMigrationClientTypes.TableStatistics]() + for structure0 in replicationTableStatisticsContainer { + if let structure0 = structure0 { + replicationTableStatisticsDecoded0?.append(structure0) + } + } + } + replicationTableStatistics = replicationTableStatisticsDecoded0 + } +} + +extension DescribeReplicationTaskAssessmentResultsInput: Swift.Encodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case marker = "Marker" + case maxRecords = "MaxRecords" + case replicationTaskArn = "ReplicationTaskArn" + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let marker = self.marker { + try encodeContainer.encode(marker, forKey: .marker) + } + if let maxRecords = self.maxRecords { + try encodeContainer.encode(maxRecords, forKey: .maxRecords) + } + if let replicationTaskArn = self.replicationTaskArn { + try encodeContainer.encode(replicationTaskArn, forKey: .replicationTaskArn) + } + } +} + +extension DescribeReplicationTaskAssessmentResultsInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + return "/" + } +} + +/// +public struct DescribeReplicationTaskAssessmentResultsInput: Swift.Equatable { + /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. + public var marker: Swift.String? + /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. Default: 100 Constraints: Minimum 20, maximum 100. + public var maxRecords: Swift.Int? + /// The Amazon Resource Name (ARN) string that uniquely identifies the task. When this input parameter is specified, the API returns only one result and ignore the values of the MaxRecords and Marker parameters. + public var replicationTaskArn: Swift.String? + + public init( + marker: Swift.String? = nil, + maxRecords: Swift.Int? = nil, + replicationTaskArn: Swift.String? = nil + ) + { + self.marker = marker + self.maxRecords = maxRecords + self.replicationTaskArn = replicationTaskArn + } +} + +struct DescribeReplicationTaskAssessmentResultsInputBody: Swift.Equatable { + let replicationTaskArn: Swift.String? + let maxRecords: Swift.Int? + let marker: Swift.String? +} + +extension DescribeReplicationTaskAssessmentResultsInputBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case marker = "Marker" + case maxRecords = "MaxRecords" + case replicationTaskArn = "ReplicationTaskArn" + } + + public init(from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let replicationTaskArnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .replicationTaskArn) + replicationTaskArn = replicationTaskArnDecoded + let maxRecordsDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .maxRecords) + maxRecords = maxRecordsDecoded + let markerDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .marker) + marker = markerDecoded + } +} + +public enum DescribeReplicationTaskAssessmentResultsOutputError: ClientRuntime.HttpResponseErrorBinding { + public static func makeError(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) async throws -> Swift.Error { + let restJSONError = try await AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.requestId + switch restJSONError.errorType { + case "ResourceNotFoundFault": return try await ResourceNotFoundFault(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + default: return try await AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(httpResponse: httpResponse, message: restJSONError.errorMessage, requestID: requestID, typeName: restJSONError.errorType) + } + } +} + +extension DescribeReplicationTaskAssessmentResultsOutputResponse: ClientRuntime.HttpResponseBinding { public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) async throws { if let data = try await httpResponse.body.readData(), let responseDecoder = decoder { @@ -8648,6 +9463,161 @@ extension DescribeReplicationTasksOutputResponseBody: Swift.Decodable { } } +extension DescribeReplicationsInput: Swift.Encodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case filters = "Filters" + case marker = "Marker" + case maxRecords = "MaxRecords" + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let filters = filters { + var filtersContainer = encodeContainer.nestedUnkeyedContainer(forKey: .filters) + for filter0 in filters { + try filtersContainer.encode(filter0) + } + } + if let marker = self.marker { + try encodeContainer.encode(marker, forKey: .marker) + } + if let maxRecords = self.maxRecords { + try encodeContainer.encode(maxRecords, forKey: .maxRecords) + } + } +} + +extension DescribeReplicationsInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + return "/" + } +} + +/// +public struct DescribeReplicationsInput: Swift.Equatable { + /// Filters applied to the replications. + public var filters: [DatabaseMigrationClientTypes.Filter]? + /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. + public var marker: Swift.String? + /// The maximum number of records to include in the response. If more records exist than the specified MaxRecords value, a pagination token called a marker is included in the response so that the remaining results can be retrieved. + public var maxRecords: Swift.Int? + + public init( + filters: [DatabaseMigrationClientTypes.Filter]? = nil, + marker: Swift.String? = nil, + maxRecords: Swift.Int? = nil + ) + { + self.filters = filters + self.marker = marker + self.maxRecords = maxRecords + } +} + +struct DescribeReplicationsInputBody: Swift.Equatable { + let filters: [DatabaseMigrationClientTypes.Filter]? + let maxRecords: Swift.Int? + let marker: Swift.String? +} + +extension DescribeReplicationsInputBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case filters = "Filters" + case marker = "Marker" + case maxRecords = "MaxRecords" + } + + public init(from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let filtersContainer = try containerValues.decodeIfPresent([DatabaseMigrationClientTypes.Filter?].self, forKey: .filters) + var filtersDecoded0:[DatabaseMigrationClientTypes.Filter]? = nil + if let filtersContainer = filtersContainer { + filtersDecoded0 = [DatabaseMigrationClientTypes.Filter]() + for structure0 in filtersContainer { + if let structure0 = structure0 { + filtersDecoded0?.append(structure0) + } + } + } + filters = filtersDecoded0 + let maxRecordsDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .maxRecords) + maxRecords = maxRecordsDecoded + let markerDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .marker) + marker = markerDecoded + } +} + +public enum DescribeReplicationsOutputError: ClientRuntime.HttpResponseErrorBinding { + public static func makeError(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) async throws -> Swift.Error { + let restJSONError = try await AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.requestId + switch restJSONError.errorType { + case "ResourceNotFoundFault": return try await ResourceNotFoundFault(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + default: return try await AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(httpResponse: httpResponse, message: restJSONError.errorMessage, requestID: requestID, typeName: restJSONError.errorType) + } + } +} + +extension DescribeReplicationsOutputResponse: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) async throws { + if let data = try await httpResponse.body.readData(), + let responseDecoder = decoder { + let output: DescribeReplicationsOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.marker = output.marker + self.replications = output.replications + } else { + self.marker = nil + self.replications = nil + } + } +} + +/// +public struct DescribeReplicationsOutputResponse: Swift.Equatable { + /// An optional pagination token provided by a previous request. If this parameter is specified, the response includes only records beyond the marker, up to the value specified by MaxRecords. + public var marker: Swift.String? + /// The replication descriptions. + public var replications: [DatabaseMigrationClientTypes.Replication]? + + public init( + marker: Swift.String? = nil, + replications: [DatabaseMigrationClientTypes.Replication]? = nil + ) + { + self.marker = marker + self.replications = replications + } +} + +struct DescribeReplicationsOutputResponseBody: Swift.Equatable { + let marker: Swift.String? + let replications: [DatabaseMigrationClientTypes.Replication]? +} + +extension DescribeReplicationsOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case marker = "Marker" + case replications = "Replications" + } + + public init(from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let markerDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .marker) + marker = markerDecoded + let replicationsContainer = try containerValues.decodeIfPresent([DatabaseMigrationClientTypes.Replication?].self, forKey: .replications) + var replicationsDecoded0:[DatabaseMigrationClientTypes.Replication]? = nil + if let replicationsContainer = replicationsContainer { + replicationsDecoded0 = [DatabaseMigrationClientTypes.Replication]() + for structure0 in replicationsContainer { + if let structure0 = structure0 { + replicationsDecoded0?.append(structure0) + } + } + } + replications = replicationsDecoded0 + } +} + extension DescribeSchemasInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { case endpointArn = "EndpointArn" @@ -9064,9 +10034,11 @@ extension DatabaseMigrationClientTypes.DocDbSettings: Swift.Codable { case nestingLevel = "NestingLevel" case password = "Password" case port = "Port" + case replicateShardCollections = "ReplicateShardCollections" case secretsManagerAccessRoleArn = "SecretsManagerAccessRoleArn" case secretsManagerSecretId = "SecretsManagerSecretId" case serverName = "ServerName" + case useUpdateLookUp = "UseUpdateLookUp" case username = "Username" } @@ -9093,6 +10065,9 @@ extension DatabaseMigrationClientTypes.DocDbSettings: Swift.Codable { if let port = self.port { try encodeContainer.encode(port, forKey: .port) } + if let replicateShardCollections = self.replicateShardCollections { + try encodeContainer.encode(replicateShardCollections, forKey: .replicateShardCollections) + } if let secretsManagerAccessRoleArn = self.secretsManagerAccessRoleArn { try encodeContainer.encode(secretsManagerAccessRoleArn, forKey: .secretsManagerAccessRoleArn) } @@ -9102,6 +10077,9 @@ extension DatabaseMigrationClientTypes.DocDbSettings: Swift.Codable { if let serverName = self.serverName { try encodeContainer.encode(serverName, forKey: .serverName) } + if let useUpdateLookUp = self.useUpdateLookUp { + try encodeContainer.encode(useUpdateLookUp, forKey: .useUpdateLookUp) + } if let username = self.username { try encodeContainer.encode(username, forKey: .username) } @@ -9131,12 +10109,16 @@ extension DatabaseMigrationClientTypes.DocDbSettings: Swift.Codable { secretsManagerAccessRoleArn = secretsManagerAccessRoleArnDecoded let secretsManagerSecretIdDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .secretsManagerSecretId) secretsManagerSecretId = secretsManagerSecretIdDecoded + let useUpdateLookUpDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .useUpdateLookUp) + useUpdateLookUp = useUpdateLookUpDecoded + let replicateShardCollectionsDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .replicateShardCollections) + replicateShardCollections = replicateShardCollectionsDecoded } } extension DatabaseMigrationClientTypes.DocDbSettings: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "DocDbSettings(databaseName: \(Swift.String(describing: databaseName)), docsToInvestigate: \(Swift.String(describing: docsToInvestigate)), extractDocId: \(Swift.String(describing: extractDocId)), kmsKeyId: \(Swift.String(describing: kmsKeyId)), nestingLevel: \(Swift.String(describing: nestingLevel)), port: \(Swift.String(describing: port)), secretsManagerAccessRoleArn: \(Swift.String(describing: secretsManagerAccessRoleArn)), secretsManagerSecretId: \(Swift.String(describing: secretsManagerSecretId)), serverName: \(Swift.String(describing: serverName)), username: \(Swift.String(describing: username)), password: \"CONTENT_REDACTED\")"} + "DocDbSettings(databaseName: \(Swift.String(describing: databaseName)), docsToInvestigate: \(Swift.String(describing: docsToInvestigate)), extractDocId: \(Swift.String(describing: extractDocId)), kmsKeyId: \(Swift.String(describing: kmsKeyId)), nestingLevel: \(Swift.String(describing: nestingLevel)), port: \(Swift.String(describing: port)), replicateShardCollections: \(Swift.String(describing: replicateShardCollections)), secretsManagerAccessRoleArn: \(Swift.String(describing: secretsManagerAccessRoleArn)), secretsManagerSecretId: \(Swift.String(describing: secretsManagerSecretId)), serverName: \(Swift.String(describing: serverName)), useUpdateLookUp: \(Swift.String(describing: useUpdateLookUp)), username: \(Swift.String(describing: username)), password: \"CONTENT_REDACTED\")"} } extension DatabaseMigrationClientTypes { @@ -9156,12 +10138,20 @@ extension DatabaseMigrationClientTypes { public var password: Swift.String? /// The port value for the DocumentDB source endpoint. public var port: Swift.Int? + /// If true, DMS replicates data to shard collections. DMS only uses this setting if the target endpoint is a DocumentDB elastic cluster. When this setting is true, note the following: + /// + /// * You must set TargetTablePrepMode to nothing. + /// + /// * DMS automatically sets useUpdateLookup to false. + public var replicateShardCollections: Swift.Bool? /// The full Amazon Resource Name (ARN) of the IAM role that specifies DMS as the trusted entity and grants the required permissions to access the value in SecretsManagerSecret. The role must allow the iam:PassRole action. SecretsManagerSecret has the value of the Amazon Web Services Secrets Manager secret that allows access to the DocumentDB endpoint. You can specify one of two sets of values for these permissions. You can specify the values for this setting and SecretsManagerSecretId. Or you can specify clear-text values for UserName, Password, ServerName, and Port. You can't specify both. For more information on creating this SecretsManagerSecret and the SecretsManagerAccessRoleArn and SecretsManagerSecretId required to access it, see [Using secrets to access Database Migration Service resources](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager) in the Database Migration Service User Guide. public var secretsManagerAccessRoleArn: Swift.String? /// The full ARN, partial ARN, or friendly name of the SecretsManagerSecret that contains the DocumentDB endpoint connection details. public var secretsManagerSecretId: Swift.String? /// The name of the server on the DocumentDB source endpoint. public var serverName: Swift.String? + /// If true, DMS retrieves the entire document from the DocumentDB source during migration. This may cause a migration failure if the server response exceeds bandwidth limits. To fetch only updates and deletes during migration, set this parameter to false. + public var useUpdateLookUp: Swift.Bool? /// The user name you use to access the DocumentDB source endpoint. public var username: Swift.String? @@ -9173,9 +10163,11 @@ extension DatabaseMigrationClientTypes { nestingLevel: DatabaseMigrationClientTypes.NestingLevelValue? = nil, password: Swift.String? = nil, port: Swift.Int? = nil, + replicateShardCollections: Swift.Bool? = nil, secretsManagerAccessRoleArn: Swift.String? = nil, secretsManagerSecretId: Swift.String? = nil, serverName: Swift.String? = nil, + useUpdateLookUp: Swift.Bool? = nil, username: Swift.String? = nil ) { @@ -9186,9 +10178,11 @@ extension DatabaseMigrationClientTypes { self.nestingLevel = nestingLevel self.password = password self.port = port + self.replicateShardCollections = replicateShardCollections self.secretsManagerAccessRoleArn = secretsManagerAccessRoleArn self.secretsManagerSecretId = secretsManagerSecretId self.serverName = serverName + self.useUpdateLookUp = useUpdateLookUp self.username = username } } @@ -9411,6 +10405,7 @@ extension DatabaseMigrationClientTypes.Endpoint: Swift.Codable { case sslMode = "SslMode" case status = "Status" case sybaseSettings = "SybaseSettings" + case timestreamSettings = "TimestreamSettings" case username = "Username" } @@ -9518,6 +10513,9 @@ extension DatabaseMigrationClientTypes.Endpoint: Swift.Codable { if let sybaseSettings = self.sybaseSettings { try encodeContainer.encode(sybaseSettings, forKey: .sybaseSettings) } + if let timestreamSettings = self.timestreamSettings { + try encodeContainer.encode(timestreamSettings, forKey: .timestreamSettings) + } if let username = self.username { try encodeContainer.encode(username, forKey: .username) } @@ -9595,6 +10593,8 @@ extension DatabaseMigrationClientTypes.Endpoint: Swift.Codable { redisSettings = redisSettingsDecoded let gcpMySQLSettingsDecoded = try containerValues.decodeIfPresent(DatabaseMigrationClientTypes.GcpMySQLSettings.self, forKey: .gcpMySQLSettings) gcpMySQLSettings = gcpMySQLSettingsDecoded + let timestreamSettingsDecoded = try containerValues.decodeIfPresent(DatabaseMigrationClientTypes.TimestreamSettings.self, forKey: .timestreamSettings) + timestreamSettings = timestreamSettingsDecoded } } @@ -9675,6 +10675,8 @@ extension DatabaseMigrationClientTypes { public var status: Swift.String? /// The settings for the SAP ASE source and target endpoint. For more information, see the SybaseSettings structure. public var sybaseSettings: DatabaseMigrationClientTypes.SybaseSettings? + /// The settings for the Amazon Timestream target endpoint. For more information, see the TimestreamSettings structure. + public var timestreamSettings: DatabaseMigrationClientTypes.TimestreamSettings? /// The user name used to connect to the endpoint. public var username: Swift.String? @@ -9713,6 +10715,7 @@ extension DatabaseMigrationClientTypes { sslMode: DatabaseMigrationClientTypes.DmsSslModeValue? = nil, status: Swift.String? = nil, sybaseSettings: DatabaseMigrationClientTypes.SybaseSettings? = nil, + timestreamSettings: DatabaseMigrationClientTypes.TimestreamSettings? = nil, username: Swift.String? = nil ) { @@ -9750,6 +10753,7 @@ extension DatabaseMigrationClientTypes { self.sslMode = sslMode self.status = status self.sybaseSettings = sybaseSettings + self.timestreamSettings = timestreamSettings self.username = username } } @@ -11082,7 +12086,7 @@ extension InvalidSubnet { } } -/// The subnet provided is invalid. +/// The subnet provided isn't valid. public struct InvalidSubnet: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { public struct Properties { @@ -11644,6 +12648,7 @@ extension DatabaseMigrationClientTypes.KafkaSettings: Swift.Codable { case sslClientCertificateArn = "SslClientCertificateArn" case sslClientKeyArn = "SslClientKeyArn" case sslClientKeyPassword = "SslClientKeyPassword" + case sslEndpointIdentificationAlgorithm = "SslEndpointIdentificationAlgorithm" case topic = "Topic" } @@ -11703,6 +12708,9 @@ extension DatabaseMigrationClientTypes.KafkaSettings: Swift.Codable { if let sslClientKeyPassword = self.sslClientKeyPassword { try encodeContainer.encode(sslClientKeyPassword, forKey: .sslClientKeyPassword) } + if let sslEndpointIdentificationAlgorithm = self.sslEndpointIdentificationAlgorithm { + try encodeContainer.encode(sslEndpointIdentificationAlgorithm.rawValue, forKey: .sslEndpointIdentificationAlgorithm) + } if let topic = self.topic { try encodeContainer.encode(topic, forKey: .topic) } @@ -11748,12 +12756,14 @@ extension DatabaseMigrationClientTypes.KafkaSettings: Swift.Codable { noHexPrefix = noHexPrefixDecoded let saslMechanismDecoded = try containerValues.decodeIfPresent(DatabaseMigrationClientTypes.KafkaSaslMechanism.self, forKey: .saslMechanism) saslMechanism = saslMechanismDecoded + let sslEndpointIdentificationAlgorithmDecoded = try containerValues.decodeIfPresent(DatabaseMigrationClientTypes.KafkaSslEndpointIdentificationAlgorithm.self, forKey: .sslEndpointIdentificationAlgorithm) + sslEndpointIdentificationAlgorithm = sslEndpointIdentificationAlgorithmDecoded } } extension DatabaseMigrationClientTypes.KafkaSettings: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "KafkaSettings(broker: \(Swift.String(describing: broker)), includeControlDetails: \(Swift.String(describing: includeControlDetails)), includeNullAndEmpty: \(Swift.String(describing: includeNullAndEmpty)), includePartitionValue: \(Swift.String(describing: includePartitionValue)), includeTableAlterOperations: \(Swift.String(describing: includeTableAlterOperations)), includeTransactionDetails: \(Swift.String(describing: includeTransactionDetails)), messageFormat: \(Swift.String(describing: messageFormat)), messageMaxBytes: \(Swift.String(describing: messageMaxBytes)), noHexPrefix: \(Swift.String(describing: noHexPrefix)), partitionIncludeSchemaTable: \(Swift.String(describing: partitionIncludeSchemaTable)), saslMechanism: \(Swift.String(describing: saslMechanism)), saslUsername: \(Swift.String(describing: saslUsername)), securityProtocol: \(Swift.String(describing: securityProtocol)), sslCaCertificateArn: \(Swift.String(describing: sslCaCertificateArn)), sslClientCertificateArn: \(Swift.String(describing: sslClientCertificateArn)), sslClientKeyArn: \(Swift.String(describing: sslClientKeyArn)), topic: \(Swift.String(describing: topic)), saslPassword: \"CONTENT_REDACTED\", sslClientKeyPassword: \"CONTENT_REDACTED\")"} + "KafkaSettings(broker: \(Swift.String(describing: broker)), includeControlDetails: \(Swift.String(describing: includeControlDetails)), includeNullAndEmpty: \(Swift.String(describing: includeNullAndEmpty)), includePartitionValue: \(Swift.String(describing: includePartitionValue)), includeTableAlterOperations: \(Swift.String(describing: includeTableAlterOperations)), includeTransactionDetails: \(Swift.String(describing: includeTransactionDetails)), messageFormat: \(Swift.String(describing: messageFormat)), messageMaxBytes: \(Swift.String(describing: messageMaxBytes)), noHexPrefix: \(Swift.String(describing: noHexPrefix)), partitionIncludeSchemaTable: \(Swift.String(describing: partitionIncludeSchemaTable)), saslMechanism: \(Swift.String(describing: saslMechanism)), saslUsername: \(Swift.String(describing: saslUsername)), securityProtocol: \(Swift.String(describing: securityProtocol)), sslCaCertificateArn: \(Swift.String(describing: sslCaCertificateArn)), sslClientCertificateArn: \(Swift.String(describing: sslClientCertificateArn)), sslClientKeyArn: \(Swift.String(describing: sslClientKeyArn)), sslEndpointIdentificationAlgorithm: \(Swift.String(describing: sslEndpointIdentificationAlgorithm)), topic: \(Swift.String(describing: topic)), saslPassword: \"CONTENT_REDACTED\", sslClientKeyPassword: \"CONTENT_REDACTED\")"} } extension DatabaseMigrationClientTypes { @@ -11795,6 +12805,8 @@ extension DatabaseMigrationClientTypes { public var sslClientKeyArn: Swift.String? /// The password for the client private key used to securely connect to a Kafka target endpoint. public var sslClientKeyPassword: Swift.String? + /// Sets hostname verification for the certificate. This setting is supported in DMS version 3.5.1 and later. + public var sslEndpointIdentificationAlgorithm: DatabaseMigrationClientTypes.KafkaSslEndpointIdentificationAlgorithm? /// The topic to which you migrate the data. If you don't specify a topic, DMS specifies "kafka-default-topic" as the migration topic. public var topic: Swift.String? @@ -11817,6 +12829,7 @@ extension DatabaseMigrationClientTypes { sslClientCertificateArn: Swift.String? = nil, sslClientKeyArn: Swift.String? = nil, sslClientKeyPassword: Swift.String? = nil, + sslEndpointIdentificationAlgorithm: DatabaseMigrationClientTypes.KafkaSslEndpointIdentificationAlgorithm? = nil, topic: Swift.String? = nil ) { @@ -11838,12 +12851,45 @@ extension DatabaseMigrationClientTypes { self.sslClientCertificateArn = sslClientCertificateArn self.sslClientKeyArn = sslClientKeyArn self.sslClientKeyPassword = sslClientKeyPassword + self.sslEndpointIdentificationAlgorithm = sslEndpointIdentificationAlgorithm self.topic = topic } } } +extension DatabaseMigrationClientTypes { + public enum KafkaSslEndpointIdentificationAlgorithm: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { + case https + case `none` + case sdkUnknown(Swift.String) + + public static var allCases: [KafkaSslEndpointIdentificationAlgorithm] { + return [ + .https, + .none, + .sdkUnknown("") + ] + } + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + public var rawValue: Swift.String { + switch self { + case .https: return "https" + case .none: return "none" + case let .sdkUnknown(s): return s + } + } + public init(from decoder: Swift.Decoder) throws { + let container = try decoder.singleValueContainer() + let rawValue = try container.decode(RawValue.self) + self = KafkaSslEndpointIdentificationAlgorithm(rawValue: rawValue) ?? KafkaSslEndpointIdentificationAlgorithm.sdkUnknown(rawValue) + } + } +} + extension DatabaseMigrationClientTypes.KinesisSettings: Swift.Codable { enum CodingKeys: Swift.String, Swift.CodingKey { case includeControlDetails = "IncludeControlDetails" @@ -12187,6 +13233,41 @@ extension ListTagsForResourceOutputResponseBody: Swift.Decodable { } } +extension DatabaseMigrationClientTypes { + public enum LongVarcharMappingType: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { + case clob + case nclob + case wstring + case sdkUnknown(Swift.String) + + public static var allCases: [LongVarcharMappingType] { + return [ + .clob, + .nclob, + .wstring, + .sdkUnknown("") + ] + } + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + public var rawValue: Swift.String { + switch self { + case .clob: return "clob" + case .nclob: return "nclob" + case .wstring: return "wstring" + case let .sdkUnknown(s): return s + } + } + public init(from decoder: Swift.Decoder) throws { + let container = try decoder.singleValueContainer() + let rawValue = try container.decode(RawValue.self) + self = LongVarcharMappingType(rawValue: rawValue) ?? LongVarcharMappingType.sdkUnknown(rawValue) + } + } +} + extension DatabaseMigrationClientTypes { public enum MessageFormatValue: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { case json @@ -12456,7 +13537,7 @@ extension DatabaseMigrationClientTypes { extension ModifyEndpointInput: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "ModifyEndpointInput(certificateArn: \(Swift.String(describing: certificateArn)), databaseName: \(Swift.String(describing: databaseName)), dmsTransferSettings: \(Swift.String(describing: dmsTransferSettings)), docDbSettings: \(Swift.String(describing: docDbSettings)), dynamoDbSettings: \(Swift.String(describing: dynamoDbSettings)), elasticsearchSettings: \(Swift.String(describing: elasticsearchSettings)), endpointArn: \(Swift.String(describing: endpointArn)), endpointIdentifier: \(Swift.String(describing: endpointIdentifier)), endpointType: \(Swift.String(describing: endpointType)), engineName: \(Swift.String(describing: engineName)), exactSettings: \(Swift.String(describing: exactSettings)), externalTableDefinition: \(Swift.String(describing: externalTableDefinition)), extraConnectionAttributes: \(Swift.String(describing: extraConnectionAttributes)), gcpMySQLSettings: \(Swift.String(describing: gcpMySQLSettings)), ibmDb2Settings: \(Swift.String(describing: ibmDb2Settings)), kafkaSettings: \(Swift.String(describing: kafkaSettings)), kinesisSettings: \(Swift.String(describing: kinesisSettings)), microsoftSQLServerSettings: \(Swift.String(describing: microsoftSQLServerSettings)), mongoDbSettings: \(Swift.String(describing: mongoDbSettings)), mySQLSettings: \(Swift.String(describing: mySQLSettings)), neptuneSettings: \(Swift.String(describing: neptuneSettings)), oracleSettings: \(Swift.String(describing: oracleSettings)), port: \(Swift.String(describing: port)), postgreSQLSettings: \(Swift.String(describing: postgreSQLSettings)), redisSettings: \(Swift.String(describing: redisSettings)), redshiftSettings: \(Swift.String(describing: redshiftSettings)), s3Settings: \(Swift.String(describing: s3Settings)), serverName: \(Swift.String(describing: serverName)), serviceAccessRoleArn: \(Swift.String(describing: serviceAccessRoleArn)), sslMode: \(Swift.String(describing: sslMode)), sybaseSettings: \(Swift.String(describing: sybaseSettings)), username: \(Swift.String(describing: username)), password: \"CONTENT_REDACTED\")"} + "ModifyEndpointInput(certificateArn: \(Swift.String(describing: certificateArn)), databaseName: \(Swift.String(describing: databaseName)), dmsTransferSettings: \(Swift.String(describing: dmsTransferSettings)), docDbSettings: \(Swift.String(describing: docDbSettings)), dynamoDbSettings: \(Swift.String(describing: dynamoDbSettings)), elasticsearchSettings: \(Swift.String(describing: elasticsearchSettings)), endpointArn: \(Swift.String(describing: endpointArn)), endpointIdentifier: \(Swift.String(describing: endpointIdentifier)), endpointType: \(Swift.String(describing: endpointType)), engineName: \(Swift.String(describing: engineName)), exactSettings: \(Swift.String(describing: exactSettings)), externalTableDefinition: \(Swift.String(describing: externalTableDefinition)), extraConnectionAttributes: \(Swift.String(describing: extraConnectionAttributes)), gcpMySQLSettings: \(Swift.String(describing: gcpMySQLSettings)), ibmDb2Settings: \(Swift.String(describing: ibmDb2Settings)), kafkaSettings: \(Swift.String(describing: kafkaSettings)), kinesisSettings: \(Swift.String(describing: kinesisSettings)), microsoftSQLServerSettings: \(Swift.String(describing: microsoftSQLServerSettings)), mongoDbSettings: \(Swift.String(describing: mongoDbSettings)), mySQLSettings: \(Swift.String(describing: mySQLSettings)), neptuneSettings: \(Swift.String(describing: neptuneSettings)), oracleSettings: \(Swift.String(describing: oracleSettings)), port: \(Swift.String(describing: port)), postgreSQLSettings: \(Swift.String(describing: postgreSQLSettings)), redisSettings: \(Swift.String(describing: redisSettings)), redshiftSettings: \(Swift.String(describing: redshiftSettings)), s3Settings: \(Swift.String(describing: s3Settings)), serverName: \(Swift.String(describing: serverName)), serviceAccessRoleArn: \(Swift.String(describing: serviceAccessRoleArn)), sslMode: \(Swift.String(describing: sslMode)), sybaseSettings: \(Swift.String(describing: sybaseSettings)), timestreamSettings: \(Swift.String(describing: timestreamSettings)), username: \(Swift.String(describing: username)), password: \"CONTENT_REDACTED\")"} } extension ModifyEndpointInput: Swift.Encodable { @@ -12493,6 +13574,7 @@ extension ModifyEndpointInput: Swift.Encodable { case serviceAccessRoleArn = "ServiceAccessRoleArn" case sslMode = "SslMode" case sybaseSettings = "SybaseSettings" + case timestreamSettings = "TimestreamSettings" case username = "Username" } @@ -12594,6 +13676,9 @@ extension ModifyEndpointInput: Swift.Encodable { if let sybaseSettings = self.sybaseSettings { try encodeContainer.encode(sybaseSettings, forKey: .sybaseSettings) } + if let timestreamSettings = self.timestreamSettings { + try encodeContainer.encode(timestreamSettings, forKey: .timestreamSettings) + } if let username = self.username { try encodeContainer.encode(username, forKey: .username) } @@ -12687,6 +13772,8 @@ public struct ModifyEndpointInput: Swift.Equatable { public var sslMode: DatabaseMigrationClientTypes.DmsSslModeValue? /// Settings in JSON format for the source and target SAP ASE endpoint. For information about other available settings, see [Extra connection attributes when using SAP ASE as a source for DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SAP.html#CHAP_Source.SAP.ConnectionAttrib) and [Extra connection attributes when using SAP ASE as a target for DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.SAP.html#CHAP_Target.SAP.ConnectionAttrib) in the Database Migration Service User Guide. public var sybaseSettings: DatabaseMigrationClientTypes.SybaseSettings? + /// Settings in JSON format for the target Amazon Timestream endpoint. + public var timestreamSettings: DatabaseMigrationClientTypes.TimestreamSettings? /// The user name to be used to login to the endpoint database. public var username: Swift.String? @@ -12723,6 +13810,7 @@ public struct ModifyEndpointInput: Swift.Equatable { serviceAccessRoleArn: Swift.String? = nil, sslMode: DatabaseMigrationClientTypes.DmsSslModeValue? = nil, sybaseSettings: DatabaseMigrationClientTypes.SybaseSettings? = nil, + timestreamSettings: DatabaseMigrationClientTypes.TimestreamSettings? = nil, username: Swift.String? = nil ) { @@ -12758,6 +13846,7 @@ public struct ModifyEndpointInput: Swift.Equatable { self.serviceAccessRoleArn = serviceAccessRoleArn self.sslMode = sslMode self.sybaseSettings = sybaseSettings + self.timestreamSettings = timestreamSettings self.username = username } } @@ -12796,6 +13885,7 @@ struct ModifyEndpointInputBody: Swift.Equatable { let redisSettings: DatabaseMigrationClientTypes.RedisSettings? let exactSettings: Swift.Bool? let gcpMySQLSettings: DatabaseMigrationClientTypes.GcpMySQLSettings? + let timestreamSettings: DatabaseMigrationClientTypes.TimestreamSettings? } extension ModifyEndpointInputBody: Swift.Decodable { @@ -12832,6 +13922,7 @@ extension ModifyEndpointInputBody: Swift.Decodable { case serviceAccessRoleArn = "ServiceAccessRoleArn" case sslMode = "SslMode" case sybaseSettings = "SybaseSettings" + case timestreamSettings = "TimestreamSettings" case username = "Username" } @@ -12903,6 +13994,8 @@ extension ModifyEndpointInputBody: Swift.Decodable { exactSettings = exactSettingsDecoded let gcpMySQLSettingsDecoded = try containerValues.decodeIfPresent(DatabaseMigrationClientTypes.GcpMySQLSettings.self, forKey: .gcpMySQLSettings) gcpMySQLSettings = gcpMySQLSettingsDecoded + let timestreamSettingsDecoded = try containerValues.decodeIfPresent(DatabaseMigrationClientTypes.TimestreamSettings.self, forKey: .timestreamSettings) + timestreamSettings = timestreamSettingsDecoded } } @@ -13131,6 +14224,207 @@ extension ModifyEventSubscriptionOutputResponseBody: Swift.Decodable { } } +extension ModifyReplicationConfigInput: Swift.Encodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case computeConfig = "ComputeConfig" + case replicationConfigArn = "ReplicationConfigArn" + case replicationConfigIdentifier = "ReplicationConfigIdentifier" + case replicationSettings = "ReplicationSettings" + case replicationType = "ReplicationType" + case sourceEndpointArn = "SourceEndpointArn" + case supplementalSettings = "SupplementalSettings" + case tableMappings = "TableMappings" + case targetEndpointArn = "TargetEndpointArn" + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let computeConfig = self.computeConfig { + try encodeContainer.encode(computeConfig, forKey: .computeConfig) + } + if let replicationConfigArn = self.replicationConfigArn { + try encodeContainer.encode(replicationConfigArn, forKey: .replicationConfigArn) + } + if let replicationConfigIdentifier = self.replicationConfigIdentifier { + try encodeContainer.encode(replicationConfigIdentifier, forKey: .replicationConfigIdentifier) + } + if let replicationSettings = self.replicationSettings { + try encodeContainer.encode(replicationSettings, forKey: .replicationSettings) + } + if let replicationType = self.replicationType { + try encodeContainer.encode(replicationType.rawValue, forKey: .replicationType) + } + if let sourceEndpointArn = self.sourceEndpointArn { + try encodeContainer.encode(sourceEndpointArn, forKey: .sourceEndpointArn) + } + if let supplementalSettings = self.supplementalSettings { + try encodeContainer.encode(supplementalSettings, forKey: .supplementalSettings) + } + if let tableMappings = self.tableMappings { + try encodeContainer.encode(tableMappings, forKey: .tableMappings) + } + if let targetEndpointArn = self.targetEndpointArn { + try encodeContainer.encode(targetEndpointArn, forKey: .targetEndpointArn) + } + } +} + +extension ModifyReplicationConfigInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + return "/" + } +} + +/// +public struct ModifyReplicationConfigInput: Swift.Equatable { + /// Configuration parameters for provisioning an DMS Serverless replication. + public var computeConfig: DatabaseMigrationClientTypes.ComputeConfig? + /// The Amazon Resource Name of the replication to modify. + /// This member is required. + public var replicationConfigArn: Swift.String? + /// The new replication config to apply to the replication. + public var replicationConfigIdentifier: Swift.String? + /// The settings for the replication. + public var replicationSettings: Swift.String? + /// The type of replication. + public var replicationType: DatabaseMigrationClientTypes.MigrationTypeValue? + /// The Amazon Resource Name (ARN) of the source endpoint for this DMS serverless replication configuration. + public var sourceEndpointArn: Swift.String? + /// Additional settings for the replication. + public var supplementalSettings: Swift.String? + /// Table mappings specified in the replication. + public var tableMappings: Swift.String? + /// The Amazon Resource Name (ARN) of the target endpoint for this DMS serverless replication configuration. + public var targetEndpointArn: Swift.String? + + public init( + computeConfig: DatabaseMigrationClientTypes.ComputeConfig? = nil, + replicationConfigArn: Swift.String? = nil, + replicationConfigIdentifier: Swift.String? = nil, + replicationSettings: Swift.String? = nil, + replicationType: DatabaseMigrationClientTypes.MigrationTypeValue? = nil, + sourceEndpointArn: Swift.String? = nil, + supplementalSettings: Swift.String? = nil, + tableMappings: Swift.String? = nil, + targetEndpointArn: Swift.String? = nil + ) + { + self.computeConfig = computeConfig + self.replicationConfigArn = replicationConfigArn + self.replicationConfigIdentifier = replicationConfigIdentifier + self.replicationSettings = replicationSettings + self.replicationType = replicationType + self.sourceEndpointArn = sourceEndpointArn + self.supplementalSettings = supplementalSettings + self.tableMappings = tableMappings + self.targetEndpointArn = targetEndpointArn + } +} + +struct ModifyReplicationConfigInputBody: Swift.Equatable { + let replicationConfigArn: Swift.String? + let replicationConfigIdentifier: Swift.String? + let replicationType: DatabaseMigrationClientTypes.MigrationTypeValue? + let tableMappings: Swift.String? + let replicationSettings: Swift.String? + let supplementalSettings: Swift.String? + let computeConfig: DatabaseMigrationClientTypes.ComputeConfig? + let sourceEndpointArn: Swift.String? + let targetEndpointArn: Swift.String? +} + +extension ModifyReplicationConfigInputBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case computeConfig = "ComputeConfig" + case replicationConfigArn = "ReplicationConfigArn" + case replicationConfigIdentifier = "ReplicationConfigIdentifier" + case replicationSettings = "ReplicationSettings" + case replicationType = "ReplicationType" + case sourceEndpointArn = "SourceEndpointArn" + case supplementalSettings = "SupplementalSettings" + case tableMappings = "TableMappings" + case targetEndpointArn = "TargetEndpointArn" + } + + public init(from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let replicationConfigArnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .replicationConfigArn) + replicationConfigArn = replicationConfigArnDecoded + let replicationConfigIdentifierDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .replicationConfigIdentifier) + replicationConfigIdentifier = replicationConfigIdentifierDecoded + let replicationTypeDecoded = try containerValues.decodeIfPresent(DatabaseMigrationClientTypes.MigrationTypeValue.self, forKey: .replicationType) + replicationType = replicationTypeDecoded + let tableMappingsDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .tableMappings) + tableMappings = tableMappingsDecoded + let replicationSettingsDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .replicationSettings) + replicationSettings = replicationSettingsDecoded + let supplementalSettingsDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .supplementalSettings) + supplementalSettings = supplementalSettingsDecoded + let computeConfigDecoded = try containerValues.decodeIfPresent(DatabaseMigrationClientTypes.ComputeConfig.self, forKey: .computeConfig) + computeConfig = computeConfigDecoded + let sourceEndpointArnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .sourceEndpointArn) + sourceEndpointArn = sourceEndpointArnDecoded + let targetEndpointArnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .targetEndpointArn) + targetEndpointArn = targetEndpointArnDecoded + } +} + +public enum ModifyReplicationConfigOutputError: ClientRuntime.HttpResponseErrorBinding { + public static func makeError(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) async throws -> Swift.Error { + let restJSONError = try await AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.requestId + switch restJSONError.errorType { + case "AccessDeniedFault": return try await AccessDeniedFault(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "InvalidResourceStateFault": return try await InvalidResourceStateFault(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "InvalidSubnet": return try await InvalidSubnet(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "KMSKeyNotAccessibleFault": return try await KMSKeyNotAccessibleFault(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "ReplicationSubnetGroupDoesNotCoverEnoughAZs": return try await ReplicationSubnetGroupDoesNotCoverEnoughAZs(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "ResourceNotFoundFault": return try await ResourceNotFoundFault(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + default: return try await AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(httpResponse: httpResponse, message: restJSONError.errorMessage, requestID: requestID, typeName: restJSONError.errorType) + } + } +} + +extension ModifyReplicationConfigOutputResponse: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) async throws { + if let data = try await httpResponse.body.readData(), + let responseDecoder = decoder { + let output: ModifyReplicationConfigOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.replicationConfig = output.replicationConfig + } else { + self.replicationConfig = nil + } + } +} + +public struct ModifyReplicationConfigOutputResponse: Swift.Equatable { + /// Information about the serverless replication config that was modified. + public var replicationConfig: DatabaseMigrationClientTypes.ReplicationConfig? + + public init( + replicationConfig: DatabaseMigrationClientTypes.ReplicationConfig? = nil + ) + { + self.replicationConfig = replicationConfig + } +} + +struct ModifyReplicationConfigOutputResponseBody: Swift.Equatable { + let replicationConfig: DatabaseMigrationClientTypes.ReplicationConfig? +} + +extension ModifyReplicationConfigOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case replicationConfig = "ReplicationConfig" + } + + public init(from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let replicationConfigDecoded = try containerValues.decodeIfPresent(DatabaseMigrationClientTypes.ReplicationConfig.self, forKey: .replicationConfig) + replicationConfig = replicationConfigDecoded + } +} + extension ModifyReplicationInstanceInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { case allocatedStorage = "AllocatedStorage" @@ -13752,9 +15046,11 @@ extension DatabaseMigrationClientTypes.MongoDbSettings: Swift.Codable { case nestingLevel = "NestingLevel" case password = "Password" case port = "Port" + case replicateShardCollections = "ReplicateShardCollections" case secretsManagerAccessRoleArn = "SecretsManagerAccessRoleArn" case secretsManagerSecretId = "SecretsManagerSecretId" case serverName = "ServerName" + case useUpdateLookUp = "UseUpdateLookUp" case username = "Username" } @@ -13790,6 +15086,9 @@ extension DatabaseMigrationClientTypes.MongoDbSettings: Swift.Codable { if let port = self.port { try encodeContainer.encode(port, forKey: .port) } + if let replicateShardCollections = self.replicateShardCollections { + try encodeContainer.encode(replicateShardCollections, forKey: .replicateShardCollections) + } if let secretsManagerAccessRoleArn = self.secretsManagerAccessRoleArn { try encodeContainer.encode(secretsManagerAccessRoleArn, forKey: .secretsManagerAccessRoleArn) } @@ -13799,6 +15098,9 @@ extension DatabaseMigrationClientTypes.MongoDbSettings: Swift.Codable { if let serverName = self.serverName { try encodeContainer.encode(serverName, forKey: .serverName) } + if let useUpdateLookUp = self.useUpdateLookUp { + try encodeContainer.encode(useUpdateLookUp, forKey: .useUpdateLookUp) + } if let username = self.username { try encodeContainer.encode(username, forKey: .username) } @@ -13834,12 +15136,16 @@ extension DatabaseMigrationClientTypes.MongoDbSettings: Swift.Codable { secretsManagerAccessRoleArn = secretsManagerAccessRoleArnDecoded let secretsManagerSecretIdDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .secretsManagerSecretId) secretsManagerSecretId = secretsManagerSecretIdDecoded + let useUpdateLookUpDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .useUpdateLookUp) + useUpdateLookUp = useUpdateLookUpDecoded + let replicateShardCollectionsDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .replicateShardCollections) + replicateShardCollections = replicateShardCollectionsDecoded } } extension DatabaseMigrationClientTypes.MongoDbSettings: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "MongoDbSettings(authMechanism: \(Swift.String(describing: authMechanism)), authSource: \(Swift.String(describing: authSource)), authType: \(Swift.String(describing: authType)), databaseName: \(Swift.String(describing: databaseName)), docsToInvestigate: \(Swift.String(describing: docsToInvestigate)), extractDocId: \(Swift.String(describing: extractDocId)), kmsKeyId: \(Swift.String(describing: kmsKeyId)), nestingLevel: \(Swift.String(describing: nestingLevel)), port: \(Swift.String(describing: port)), secretsManagerAccessRoleArn: \(Swift.String(describing: secretsManagerAccessRoleArn)), secretsManagerSecretId: \(Swift.String(describing: secretsManagerSecretId)), serverName: \(Swift.String(describing: serverName)), username: \(Swift.String(describing: username)), password: \"CONTENT_REDACTED\")"} + "MongoDbSettings(authMechanism: \(Swift.String(describing: authMechanism)), authSource: \(Swift.String(describing: authSource)), authType: \(Swift.String(describing: authType)), databaseName: \(Swift.String(describing: databaseName)), docsToInvestigate: \(Swift.String(describing: docsToInvestigate)), extractDocId: \(Swift.String(describing: extractDocId)), kmsKeyId: \(Swift.String(describing: kmsKeyId)), nestingLevel: \(Swift.String(describing: nestingLevel)), port: \(Swift.String(describing: port)), replicateShardCollections: \(Swift.String(describing: replicateShardCollections)), secretsManagerAccessRoleArn: \(Swift.String(describing: secretsManagerAccessRoleArn)), secretsManagerSecretId: \(Swift.String(describing: secretsManagerSecretId)), serverName: \(Swift.String(describing: serverName)), useUpdateLookUp: \(Swift.String(describing: useUpdateLookUp)), username: \(Swift.String(describing: username)), password: \"CONTENT_REDACTED\")"} } extension DatabaseMigrationClientTypes { @@ -13865,12 +15171,20 @@ extension DatabaseMigrationClientTypes { public var password: Swift.String? /// The port value for the MongoDB source endpoint. public var port: Swift.Int? + /// If true, DMS replicates data to shard collections. DMS only uses this setting if the target endpoint is a DocumentDB elastic cluster. When this setting is true, note the following: + /// + /// * You must set TargetTablePrepMode to nothing. + /// + /// * DMS automatically sets useUpdateLookup to false. + public var replicateShardCollections: Swift.Bool? /// The full Amazon Resource Name (ARN) of the IAM role that specifies DMS as the trusted entity and grants the required permissions to access the value in SecretsManagerSecret. The role must allow the iam:PassRole action. SecretsManagerSecret has the value of the Amazon Web Services Secrets Manager secret that allows access to the MongoDB endpoint. You can specify one of two sets of values for these permissions. You can specify the values for this setting and SecretsManagerSecretId. Or you can specify clear-text values for UserName, Password, ServerName, and Port. You can't specify both. For more information on creating this SecretsManagerSecret and the SecretsManagerAccessRoleArn and SecretsManagerSecretId required to access it, see [Using secrets to access Database Migration Service resources](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.html#security-iam-secretsmanager) in the Database Migration Service User Guide. public var secretsManagerAccessRoleArn: Swift.String? /// The full ARN, partial ARN, or friendly name of the SecretsManagerSecret that contains the MongoDB endpoint connection details. public var secretsManagerSecretId: Swift.String? /// The name of the server on the MongoDB source endpoint. public var serverName: Swift.String? + /// If true, DMS retrieves the entire document from the MongoDB source during migration. This may cause a migration failure if the server response exceeds bandwidth limits. To fetch only updates and deletes during migration, set this parameter to false. + public var useUpdateLookUp: Swift.Bool? /// The user name you use to access the MongoDB source endpoint. public var username: Swift.String? @@ -13885,9 +15199,11 @@ extension DatabaseMigrationClientTypes { nestingLevel: DatabaseMigrationClientTypes.NestingLevelValue? = nil, password: Swift.String? = nil, port: Swift.Int? = nil, + replicateShardCollections: Swift.Bool? = nil, secretsManagerAccessRoleArn: Swift.String? = nil, secretsManagerSecretId: Swift.String? = nil, serverName: Swift.String? = nil, + useUpdateLookUp: Swift.Bool? = nil, username: Swift.String? = nil ) { @@ -13901,9 +15217,11 @@ extension DatabaseMigrationClientTypes { self.nestingLevel = nestingLevel self.password = password self.port = port + self.replicateShardCollections = replicateShardCollections self.secretsManagerAccessRoleArn = secretsManagerAccessRoleArn self.secretsManagerSecretId = secretsManagerSecretId self.serverName = serverName + self.useUpdateLookUp = useUpdateLookUp self.username = username } } @@ -14347,6 +15665,7 @@ extension DatabaseMigrationClientTypes.OracleSettings: Swift.Codable { case extraArchivedLogDestIds = "ExtraArchivedLogDestIds" case failTasksOnLobTruncation = "FailTasksOnLobTruncation" case numberDatatypeScale = "NumberDatatypeScale" + case openTransactionWindow = "OpenTransactionWindow" case oraclePathPrefix = "OraclePathPrefix" case parallelAsmReadThreads = "ParallelAsmReadThreads" case password = "Password" @@ -14432,6 +15751,9 @@ extension DatabaseMigrationClientTypes.OracleSettings: Swift.Codable { if let numberDatatypeScale = self.numberDatatypeScale { try encodeContainer.encode(numberDatatypeScale, forKey: .numberDatatypeScale) } + if let openTransactionWindow = self.openTransactionWindow { + try encodeContainer.encode(openTransactionWindow, forKey: .openTransactionWindow) + } if let oraclePathPrefix = self.oraclePathPrefix { try encodeContainer.encode(oraclePathPrefix, forKey: .oraclePathPrefix) } @@ -14601,12 +15923,14 @@ extension DatabaseMigrationClientTypes.OracleSettings: Swift.Codable { trimSpaceInChar = trimSpaceInCharDecoded let convertTimestampWithZoneToUTCDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .convertTimestampWithZoneToUTC) convertTimestampWithZoneToUTC = convertTimestampWithZoneToUTCDecoded + let openTransactionWindowDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .openTransactionWindow) + openTransactionWindow = openTransactionWindowDecoded } } extension DatabaseMigrationClientTypes.OracleSettings: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "OracleSettings(accessAlternateDirectly: \(Swift.String(describing: accessAlternateDirectly)), addSupplementalLogging: \(Swift.String(describing: addSupplementalLogging)), additionalArchivedLogDestId: \(Swift.String(describing: additionalArchivedLogDestId)), allowSelectNestedTables: \(Swift.String(describing: allowSelectNestedTables)), archivedLogDestId: \(Swift.String(describing: archivedLogDestId)), archivedLogsOnly: \(Swift.String(describing: archivedLogsOnly)), asmServer: \(Swift.String(describing: asmServer)), asmUser: \(Swift.String(describing: asmUser)), charLengthSemantics: \(Swift.String(describing: charLengthSemantics)), convertTimestampWithZoneToUTC: \(Swift.String(describing: convertTimestampWithZoneToUTC)), databaseName: \(Swift.String(describing: databaseName)), directPathNoLog: \(Swift.String(describing: directPathNoLog)), directPathParallelLoad: \(Swift.String(describing: directPathParallelLoad)), enableHomogenousTablespace: \(Swift.String(describing: enableHomogenousTablespace)), extraArchivedLogDestIds: \(Swift.String(describing: extraArchivedLogDestIds)), failTasksOnLobTruncation: \(Swift.String(describing: failTasksOnLobTruncation)), numberDatatypeScale: \(Swift.String(describing: numberDatatypeScale)), oraclePathPrefix: \(Swift.String(describing: oraclePathPrefix)), parallelAsmReadThreads: \(Swift.String(describing: parallelAsmReadThreads)), port: \(Swift.String(describing: port)), readAheadBlocks: \(Swift.String(describing: readAheadBlocks)), readTableSpaceName: \(Swift.String(describing: readTableSpaceName)), replacePathPrefix: \(Swift.String(describing: replacePathPrefix)), retryInterval: \(Swift.String(describing: retryInterval)), secretsManagerAccessRoleArn: \(Swift.String(describing: secretsManagerAccessRoleArn)), secretsManagerOracleAsmAccessRoleArn: \(Swift.String(describing: secretsManagerOracleAsmAccessRoleArn)), secretsManagerOracleAsmSecretId: \(Swift.String(describing: secretsManagerOracleAsmSecretId)), secretsManagerSecretId: \(Swift.String(describing: secretsManagerSecretId)), securityDbEncryptionName: \(Swift.String(describing: securityDbEncryptionName)), serverName: \(Swift.String(describing: serverName)), spatialDataOptionToGeoJsonFunctionName: \(Swift.String(describing: spatialDataOptionToGeoJsonFunctionName)), standbyDelayTime: \(Swift.String(describing: standbyDelayTime)), trimSpaceInChar: \(Swift.String(describing: trimSpaceInChar)), useAlternateFolderForOnline: \(Swift.String(describing: useAlternateFolderForOnline)), useBFile: \(Swift.String(describing: useBFile)), useDirectPathFullLoad: \(Swift.String(describing: useDirectPathFullLoad)), useLogminerReader: \(Swift.String(describing: useLogminerReader)), usePathPrefix: \(Swift.String(describing: usePathPrefix)), username: \(Swift.String(describing: username)), asmPassword: \"CONTENT_REDACTED\", password: \"CONTENT_REDACTED\", securityDbEncryption: \"CONTENT_REDACTED\")"} + "OracleSettings(accessAlternateDirectly: \(Swift.String(describing: accessAlternateDirectly)), addSupplementalLogging: \(Swift.String(describing: addSupplementalLogging)), additionalArchivedLogDestId: \(Swift.String(describing: additionalArchivedLogDestId)), allowSelectNestedTables: \(Swift.String(describing: allowSelectNestedTables)), archivedLogDestId: \(Swift.String(describing: archivedLogDestId)), archivedLogsOnly: \(Swift.String(describing: archivedLogsOnly)), asmServer: \(Swift.String(describing: asmServer)), asmUser: \(Swift.String(describing: asmUser)), charLengthSemantics: \(Swift.String(describing: charLengthSemantics)), convertTimestampWithZoneToUTC: \(Swift.String(describing: convertTimestampWithZoneToUTC)), databaseName: \(Swift.String(describing: databaseName)), directPathNoLog: \(Swift.String(describing: directPathNoLog)), directPathParallelLoad: \(Swift.String(describing: directPathParallelLoad)), enableHomogenousTablespace: \(Swift.String(describing: enableHomogenousTablespace)), extraArchivedLogDestIds: \(Swift.String(describing: extraArchivedLogDestIds)), failTasksOnLobTruncation: \(Swift.String(describing: failTasksOnLobTruncation)), numberDatatypeScale: \(Swift.String(describing: numberDatatypeScale)), openTransactionWindow: \(Swift.String(describing: openTransactionWindow)), oraclePathPrefix: \(Swift.String(describing: oraclePathPrefix)), parallelAsmReadThreads: \(Swift.String(describing: parallelAsmReadThreads)), port: \(Swift.String(describing: port)), readAheadBlocks: \(Swift.String(describing: readAheadBlocks)), readTableSpaceName: \(Swift.String(describing: readTableSpaceName)), replacePathPrefix: \(Swift.String(describing: replacePathPrefix)), retryInterval: \(Swift.String(describing: retryInterval)), secretsManagerAccessRoleArn: \(Swift.String(describing: secretsManagerAccessRoleArn)), secretsManagerOracleAsmAccessRoleArn: \(Swift.String(describing: secretsManagerOracleAsmAccessRoleArn)), secretsManagerOracleAsmSecretId: \(Swift.String(describing: secretsManagerOracleAsmSecretId)), secretsManagerSecretId: \(Swift.String(describing: secretsManagerSecretId)), securityDbEncryptionName: \(Swift.String(describing: securityDbEncryptionName)), serverName: \(Swift.String(describing: serverName)), spatialDataOptionToGeoJsonFunctionName: \(Swift.String(describing: spatialDataOptionToGeoJsonFunctionName)), standbyDelayTime: \(Swift.String(describing: standbyDelayTime)), trimSpaceInChar: \(Swift.String(describing: trimSpaceInChar)), useAlternateFolderForOnline: \(Swift.String(describing: useAlternateFolderForOnline)), useBFile: \(Swift.String(describing: useBFile)), useDirectPathFullLoad: \(Swift.String(describing: useDirectPathFullLoad)), useLogminerReader: \(Swift.String(describing: useLogminerReader)), usePathPrefix: \(Swift.String(describing: usePathPrefix)), username: \(Swift.String(describing: username)), asmPassword: \"CONTENT_REDACTED\", password: \"CONTENT_REDACTED\", securityDbEncryption: \"CONTENT_REDACTED\")"} } extension DatabaseMigrationClientTypes { @@ -14648,6 +15972,8 @@ extension DatabaseMigrationClientTypes { public var failTasksOnLobTruncation: Swift.Bool? /// Specifies the number scale. You can select a scale up to 38, or you can select FLOAT. By default, the NUMBER data type is converted to precision 38, scale 10. Example: numberDataTypeScale=12 public var numberDatatypeScale: Swift.Int? + /// The timeframe in minutes to check for open transactions for a CDC-only task. You can specify an integer value between 0 (the default) and 240 (the maximum). This parameter is only valid in DMS version 3.5.0 and later. DMS supports a window of up to 9.5 hours including the value for OpenTransactionWindow. + public var openTransactionWindow: Swift.Int? /// Set this string attribute to the required value in order to use the Binary Reader to capture change data for an Amazon RDS for Oracle as the source. This value specifies the default Oracle root used to access the redo logs. public var oraclePathPrefix: Swift.String? /// Set this attribute to change the number of threads that DMS configures to perform a change data capture (CDC) load using Oracle Automatic Storage Management (ASM). You can specify an integer value between 2 (the default) and 8 (the maximum). Use this attribute together with the readAheadBlocks attribute. @@ -14716,6 +16042,7 @@ extension DatabaseMigrationClientTypes { extraArchivedLogDestIds: [Swift.Int]? = nil, failTasksOnLobTruncation: Swift.Bool? = nil, numberDatatypeScale: Swift.Int? = nil, + openTransactionWindow: Swift.Int? = nil, oraclePathPrefix: Swift.String? = nil, parallelAsmReadThreads: Swift.Int? = nil, password: Swift.String? = nil, @@ -14760,6 +16087,7 @@ extension DatabaseMigrationClientTypes { self.extraArchivedLogDestIds = extraArchivedLogDestIds self.failTasksOnLobTruncation = failTasksOnLobTruncation self.numberDatatypeScale = numberDatatypeScale + self.openTransactionWindow = openTransactionWindow self.oraclePathPrefix = oraclePathPrefix self.parallelAsmReadThreads = parallelAsmReadThreads self.password = password @@ -15080,6 +16408,8 @@ extension DatabaseMigrationClientTypes.PostgreSQLSettings: Swift.Codable { case heartbeatFrequency = "HeartbeatFrequency" case heartbeatSchema = "HeartbeatSchema" case mapBooleanAsBoolean = "MapBooleanAsBoolean" + case mapJsonbAsClob = "MapJsonbAsClob" + case mapLongVarcharAs = "MapLongVarcharAs" case maxFileSize = "MaxFileSize" case password = "Password" case pluginName = "PluginName" @@ -15124,6 +16454,12 @@ extension DatabaseMigrationClientTypes.PostgreSQLSettings: Swift.Codable { if let mapBooleanAsBoolean = self.mapBooleanAsBoolean { try encodeContainer.encode(mapBooleanAsBoolean, forKey: .mapBooleanAsBoolean) } + if let mapJsonbAsClob = self.mapJsonbAsClob { + try encodeContainer.encode(mapJsonbAsClob, forKey: .mapJsonbAsClob) + } + if let mapLongVarcharAs = self.mapLongVarcharAs { + try encodeContainer.encode(mapLongVarcharAs.rawValue, forKey: .mapLongVarcharAs) + } if let maxFileSize = self.maxFileSize { try encodeContainer.encode(maxFileSize, forKey: .maxFileSize) } @@ -15198,12 +16534,16 @@ extension DatabaseMigrationClientTypes.PostgreSQLSettings: Swift.Codable { trimSpaceInChar = trimSpaceInCharDecoded let mapBooleanAsBooleanDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .mapBooleanAsBoolean) mapBooleanAsBoolean = mapBooleanAsBooleanDecoded + let mapJsonbAsClobDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .mapJsonbAsClob) + mapJsonbAsClob = mapJsonbAsClobDecoded + let mapLongVarcharAsDecoded = try containerValues.decodeIfPresent(DatabaseMigrationClientTypes.LongVarcharMappingType.self, forKey: .mapLongVarcharAs) + mapLongVarcharAs = mapLongVarcharAsDecoded } } extension DatabaseMigrationClientTypes.PostgreSQLSettings: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "PostgreSQLSettings(afterConnectScript: \(Swift.String(describing: afterConnectScript)), captureDdls: \(Swift.String(describing: captureDdls)), databaseName: \(Swift.String(describing: databaseName)), ddlArtifactsSchema: \(Swift.String(describing: ddlArtifactsSchema)), executeTimeout: \(Swift.String(describing: executeTimeout)), failTasksOnLobTruncation: \(Swift.String(describing: failTasksOnLobTruncation)), heartbeatEnable: \(Swift.String(describing: heartbeatEnable)), heartbeatFrequency: \(Swift.String(describing: heartbeatFrequency)), heartbeatSchema: \(Swift.String(describing: heartbeatSchema)), mapBooleanAsBoolean: \(Swift.String(describing: mapBooleanAsBoolean)), maxFileSize: \(Swift.String(describing: maxFileSize)), pluginName: \(Swift.String(describing: pluginName)), port: \(Swift.String(describing: port)), secretsManagerAccessRoleArn: \(Swift.String(describing: secretsManagerAccessRoleArn)), secretsManagerSecretId: \(Swift.String(describing: secretsManagerSecretId)), serverName: \(Swift.String(describing: serverName)), slotName: \(Swift.String(describing: slotName)), trimSpaceInChar: \(Swift.String(describing: trimSpaceInChar)), username: \(Swift.String(describing: username)), password: \"CONTENT_REDACTED\")"} + "PostgreSQLSettings(afterConnectScript: \(Swift.String(describing: afterConnectScript)), captureDdls: \(Swift.String(describing: captureDdls)), databaseName: \(Swift.String(describing: databaseName)), ddlArtifactsSchema: \(Swift.String(describing: ddlArtifactsSchema)), executeTimeout: \(Swift.String(describing: executeTimeout)), failTasksOnLobTruncation: \(Swift.String(describing: failTasksOnLobTruncation)), heartbeatEnable: \(Swift.String(describing: heartbeatEnable)), heartbeatFrequency: \(Swift.String(describing: heartbeatFrequency)), heartbeatSchema: \(Swift.String(describing: heartbeatSchema)), mapBooleanAsBoolean: \(Swift.String(describing: mapBooleanAsBoolean)), mapJsonbAsClob: \(Swift.String(describing: mapJsonbAsClob)), mapLongVarcharAs: \(Swift.String(describing: mapLongVarcharAs)), maxFileSize: \(Swift.String(describing: maxFileSize)), pluginName: \(Swift.String(describing: pluginName)), port: \(Swift.String(describing: port)), secretsManagerAccessRoleArn: \(Swift.String(describing: secretsManagerAccessRoleArn)), secretsManagerSecretId: \(Swift.String(describing: secretsManagerSecretId)), serverName: \(Swift.String(describing: serverName)), slotName: \(Swift.String(describing: slotName)), trimSpaceInChar: \(Swift.String(describing: trimSpaceInChar)), username: \(Swift.String(describing: username)), password: \"CONTENT_REDACTED\")"} } extension DatabaseMigrationClientTypes { @@ -15229,6 +16569,10 @@ extension DatabaseMigrationClientTypes { public var heartbeatSchema: Swift.String? /// When true, lets PostgreSQL migrate the boolean type as boolean. By default, PostgreSQL migrates booleans as varchar(5). public var mapBooleanAsBoolean: Swift.Bool? + /// When true, DMS migrates JSONB values as CLOB. + public var mapJsonbAsClob: Swift.Bool? + /// When true, DMS migrates LONG values as VARCHAR. + public var mapLongVarcharAs: DatabaseMigrationClientTypes.LongVarcharMappingType? /// Specifies the maximum size (in KB) of any .csv file used to transfer data to PostgreSQL. Example: maxFileSize=512 public var maxFileSize: Swift.Int? /// Endpoint connection password. @@ -15243,7 +16587,7 @@ extension DatabaseMigrationClientTypes { public var secretsManagerSecretId: Swift.String? /// The host name of the endpoint database. For an Amazon RDS PostgreSQL instance, this is the output of [DescribeDBInstances](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBInstances.html), in the [Endpoint](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_Endpoint.html).Address field. For an Aurora PostgreSQL instance, this is the output of [DescribeDBClusters](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBClusters.html), in the Endpoint field. public var serverName: Swift.String? - /// Sets the name of a previously created logical replication slot for a change data capture (CDC) load of the PostgreSQL source instance. When used with the CdcStartPosition request parameter for the DMS API , this attribute also makes it possible to use native CDC start points. DMS verifies that the specified logical replication slot exists before starting the CDC load task. It also verifies that the task was created with a valid setting of CdcStartPosition. If the specified slot doesn't exist or the task doesn't have a valid CdcStartPosition setting, DMS raises an error. For more information about setting the CdcStartPosition request parameter, see [Determining a CDC native start point] in the Database Migration Service User Guide. For more information about using CdcStartPosition, see [CreateReplicationTask](https://docs.aws.amazon.com/dms/latest/APIReference/API_CreateReplicationTask.html), [StartReplicationTask](https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTask.html), and [ModifyReplicationTask](https://docs.aws.amazon.com/dms/latest/APIReference/API_ModifyReplicationTask.html). + /// Sets the name of a previously created logical replication slot for a change data capture (CDC) load of the PostgreSQL source instance. When used with the CdcStartPosition request parameter for the DMS API , this attribute also makes it possible to use native CDC start points. DMS verifies that the specified logical replication slot exists before starting the CDC load task. It also verifies that the task was created with a valid setting of CdcStartPosition. If the specified slot doesn't exist or the task doesn't have a valid CdcStartPosition setting, DMS raises an error. For more information about setting the CdcStartPosition request parameter, see [Determining a CDC native start point](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Task.CDC.html#CHAP_Task.CDC.StartPoint.Native) in the Database Migration Service User Guide. For more information about using CdcStartPosition, see [CreateReplicationTask](https://docs.aws.amazon.com/dms/latest/APIReference/API_CreateReplicationTask.html), [StartReplicationTask](https://docs.aws.amazon.com/dms/latest/APIReference/API_StartReplicationTask.html), and [ModifyReplicationTask](https://docs.aws.amazon.com/dms/latest/APIReference/API_ModifyReplicationTask.html). public var slotName: Swift.String? /// Use the TrimSpaceInChar source endpoint setting to trim data on CHAR and NCHAR data types during migration. The default value is true. public var trimSpaceInChar: Swift.Bool? @@ -15261,6 +16605,8 @@ extension DatabaseMigrationClientTypes { heartbeatFrequency: Swift.Int? = nil, heartbeatSchema: Swift.String? = nil, mapBooleanAsBoolean: Swift.Bool? = nil, + mapJsonbAsClob: Swift.Bool? = nil, + mapLongVarcharAs: DatabaseMigrationClientTypes.LongVarcharMappingType? = nil, maxFileSize: Swift.Int? = nil, password: Swift.String? = nil, pluginName: DatabaseMigrationClientTypes.PluginNameValue? = nil, @@ -15283,6 +16629,8 @@ extension DatabaseMigrationClientTypes { self.heartbeatFrequency = heartbeatFrequency self.heartbeatSchema = heartbeatSchema self.mapBooleanAsBoolean = mapBooleanAsBoolean + self.mapJsonbAsClob = mapJsonbAsClob + self.mapLongVarcharAs = mapLongVarcharAs self.maxFileSize = maxFileSize self.password = password self.pluginName = pluginName @@ -15298,10 +16646,96 @@ extension DatabaseMigrationClientTypes { } +extension DatabaseMigrationClientTypes.ProvisionData: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case dateNewProvisioningDataAvailable = "DateNewProvisioningDataAvailable" + case dateProvisioned = "DateProvisioned" + case isNewProvisioningAvailable = "IsNewProvisioningAvailable" + case provisionState = "ProvisionState" + case provisionedCapacityUnits = "ProvisionedCapacityUnits" + case reasonForNewProvisioningData = "ReasonForNewProvisioningData" + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let dateNewProvisioningDataAvailable = self.dateNewProvisioningDataAvailable { + try encodeContainer.encodeTimestamp(dateNewProvisioningDataAvailable, format: .epochSeconds, forKey: .dateNewProvisioningDataAvailable) + } + if let dateProvisioned = self.dateProvisioned { + try encodeContainer.encodeTimestamp(dateProvisioned, format: .epochSeconds, forKey: .dateProvisioned) + } + if isNewProvisioningAvailable != false { + try encodeContainer.encode(isNewProvisioningAvailable, forKey: .isNewProvisioningAvailable) + } + if let provisionState = self.provisionState { + try encodeContainer.encode(provisionState, forKey: .provisionState) + } + if provisionedCapacityUnits != 0 { + try encodeContainer.encode(provisionedCapacityUnits, forKey: .provisionedCapacityUnits) + } + if let reasonForNewProvisioningData = self.reasonForNewProvisioningData { + try encodeContainer.encode(reasonForNewProvisioningData, forKey: .reasonForNewProvisioningData) + } + } + + public init(from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let provisionStateDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .provisionState) + provisionState = provisionStateDecoded + let provisionedCapacityUnitsDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .provisionedCapacityUnits) ?? 0 + provisionedCapacityUnits = provisionedCapacityUnitsDecoded + let dateProvisionedDecoded = try containerValues.decodeTimestampIfPresent(.epochSeconds, forKey: .dateProvisioned) + dateProvisioned = dateProvisionedDecoded + let isNewProvisioningAvailableDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .isNewProvisioningAvailable) ?? false + isNewProvisioningAvailable = isNewProvisioningAvailableDecoded + let dateNewProvisioningDataAvailableDecoded = try containerValues.decodeTimestampIfPresent(.epochSeconds, forKey: .dateNewProvisioningDataAvailable) + dateNewProvisioningDataAvailable = dateNewProvisioningDataAvailableDecoded + let reasonForNewProvisioningDataDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .reasonForNewProvisioningData) + reasonForNewProvisioningData = reasonForNewProvisioningDataDecoded + } +} + +extension DatabaseMigrationClientTypes { + /// Information about provisioning resources for an DMS serverless replication. + public struct ProvisionData: Swift.Equatable { + /// The timestamp when provisioning became available. + public var dateNewProvisioningDataAvailable: ClientRuntime.Date? + /// The timestamp when DMS provisioned replication resources. + public var dateProvisioned: ClientRuntime.Date? + /// Whether the new provisioning is available to the replication. + public var isNewProvisioningAvailable: Swift.Bool + /// The current provisioning state + public var provisionState: Swift.String? + /// The number of capacity units the replication is using. + public var provisionedCapacityUnits: Swift.Int + /// A message describing the reason that DMS provisioned new resources for the serverless replication. + public var reasonForNewProvisioningData: Swift.String? + + public init( + dateNewProvisioningDataAvailable: ClientRuntime.Date? = nil, + dateProvisioned: ClientRuntime.Date? = nil, + isNewProvisioningAvailable: Swift.Bool = false, + provisionState: Swift.String? = nil, + provisionedCapacityUnits: Swift.Int = 0, + reasonForNewProvisioningData: Swift.String? = nil + ) + { + self.dateNewProvisioningDataAvailable = dateNewProvisioningDataAvailable + self.dateProvisioned = dateProvisioned + self.isNewProvisioningAvailable = isNewProvisioningAvailable + self.provisionState = provisionState + self.provisionedCapacityUnits = provisionedCapacityUnits + self.reasonForNewProvisioningData = reasonForNewProvisioningData + } + } + +} + extension DatabaseMigrationClientTypes.RdsConfiguration: Swift.Codable { enum CodingKeys: Swift.String, Swift.CodingKey { case deploymentOption = "DeploymentOption" case engineEdition = "EngineEdition" + case engineVersion = "EngineVersion" case instanceMemory = "InstanceMemory" case instanceType = "InstanceType" case instanceVcpu = "InstanceVcpu" @@ -15318,6 +16752,9 @@ extension DatabaseMigrationClientTypes.RdsConfiguration: Swift.Codable { if let engineEdition = self.engineEdition { try encodeContainer.encode(engineEdition, forKey: .engineEdition) } + if let engineVersion = self.engineVersion { + try encodeContainer.encode(engineVersion, forKey: .engineVersion) + } if let instanceMemory = self.instanceMemory { try encodeContainer.encode(instanceMemory, forKey: .instanceMemory) } @@ -15356,6 +16793,8 @@ extension DatabaseMigrationClientTypes.RdsConfiguration: Swift.Codable { storageIops = storageIopsDecoded let deploymentOptionDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .deploymentOption) deploymentOption = deploymentOptionDecoded + let engineVersionDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .engineVersion) + engineVersion = engineVersionDecoded } } @@ -15366,6 +16805,8 @@ extension DatabaseMigrationClientTypes { public var deploymentOption: Swift.String? /// Describes the recommended target Amazon RDS engine edition. public var engineEdition: Swift.String? + /// Describes the recommended target Amazon RDS engine version. + public var engineVersion: Swift.String? /// Describes the memory on the recommended Amazon RDS DB instance that meets your requirements. public var instanceMemory: Swift.Double? /// Describes the recommended target Amazon RDS instance type. @@ -15382,6 +16823,7 @@ extension DatabaseMigrationClientTypes { public init( deploymentOption: Swift.String? = nil, engineEdition: Swift.String? = nil, + engineVersion: Swift.String? = nil, instanceMemory: Swift.Double? = nil, instanceType: Swift.String? = nil, instanceVcpu: Swift.Double? = nil, @@ -15392,6 +16834,7 @@ extension DatabaseMigrationClientTypes { { self.deploymentOption = deploymentOption self.engineEdition = engineEdition + self.engineVersion = engineVersion self.instanceMemory = instanceMemory self.instanceType = instanceType self.instanceVcpu = instanceVcpu @@ -15452,6 +16895,7 @@ extension DatabaseMigrationClientTypes.RdsRequirements: Swift.Codable { enum CodingKeys: Swift.String, Swift.CodingKey { case deploymentOption = "DeploymentOption" case engineEdition = "EngineEdition" + case engineVersion = "EngineVersion" case instanceMemory = "InstanceMemory" case instanceVcpu = "InstanceVcpu" case storageIops = "StorageIops" @@ -15466,6 +16910,9 @@ extension DatabaseMigrationClientTypes.RdsRequirements: Swift.Codable { if let engineEdition = self.engineEdition { try encodeContainer.encode(engineEdition, forKey: .engineEdition) } + if let engineVersion = self.engineVersion { + try encodeContainer.encode(engineVersion, forKey: .engineVersion) + } if let instanceMemory = self.instanceMemory { try encodeContainer.encode(instanceMemory, forKey: .instanceMemory) } @@ -15494,6 +16941,8 @@ extension DatabaseMigrationClientTypes.RdsRequirements: Swift.Codable { storageIops = storageIopsDecoded let deploymentOptionDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .deploymentOption) deploymentOption = deploymentOptionDecoded + let engineVersionDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .engineVersion) + engineVersion = engineVersionDecoded } } @@ -15504,6 +16953,8 @@ extension DatabaseMigrationClientTypes { public var deploymentOption: Swift.String? /// The required target Amazon RDS engine edition. public var engineEdition: Swift.String? + /// The required target Amazon RDS engine version. + public var engineVersion: Swift.String? /// The required memory on the Amazon RDS DB instance. public var instanceMemory: Swift.Double? /// The required number of virtual CPUs (vCPU) on the Amazon RDS DB instance. @@ -15516,6 +16967,7 @@ extension DatabaseMigrationClientTypes { public init( deploymentOption: Swift.String? = nil, engineEdition: Swift.String? = nil, + engineVersion: Swift.String? = nil, instanceMemory: Swift.Double? = nil, instanceVcpu: Swift.Double? = nil, storageIops: Swift.Int? = nil, @@ -15524,6 +16976,7 @@ extension DatabaseMigrationClientTypes { { self.deploymentOption = deploymentOption self.engineEdition = engineEdition + self.engineVersion = engineVersion self.instanceMemory = instanceMemory self.instanceVcpu = instanceVcpu self.storageIops = storageIops @@ -16602,10 +18055,10 @@ extension DatabaseMigrationClientTypes { } } -extension ReloadTablesInput: Swift.Encodable { +extension ReloadReplicationTablesInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { case reloadOption = "ReloadOption" - case replicationTaskArn = "ReplicationTaskArn" + case replicationConfigArn = "ReplicationConfigArn" case tablesToReload = "TablesToReload" } @@ -16614,8 +18067,8 @@ extension ReloadTablesInput: Swift.Encodable { if let reloadOption = self.reloadOption { try encodeContainer.encode(reloadOption.rawValue, forKey: .reloadOption) } - if let replicationTaskArn = self.replicationTaskArn { - try encodeContainer.encode(replicationTaskArn, forKey: .replicationTaskArn) + if let replicationConfigArn = self.replicationConfigArn { + try encodeContainer.encode(replicationConfigArn, forKey: .replicationConfigArn) } if let tablesToReload = tablesToReload { var tablesToReloadContainer = encodeContainer.nestedUnkeyedContainer(forKey: .tablesToReload) @@ -16626,51 +18079,52 @@ extension ReloadTablesInput: Swift.Encodable { } } -extension ReloadTablesInput: ClientRuntime.URLPathProvider { +extension ReloadReplicationTablesInput: ClientRuntime.URLPathProvider { public var urlPath: Swift.String? { return "/" } } -public struct ReloadTablesInput: Swift.Equatable { - /// Options for reload. Specify data-reload to reload the data and re-validate it if validation is enabled. Specify validate-only to re-validate the table. This option applies only when validation is enabled for the task. Valid values: data-reload, validate-only Default value is data-reload. +/// +public struct ReloadReplicationTablesInput: Swift.Equatable { + /// Options for reload. Specify data-reload to reload the data and re-validate it if validation is enabled. Specify validate-only to re-validate the table. This option applies only when validation is enabled for the replication. public var reloadOption: DatabaseMigrationClientTypes.ReloadOptionValue? - /// The Amazon Resource Name (ARN) of the replication task. + /// The Amazon Resource Name of the replication config for which to reload tables. /// This member is required. - public var replicationTaskArn: Swift.String? - /// The name and schema of the table to be reloaded. + public var replicationConfigArn: Swift.String? + /// The list of tables to reload. /// This member is required. public var tablesToReload: [DatabaseMigrationClientTypes.TableToReload]? public init( reloadOption: DatabaseMigrationClientTypes.ReloadOptionValue? = nil, - replicationTaskArn: Swift.String? = nil, + replicationConfigArn: Swift.String? = nil, tablesToReload: [DatabaseMigrationClientTypes.TableToReload]? = nil ) { self.reloadOption = reloadOption - self.replicationTaskArn = replicationTaskArn + self.replicationConfigArn = replicationConfigArn self.tablesToReload = tablesToReload } } -struct ReloadTablesInputBody: Swift.Equatable { - let replicationTaskArn: Swift.String? +struct ReloadReplicationTablesInputBody: Swift.Equatable { + let replicationConfigArn: Swift.String? let tablesToReload: [DatabaseMigrationClientTypes.TableToReload]? let reloadOption: DatabaseMigrationClientTypes.ReloadOptionValue? } -extension ReloadTablesInputBody: Swift.Decodable { +extension ReloadReplicationTablesInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { case reloadOption = "ReloadOption" - case replicationTaskArn = "ReplicationTaskArn" + case replicationConfigArn = "ReplicationConfigArn" case tablesToReload = "TablesToReload" } public init(from decoder: Swift.Decoder) throws { let containerValues = try decoder.container(keyedBy: CodingKeys.self) - let replicationTaskArnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .replicationTaskArn) - replicationTaskArn = replicationTaskArnDecoded + let replicationConfigArnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .replicationConfigArn) + replicationConfigArn = replicationConfigArnDecoded let tablesToReloadContainer = try containerValues.decodeIfPresent([DatabaseMigrationClientTypes.TableToReload?].self, forKey: .tablesToReload) var tablesToReloadDecoded0:[DatabaseMigrationClientTypes.TableToReload]? = nil if let tablesToReloadContainer = tablesToReloadContainer { @@ -16687,7 +18141,7 @@ extension ReloadTablesInputBody: Swift.Decodable { } } -public enum ReloadTablesOutputError: ClientRuntime.HttpResponseErrorBinding { +public enum ReloadReplicationTablesOutputError: ClientRuntime.HttpResponseErrorBinding { public static func makeError(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) async throws -> Swift.Error { let restJSONError = try await AWSClientRuntime.RestJSONError(httpResponse: httpResponse) let requestID = httpResponse.requestId @@ -16699,51 +18153,189 @@ public enum ReloadTablesOutputError: ClientRuntime.HttpResponseErrorBinding { } } -extension ReloadTablesOutputResponse: ClientRuntime.HttpResponseBinding { +extension ReloadReplicationTablesOutputResponse: ClientRuntime.HttpResponseBinding { public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) async throws { if let data = try await httpResponse.body.readData(), let responseDecoder = decoder { - let output: ReloadTablesOutputResponseBody = try responseDecoder.decode(responseBody: data) - self.replicationTaskArn = output.replicationTaskArn + let output: ReloadReplicationTablesOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.replicationConfigArn = output.replicationConfigArn } else { - self.replicationTaskArn = nil + self.replicationConfigArn = nil } } } -public struct ReloadTablesOutputResponse: Swift.Equatable { - /// The Amazon Resource Name (ARN) of the replication task. - public var replicationTaskArn: Swift.String? +/// +public struct ReloadReplicationTablesOutputResponse: Swift.Equatable { + /// The Amazon Resource Name of the replication config for which to reload tables. + public var replicationConfigArn: Swift.String? public init( - replicationTaskArn: Swift.String? = nil + replicationConfigArn: Swift.String? = nil ) { - self.replicationTaskArn = replicationTaskArn + self.replicationConfigArn = replicationConfigArn } } -struct ReloadTablesOutputResponseBody: Swift.Equatable { - let replicationTaskArn: Swift.String? +struct ReloadReplicationTablesOutputResponseBody: Swift.Equatable { + let replicationConfigArn: Swift.String? } -extension ReloadTablesOutputResponseBody: Swift.Decodable { +extension ReloadReplicationTablesOutputResponseBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { - case replicationTaskArn = "ReplicationTaskArn" + case replicationConfigArn = "ReplicationConfigArn" } public init(from decoder: Swift.Decoder) throws { let containerValues = try decoder.container(keyedBy: CodingKeys.self) - let replicationTaskArnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .replicationTaskArn) - replicationTaskArn = replicationTaskArnDecoded + let replicationConfigArnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .replicationConfigArn) + replicationConfigArn = replicationConfigArnDecoded } } -extension RemoveTagsFromResourceInput: Swift.Encodable { +extension ReloadTablesInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { - case resourceArn = "ResourceArn" - case tagKeys = "TagKeys" - } + case reloadOption = "ReloadOption" + case replicationTaskArn = "ReplicationTaskArn" + case tablesToReload = "TablesToReload" + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let reloadOption = self.reloadOption { + try encodeContainer.encode(reloadOption.rawValue, forKey: .reloadOption) + } + if let replicationTaskArn = self.replicationTaskArn { + try encodeContainer.encode(replicationTaskArn, forKey: .replicationTaskArn) + } + if let tablesToReload = tablesToReload { + var tablesToReloadContainer = encodeContainer.nestedUnkeyedContainer(forKey: .tablesToReload) + for tabletoreload0 in tablesToReload { + try tablesToReloadContainer.encode(tabletoreload0) + } + } + } +} + +extension ReloadTablesInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + return "/" + } +} + +public struct ReloadTablesInput: Swift.Equatable { + /// Options for reload. Specify data-reload to reload the data and re-validate it if validation is enabled. Specify validate-only to re-validate the table. This option applies only when validation is enabled for the task. Valid values: data-reload, validate-only Default value is data-reload. + public var reloadOption: DatabaseMigrationClientTypes.ReloadOptionValue? + /// The Amazon Resource Name (ARN) of the replication task. + /// This member is required. + public var replicationTaskArn: Swift.String? + /// The name and schema of the table to be reloaded. + /// This member is required. + public var tablesToReload: [DatabaseMigrationClientTypes.TableToReload]? + + public init( + reloadOption: DatabaseMigrationClientTypes.ReloadOptionValue? = nil, + replicationTaskArn: Swift.String? = nil, + tablesToReload: [DatabaseMigrationClientTypes.TableToReload]? = nil + ) + { + self.reloadOption = reloadOption + self.replicationTaskArn = replicationTaskArn + self.tablesToReload = tablesToReload + } +} + +struct ReloadTablesInputBody: Swift.Equatable { + let replicationTaskArn: Swift.String? + let tablesToReload: [DatabaseMigrationClientTypes.TableToReload]? + let reloadOption: DatabaseMigrationClientTypes.ReloadOptionValue? +} + +extension ReloadTablesInputBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case reloadOption = "ReloadOption" + case replicationTaskArn = "ReplicationTaskArn" + case tablesToReload = "TablesToReload" + } + + public init(from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let replicationTaskArnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .replicationTaskArn) + replicationTaskArn = replicationTaskArnDecoded + let tablesToReloadContainer = try containerValues.decodeIfPresent([DatabaseMigrationClientTypes.TableToReload?].self, forKey: .tablesToReload) + var tablesToReloadDecoded0:[DatabaseMigrationClientTypes.TableToReload]? = nil + if let tablesToReloadContainer = tablesToReloadContainer { + tablesToReloadDecoded0 = [DatabaseMigrationClientTypes.TableToReload]() + for structure0 in tablesToReloadContainer { + if let structure0 = structure0 { + tablesToReloadDecoded0?.append(structure0) + } + } + } + tablesToReload = tablesToReloadDecoded0 + let reloadOptionDecoded = try containerValues.decodeIfPresent(DatabaseMigrationClientTypes.ReloadOptionValue.self, forKey: .reloadOption) + reloadOption = reloadOptionDecoded + } +} + +public enum ReloadTablesOutputError: ClientRuntime.HttpResponseErrorBinding { + public static func makeError(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) async throws -> Swift.Error { + let restJSONError = try await AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.requestId + switch restJSONError.errorType { + case "InvalidResourceStateFault": return try await InvalidResourceStateFault(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "ResourceNotFoundFault": return try await ResourceNotFoundFault(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + default: return try await AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(httpResponse: httpResponse, message: restJSONError.errorMessage, requestID: requestID, typeName: restJSONError.errorType) + } + } +} + +extension ReloadTablesOutputResponse: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) async throws { + if let data = try await httpResponse.body.readData(), + let responseDecoder = decoder { + let output: ReloadTablesOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.replicationTaskArn = output.replicationTaskArn + } else { + self.replicationTaskArn = nil + } + } +} + +public struct ReloadTablesOutputResponse: Swift.Equatable { + /// The Amazon Resource Name (ARN) of the replication task. + public var replicationTaskArn: Swift.String? + + public init( + replicationTaskArn: Swift.String? = nil + ) + { + self.replicationTaskArn = replicationTaskArn + } +} + +struct ReloadTablesOutputResponseBody: Swift.Equatable { + let replicationTaskArn: Swift.String? +} + +extension ReloadTablesOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case replicationTaskArn = "ReplicationTaskArn" + } + + public init(from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let replicationTaskArnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .replicationTaskArn) + replicationTaskArn = replicationTaskArnDecoded + } +} + +extension RemoveTagsFromResourceInput: Swift.Encodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case resourceArn = "ResourceArn" + case tagKeys = "TagKeys" + } public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) @@ -16835,6 +18427,386 @@ public struct RemoveTagsFromResourceOutputResponse: Swift.Equatable { public init() { } } +extension DatabaseMigrationClientTypes.Replication: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case cdcStartPosition = "CdcStartPosition" + case cdcStartTime = "CdcStartTime" + case cdcStopPosition = "CdcStopPosition" + case failureMessages = "FailureMessages" + case provisionData = "ProvisionData" + case recoveryCheckpoint = "RecoveryCheckpoint" + case replicationConfigArn = "ReplicationConfigArn" + case replicationConfigIdentifier = "ReplicationConfigIdentifier" + case replicationCreateTime = "ReplicationCreateTime" + case replicationLastStopTime = "ReplicationLastStopTime" + case replicationStats = "ReplicationStats" + case replicationType = "ReplicationType" + case replicationUpdateTime = "ReplicationUpdateTime" + case sourceEndpointArn = "SourceEndpointArn" + case startReplicationType = "StartReplicationType" + case status = "Status" + case stopReason = "StopReason" + case targetEndpointArn = "TargetEndpointArn" + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let cdcStartPosition = self.cdcStartPosition { + try encodeContainer.encode(cdcStartPosition, forKey: .cdcStartPosition) + } + if let cdcStartTime = self.cdcStartTime { + try encodeContainer.encodeTimestamp(cdcStartTime, format: .epochSeconds, forKey: .cdcStartTime) + } + if let cdcStopPosition = self.cdcStopPosition { + try encodeContainer.encode(cdcStopPosition, forKey: .cdcStopPosition) + } + if let failureMessages = failureMessages { + var failureMessagesContainer = encodeContainer.nestedUnkeyedContainer(forKey: .failureMessages) + for string0 in failureMessages { + try failureMessagesContainer.encode(string0) + } + } + if let provisionData = self.provisionData { + try encodeContainer.encode(provisionData, forKey: .provisionData) + } + if let recoveryCheckpoint = self.recoveryCheckpoint { + try encodeContainer.encode(recoveryCheckpoint, forKey: .recoveryCheckpoint) + } + if let replicationConfigArn = self.replicationConfigArn { + try encodeContainer.encode(replicationConfigArn, forKey: .replicationConfigArn) + } + if let replicationConfigIdentifier = self.replicationConfigIdentifier { + try encodeContainer.encode(replicationConfigIdentifier, forKey: .replicationConfigIdentifier) + } + if let replicationCreateTime = self.replicationCreateTime { + try encodeContainer.encodeTimestamp(replicationCreateTime, format: .epochSeconds, forKey: .replicationCreateTime) + } + if let replicationLastStopTime = self.replicationLastStopTime { + try encodeContainer.encodeTimestamp(replicationLastStopTime, format: .epochSeconds, forKey: .replicationLastStopTime) + } + if let replicationStats = self.replicationStats { + try encodeContainer.encode(replicationStats, forKey: .replicationStats) + } + if let replicationType = self.replicationType { + try encodeContainer.encode(replicationType.rawValue, forKey: .replicationType) + } + if let replicationUpdateTime = self.replicationUpdateTime { + try encodeContainer.encodeTimestamp(replicationUpdateTime, format: .epochSeconds, forKey: .replicationUpdateTime) + } + if let sourceEndpointArn = self.sourceEndpointArn { + try encodeContainer.encode(sourceEndpointArn, forKey: .sourceEndpointArn) + } + if let startReplicationType = self.startReplicationType { + try encodeContainer.encode(startReplicationType, forKey: .startReplicationType) + } + if let status = self.status { + try encodeContainer.encode(status, forKey: .status) + } + if let stopReason = self.stopReason { + try encodeContainer.encode(stopReason, forKey: .stopReason) + } + if let targetEndpointArn = self.targetEndpointArn { + try encodeContainer.encode(targetEndpointArn, forKey: .targetEndpointArn) + } + } + + public init(from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let replicationConfigIdentifierDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .replicationConfigIdentifier) + replicationConfigIdentifier = replicationConfigIdentifierDecoded + let replicationConfigArnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .replicationConfigArn) + replicationConfigArn = replicationConfigArnDecoded + let sourceEndpointArnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .sourceEndpointArn) + sourceEndpointArn = sourceEndpointArnDecoded + let targetEndpointArnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .targetEndpointArn) + targetEndpointArn = targetEndpointArnDecoded + let replicationTypeDecoded = try containerValues.decodeIfPresent(DatabaseMigrationClientTypes.MigrationTypeValue.self, forKey: .replicationType) + replicationType = replicationTypeDecoded + let statusDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .status) + status = statusDecoded + let provisionDataDecoded = try containerValues.decodeIfPresent(DatabaseMigrationClientTypes.ProvisionData.self, forKey: .provisionData) + provisionData = provisionDataDecoded + let stopReasonDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .stopReason) + stopReason = stopReasonDecoded + let failureMessagesContainer = try containerValues.decodeIfPresent([Swift.String?].self, forKey: .failureMessages) + var failureMessagesDecoded0:[Swift.String]? = nil + if let failureMessagesContainer = failureMessagesContainer { + failureMessagesDecoded0 = [Swift.String]() + for string0 in failureMessagesContainer { + if let string0 = string0 { + failureMessagesDecoded0?.append(string0) + } + } + } + failureMessages = failureMessagesDecoded0 + let replicationStatsDecoded = try containerValues.decodeIfPresent(DatabaseMigrationClientTypes.ReplicationStats.self, forKey: .replicationStats) + replicationStats = replicationStatsDecoded + let startReplicationTypeDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .startReplicationType) + startReplicationType = startReplicationTypeDecoded + let cdcStartTimeDecoded = try containerValues.decodeTimestampIfPresent(.epochSeconds, forKey: .cdcStartTime) + cdcStartTime = cdcStartTimeDecoded + let cdcStartPositionDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .cdcStartPosition) + cdcStartPosition = cdcStartPositionDecoded + let cdcStopPositionDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .cdcStopPosition) + cdcStopPosition = cdcStopPositionDecoded + let recoveryCheckpointDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .recoveryCheckpoint) + recoveryCheckpoint = recoveryCheckpointDecoded + let replicationCreateTimeDecoded = try containerValues.decodeTimestampIfPresent(.epochSeconds, forKey: .replicationCreateTime) + replicationCreateTime = replicationCreateTimeDecoded + let replicationUpdateTimeDecoded = try containerValues.decodeTimestampIfPresent(.epochSeconds, forKey: .replicationUpdateTime) + replicationUpdateTime = replicationUpdateTimeDecoded + let replicationLastStopTimeDecoded = try containerValues.decodeTimestampIfPresent(.epochSeconds, forKey: .replicationLastStopTime) + replicationLastStopTime = replicationLastStopTimeDecoded + } +} + +extension DatabaseMigrationClientTypes { + /// Provides information that describes a serverless replication created by the CreateReplication operation. + public struct Replication: Swift.Equatable { + /// Indicates the start time for a change data capture (CDC) operation. Use either CdcStartTime or CdcStartPosition to specify when you want a CDC operation to start. Specifying both values results in an error. + public var cdcStartPosition: Swift.String? + /// Indicates the start time for a change data capture (CDC) operation. Use either CdcStartTime or CdcStartPosition to specify when you want a CDC operation to start. Specifying both values results in an error. + public var cdcStartTime: ClientRuntime.Date? + /// Indicates when you want a change data capture (CDC) operation to stop. The value can be either server time or commit time. + public var cdcStopPosition: Swift.String? + /// Error and other information about why a serverless replication failed. + public var failureMessages: [Swift.String]? + /// Information about provisioning resources for an DMS serverless replication. + public var provisionData: DatabaseMigrationClientTypes.ProvisionData? + /// Indicates the last checkpoint that occurred during a change data capture (CDC) operation. You can provide this value to the CdcStartPosition parameter to start a CDC operation that begins at that checkpoint. + public var recoveryCheckpoint: Swift.String? + /// The Amazon Resource Name for the ReplicationConfig associated with the replication. + public var replicationConfigArn: Swift.String? + /// The identifier for the ReplicationConfig associated with the replication. + public var replicationConfigIdentifier: Swift.String? + /// The time the serverless replication was created. + public var replicationCreateTime: ClientRuntime.Date? + /// The timestamp when replication was last stopped. + public var replicationLastStopTime: ClientRuntime.Date? + /// This object provides a collection of statistics about a serverless replication. + public var replicationStats: DatabaseMigrationClientTypes.ReplicationStats? + /// The type of the serverless replication. + public var replicationType: DatabaseMigrationClientTypes.MigrationTypeValue? + /// The time the serverless replication was updated. + public var replicationUpdateTime: ClientRuntime.Date? + /// The Amazon Resource Name for an existing Endpoint the serverless replication uses for its data source. + public var sourceEndpointArn: Swift.String? + /// The replication type. + public var startReplicationType: Swift.String? + /// The current status of the serverless replication. + public var status: Swift.String? + /// The reason the replication task was stopped. This response parameter can return one of the following values: + /// + /// * "Stop Reason NORMAL" + /// + /// * "Stop Reason RECOVERABLE_ERROR" + /// + /// * "Stop Reason FATAL_ERROR" + /// + /// * "Stop Reason FULL_LOAD_ONLY_FINISHED" + /// + /// * "Stop Reason STOPPED_AFTER_FULL_LOAD" – Full load completed, with cached changes not applied + /// + /// * "Stop Reason STOPPED_AFTER_CACHED_EVENTS" – Full load completed, with cached changes applied + /// + /// * "Stop Reason EXPRESS_LICENSE_LIMITS_REACHED" + /// + /// * "Stop Reason STOPPED_AFTER_DDL_APPLY" – User-defined stop task after DDL applied + /// + /// * "Stop Reason STOPPED_DUE_TO_LOW_MEMORY" + /// + /// * "Stop Reason STOPPED_DUE_TO_LOW_DISK" + /// + /// * "Stop Reason STOPPED_AT_SERVER_TIME" – User-defined server time for stopping task + /// + /// * "Stop Reason STOPPED_AT_COMMIT_TIME" – User-defined commit time for stopping task + /// + /// * "Stop Reason RECONFIGURATION_RESTART" + /// + /// * "Stop Reason RECYCLE_TASK" + public var stopReason: Swift.String? + /// The Amazon Resource Name for an existing Endpoint the serverless replication uses for its data target. + public var targetEndpointArn: Swift.String? + + public init( + cdcStartPosition: Swift.String? = nil, + cdcStartTime: ClientRuntime.Date? = nil, + cdcStopPosition: Swift.String? = nil, + failureMessages: [Swift.String]? = nil, + provisionData: DatabaseMigrationClientTypes.ProvisionData? = nil, + recoveryCheckpoint: Swift.String? = nil, + replicationConfigArn: Swift.String? = nil, + replicationConfigIdentifier: Swift.String? = nil, + replicationCreateTime: ClientRuntime.Date? = nil, + replicationLastStopTime: ClientRuntime.Date? = nil, + replicationStats: DatabaseMigrationClientTypes.ReplicationStats? = nil, + replicationType: DatabaseMigrationClientTypes.MigrationTypeValue? = nil, + replicationUpdateTime: ClientRuntime.Date? = nil, + sourceEndpointArn: Swift.String? = nil, + startReplicationType: Swift.String? = nil, + status: Swift.String? = nil, + stopReason: Swift.String? = nil, + targetEndpointArn: Swift.String? = nil + ) + { + self.cdcStartPosition = cdcStartPosition + self.cdcStartTime = cdcStartTime + self.cdcStopPosition = cdcStopPosition + self.failureMessages = failureMessages + self.provisionData = provisionData + self.recoveryCheckpoint = recoveryCheckpoint + self.replicationConfigArn = replicationConfigArn + self.replicationConfigIdentifier = replicationConfigIdentifier + self.replicationCreateTime = replicationCreateTime + self.replicationLastStopTime = replicationLastStopTime + self.replicationStats = replicationStats + self.replicationType = replicationType + self.replicationUpdateTime = replicationUpdateTime + self.sourceEndpointArn = sourceEndpointArn + self.startReplicationType = startReplicationType + self.status = status + self.stopReason = stopReason + self.targetEndpointArn = targetEndpointArn + } + } + +} + +extension DatabaseMigrationClientTypes.ReplicationConfig: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case computeConfig = "ComputeConfig" + case replicationConfigArn = "ReplicationConfigArn" + case replicationConfigCreateTime = "ReplicationConfigCreateTime" + case replicationConfigIdentifier = "ReplicationConfigIdentifier" + case replicationConfigUpdateTime = "ReplicationConfigUpdateTime" + case replicationSettings = "ReplicationSettings" + case replicationType = "ReplicationType" + case sourceEndpointArn = "SourceEndpointArn" + case supplementalSettings = "SupplementalSettings" + case tableMappings = "TableMappings" + case targetEndpointArn = "TargetEndpointArn" + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let computeConfig = self.computeConfig { + try encodeContainer.encode(computeConfig, forKey: .computeConfig) + } + if let replicationConfigArn = self.replicationConfigArn { + try encodeContainer.encode(replicationConfigArn, forKey: .replicationConfigArn) + } + if let replicationConfigCreateTime = self.replicationConfigCreateTime { + try encodeContainer.encodeTimestamp(replicationConfigCreateTime, format: .epochSeconds, forKey: .replicationConfigCreateTime) + } + if let replicationConfigIdentifier = self.replicationConfigIdentifier { + try encodeContainer.encode(replicationConfigIdentifier, forKey: .replicationConfigIdentifier) + } + if let replicationConfigUpdateTime = self.replicationConfigUpdateTime { + try encodeContainer.encodeTimestamp(replicationConfigUpdateTime, format: .epochSeconds, forKey: .replicationConfigUpdateTime) + } + if let replicationSettings = self.replicationSettings { + try encodeContainer.encode(replicationSettings, forKey: .replicationSettings) + } + if let replicationType = self.replicationType { + try encodeContainer.encode(replicationType.rawValue, forKey: .replicationType) + } + if let sourceEndpointArn = self.sourceEndpointArn { + try encodeContainer.encode(sourceEndpointArn, forKey: .sourceEndpointArn) + } + if let supplementalSettings = self.supplementalSettings { + try encodeContainer.encode(supplementalSettings, forKey: .supplementalSettings) + } + if let tableMappings = self.tableMappings { + try encodeContainer.encode(tableMappings, forKey: .tableMappings) + } + if let targetEndpointArn = self.targetEndpointArn { + try encodeContainer.encode(targetEndpointArn, forKey: .targetEndpointArn) + } + } + + public init(from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let replicationConfigIdentifierDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .replicationConfigIdentifier) + replicationConfigIdentifier = replicationConfigIdentifierDecoded + let replicationConfigArnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .replicationConfigArn) + replicationConfigArn = replicationConfigArnDecoded + let sourceEndpointArnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .sourceEndpointArn) + sourceEndpointArn = sourceEndpointArnDecoded + let targetEndpointArnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .targetEndpointArn) + targetEndpointArn = targetEndpointArnDecoded + let replicationTypeDecoded = try containerValues.decodeIfPresent(DatabaseMigrationClientTypes.MigrationTypeValue.self, forKey: .replicationType) + replicationType = replicationTypeDecoded + let computeConfigDecoded = try containerValues.decodeIfPresent(DatabaseMigrationClientTypes.ComputeConfig.self, forKey: .computeConfig) + computeConfig = computeConfigDecoded + let replicationSettingsDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .replicationSettings) + replicationSettings = replicationSettingsDecoded + let supplementalSettingsDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .supplementalSettings) + supplementalSettings = supplementalSettingsDecoded + let tableMappingsDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .tableMappings) + tableMappings = tableMappingsDecoded + let replicationConfigCreateTimeDecoded = try containerValues.decodeTimestampIfPresent(.epochSeconds, forKey: .replicationConfigCreateTime) + replicationConfigCreateTime = replicationConfigCreateTimeDecoded + let replicationConfigUpdateTimeDecoded = try containerValues.decodeTimestampIfPresent(.epochSeconds, forKey: .replicationConfigUpdateTime) + replicationConfigUpdateTime = replicationConfigUpdateTimeDecoded + } +} + +extension DatabaseMigrationClientTypes { + /// This object provides configuration information about a serverless replication. + public struct ReplicationConfig: Swift.Equatable { + /// Configuration parameters for provisioning an DMS serverless replication. + public var computeConfig: DatabaseMigrationClientTypes.ComputeConfig? + /// The Amazon Resource Name (ARN) of this DMS Serverless replication configuration. + public var replicationConfigArn: Swift.String? + /// The time the serverless replication config was created. + public var replicationConfigCreateTime: ClientRuntime.Date? + /// The identifier for the ReplicationConfig associated with the replication. + public var replicationConfigIdentifier: Swift.String? + /// The time the serverless replication config was updated. + public var replicationConfigUpdateTime: ClientRuntime.Date? + /// Configuration parameters for an DMS serverless replication. + public var replicationSettings: Swift.String? + /// The type of the replication. + public var replicationType: DatabaseMigrationClientTypes.MigrationTypeValue? + /// The Amazon Resource Name (ARN) of the source endpoint for this DMS serverless replication configuration. + public var sourceEndpointArn: Swift.String? + /// Additional parameters for an DMS serverless replication. + public var supplementalSettings: Swift.String? + /// Table mappings specified in the replication. + public var tableMappings: Swift.String? + /// The Amazon Resource Name (ARN) of the target endpoint for this DMS serverless replication configuration. + public var targetEndpointArn: Swift.String? + + public init( + computeConfig: DatabaseMigrationClientTypes.ComputeConfig? = nil, + replicationConfigArn: Swift.String? = nil, + replicationConfigCreateTime: ClientRuntime.Date? = nil, + replicationConfigIdentifier: Swift.String? = nil, + replicationConfigUpdateTime: ClientRuntime.Date? = nil, + replicationSettings: Swift.String? = nil, + replicationType: DatabaseMigrationClientTypes.MigrationTypeValue? = nil, + sourceEndpointArn: Swift.String? = nil, + supplementalSettings: Swift.String? = nil, + tableMappings: Swift.String? = nil, + targetEndpointArn: Swift.String? = nil + ) + { + self.computeConfig = computeConfig + self.replicationConfigArn = replicationConfigArn + self.replicationConfigCreateTime = replicationConfigCreateTime + self.replicationConfigIdentifier = replicationConfigIdentifier + self.replicationConfigUpdateTime = replicationConfigUpdateTime + self.replicationSettings = replicationSettings + self.replicationType = replicationType + self.sourceEndpointArn = sourceEndpointArn + self.supplementalSettings = supplementalSettings + self.tableMappings = tableMappings + self.targetEndpointArn = targetEndpointArn + } + } + +} + extension DatabaseMigrationClientTypes { public enum ReplicationEndpointTypeValue: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { case source @@ -17340,18 +19312,153 @@ extension DatabaseMigrationClientTypes { public var replicationInstanceClass: Swift.String? public init( - allocatedStorage: Swift.Int? = nil, - engineVersion: Swift.String? = nil, - multiAZ: Swift.Bool? = nil, - networkType: Swift.String? = nil, - replicationInstanceClass: Swift.String? = nil + allocatedStorage: Swift.Int? = nil, + engineVersion: Swift.String? = nil, + multiAZ: Swift.Bool? = nil, + networkType: Swift.String? = nil, + replicationInstanceClass: Swift.String? = nil + ) + { + self.allocatedStorage = allocatedStorage + self.engineVersion = engineVersion + self.multiAZ = multiAZ + self.networkType = networkType + self.replicationInstanceClass = replicationInstanceClass + } + } + +} + +extension DatabaseMigrationClientTypes.ReplicationStats: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case elapsedTimeMillis = "ElapsedTimeMillis" + case freshStartDate = "FreshStartDate" + case fullLoadFinishDate = "FullLoadFinishDate" + case fullLoadProgressPercent = "FullLoadProgressPercent" + case fullLoadStartDate = "FullLoadStartDate" + case startDate = "StartDate" + case stopDate = "StopDate" + case tablesErrored = "TablesErrored" + case tablesLoaded = "TablesLoaded" + case tablesLoading = "TablesLoading" + case tablesQueued = "TablesQueued" + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if elapsedTimeMillis != 0 { + try encodeContainer.encode(elapsedTimeMillis, forKey: .elapsedTimeMillis) + } + if let freshStartDate = self.freshStartDate { + try encodeContainer.encodeTimestamp(freshStartDate, format: .epochSeconds, forKey: .freshStartDate) + } + if let fullLoadFinishDate = self.fullLoadFinishDate { + try encodeContainer.encodeTimestamp(fullLoadFinishDate, format: .epochSeconds, forKey: .fullLoadFinishDate) + } + if fullLoadProgressPercent != 0 { + try encodeContainer.encode(fullLoadProgressPercent, forKey: .fullLoadProgressPercent) + } + if let fullLoadStartDate = self.fullLoadStartDate { + try encodeContainer.encodeTimestamp(fullLoadStartDate, format: .epochSeconds, forKey: .fullLoadStartDate) + } + if let startDate = self.startDate { + try encodeContainer.encodeTimestamp(startDate, format: .epochSeconds, forKey: .startDate) + } + if let stopDate = self.stopDate { + try encodeContainer.encodeTimestamp(stopDate, format: .epochSeconds, forKey: .stopDate) + } + if tablesErrored != 0 { + try encodeContainer.encode(tablesErrored, forKey: .tablesErrored) + } + if tablesLoaded != 0 { + try encodeContainer.encode(tablesLoaded, forKey: .tablesLoaded) + } + if tablesLoading != 0 { + try encodeContainer.encode(tablesLoading, forKey: .tablesLoading) + } + if tablesQueued != 0 { + try encodeContainer.encode(tablesQueued, forKey: .tablesQueued) + } + } + + public init(from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let fullLoadProgressPercentDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .fullLoadProgressPercent) ?? 0 + fullLoadProgressPercent = fullLoadProgressPercentDecoded + let elapsedTimeMillisDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .elapsedTimeMillis) ?? 0 + elapsedTimeMillis = elapsedTimeMillisDecoded + let tablesLoadedDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .tablesLoaded) ?? 0 + tablesLoaded = tablesLoadedDecoded + let tablesLoadingDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .tablesLoading) ?? 0 + tablesLoading = tablesLoadingDecoded + let tablesQueuedDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .tablesQueued) ?? 0 + tablesQueued = tablesQueuedDecoded + let tablesErroredDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .tablesErrored) ?? 0 + tablesErrored = tablesErroredDecoded + let freshStartDateDecoded = try containerValues.decodeTimestampIfPresent(.epochSeconds, forKey: .freshStartDate) + freshStartDate = freshStartDateDecoded + let startDateDecoded = try containerValues.decodeTimestampIfPresent(.epochSeconds, forKey: .startDate) + startDate = startDateDecoded + let stopDateDecoded = try containerValues.decodeTimestampIfPresent(.epochSeconds, forKey: .stopDate) + stopDate = stopDateDecoded + let fullLoadStartDateDecoded = try containerValues.decodeTimestampIfPresent(.epochSeconds, forKey: .fullLoadStartDate) + fullLoadStartDate = fullLoadStartDateDecoded + let fullLoadFinishDateDecoded = try containerValues.decodeTimestampIfPresent(.epochSeconds, forKey: .fullLoadFinishDate) + fullLoadFinishDate = fullLoadFinishDateDecoded + } +} + +extension DatabaseMigrationClientTypes { + /// This object provides a collection of statistics about a serverless replication. + public struct ReplicationStats: Swift.Equatable { + /// The elapsed time of the replication, in milliseconds. + public var elapsedTimeMillis: Swift.Int + /// The date the replication was started either with a fresh start or a target reload. + public var freshStartDate: ClientRuntime.Date? + /// The date the replication full load was finished. + public var fullLoadFinishDate: ClientRuntime.Date? + /// The percent complete for the full load serverless replication. + public var fullLoadProgressPercent: Swift.Int + /// The date the replication full load was started. + public var fullLoadStartDate: ClientRuntime.Date? + /// The date the replication is scheduled to start. + public var startDate: ClientRuntime.Date? + /// The date the replication was stopped. + public var stopDate: ClientRuntime.Date? + /// The number of errors that have occured for this replication. + public var tablesErrored: Swift.Int + /// The number of tables loaded for this replication. + public var tablesLoaded: Swift.Int + /// The number of tables currently loading for this replication. + public var tablesLoading: Swift.Int + /// The number of tables queued for this replication. + public var tablesQueued: Swift.Int + + public init( + elapsedTimeMillis: Swift.Int = 0, + freshStartDate: ClientRuntime.Date? = nil, + fullLoadFinishDate: ClientRuntime.Date? = nil, + fullLoadProgressPercent: Swift.Int = 0, + fullLoadStartDate: ClientRuntime.Date? = nil, + startDate: ClientRuntime.Date? = nil, + stopDate: ClientRuntime.Date? = nil, + tablesErrored: Swift.Int = 0, + tablesLoaded: Swift.Int = 0, + tablesLoading: Swift.Int = 0, + tablesQueued: Swift.Int = 0 ) { - self.allocatedStorage = allocatedStorage - self.engineVersion = engineVersion - self.multiAZ = multiAZ - self.networkType = networkType - self.replicationInstanceClass = replicationInstanceClass + self.elapsedTimeMillis = elapsedTimeMillis + self.freshStartDate = freshStartDate + self.fullLoadFinishDate = fullLoadFinishDate + self.fullLoadProgressPercent = fullLoadProgressPercent + self.fullLoadStartDate = fullLoadStartDate + self.startDate = startDate + self.stopDate = stopDate + self.tablesErrored = tablesErrored + self.tablesLoaded = tablesLoaded + self.tablesLoading = tablesLoading + self.tablesQueued = tablesQueued } } @@ -18345,6 +20452,7 @@ public struct ResourceAlreadyExistsFault: ClientRuntime.ModeledError, AWSClientR public struct Properties { /// public internal(set) var message: Swift.String? = nil + /// public internal(set) var resourceArn: Swift.String? = nil } @@ -19028,7 +21136,7 @@ extension DatabaseMigrationClientTypes { public var bucketName: Swift.String? /// A value that enables DMS to specify a predefined (canned) access control list for objects created in an Amazon S3 bucket as .csv or .parquet files. For more information about Amazon S3 canned ACLs, see [Canned ACL](http://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) in the Amazon S3 Developer Guide. The default value is NONE. Valid values include NONE, PRIVATE, PUBLIC_READ, PUBLIC_READ_WRITE, AUTHENTICATED_READ, AWS_EXEC_READ, BUCKET_OWNER_READ, and BUCKET_OWNER_FULL_CONTROL. public var cannedAclForObjects: DatabaseMigrationClientTypes.CannedAclForObjectsValue? - /// A value that enables a change data capture (CDC) load to write INSERT and UPDATE operations to .csv or .parquet (columnar storage) output files. The default setting is false, but when CdcInsertsAndUpdates is set to true or y, only INSERTs and UPDATEs from the source database are migrated to the .csv or .parquet file. For .csv file format only, how these INSERTs and UPDATEs are recorded depends on the value of the IncludeOpForFullLoad parameter. If IncludeOpForFullLoad is set to true, the first field of every CDC record is set to either I or U to indicate INSERT and UPDATE operations at the source. But if IncludeOpForFullLoad is set to false, CDC records are written without an indication of INSERT or UPDATE operations at the source. For more information about how these settings work together, see [Indicating Source DB Operations in Migrated S3 Data](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.Configuring.InsertOps) in the Database Migration Service User Guide.. DMS supports the use of the CdcInsertsAndUpdates parameter in versions 3.3.1 and later. CdcInsertsOnly and CdcInsertsAndUpdates can't both be set to true for the same endpoint. Set either CdcInsertsOnly or CdcInsertsAndUpdates to true for the same endpoint, but not both. + /// A value that enables a change data capture (CDC) load to write INSERT and UPDATE operations to .csv or .parquet (columnar storage) output files. The default setting is false, but when CdcInsertsAndUpdates is set to true or y, only INSERTs and UPDATEs from the source database are migrated to the .csv or .parquet file. DMS supports the use of the .parquet files in versions 3.4.7 and later. How these INSERTs and UPDATEs are recorded depends on the value of the IncludeOpForFullLoad parameter. If IncludeOpForFullLoad is set to true, the first field of every CDC record is set to either I or U to indicate INSERT and UPDATE operations at the source. But if IncludeOpForFullLoad is set to false, CDC records are written without an indication of INSERT or UPDATE operations at the source. For more information about how these settings work together, see [Indicating Source DB Operations in Migrated S3 Data](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.Configuring.InsertOps) in the Database Migration Service User Guide.. DMS supports the use of the CdcInsertsAndUpdates parameter in versions 3.3.1 and later. CdcInsertsOnly and CdcInsertsAndUpdates can't both be set to true for the same endpoint. Set either CdcInsertsOnly or CdcInsertsAndUpdates to true for the same endpoint, but not both. public var cdcInsertsAndUpdates: Swift.Bool? /// A value that enables a change data capture (CDC) load to write only INSERT operations to .csv or columnar storage (.parquet) output files. By default (the false setting), the first field in a .csv or .parquet record contains the letter I (INSERT), U (UPDATE), or D (DELETE). These values indicate whether the row was inserted, updated, or deleted at the source database for a CDC load to the target. If CdcInsertsOnly is set to true or y, only INSERTs from the source database are migrated to the .csv or .parquet file. For .csv format only, how these INSERTs are recorded depends on the value of IncludeOpForFullLoad. If IncludeOpForFullLoad is set to true, the first field of every CDC record is set to I to indicate the INSERT operation at the source. If IncludeOpForFullLoad is set to false, every CDC record is written without a first field to indicate the INSERT operation at the source. For more information about how these settings work together, see [Indicating Source DB Operations in Migrated S3 Data](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.Configuring.InsertOps) in the Database Migration Service User Guide.. DMS supports the interaction described preceding between the CdcInsertsOnly and IncludeOpForFullLoad parameters in versions 3.1.4 and later. CdcInsertsOnly and CdcInsertsAndUpdates can't both be set to true for the same endpoint. Set either CdcInsertsOnly or CdcInsertsAndUpdates to true for the same endpoint, but not both. public var cdcInsertsOnly: Swift.Bool? @@ -19108,7 +21216,7 @@ extension DatabaseMigrationClientTypes { public var glueCatalogGeneration: Swift.Bool? /// When this value is set to 1, DMS ignores the first row header in a .csv file. A value of 1 turns on the feature; a value of 0 turns off the feature. The default is 0. public var ignoreHeaderRows: Swift.Int? - /// A value that enables a full load to write INSERT operations to the comma-separated value (.csv) output files only to indicate how the rows were added to the source database. DMS supports the IncludeOpForFullLoad parameter in versions 3.1.4 and later. For full load, records can only be inserted. By default (the false setting), no information is recorded in these output files for a full load to indicate that the rows were inserted at the source database. If IncludeOpForFullLoad is set to true or y, the INSERT is recorded as an I annotation in the first field of the .csv file. This allows the format of your target records from a full load to be consistent with the target records from a CDC load. This setting works together with the CdcInsertsOnly and the CdcInsertsAndUpdates parameters for output to .csv files only. For more information about how these settings work together, see [Indicating Source DB Operations in Migrated S3 Data](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.Configuring.InsertOps) in the Database Migration Service User Guide.. + /// A value that enables a full load to write INSERT operations to the comma-separated value (.csv) or .parquet output files only to indicate how the rows were added to the source database. DMS supports the IncludeOpForFullLoad parameter in versions 3.1.4 and later. DMS supports the use of the .parquet files with the IncludeOpForFullLoad parameter in versions 3.4.7 and later. For full load, records can only be inserted. By default (the false setting), no information is recorded in these output files for a full load to indicate that the rows were inserted at the source database. If IncludeOpForFullLoad is set to true or y, the INSERT is recorded as an I annotation in the first field of the .csv file. This allows the format of your target records from a full load to be consistent with the target records from a CDC load. This setting works together with the CdcInsertsOnly and the CdcInsertsAndUpdates parameters for output to .csv files only. For more information about how these settings work together, see [Indicating Source DB Operations in Migrated S3 Data](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html#CHAP_Target.S3.Configuring.InsertOps) in the Database Migration Service User Guide.. public var includeOpForFullLoad: Swift.Bool? /// A value that specifies the maximum size (in KB) of any .csv file to be created while migrating to an S3 target during full load. The default value is 1,048,576 KB (1 GB). Valid values include 1 to 1,048,576. public var maxFileSize: Swift.Int? @@ -19807,6 +21915,158 @@ extension DatabaseMigrationClientTypes { } +extension StartReplicationInput: Swift.Encodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case cdcStartPosition = "CdcStartPosition" + case cdcStartTime = "CdcStartTime" + case cdcStopPosition = "CdcStopPosition" + case replicationConfigArn = "ReplicationConfigArn" + case startReplicationType = "StartReplicationType" + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let cdcStartPosition = self.cdcStartPosition { + try encodeContainer.encode(cdcStartPosition, forKey: .cdcStartPosition) + } + if let cdcStartTime = self.cdcStartTime { + try encodeContainer.encodeTimestamp(cdcStartTime, format: .epochSeconds, forKey: .cdcStartTime) + } + if let cdcStopPosition = self.cdcStopPosition { + try encodeContainer.encode(cdcStopPosition, forKey: .cdcStopPosition) + } + if let replicationConfigArn = self.replicationConfigArn { + try encodeContainer.encode(replicationConfigArn, forKey: .replicationConfigArn) + } + if let startReplicationType = self.startReplicationType { + try encodeContainer.encode(startReplicationType, forKey: .startReplicationType) + } + } +} + +extension StartReplicationInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + return "/" + } +} + +/// +public struct StartReplicationInput: Swift.Equatable { + /// Indicates when you want a change data capture (CDC) operation to start. Use either CdcStartPosition or CdcStartTime to specify when you want a CDC operation to start. Specifying both values results in an error. The value can be in date, checkpoint, or LSN/SCN format. + public var cdcStartPosition: Swift.String? + /// Indicates the start time for a change data capture (CDC) operation. Use either CdcStartTime or CdcStartPosition to specify when you want a CDC operation to start. Specifying both values results in an error. + public var cdcStartTime: ClientRuntime.Date? + /// Indicates when you want a change data capture (CDC) operation to stop. The value can be either server time or commit time. + public var cdcStopPosition: Swift.String? + /// The Amazon Resource Name of the replication for which to start replication. + /// This member is required. + public var replicationConfigArn: Swift.String? + /// The replication type. + /// This member is required. + public var startReplicationType: Swift.String? + + public init( + cdcStartPosition: Swift.String? = nil, + cdcStartTime: ClientRuntime.Date? = nil, + cdcStopPosition: Swift.String? = nil, + replicationConfigArn: Swift.String? = nil, + startReplicationType: Swift.String? = nil + ) + { + self.cdcStartPosition = cdcStartPosition + self.cdcStartTime = cdcStartTime + self.cdcStopPosition = cdcStopPosition + self.replicationConfigArn = replicationConfigArn + self.startReplicationType = startReplicationType + } +} + +struct StartReplicationInputBody: Swift.Equatable { + let replicationConfigArn: Swift.String? + let startReplicationType: Swift.String? + let cdcStartTime: ClientRuntime.Date? + let cdcStartPosition: Swift.String? + let cdcStopPosition: Swift.String? +} + +extension StartReplicationInputBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case cdcStartPosition = "CdcStartPosition" + case cdcStartTime = "CdcStartTime" + case cdcStopPosition = "CdcStopPosition" + case replicationConfigArn = "ReplicationConfigArn" + case startReplicationType = "StartReplicationType" + } + + public init(from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let replicationConfigArnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .replicationConfigArn) + replicationConfigArn = replicationConfigArnDecoded + let startReplicationTypeDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .startReplicationType) + startReplicationType = startReplicationTypeDecoded + let cdcStartTimeDecoded = try containerValues.decodeTimestampIfPresent(.epochSeconds, forKey: .cdcStartTime) + cdcStartTime = cdcStartTimeDecoded + let cdcStartPositionDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .cdcStartPosition) + cdcStartPosition = cdcStartPositionDecoded + let cdcStopPositionDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .cdcStopPosition) + cdcStopPosition = cdcStopPositionDecoded + } +} + +public enum StartReplicationOutputError: ClientRuntime.HttpResponseErrorBinding { + public static func makeError(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) async throws -> Swift.Error { + let restJSONError = try await AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.requestId + switch restJSONError.errorType { + case "AccessDeniedFault": return try await AccessDeniedFault(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "InvalidResourceStateFault": return try await InvalidResourceStateFault(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "ResourceNotFoundFault": return try await ResourceNotFoundFault(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + default: return try await AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(httpResponse: httpResponse, message: restJSONError.errorMessage, requestID: requestID, typeName: restJSONError.errorType) + } + } +} + +extension StartReplicationOutputResponse: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) async throws { + if let data = try await httpResponse.body.readData(), + let responseDecoder = decoder { + let output: StartReplicationOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.replication = output.replication + } else { + self.replication = nil + } + } +} + +/// +public struct StartReplicationOutputResponse: Swift.Equatable { + /// The replication that DMS started. + public var replication: DatabaseMigrationClientTypes.Replication? + + public init( + replication: DatabaseMigrationClientTypes.Replication? = nil + ) + { + self.replication = replication + } +} + +struct StartReplicationOutputResponseBody: Swift.Equatable { + let replication: DatabaseMigrationClientTypes.Replication? +} + +extension StartReplicationOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case replication = "Replication" + } + + public init(from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let replicationDecoded = try containerValues.decodeIfPresent(DatabaseMigrationClientTypes.Replication.self, forKey: .replication) + replication = replicationDecoded + } +} + extension StartReplicationTaskAssessmentInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { case replicationTaskArn = "ReplicationTaskArn" @@ -20335,6 +22595,108 @@ extension DatabaseMigrationClientTypes { } } +extension StopReplicationInput: Swift.Encodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case replicationConfigArn = "ReplicationConfigArn" + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let replicationConfigArn = self.replicationConfigArn { + try encodeContainer.encode(replicationConfigArn, forKey: .replicationConfigArn) + } + } +} + +extension StopReplicationInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + return "/" + } +} + +/// +public struct StopReplicationInput: Swift.Equatable { + /// The Amazon Resource Name of the replication to stop. + /// This member is required. + public var replicationConfigArn: Swift.String? + + public init( + replicationConfigArn: Swift.String? = nil + ) + { + self.replicationConfigArn = replicationConfigArn + } +} + +struct StopReplicationInputBody: Swift.Equatable { + let replicationConfigArn: Swift.String? +} + +extension StopReplicationInputBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case replicationConfigArn = "ReplicationConfigArn" + } + + public init(from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let replicationConfigArnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .replicationConfigArn) + replicationConfigArn = replicationConfigArnDecoded + } +} + +public enum StopReplicationOutputError: ClientRuntime.HttpResponseErrorBinding { + public static func makeError(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) async throws -> Swift.Error { + let restJSONError = try await AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.requestId + switch restJSONError.errorType { + case "AccessDeniedFault": return try await AccessDeniedFault(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "InvalidResourceStateFault": return try await InvalidResourceStateFault(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "ResourceNotFoundFault": return try await ResourceNotFoundFault(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + default: return try await AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(httpResponse: httpResponse, message: restJSONError.errorMessage, requestID: requestID, typeName: restJSONError.errorType) + } + } +} + +extension StopReplicationOutputResponse: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) async throws { + if let data = try await httpResponse.body.readData(), + let responseDecoder = decoder { + let output: StopReplicationOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.replication = output.replication + } else { + self.replication = nil + } + } +} + +public struct StopReplicationOutputResponse: Swift.Equatable { + /// The replication that DMS stopped. + public var replication: DatabaseMigrationClientTypes.Replication? + + public init( + replication: DatabaseMigrationClientTypes.Replication? = nil + ) + { + self.replication = replication + } +} + +struct StopReplicationOutputResponseBody: Swift.Equatable { + let replication: DatabaseMigrationClientTypes.Replication? +} + +extension StopReplicationOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case replication = "Replication" + } + + public init(from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let replicationDecoded = try containerValues.decodeIfPresent(DatabaseMigrationClientTypes.Replication.self, forKey: .replication) + replication = replicationDecoded + } +} + extension StopReplicationTaskInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { case replicationTaskArn = "ReplicationTaskArn" @@ -21314,6 +23676,84 @@ extension TestConnectionOutputResponseBody: Swift.Decodable { } } +extension DatabaseMigrationClientTypes.TimestreamSettings: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case cdcInsertsAndUpdates = "CdcInsertsAndUpdates" + case databaseName = "DatabaseName" + case enableMagneticStoreWrites = "EnableMagneticStoreWrites" + case magneticDuration = "MagneticDuration" + case memoryDuration = "MemoryDuration" + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let cdcInsertsAndUpdates = self.cdcInsertsAndUpdates { + try encodeContainer.encode(cdcInsertsAndUpdates, forKey: .cdcInsertsAndUpdates) + } + if let databaseName = self.databaseName { + try encodeContainer.encode(databaseName, forKey: .databaseName) + } + if let enableMagneticStoreWrites = self.enableMagneticStoreWrites { + try encodeContainer.encode(enableMagneticStoreWrites, forKey: .enableMagneticStoreWrites) + } + if let magneticDuration = self.magneticDuration { + try encodeContainer.encode(magneticDuration, forKey: .magneticDuration) + } + if let memoryDuration = self.memoryDuration { + try encodeContainer.encode(memoryDuration, forKey: .memoryDuration) + } + } + + public init(from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let databaseNameDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .databaseName) + databaseName = databaseNameDecoded + let memoryDurationDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .memoryDuration) + memoryDuration = memoryDurationDecoded + let magneticDurationDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .magneticDuration) + magneticDuration = magneticDurationDecoded + let cdcInsertsAndUpdatesDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .cdcInsertsAndUpdates) + cdcInsertsAndUpdates = cdcInsertsAndUpdatesDecoded + let enableMagneticStoreWritesDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .enableMagneticStoreWrites) + enableMagneticStoreWrites = enableMagneticStoreWritesDecoded + } +} + +extension DatabaseMigrationClientTypes { + /// Provides information that defines an Amazon Timestream endpoint. + public struct TimestreamSettings: Swift.Equatable { + /// Set this attribute to true to specify that DMS only applies inserts and updates, and not deletes. Amazon Timestream does not allow deleting records, so if this value is false, DMS nulls out the corresponding record in the Timestream database rather than deleting it. + public var cdcInsertsAndUpdates: Swift.Bool? + /// Database name for the endpoint. + /// This member is required. + public var databaseName: Swift.String? + /// Set this attribute to true to enable memory store writes. When this value is false, DMS does not write records that are older in days than the value specified in MagneticDuration, because Amazon Timestream does not allow memory writes by default. For more information, see [Storage](https://docs.aws.amazon.com/timestream/latest/developerguide/storage.html) in the [Amazon Timestream Developer Guide](https://docs.aws.amazon.com/timestream/latest/developerguide/). + public var enableMagneticStoreWrites: Swift.Bool? + /// Set this attribute to specify the default magnetic duration applied to the Amazon Timestream tables in days. This is the number of days that records remain in magnetic store before being discarded. For more information, see [Storage](https://docs.aws.amazon.com/timestream/latest/developerguide/storage.html) in the [Amazon Timestream Developer Guide](https://docs.aws.amazon.com/timestream/latest/developerguide/). + /// This member is required. + public var magneticDuration: Swift.Int? + /// Set this attribute to specify the length of time to store all of the tables in memory that are migrated into Amazon Timestream from the source database. Time is measured in units of hours. When Timestream data comes in, it first resides in memory for the specified duration, which allows quick access to it. + /// This member is required. + public var memoryDuration: Swift.Int? + + public init( + cdcInsertsAndUpdates: Swift.Bool? = nil, + databaseName: Swift.String? = nil, + enableMagneticStoreWrites: Swift.Bool? = nil, + magneticDuration: Swift.Int? = nil, + memoryDuration: Swift.Int? = nil + ) + { + self.cdcInsertsAndUpdates = cdcInsertsAndUpdates + self.databaseName = databaseName + self.enableMagneticStoreWrites = enableMagneticStoreWrites + self.magneticDuration = magneticDuration + self.memoryDuration = memoryDuration + } + } + +} + extension DatabaseMigrationClientTypes { public enum TlogAccessMode: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { case backuponly diff --git a/Sources/Services/AWSEC2/EC2Client.swift b/Sources/Services/AWSEC2/EC2Client.swift index 2be6680f681..01f24f77e75 100644 --- a/Sources/Services/AWSEC2/EC2Client.swift +++ b/Sources/Services/AWSEC2/EC2Client.swift @@ -21656,7 +21656,7 @@ extension EC2Client: EC2ClientProtocol { return result } - /// Stops an Amazon EBS-backed instance. For more information, see [Stop and start your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html) in the Amazon EC2 User Guide. You can use the Stop action to hibernate an instance if the instance is [enabled for hibernation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html#enabling-hibernation) and it meets the [hibernation prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html#hibernating-prerequisites). For more information, see [Hibernate your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the Amazon EC2 User Guide. We don't charge usage for a stopped instance, or data transfer fees; however, your root partition Amazon EBS volume remains and continues to persist your data, and you are charged for Amazon EBS volume usage. Every time you start your instance, Amazon EC2 charges a one-minute minimum for instance usage, and thereafter charges per second for instance usage. You can't stop or hibernate instance store-backed instances. You can't use the Stop action to hibernate Spot Instances, but you can specify that Amazon EC2 should hibernate Spot Instances when they are interrupted. For more information, see [Hibernating interrupted Spot Instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-interruptions.html#hibernate-spot-instances) in the Amazon EC2 User Guide. When you stop or hibernate an instance, we shut it down. You can restart your instance at any time. Before stopping or hibernating an instance, make sure it is in a state from which it can be restarted. Stopping an instance does not preserve data stored in RAM, but hibernating an instance does preserve data stored in RAM. If an instance cannot hibernate successfully, a normal shutdown occurs. Stopping and hibernating an instance is different to rebooting or terminating it. For example, when you stop or hibernate an instance, the root device and any other devices attached to the instance persist. When you terminate an instance, the root device and any other devices attached during the instance launch are automatically deleted. For more information about the differences between rebooting, stopping, hibernating, and terminating instances, see [Instance lifecycle](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html) in the Amazon EC2 User Guide. When you stop an instance, we attempt to shut it down forcibly after a short while. If your instance appears stuck in the stopping state after a period of time, there may be an issue with the underlying host computer. For more information, see [Troubleshoot stopping your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesStopping.html) in the Amazon EC2 User Guide. + /// Stops an Amazon EBS-backed instance. For more information, see [Stop and start your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html) in the Amazon EC2 User Guide. You can use the Stop action to hibernate an instance if the instance is [enabled for hibernation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enabling-hibernation.html) and it meets the [hibernation prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html). For more information, see [Hibernate your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the Amazon EC2 User Guide. We don't charge usage for a stopped instance, or data transfer fees; however, your root partition Amazon EBS volume remains and continues to persist your data, and you are charged for Amazon EBS volume usage. Every time you start your instance, Amazon EC2 charges a one-minute minimum for instance usage, and thereafter charges per second for instance usage. You can't stop or hibernate instance store-backed instances. You can't use the Stop action to hibernate Spot Instances, but you can specify that Amazon EC2 should hibernate Spot Instances when they are interrupted. For more information, see [Hibernating interrupted Spot Instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-interruptions.html#hibernate-spot-instances) in the Amazon EC2 User Guide. When you stop or hibernate an instance, we shut it down. You can restart your instance at any time. Before stopping or hibernating an instance, make sure it is in a state from which it can be restarted. Stopping an instance does not preserve data stored in RAM, but hibernating an instance does preserve data stored in RAM. If an instance cannot hibernate successfully, a normal shutdown occurs. Stopping and hibernating an instance is different to rebooting or terminating it. For example, when you stop or hibernate an instance, the root device and any other devices attached to the instance persist. When you terminate an instance, the root device and any other devices attached during the instance launch are automatically deleted. For more information about the differences between rebooting, stopping, hibernating, and terminating instances, see [Instance lifecycle](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html) in the Amazon EC2 User Guide. When you stop an instance, we attempt to shut it down forcibly after a short while. If your instance appears stuck in the stopping state after a period of time, there may be an issue with the underlying host computer. For more information, see [Troubleshoot stopping your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesStopping.html) in the Amazon EC2 User Guide. public func stopInstances(input: StopInstancesInput) async throws -> StopInstancesOutputResponse { let context = ClientRuntime.HttpContextBuilder() diff --git a/Sources/Services/AWSEC2/EC2ClientProtocol.swift b/Sources/Services/AWSEC2/EC2ClientProtocol.swift index 94a0a97a6f0..fccbddfdf09 100644 --- a/Sources/Services/AWSEC2/EC2ClientProtocol.swift +++ b/Sources/Services/AWSEC2/EC2ClientProtocol.swift @@ -1352,7 +1352,7 @@ public protocol EC2ClientProtocol { func startNetworkInsightsAnalysis(input: StartNetworkInsightsAnalysisInput) async throws -> StartNetworkInsightsAnalysisOutputResponse /// Initiates the verification process to prove that the service provider owns the private DNS name domain for the endpoint service. The service provider must successfully perform the verification before the consumer can use the name to access the service. Before the service provider runs this command, they must add a record to the DNS server. func startVpcEndpointServicePrivateDnsVerification(input: StartVpcEndpointServicePrivateDnsVerificationInput) async throws -> StartVpcEndpointServicePrivateDnsVerificationOutputResponse - /// Stops an Amazon EBS-backed instance. For more information, see [Stop and start your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html) in the Amazon EC2 User Guide. You can use the Stop action to hibernate an instance if the instance is [enabled for hibernation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html#enabling-hibernation) and it meets the [hibernation prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html#hibernating-prerequisites). For more information, see [Hibernate your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the Amazon EC2 User Guide. We don't charge usage for a stopped instance, or data transfer fees; however, your root partition Amazon EBS volume remains and continues to persist your data, and you are charged for Amazon EBS volume usage. Every time you start your instance, Amazon EC2 charges a one-minute minimum for instance usage, and thereafter charges per second for instance usage. You can't stop or hibernate instance store-backed instances. You can't use the Stop action to hibernate Spot Instances, but you can specify that Amazon EC2 should hibernate Spot Instances when they are interrupted. For more information, see [Hibernating interrupted Spot Instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-interruptions.html#hibernate-spot-instances) in the Amazon EC2 User Guide. When you stop or hibernate an instance, we shut it down. You can restart your instance at any time. Before stopping or hibernating an instance, make sure it is in a state from which it can be restarted. Stopping an instance does not preserve data stored in RAM, but hibernating an instance does preserve data stored in RAM. If an instance cannot hibernate successfully, a normal shutdown occurs. Stopping and hibernating an instance is different to rebooting or terminating it. For example, when you stop or hibernate an instance, the root device and any other devices attached to the instance persist. When you terminate an instance, the root device and any other devices attached during the instance launch are automatically deleted. For more information about the differences between rebooting, stopping, hibernating, and terminating instances, see [Instance lifecycle](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html) in the Amazon EC2 User Guide. When you stop an instance, we attempt to shut it down forcibly after a short while. If your instance appears stuck in the stopping state after a period of time, there may be an issue with the underlying host computer. For more information, see [Troubleshoot stopping your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesStopping.html) in the Amazon EC2 User Guide. + /// Stops an Amazon EBS-backed instance. For more information, see [Stop and start your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html) in the Amazon EC2 User Guide. You can use the Stop action to hibernate an instance if the instance is [enabled for hibernation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enabling-hibernation.html) and it meets the [hibernation prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html). For more information, see [Hibernate your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the Amazon EC2 User Guide. We don't charge usage for a stopped instance, or data transfer fees; however, your root partition Amazon EBS volume remains and continues to persist your data, and you are charged for Amazon EBS volume usage. Every time you start your instance, Amazon EC2 charges a one-minute minimum for instance usage, and thereafter charges per second for instance usage. You can't stop or hibernate instance store-backed instances. You can't use the Stop action to hibernate Spot Instances, but you can specify that Amazon EC2 should hibernate Spot Instances when they are interrupted. For more information, see [Hibernating interrupted Spot Instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-interruptions.html#hibernate-spot-instances) in the Amazon EC2 User Guide. When you stop or hibernate an instance, we shut it down. You can restart your instance at any time. Before stopping or hibernating an instance, make sure it is in a state from which it can be restarted. Stopping an instance does not preserve data stored in RAM, but hibernating an instance does preserve data stored in RAM. If an instance cannot hibernate successfully, a normal shutdown occurs. Stopping and hibernating an instance is different to rebooting or terminating it. For example, when you stop or hibernate an instance, the root device and any other devices attached to the instance persist. When you terminate an instance, the root device and any other devices attached during the instance launch are automatically deleted. For more information about the differences between rebooting, stopping, hibernating, and terminating instances, see [Instance lifecycle](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html) in the Amazon EC2 User Guide. When you stop an instance, we attempt to shut it down forcibly after a short while. If your instance appears stuck in the stopping state after a period of time, there may be an issue with the underlying host computer. For more information, see [Troubleshoot stopping your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesStopping.html) in the Amazon EC2 User Guide. func stopInstances(input: StopInstancesInput) async throws -> StopInstancesOutputResponse /// Terminates active Client VPN endpoint connections. This action can be used to terminate a specific client connection, or up to five connections established by a specific user. func terminateClientVpnConnections(input: TerminateClientVpnConnectionsInput) async throws -> TerminateClientVpnConnectionsOutputResponse diff --git a/Sources/Services/AWSEC2/models/Models.swift b/Sources/Services/AWSEC2/models/Models.swift index 3fc2d1e7f83..1db63be5cab 100644 --- a/Sources/Services/AWSEC2/models/Models.swift +++ b/Sources/Services/AWSEC2/models/Models.swift @@ -99620,9 +99620,9 @@ extension EC2ClientTypes.HibernationOptions: Swift.Codable { } extension EC2ClientTypes { - /// Indicates whether your instance is configured for hibernation. This parameter is valid only if the instance meets the [hibernation prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html#hibernating-prerequisites). For more information, see [Hibernate your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the Amazon EC2 User Guide. + /// Indicates whether your instance is configured for hibernation. This parameter is valid only if the instance meets the [hibernation prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html). For more information, see [Hibernate your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the Amazon EC2 User Guide. public struct HibernationOptions: Swift.Equatable { - /// If this parameter is set to true, your instance is enabled for hibernation; otherwise, it is not enabled for hibernation. + /// If true, your instance is enabled for hibernation; otherwise, it is not enabled for hibernation. public var configured: Swift.Bool? public init( @@ -99655,9 +99655,9 @@ extension EC2ClientTypes.HibernationOptionsRequest: Swift.Codable { } extension EC2ClientTypes { - /// Indicates whether your instance is configured for hibernation. This parameter is valid only if the instance meets the [hibernation prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html#hibernating-prerequisites). For more information, see [Hibernate your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the Amazon EC2 User Guide. + /// Indicates whether your instance is configured for hibernation. This parameter is valid only if the instance meets the [hibernation prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html). For more information, see [Hibernate your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the Amazon EC2 User Guide. public struct HibernationOptionsRequest: Swift.Equatable { - /// If you set this parameter to true, your instance is enabled for hibernation. Default: false + /// Set to true to enable your instance for hibernation. Default: false public var configured: Swift.Bool? public init( @@ -112115,6 +112115,7 @@ extension EC2ClientTypes.InstanceTypeInfo: Swift.Codable { case instanceType = "instanceType" case memoryInfo = "memoryInfo" case networkInfo = "networkInfo" + case nitroEnclavesSupport = "nitroEnclavesSupport" case placementGroupInfo = "placementGroupInfo" case processorInfo = "processorInfo" case supportedBootModes = "supportedBootModes" @@ -112177,6 +112178,9 @@ extension EC2ClientTypes.InstanceTypeInfo: Swift.Codable { if let networkInfo = networkInfo { try container.encode(networkInfo, forKey: ClientRuntime.Key("NetworkInfo")) } + if let nitroEnclavesSupport = nitroEnclavesSupport { + try container.encode(nitroEnclavesSupport, forKey: ClientRuntime.Key("NitroEnclavesSupport")) + } if let placementGroupInfo = placementGroupInfo { try container.encode(placementGroupInfo, forKey: ClientRuntime.Key("PlacementGroupInfo")) } @@ -112354,6 +112358,8 @@ extension EC2ClientTypes.InstanceTypeInfo: Swift.Codable { } else { supportedBootModes = nil } + let nitroEnclavesSupportDecoded = try containerValues.decodeIfPresent(EC2ClientTypes.NitroEnclavesSupport.self, forKey: .nitroEnclavesSupport) + nitroEnclavesSupport = nitroEnclavesSupportDecoded } } @@ -112394,6 +112400,8 @@ extension EC2ClientTypes { public var memoryInfo: EC2ClientTypes.MemoryInfo? /// Describes the network settings for the instance type. public var networkInfo: EC2ClientTypes.NetworkInfo? + /// Indicates whether Nitro Enclaves is supported. + public var nitroEnclavesSupport: EC2ClientTypes.NitroEnclavesSupport? /// Describes the placement group settings for the instance type. public var placementGroupInfo: EC2ClientTypes.PlacementGroupInfo? /// Describes the processor. @@ -112427,6 +112435,7 @@ extension EC2ClientTypes { instanceType: EC2ClientTypes.InstanceType? = nil, memoryInfo: EC2ClientTypes.MemoryInfo? = nil, networkInfo: EC2ClientTypes.NetworkInfo? = nil, + nitroEnclavesSupport: EC2ClientTypes.NitroEnclavesSupport? = nil, placementGroupInfo: EC2ClientTypes.PlacementGroupInfo? = nil, processorInfo: EC2ClientTypes.ProcessorInfo? = nil, supportedBootModes: [EC2ClientTypes.BootModeType]? = nil, @@ -112453,6 +112462,7 @@ extension EC2ClientTypes { self.instanceType = instanceType self.memoryInfo = memoryInfo self.networkInfo = networkInfo + self.nitroEnclavesSupport = nitroEnclavesSupport self.placementGroupInfo = placementGroupInfo self.processorInfo = processorInfo self.supportedBootModes = supportedBootModes @@ -138583,6 +138593,38 @@ extension EC2ClientTypes { } +extension EC2ClientTypes { + public enum NitroEnclavesSupport: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { + case supported + case unsupported + case sdkUnknown(Swift.String) + + public static var allCases: [NitroEnclavesSupport] { + return [ + .supported, + .unsupported, + .sdkUnknown("") + ] + } + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + public var rawValue: Swift.String { + switch self { + case .supported: return "supported" + case .unsupported: return "unsupported" + case let .sdkUnknown(s): return s + } + } + public init(from decoder: Swift.Decoder) throws { + let container = try decoder.singleValueContainer() + let rawValue = try container.decode(RawValue.self) + self = NitroEnclavesSupport(rawValue: rawValue) ?? NitroEnclavesSupport.sdkUnknown(rawValue) + } + } +} + extension EC2ClientTypes { public enum OfferingClassType: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { case convertible @@ -155138,9 +155180,9 @@ public struct RunInstancesInput: Swift.Equatable { public var elasticGpuSpecification: [EC2ClientTypes.ElasticGpuSpecification]? /// An elastic inference accelerator to associate with the instance. Elastic inference accelerators are a resource you can attach to your Amazon EC2 instances to accelerate your Deep Learning (DL) inference workloads. You cannot specify accelerators from different generations in the same request. Starting April 15, 2023, Amazon Web Services will not onboard new customers to Amazon Elastic Inference (EI), and will help current customers migrate their workloads to options that offer better price and performance. After April 15, 2023, new customers will not be able to launch instances with Amazon EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who have used Amazon EI at least once during the past 30-day period are considered current customers and will be able to continue using the service. public var elasticInferenceAccelerators: [EC2ClientTypes.ElasticInferenceAccelerator]? - /// Indicates whether the instance is enabled for Amazon Web Services Nitro Enclaves. For more information, see [ What is Amazon Web Services Nitro Enclaves?](https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html) in the Amazon Web Services Nitro Enclaves User Guide. You can't enable Amazon Web Services Nitro Enclaves and hibernation on the same instance. + /// Indicates whether the instance is enabled for Amazon Web Services Nitro Enclaves. For more information, see [What is Amazon Web Services Nitro Enclaves?](https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html) in the Amazon Web Services Nitro Enclaves User Guide. You can't enable Amazon Web Services Nitro Enclaves and hibernation on the same instance. public var enclaveOptions: EC2ClientTypes.EnclaveOptionsRequest? - /// Indicates whether an instance is enabled for hibernation. For more information, see [Hibernate your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the Amazon EC2 User Guide. You can't enable hibernation and Amazon Web Services Nitro Enclaves on the same instance. + /// Indicates whether an instance is enabled for hibernation. This parameter is valid only if the instance meets the [hibernation prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html). For more information, see [Hibernate your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the Amazon EC2 User Guide. You can't enable hibernation and Amazon Web Services Nitro Enclaves on the same instance. public var hibernationOptions: EC2ClientTypes.HibernationOptionsRequest? /// The name or Amazon Resource Name (ARN) of an IAM instance profile. public var iamInstanceProfile: EC2ClientTypes.IamInstanceProfileSpecification? diff --git a/Sources/Services/AWSGlue/models/Models.swift b/Sources/Services/AWSGlue/models/Models.swift index 50a2331a887..676d3fe8eeb 100644 --- a/Sources/Services/AWSGlue/models/Models.swift +++ b/Sources/Services/AWSGlue/models/Models.swift @@ -13580,6 +13580,7 @@ extension CreateTableInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { case catalogId = "CatalogId" case databaseName = "DatabaseName" + case openTableFormatInput = "OpenTableFormatInput" case partitionIndexes = "PartitionIndexes" case tableInput = "TableInput" case transactionId = "TransactionId" @@ -13593,6 +13594,9 @@ extension CreateTableInput: Swift.Encodable { if let databaseName = self.databaseName { try encodeContainer.encode(databaseName, forKey: .databaseName) } + if let openTableFormatInput = self.openTableFormatInput { + try encodeContainer.encode(openTableFormatInput, forKey: .openTableFormatInput) + } if let partitionIndexes = partitionIndexes { var partitionIndexesContainer = encodeContainer.nestedUnkeyedContainer(forKey: .partitionIndexes) for partitionindex0 in partitionIndexes { @@ -13620,6 +13624,8 @@ public struct CreateTableInput: Swift.Equatable { /// The catalog database in which to create the new table. For Hive compatibility, this name is entirely lowercase. /// This member is required. public var databaseName: Swift.String? + /// Specifies an OpenTableFormatInput structure when creating an open format table. + public var openTableFormatInput: GlueClientTypes.OpenTableFormatInput? /// A list of partition indexes, PartitionIndex structures, to create in the table. public var partitionIndexes: [GlueClientTypes.PartitionIndex]? /// The TableInput object that defines the metadata table to create in the catalog. @@ -13631,6 +13637,7 @@ public struct CreateTableInput: Swift.Equatable { public init( catalogId: Swift.String? = nil, databaseName: Swift.String? = nil, + openTableFormatInput: GlueClientTypes.OpenTableFormatInput? = nil, partitionIndexes: [GlueClientTypes.PartitionIndex]? = nil, tableInput: GlueClientTypes.TableInput? = nil, transactionId: Swift.String? = nil @@ -13638,6 +13645,7 @@ public struct CreateTableInput: Swift.Equatable { { self.catalogId = catalogId self.databaseName = databaseName + self.openTableFormatInput = openTableFormatInput self.partitionIndexes = partitionIndexes self.tableInput = tableInput self.transactionId = transactionId @@ -13650,12 +13658,14 @@ struct CreateTableInputBody: Swift.Equatable { let tableInput: GlueClientTypes.TableInput? let partitionIndexes: [GlueClientTypes.PartitionIndex]? let transactionId: Swift.String? + let openTableFormatInput: GlueClientTypes.OpenTableFormatInput? } extension CreateTableInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { case catalogId = "CatalogId" case databaseName = "DatabaseName" + case openTableFormatInput = "OpenTableFormatInput" case partitionIndexes = "PartitionIndexes" case tableInput = "TableInput" case transactionId = "TransactionId" @@ -13682,6 +13692,8 @@ extension CreateTableInputBody: Swift.Decodable { partitionIndexes = partitionIndexesDecoded0 let transactionIdDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .transactionId) transactionId = transactionIdDecoded + let openTableFormatInputDecoded = try containerValues.decodeIfPresent(GlueClientTypes.OpenTableFormatInput.self, forKey: .openTableFormatInput) + openTableFormatInput = openTableFormatInputDecoded } } @@ -33063,6 +33075,52 @@ extension GlueClientTypes { } } +extension GlueClientTypes.IcebergInput: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case metadataOperation = "MetadataOperation" + case version = "Version" + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let metadataOperation = self.metadataOperation { + try encodeContainer.encode(metadataOperation.rawValue, forKey: .metadataOperation) + } + if let version = self.version { + try encodeContainer.encode(version, forKey: .version) + } + } + + public init(from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let metadataOperationDecoded = try containerValues.decodeIfPresent(GlueClientTypes.MetadataOperation.self, forKey: .metadataOperation) + metadataOperation = metadataOperationDecoded + let versionDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .version) + version = versionDecoded + } +} + +extension GlueClientTypes { + /// A structure that defines an Apache Iceberg metadata table to create in the catalog. + public struct IcebergInput: Swift.Equatable { + /// A required metadata operation. Can only be set to CREATE. + /// This member is required. + public var metadataOperation: GlueClientTypes.MetadataOperation? + /// The table version for the Iceberg table. Defaults to 2. + public var version: Swift.String? + + public init( + metadataOperation: GlueClientTypes.MetadataOperation? = nil, + version: Swift.String? = nil + ) + { + self.metadataOperation = metadataOperation + self.version = version + } + } + +} + extension GlueClientTypes.IcebergTarget: Swift.Codable { enum CodingKeys: Swift.String, Swift.CodingKey { case connectionName = "ConnectionName" @@ -40553,6 +40611,35 @@ extension GlueClientTypes { } +extension GlueClientTypes { + public enum MetadataOperation: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { + case create + case sdkUnknown(Swift.String) + + public static var allCases: [MetadataOperation] { + return [ + .create, + .sdkUnknown("") + ] + } + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + public var rawValue: Swift.String { + switch self { + case .create: return "CREATE" + case let .sdkUnknown(s): return s + } + } + public init(from decoder: Swift.Decoder) throws { + let container = try decoder.singleValueContainer() + let rawValue = try container.decode(RawValue.self) + self = MetadataOperation(rawValue: rawValue) ?? MetadataOperation.sdkUnknown(rawValue) + } + } +} + extension GlueClientTypes.MicrosoftSQLServerCatalogSource: Swift.Codable { enum CodingKeys: Swift.String, Swift.CodingKey { case database = "Database" @@ -41199,6 +41286,41 @@ extension GlueClientTypes { } +extension GlueClientTypes.OpenTableFormatInput: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case icebergInput = "IcebergInput" + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let icebergInput = self.icebergInput { + try encodeContainer.encode(icebergInput, forKey: .icebergInput) + } + } + + public init(from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let icebergInputDecoded = try containerValues.decodeIfPresent(GlueClientTypes.IcebergInput.self, forKey: .icebergInput) + icebergInput = icebergInputDecoded + } +} + +extension GlueClientTypes { + /// A structure representing an open format table. + public struct OpenTableFormatInput: Swift.Equatable { + /// Specifies an IcebergInput structure that defines an Apache Iceberg metadata table. + public var icebergInput: GlueClientTypes.IcebergInput? + + public init( + icebergInput: GlueClientTypes.IcebergInput? = nil + ) + { + self.icebergInput = icebergInput + } + } + +} + extension OperationTimeoutException { public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) async throws { if let data = try await httpResponse.body.readData(), diff --git a/Sources/Services/AWSKMS/KMSClient.swift b/Sources/Services/AWSKMS/KMSClient.swift index b42521e6005..048da32ab5e 100644 --- a/Sources/Services/AWSKMS/KMSClient.swift +++ b/Sources/Services/AWSKMS/KMSClient.swift @@ -1971,7 +1971,7 @@ extension KMSClient: KMSClientProtocol { return result } - /// Schedules the deletion of a KMS key. By default, KMS applies a waiting period of 30 days, but you can specify a waiting period of 7-30 days. When this operation is successful, the key state of the KMS key changes to PendingDeletion and the key can't be used in any cryptographic operations. It remains in this state for the duration of the waiting period. Before the waiting period ends, you can use [CancelKeyDeletion] to cancel the deletion of the KMS key. After the waiting period ends, KMS deletes the KMS key, its key material, and all KMS data associated with it, including all aliases that refer to it. Deleting a KMS key is a destructive and potentially dangerous operation. When a KMS key is deleted, all data that was encrypted under the KMS key is unrecoverable. (The only exception is a [multi-Region replica key], or an asymmetric or HMAC KMS key with imported key material[BUGBUG-link to importing-keys-managing.html#import-delete-key.) To prevent the use of a KMS key without deleting it, use [DisableKey]. You can schedule the deletion of a multi-Region primary key and its replica keys at any time. However, KMS will not delete a multi-Region primary key with existing replica keys. If you schedule the deletion of a primary key with replicas, its key state changes to PendingReplicaDeletion and it cannot be replicated or used in cryptographic operations. This status can continue indefinitely. When the last of its replicas keys is deleted (not just scheduled), the key state of the primary key changes to PendingDeletion and its waiting period (PendingWindowInDays) begins. For details, see [Deleting multi-Region keys](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-delete.html) in the Key Management Service Developer Guide. When KMS [deletes a KMS key from an CloudHSM key store](https://docs.aws.amazon.com/kms/latest/developerguide/delete-cmk-keystore.html), it makes a best effort to delete the associated key material from the associated CloudHSM cluster. However, you might need to manually [delete the orphaned key material](https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#fix-keystore-orphaned-key) from the cluster and its backups. [Deleting a KMS key from an external key store](https://docs.aws.amazon.com/kms/latest/developerguide/delete-xks-key.html) has no effect on the associated external key. However, for both types of custom key stores, deleting a KMS key is destructive and irreversible. You cannot decrypt ciphertext encrypted under the KMS key by using only its associated external key or CloudHSM key. Also, you cannot recreate a KMS key in an external key store by creating a new KMS key with the same key material. For more information about scheduling a KMS key for deletion, see [Deleting KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html) in the Key Management Service Developer Guide. The KMS key that you use for this operation must be in a compatible key state. For details, see [Key states of KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in the Key Management Service Developer Guide. Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account. Required permissions: kms:ScheduleKeyDeletion (key policy) Related operations + /// Schedules the deletion of a KMS key. By default, KMS applies a waiting period of 30 days, but you can specify a waiting period of 7-30 days. When this operation is successful, the key state of the KMS key changes to PendingDeletion and the key can't be used in any cryptographic operations. It remains in this state for the duration of the waiting period. Before the waiting period ends, you can use [CancelKeyDeletion] to cancel the deletion of the KMS key. After the waiting period ends, KMS deletes the KMS key, its key material, and all KMS data associated with it, including all aliases that refer to it. Deleting a KMS key is a destructive and potentially dangerous operation. When a KMS key is deleted, all data that was encrypted under the KMS key is unrecoverable. (The only exception is a [multi-Region replica key], or an [asymmetric or HMAC KMS key with imported key material].) To prevent the use of a KMS key without deleting it, use [DisableKey]. You can schedule the deletion of a multi-Region primary key and its replica keys at any time. However, KMS will not delete a multi-Region primary key with existing replica keys. If you schedule the deletion of a primary key with replicas, its key state changes to PendingReplicaDeletion and it cannot be replicated or used in cryptographic operations. This status can continue indefinitely. When the last of its replicas keys is deleted (not just scheduled), the key state of the primary key changes to PendingDeletion and its waiting period (PendingWindowInDays) begins. For details, see [Deleting multi-Region keys](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-delete.html) in the Key Management Service Developer Guide. When KMS [deletes a KMS key from an CloudHSM key store](https://docs.aws.amazon.com/kms/latest/developerguide/delete-cmk-keystore.html), it makes a best effort to delete the associated key material from the associated CloudHSM cluster. However, you might need to manually [delete the orphaned key material](https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#fix-keystore-orphaned-key) from the cluster and its backups. [Deleting a KMS key from an external key store](https://docs.aws.amazon.com/kms/latest/developerguide/delete-xks-key.html) has no effect on the associated external key. However, for both types of custom key stores, deleting a KMS key is destructive and irreversible. You cannot decrypt ciphertext encrypted under the KMS key by using only its associated external key or CloudHSM key. Also, you cannot recreate a KMS key in an external key store by creating a new KMS key with the same key material. For more information about scheduling a KMS key for deletion, see [Deleting KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html) in the Key Management Service Developer Guide. The KMS key that you use for this operation must be in a compatible key state. For details, see [Key states of KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in the Key Management Service Developer Guide. Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account. Required permissions: kms:ScheduleKeyDeletion (key policy) Related operations /// /// * [CancelKeyDeletion] /// diff --git a/Sources/Services/AWSKMS/KMSClientProtocol.swift b/Sources/Services/AWSKMS/KMSClientProtocol.swift index 5213c706eb9..f60ce3e603d 100644 --- a/Sources/Services/AWSKMS/KMSClientProtocol.swift +++ b/Sources/Services/AWSKMS/KMSClientProtocol.swift @@ -525,7 +525,7 @@ public protocol KMSClientProtocol { /// /// * [RetireGrant] func revokeGrant(input: RevokeGrantInput) async throws -> RevokeGrantOutputResponse - /// Schedules the deletion of a KMS key. By default, KMS applies a waiting period of 30 days, but you can specify a waiting period of 7-30 days. When this operation is successful, the key state of the KMS key changes to PendingDeletion and the key can't be used in any cryptographic operations. It remains in this state for the duration of the waiting period. Before the waiting period ends, you can use [CancelKeyDeletion] to cancel the deletion of the KMS key. After the waiting period ends, KMS deletes the KMS key, its key material, and all KMS data associated with it, including all aliases that refer to it. Deleting a KMS key is a destructive and potentially dangerous operation. When a KMS key is deleted, all data that was encrypted under the KMS key is unrecoverable. (The only exception is a [multi-Region replica key], or an asymmetric or HMAC KMS key with imported key material[BUGBUG-link to importing-keys-managing.html#import-delete-key.) To prevent the use of a KMS key without deleting it, use [DisableKey]. You can schedule the deletion of a multi-Region primary key and its replica keys at any time. However, KMS will not delete a multi-Region primary key with existing replica keys. If you schedule the deletion of a primary key with replicas, its key state changes to PendingReplicaDeletion and it cannot be replicated or used in cryptographic operations. This status can continue indefinitely. When the last of its replicas keys is deleted (not just scheduled), the key state of the primary key changes to PendingDeletion and its waiting period (PendingWindowInDays) begins. For details, see [Deleting multi-Region keys](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-delete.html) in the Key Management Service Developer Guide. When KMS [deletes a KMS key from an CloudHSM key store](https://docs.aws.amazon.com/kms/latest/developerguide/delete-cmk-keystore.html), it makes a best effort to delete the associated key material from the associated CloudHSM cluster. However, you might need to manually [delete the orphaned key material](https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#fix-keystore-orphaned-key) from the cluster and its backups. [Deleting a KMS key from an external key store](https://docs.aws.amazon.com/kms/latest/developerguide/delete-xks-key.html) has no effect on the associated external key. However, for both types of custom key stores, deleting a KMS key is destructive and irreversible. You cannot decrypt ciphertext encrypted under the KMS key by using only its associated external key or CloudHSM key. Also, you cannot recreate a KMS key in an external key store by creating a new KMS key with the same key material. For more information about scheduling a KMS key for deletion, see [Deleting KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html) in the Key Management Service Developer Guide. The KMS key that you use for this operation must be in a compatible key state. For details, see [Key states of KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in the Key Management Service Developer Guide. Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account. Required permissions: kms:ScheduleKeyDeletion (key policy) Related operations + /// Schedules the deletion of a KMS key. By default, KMS applies a waiting period of 30 days, but you can specify a waiting period of 7-30 days. When this operation is successful, the key state of the KMS key changes to PendingDeletion and the key can't be used in any cryptographic operations. It remains in this state for the duration of the waiting period. Before the waiting period ends, you can use [CancelKeyDeletion] to cancel the deletion of the KMS key. After the waiting period ends, KMS deletes the KMS key, its key material, and all KMS data associated with it, including all aliases that refer to it. Deleting a KMS key is a destructive and potentially dangerous operation. When a KMS key is deleted, all data that was encrypted under the KMS key is unrecoverable. (The only exception is a [multi-Region replica key], or an [asymmetric or HMAC KMS key with imported key material].) To prevent the use of a KMS key without deleting it, use [DisableKey]. You can schedule the deletion of a multi-Region primary key and its replica keys at any time. However, KMS will not delete a multi-Region primary key with existing replica keys. If you schedule the deletion of a primary key with replicas, its key state changes to PendingReplicaDeletion and it cannot be replicated or used in cryptographic operations. This status can continue indefinitely. When the last of its replicas keys is deleted (not just scheduled), the key state of the primary key changes to PendingDeletion and its waiting period (PendingWindowInDays) begins. For details, see [Deleting multi-Region keys](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-delete.html) in the Key Management Service Developer Guide. When KMS [deletes a KMS key from an CloudHSM key store](https://docs.aws.amazon.com/kms/latest/developerguide/delete-cmk-keystore.html), it makes a best effort to delete the associated key material from the associated CloudHSM cluster. However, you might need to manually [delete the orphaned key material](https://docs.aws.amazon.com/kms/latest/developerguide/fix-keystore.html#fix-keystore-orphaned-key) from the cluster and its backups. [Deleting a KMS key from an external key store](https://docs.aws.amazon.com/kms/latest/developerguide/delete-xks-key.html) has no effect on the associated external key. However, for both types of custom key stores, deleting a KMS key is destructive and irreversible. You cannot decrypt ciphertext encrypted under the KMS key by using only its associated external key or CloudHSM key. Also, you cannot recreate a KMS key in an external key store by creating a new KMS key with the same key material. For more information about scheduling a KMS key for deletion, see [Deleting KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html) in the Key Management Service Developer Guide. The KMS key that you use for this operation must be in a compatible key state. For details, see [Key states of KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in the Key Management Service Developer Guide. Cross-account use: No. You cannot perform this operation on a KMS key in a different Amazon Web Services account. Required permissions: kms:ScheduleKeyDeletion (key policy) Related operations /// /// * [CancelKeyDeletion] /// diff --git a/Sources/Services/AWSKMS/models/Models.swift b/Sources/Services/AWSKMS/models/Models.swift index 9e731dce77c..c749bb1d271 100644 --- a/Sources/Services/AWSKMS/models/Models.swift +++ b/Sources/Services/AWSKMS/models/Models.swift @@ -1097,6 +1097,7 @@ extension CreateCustomKeyStoreOutputResponseBody: Swift.Decodable { extension CreateGrantInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { case constraints = "Constraints" + case dryRun = "DryRun" case grantTokens = "GrantTokens" case granteePrincipal = "GranteePrincipal" case keyId = "KeyId" @@ -1110,6 +1111,9 @@ extension CreateGrantInput: Swift.Encodable { if let constraints = self.constraints { try encodeContainer.encode(constraints, forKey: .constraints) } + if let dryRun = self.dryRun { + try encodeContainer.encode(dryRun, forKey: .dryRun) + } if let grantTokens = grantTokens { var grantTokensContainer = encodeContainer.nestedUnkeyedContainer(forKey: .grantTokens) for granttokentype0 in grantTokens { @@ -1146,6 +1150,8 @@ extension CreateGrantInput: ClientRuntime.URLPathProvider { public struct CreateGrantInput: Swift.Equatable { /// Specifies a grant constraint. Do not include confidential or sensitive information in this field. This field may be displayed in plaintext in CloudTrail logs and other output. KMS supports the EncryptionContextEquals and EncryptionContextSubset grant constraints, which allow the permissions in the grant only when the encryption context in the request matches (EncryptionContextEquals) or includes (EncryptionContextSubset) the encryption context specified in the constraint. The encryption context grant constraints are supported only on [grant operations](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-grant-operations) that include an EncryptionContext parameter, such as cryptographic operations on symmetric encryption KMS keys. Grants with grant constraints can include the [DescribeKey] and [RetireGrant] operations, but the constraint doesn't apply to these operations. If a grant with a grant constraint includes the CreateGrant operation, the constraint requires that any grants created with the CreateGrant permission have an equally strict or stricter encryption context constraint. You cannot use an encryption context grant constraint for cryptographic operations with asymmetric KMS keys or HMAC KMS keys. Operations with these keys don't support an encryption context. Each constraint value can include up to 8 encryption context pairs. The encryption context value in each constraint cannot exceed 384 characters. For information about grant constraints, see [Using grant constraints](https://docs.aws.amazon.com/kms/latest/developerguide/create-grant-overview.html#grant-constraints) in the Key Management Service Developer Guide. For more information about encryption context, see [Encryption context](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) in the Key Management Service Developer Guide . public var constraints: KMSClientTypes.GrantConstraints? + /// Checks if your request will succeed. DryRun is an optional parameter. To learn more about how to use this parameter, see [Testing your KMS API calls](https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html) in the Key Management Service Developer Guide. + public var dryRun: Swift.Bool? /// A list of grant tokens. Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see [Grant token](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token) and [Using a grant token](https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token) in the Key Management Service Developer Guide. public var grantTokens: [Swift.String]? /// The identity that gets the permissions specified in the grant. To specify the grantee principal, use the Amazon Resource Name (ARN) of an Amazon Web Services principal. Valid principals include Amazon Web Services accounts, IAM users, IAM roles, federated users, and assumed role users. For help with the ARN syntax for a principal, see [IAM ARNs](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns) in the Identity and Access Management User Guide . @@ -1171,6 +1177,7 @@ public struct CreateGrantInput: Swift.Equatable { public init( constraints: KMSClientTypes.GrantConstraints? = nil, + dryRun: Swift.Bool? = nil, grantTokens: [Swift.String]? = nil, granteePrincipal: Swift.String? = nil, keyId: Swift.String? = nil, @@ -1180,6 +1187,7 @@ public struct CreateGrantInput: Swift.Equatable { ) { self.constraints = constraints + self.dryRun = dryRun self.grantTokens = grantTokens self.granteePrincipal = granteePrincipal self.keyId = keyId @@ -1197,11 +1205,13 @@ struct CreateGrantInputBody: Swift.Equatable { let constraints: KMSClientTypes.GrantConstraints? let grantTokens: [Swift.String]? let name: Swift.String? + let dryRun: Swift.Bool? } extension CreateGrantInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { case constraints = "Constraints" + case dryRun = "DryRun" case grantTokens = "GrantTokens" case granteePrincipal = "GranteePrincipal" case keyId = "KeyId" @@ -1244,6 +1254,8 @@ extension CreateGrantInputBody: Swift.Decodable { grantTokens = grantTokensDecoded0 let nameDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .name) name = nameDecoded + let dryRunDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .dryRun) + dryRun = dryRunDecoded } } @@ -1254,6 +1266,7 @@ public enum CreateGrantOutputError: ClientRuntime.HttpResponseErrorBinding { switch restJSONError.errorType { case "DependencyTimeout": return try await DependencyTimeoutException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "Disabled": return try await DisabledException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "DryRunOperation": return try await DryRunOperationException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "InvalidArn": return try await InvalidArnException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "InvalidGrantToken": return try await InvalidGrantTokenException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "KMSInternal": return try await KMSInternalException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) @@ -2217,6 +2230,7 @@ extension KMSClientTypes { extension DecryptInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { case ciphertextBlob = "CiphertextBlob" + case dryRun = "DryRun" case encryptionAlgorithm = "EncryptionAlgorithm" case encryptionContext = "EncryptionContext" case grantTokens = "GrantTokens" @@ -2229,6 +2243,9 @@ extension DecryptInput: Swift.Encodable { if let ciphertextBlob = self.ciphertextBlob { try encodeContainer.encode(ciphertextBlob.base64EncodedString(), forKey: .ciphertextBlob) } + if let dryRun = self.dryRun { + try encodeContainer.encode(dryRun, forKey: .dryRun) + } if let encryptionAlgorithm = self.encryptionAlgorithm { try encodeContainer.encode(encryptionAlgorithm.rawValue, forKey: .encryptionAlgorithm) } @@ -2263,6 +2280,8 @@ public struct DecryptInput: Swift.Equatable { /// Ciphertext to be decrypted. The blob includes metadata. /// This member is required. public var ciphertextBlob: ClientRuntime.Data? + /// Checks if your request will succeed. DryRun is an optional parameter. To learn more about how to use this parameter, see [Testing your KMS API calls](https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html) in the Key Management Service Developer Guide. + public var dryRun: Swift.Bool? /// Specifies the encryption algorithm that will be used to decrypt the ciphertext. Specify the same algorithm that was used to encrypt the data. If you specify a different algorithm, the Decrypt operation fails. This parameter is required only when the ciphertext was encrypted under an asymmetric KMS key. The default value, SYMMETRIC_DEFAULT, represents the only supported algorithm that is valid for symmetric encryption KMS keys. public var encryptionAlgorithm: KMSClientTypes.EncryptionAlgorithmSpec? /// Specifies the encryption context to use when decrypting the data. An encryption context is valid only for [cryptographic operations](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations) with a symmetric encryption KMS key. The standard asymmetric encryption algorithms and HMAC algorithms that KMS uses do not support an encryption context. An encryption context is a collection of non-secret key-value pairs that represent additional authenticated data. When you use an encryption context to encrypt data, you must specify the same (an exact case-sensitive match) encryption context to decrypt the data. An encryption context is supported only on operations with symmetric encryption KMS keys. On operations with symmetric encryption KMS keys, an encryption context is optional, but it is strongly recommended. For more information, see [Encryption context](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) in the Key Management Service Developer Guide. @@ -2287,6 +2306,7 @@ public struct DecryptInput: Swift.Equatable { public init( ciphertextBlob: ClientRuntime.Data? = nil, + dryRun: Swift.Bool? = nil, encryptionAlgorithm: KMSClientTypes.EncryptionAlgorithmSpec? = nil, encryptionContext: [Swift.String:Swift.String]? = nil, grantTokens: [Swift.String]? = nil, @@ -2295,6 +2315,7 @@ public struct DecryptInput: Swift.Equatable { ) { self.ciphertextBlob = ciphertextBlob + self.dryRun = dryRun self.encryptionAlgorithm = encryptionAlgorithm self.encryptionContext = encryptionContext self.grantTokens = grantTokens @@ -2310,11 +2331,13 @@ struct DecryptInputBody: Swift.Equatable { let keyId: Swift.String? let encryptionAlgorithm: KMSClientTypes.EncryptionAlgorithmSpec? let recipient: KMSClientTypes.RecipientInfo? + let dryRun: Swift.Bool? } extension DecryptInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { case ciphertextBlob = "CiphertextBlob" + case dryRun = "DryRun" case encryptionAlgorithm = "EncryptionAlgorithm" case encryptionContext = "EncryptionContext" case grantTokens = "GrantTokens" @@ -2354,6 +2377,8 @@ extension DecryptInputBody: Swift.Decodable { encryptionAlgorithm = encryptionAlgorithmDecoded let recipientDecoded = try containerValues.decodeIfPresent(KMSClientTypes.RecipientInfo.self, forKey: .recipient) recipient = recipientDecoded + let dryRunDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .dryRun) + dryRun = dryRunDecoded } } @@ -2364,6 +2389,7 @@ public enum DecryptOutputError: ClientRuntime.HttpResponseErrorBinding { switch restJSONError.errorType { case "DependencyTimeout": return try await DependencyTimeoutException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "Disabled": return try await DisabledException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "DryRunOperation": return try await DryRunOperationException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "IncorrectKeyException": return try await IncorrectKeyException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "InvalidCiphertext": return try await InvalidCiphertextException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "InvalidGrantToken": return try await InvalidGrantTokenException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) @@ -3322,6 +3348,61 @@ public struct DisconnectCustomKeyStoreOutputResponse: Swift.Equatable { public init() { } } +extension DryRunOperationException { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil, message: Swift.String? = nil, requestID: Swift.String? = nil) async throws { + if let data = try await httpResponse.body.readData(), + let responseDecoder = decoder { + let output: DryRunOperationExceptionBody = try responseDecoder.decode(responseBody: data) + self.properties.message = output.message + } else { + self.properties.message = nil + } + self.httpResponse = httpResponse + self.requestID = requestID + self.message = message + } +} + +/// The request was rejected because the DryRun parameter was specified. +public struct DryRunOperationException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { + + public struct Properties { + public internal(set) var message: Swift.String? = nil + } + + public internal(set) var properties = Properties() + public static var typeName: Swift.String { "DryRunOperation" } + public static var fault: ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = HttpResponse() + public internal(set) var message: Swift.String? + public internal(set) var requestID: Swift.String? + + public init( + message: Swift.String? = nil + ) + { + self.properties.message = message + } +} + +struct DryRunOperationExceptionBody: Swift.Equatable { + let message: Swift.String? +} + +extension DryRunOperationExceptionBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case message + } + + public init(from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let messageDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .message) + message = messageDecoded + } +} + extension EnableKeyInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { case keyId = "KeyId" @@ -3487,11 +3568,12 @@ public struct EnableKeyRotationOutputResponse: Swift.Equatable { extension EncryptInput: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "EncryptInput(encryptionAlgorithm: \(Swift.String(describing: encryptionAlgorithm)), encryptionContext: \(Swift.String(describing: encryptionContext)), grantTokens: \(Swift.String(describing: grantTokens)), keyId: \(Swift.String(describing: keyId)), plaintext: \"CONTENT_REDACTED\")"} + "EncryptInput(dryRun: \(Swift.String(describing: dryRun)), encryptionAlgorithm: \(Swift.String(describing: encryptionAlgorithm)), encryptionContext: \(Swift.String(describing: encryptionContext)), grantTokens: \(Swift.String(describing: grantTokens)), keyId: \(Swift.String(describing: keyId)), plaintext: \"CONTENT_REDACTED\")"} } extension EncryptInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case dryRun = "DryRun" case encryptionAlgorithm = "EncryptionAlgorithm" case encryptionContext = "EncryptionContext" case grantTokens = "GrantTokens" @@ -3501,6 +3583,9 @@ extension EncryptInput: Swift.Encodable { public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let dryRun = self.dryRun { + try encodeContainer.encode(dryRun, forKey: .dryRun) + } if let encryptionAlgorithm = self.encryptionAlgorithm { try encodeContainer.encode(encryptionAlgorithm.rawValue, forKey: .encryptionAlgorithm) } @@ -3532,6 +3617,8 @@ extension EncryptInput: ClientRuntime.URLPathProvider { } public struct EncryptInput: Swift.Equatable { + /// Checks if your request will succeed. DryRun is an optional parameter. To learn more about how to use this parameter, see [Testing your KMS API calls](https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html) in the Key Management Service Developer Guide. + public var dryRun: Swift.Bool? /// Specifies the encryption algorithm that KMS will use to encrypt the plaintext message. The algorithm must be compatible with the KMS key that you specify. This parameter is required only for asymmetric KMS keys. The default value, SYMMETRIC_DEFAULT, is the algorithm used for symmetric encryption KMS keys. If you are using an asymmetric KMS key, we recommend RSAES_OAEP_SHA_256. The SM2PKE algorithm is only available in China Regions. public var encryptionAlgorithm: KMSClientTypes.EncryptionAlgorithmSpec? /// Specifies the encryption context that will be used to encrypt the data. An encryption context is valid only for [cryptographic operations](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations) with a symmetric encryption KMS key. The standard asymmetric encryption algorithms and HMAC algorithms that KMS uses do not support an encryption context. Do not include confidential or sensitive information in this field. This field may be displayed in plaintext in CloudTrail logs and other output. An encryption context is a collection of non-secret key-value pairs that represent additional authenticated data. When you use an encryption context to encrypt data, you must specify the same (an exact case-sensitive match) encryption context to decrypt the data. An encryption context is supported only on operations with symmetric encryption KMS keys. On operations with symmetric encryption KMS keys, an encryption context is optional, but it is strongly recommended. For more information, see [Encryption context](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) in the Key Management Service Developer Guide. @@ -3557,6 +3644,7 @@ public struct EncryptInput: Swift.Equatable { public var plaintext: ClientRuntime.Data? public init( + dryRun: Swift.Bool? = nil, encryptionAlgorithm: KMSClientTypes.EncryptionAlgorithmSpec? = nil, encryptionContext: [Swift.String:Swift.String]? = nil, grantTokens: [Swift.String]? = nil, @@ -3564,6 +3652,7 @@ public struct EncryptInput: Swift.Equatable { plaintext: ClientRuntime.Data? = nil ) { + self.dryRun = dryRun self.encryptionAlgorithm = encryptionAlgorithm self.encryptionContext = encryptionContext self.grantTokens = grantTokens @@ -3578,10 +3667,12 @@ struct EncryptInputBody: Swift.Equatable { let encryptionContext: [Swift.String:Swift.String]? let grantTokens: [Swift.String]? let encryptionAlgorithm: KMSClientTypes.EncryptionAlgorithmSpec? + let dryRun: Swift.Bool? } extension EncryptInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case dryRun = "DryRun" case encryptionAlgorithm = "EncryptionAlgorithm" case encryptionContext = "EncryptionContext" case grantTokens = "GrantTokens" @@ -3619,6 +3710,8 @@ extension EncryptInputBody: Swift.Decodable { grantTokens = grantTokensDecoded0 let encryptionAlgorithmDecoded = try containerValues.decodeIfPresent(KMSClientTypes.EncryptionAlgorithmSpec.self, forKey: .encryptionAlgorithm) encryptionAlgorithm = encryptionAlgorithmDecoded + let dryRunDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .dryRun) + dryRun = dryRunDecoded } } @@ -3629,6 +3722,7 @@ public enum EncryptOutputError: ClientRuntime.HttpResponseErrorBinding { switch restJSONError.errorType { case "DependencyTimeout": return try await DependencyTimeoutException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "Disabled": return try await DisabledException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "DryRunOperation": return try await DryRunOperationException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "InvalidGrantToken": return try await InvalidGrantTokenException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "InvalidKeyUsage": return try await InvalidKeyUsageException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "KeyUnavailable": return try await KeyUnavailableException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) @@ -3827,6 +3921,7 @@ extension ExpiredImportTokenExceptionBody: Swift.Decodable { extension GenerateDataKeyInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case dryRun = "DryRun" case encryptionContext = "EncryptionContext" case grantTokens = "GrantTokens" case keyId = "KeyId" @@ -3837,6 +3932,9 @@ extension GenerateDataKeyInput: Swift.Encodable { public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let dryRun = self.dryRun { + try encodeContainer.encode(dryRun, forKey: .dryRun) + } if let encryptionContext = encryptionContext { var encryptionContextContainer = encodeContainer.nestedContainer(keyedBy: ClientRuntime.Key.self, forKey: .encryptionContext) for (dictKey0, encryptionContextType0) in encryptionContext { @@ -3871,6 +3969,8 @@ extension GenerateDataKeyInput: ClientRuntime.URLPathProvider { } public struct GenerateDataKeyInput: Swift.Equatable { + /// Checks if your request will succeed. DryRun is an optional parameter. To learn more about how to use this parameter, see [Testing your KMS API calls](https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html) in the Key Management Service Developer Guide. + public var dryRun: Swift.Bool? /// Specifies the encryption context that will be used when encrypting the data key. Do not include confidential or sensitive information in this field. This field may be displayed in plaintext in CloudTrail logs and other output. An encryption context is a collection of non-secret key-value pairs that represent additional authenticated data. When you use an encryption context to encrypt data, you must specify the same (an exact case-sensitive match) encryption context to decrypt the data. An encryption context is supported only on operations with symmetric encryption KMS keys. On operations with symmetric encryption KMS keys, an encryption context is optional, but it is strongly recommended. For more information, see [Encryption context](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) in the Key Management Service Developer Guide. public var encryptionContext: [Swift.String:Swift.String]? /// A list of grant tokens. Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see [Grant token](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token) and [Using a grant token](https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token) in the Key Management Service Developer Guide. @@ -3897,6 +3997,7 @@ public struct GenerateDataKeyInput: Swift.Equatable { public var recipient: KMSClientTypes.RecipientInfo? public init( + dryRun: Swift.Bool? = nil, encryptionContext: [Swift.String:Swift.String]? = nil, grantTokens: [Swift.String]? = nil, keyId: Swift.String? = nil, @@ -3905,6 +4006,7 @@ public struct GenerateDataKeyInput: Swift.Equatable { recipient: KMSClientTypes.RecipientInfo? = nil ) { + self.dryRun = dryRun self.encryptionContext = encryptionContext self.grantTokens = grantTokens self.keyId = keyId @@ -3921,10 +4023,12 @@ struct GenerateDataKeyInputBody: Swift.Equatable { let keySpec: KMSClientTypes.DataKeySpec? let grantTokens: [Swift.String]? let recipient: KMSClientTypes.RecipientInfo? + let dryRun: Swift.Bool? } extension GenerateDataKeyInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case dryRun = "DryRun" case encryptionContext = "EncryptionContext" case grantTokens = "GrantTokens" case keyId = "KeyId" @@ -3965,6 +4069,8 @@ extension GenerateDataKeyInputBody: Swift.Decodable { grantTokens = grantTokensDecoded0 let recipientDecoded = try containerValues.decodeIfPresent(KMSClientTypes.RecipientInfo.self, forKey: .recipient) recipient = recipientDecoded + let dryRunDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .dryRun) + dryRun = dryRunDecoded } } @@ -3975,6 +4081,7 @@ public enum GenerateDataKeyOutputError: ClientRuntime.HttpResponseErrorBinding { switch restJSONError.errorType { case "DependencyTimeout": return try await DependencyTimeoutException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "Disabled": return try await DisabledException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "DryRunOperation": return try await DryRunOperationException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "InvalidGrantToken": return try await InvalidGrantTokenException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "InvalidKeyUsage": return try await InvalidKeyUsageException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "KeyUnavailable": return try await KeyUnavailableException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) @@ -4063,6 +4170,7 @@ extension GenerateDataKeyOutputResponseBody: Swift.Decodable { extension GenerateDataKeyPairInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case dryRun = "DryRun" case encryptionContext = "EncryptionContext" case grantTokens = "GrantTokens" case keyId = "KeyId" @@ -4072,6 +4180,9 @@ extension GenerateDataKeyPairInput: Swift.Encodable { public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let dryRun = self.dryRun { + try encodeContainer.encode(dryRun, forKey: .dryRun) + } if let encryptionContext = encryptionContext { var encryptionContextContainer = encodeContainer.nestedContainer(keyedBy: ClientRuntime.Key.self, forKey: .encryptionContext) for (dictKey0, encryptionContextType0) in encryptionContext { @@ -4103,6 +4214,8 @@ extension GenerateDataKeyPairInput: ClientRuntime.URLPathProvider { } public struct GenerateDataKeyPairInput: Swift.Equatable { + /// Checks if your request will succeed. DryRun is an optional parameter. To learn more about how to use this parameter, see [Testing your KMS API calls](https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html) in the Key Management Service Developer Guide. + public var dryRun: Swift.Bool? /// Specifies the encryption context that will be used when encrypting the private key in the data key pair. Do not include confidential or sensitive information in this field. This field may be displayed in plaintext in CloudTrail logs and other output. An encryption context is a collection of non-secret key-value pairs that represent additional authenticated data. When you use an encryption context to encrypt data, you must specify the same (an exact case-sensitive match) encryption context to decrypt the data. An encryption context is supported only on operations with symmetric encryption KMS keys. On operations with symmetric encryption KMS keys, an encryption context is optional, but it is strongly recommended. For more information, see [Encryption context](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) in the Key Management Service Developer Guide. public var encryptionContext: [Swift.String:Swift.String]? /// A list of grant tokens. Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see [Grant token](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token) and [Using a grant token](https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token) in the Key Management Service Developer Guide. @@ -4128,6 +4241,7 @@ public struct GenerateDataKeyPairInput: Swift.Equatable { public var recipient: KMSClientTypes.RecipientInfo? public init( + dryRun: Swift.Bool? = nil, encryptionContext: [Swift.String:Swift.String]? = nil, grantTokens: [Swift.String]? = nil, keyId: Swift.String? = nil, @@ -4135,6 +4249,7 @@ public struct GenerateDataKeyPairInput: Swift.Equatable { recipient: KMSClientTypes.RecipientInfo? = nil ) { + self.dryRun = dryRun self.encryptionContext = encryptionContext self.grantTokens = grantTokens self.keyId = keyId @@ -4149,10 +4264,12 @@ struct GenerateDataKeyPairInputBody: Swift.Equatable { let keyPairSpec: KMSClientTypes.DataKeyPairSpec? let grantTokens: [Swift.String]? let recipient: KMSClientTypes.RecipientInfo? + let dryRun: Swift.Bool? } extension GenerateDataKeyPairInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case dryRun = "DryRun" case encryptionContext = "EncryptionContext" case grantTokens = "GrantTokens" case keyId = "KeyId" @@ -4190,6 +4307,8 @@ extension GenerateDataKeyPairInputBody: Swift.Decodable { grantTokens = grantTokensDecoded0 let recipientDecoded = try containerValues.decodeIfPresent(KMSClientTypes.RecipientInfo.self, forKey: .recipient) recipient = recipientDecoded + let dryRunDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .dryRun) + dryRun = dryRunDecoded } } @@ -4200,6 +4319,7 @@ public enum GenerateDataKeyPairOutputError: ClientRuntime.HttpResponseErrorBindi switch restJSONError.errorType { case "DependencyTimeout": return try await DependencyTimeoutException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "Disabled": return try await DisabledException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "DryRunOperation": return try await DryRunOperationException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "InvalidGrantToken": return try await InvalidGrantTokenException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "InvalidKeyUsage": return try await InvalidKeyUsageException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "KeyUnavailable": return try await KeyUnavailableException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) @@ -4309,6 +4429,7 @@ extension GenerateDataKeyPairOutputResponseBody: Swift.Decodable { extension GenerateDataKeyPairWithoutPlaintextInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case dryRun = "DryRun" case encryptionContext = "EncryptionContext" case grantTokens = "GrantTokens" case keyId = "KeyId" @@ -4317,6 +4438,9 @@ extension GenerateDataKeyPairWithoutPlaintextInput: Swift.Encodable { public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let dryRun = self.dryRun { + try encodeContainer.encode(dryRun, forKey: .dryRun) + } if let encryptionContext = encryptionContext { var encryptionContextContainer = encodeContainer.nestedContainer(keyedBy: ClientRuntime.Key.self, forKey: .encryptionContext) for (dictKey0, encryptionContextType0) in encryptionContext { @@ -4345,6 +4469,8 @@ extension GenerateDataKeyPairWithoutPlaintextInput: ClientRuntime.URLPathProvide } public struct GenerateDataKeyPairWithoutPlaintextInput: Swift.Equatable { + /// Checks if your request will succeed. DryRun is an optional parameter. To learn more about how to use this parameter, see [Testing your KMS API calls](https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html) in the Key Management Service Developer Guide. + public var dryRun: Swift.Bool? /// Specifies the encryption context that will be used when encrypting the private key in the data key pair. Do not include confidential or sensitive information in this field. This field may be displayed in plaintext in CloudTrail logs and other output. An encryption context is a collection of non-secret key-value pairs that represent additional authenticated data. When you use an encryption context to encrypt data, you must specify the same (an exact case-sensitive match) encryption context to decrypt the data. An encryption context is supported only on operations with symmetric encryption KMS keys. On operations with symmetric encryption KMS keys, an encryption context is optional, but it is strongly recommended. For more information, see [Encryption context](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) in the Key Management Service Developer Guide. public var encryptionContext: [Swift.String:Swift.String]? /// A list of grant tokens. Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see [Grant token](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token) and [Using a grant token](https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token) in the Key Management Service Developer Guide. @@ -4368,12 +4494,14 @@ public struct GenerateDataKeyPairWithoutPlaintextInput: Swift.Equatable { public var keyPairSpec: KMSClientTypes.DataKeyPairSpec? public init( + dryRun: Swift.Bool? = nil, encryptionContext: [Swift.String:Swift.String]? = nil, grantTokens: [Swift.String]? = nil, keyId: Swift.String? = nil, keyPairSpec: KMSClientTypes.DataKeyPairSpec? = nil ) { + self.dryRun = dryRun self.encryptionContext = encryptionContext self.grantTokens = grantTokens self.keyId = keyId @@ -4386,10 +4514,12 @@ struct GenerateDataKeyPairWithoutPlaintextInputBody: Swift.Equatable { let keyId: Swift.String? let keyPairSpec: KMSClientTypes.DataKeyPairSpec? let grantTokens: [Swift.String]? + let dryRun: Swift.Bool? } extension GenerateDataKeyPairWithoutPlaintextInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case dryRun = "DryRun" case encryptionContext = "EncryptionContext" case grantTokens = "GrantTokens" case keyId = "KeyId" @@ -4424,6 +4554,8 @@ extension GenerateDataKeyPairWithoutPlaintextInputBody: Swift.Decodable { } } grantTokens = grantTokensDecoded0 + let dryRunDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .dryRun) + dryRun = dryRunDecoded } } @@ -4434,6 +4566,7 @@ public enum GenerateDataKeyPairWithoutPlaintextOutputError: ClientRuntime.HttpRe switch restJSONError.errorType { case "DependencyTimeout": return try await DependencyTimeoutException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "Disabled": return try await DisabledException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "DryRunOperation": return try await DryRunOperationException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "InvalidGrantToken": return try await InvalidGrantTokenException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "InvalidKeyUsage": return try await InvalidKeyUsageException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "KeyUnavailable": return try await KeyUnavailableException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) @@ -4518,6 +4651,7 @@ extension GenerateDataKeyPairWithoutPlaintextOutputResponseBody: Swift.Decodable extension GenerateDataKeyWithoutPlaintextInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case dryRun = "DryRun" case encryptionContext = "EncryptionContext" case grantTokens = "GrantTokens" case keyId = "KeyId" @@ -4527,6 +4661,9 @@ extension GenerateDataKeyWithoutPlaintextInput: Swift.Encodable { public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let dryRun = self.dryRun { + try encodeContainer.encode(dryRun, forKey: .dryRun) + } if let encryptionContext = encryptionContext { var encryptionContextContainer = encodeContainer.nestedContainer(keyedBy: ClientRuntime.Key.self, forKey: .encryptionContext) for (dictKey0, encryptionContextType0) in encryptionContext { @@ -4558,6 +4695,8 @@ extension GenerateDataKeyWithoutPlaintextInput: ClientRuntime.URLPathProvider { } public struct GenerateDataKeyWithoutPlaintextInput: Swift.Equatable { + /// Checks if your request will succeed. DryRun is an optional parameter. To learn more about how to use this parameter, see [Testing your KMS API calls](https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html) in the Key Management Service Developer Guide. + public var dryRun: Swift.Bool? /// Specifies the encryption context that will be used when encrypting the data key. Do not include confidential or sensitive information in this field. This field may be displayed in plaintext in CloudTrail logs and other output. An encryption context is a collection of non-secret key-value pairs that represent additional authenticated data. When you use an encryption context to encrypt data, you must specify the same (an exact case-sensitive match) encryption context to decrypt the data. An encryption context is supported only on operations with symmetric encryption KMS keys. On operations with symmetric encryption KMS keys, an encryption context is optional, but it is strongly recommended. For more information, see [Encryption context](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) in the Key Management Service Developer Guide. public var encryptionContext: [Swift.String:Swift.String]? /// A list of grant tokens. Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see [Grant token](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token) and [Using a grant token](https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token) in the Key Management Service Developer Guide. @@ -4582,6 +4721,7 @@ public struct GenerateDataKeyWithoutPlaintextInput: Swift.Equatable { public var numberOfBytes: Swift.Int? public init( + dryRun: Swift.Bool? = nil, encryptionContext: [Swift.String:Swift.String]? = nil, grantTokens: [Swift.String]? = nil, keyId: Swift.String? = nil, @@ -4589,6 +4729,7 @@ public struct GenerateDataKeyWithoutPlaintextInput: Swift.Equatable { numberOfBytes: Swift.Int? = nil ) { + self.dryRun = dryRun self.encryptionContext = encryptionContext self.grantTokens = grantTokens self.keyId = keyId @@ -4603,10 +4744,12 @@ struct GenerateDataKeyWithoutPlaintextInputBody: Swift.Equatable { let keySpec: KMSClientTypes.DataKeySpec? let numberOfBytes: Swift.Int? let grantTokens: [Swift.String]? + let dryRun: Swift.Bool? } extension GenerateDataKeyWithoutPlaintextInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case dryRun = "DryRun" case encryptionContext = "EncryptionContext" case grantTokens = "GrantTokens" case keyId = "KeyId" @@ -4644,6 +4787,8 @@ extension GenerateDataKeyWithoutPlaintextInputBody: Swift.Decodable { } } grantTokens = grantTokensDecoded0 + let dryRunDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .dryRun) + dryRun = dryRunDecoded } } @@ -4654,6 +4799,7 @@ public enum GenerateDataKeyWithoutPlaintextOutputError: ClientRuntime.HttpRespon switch restJSONError.errorType { case "DependencyTimeout": return try await DependencyTimeoutException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "Disabled": return try await DisabledException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "DryRunOperation": return try await DryRunOperationException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "InvalidGrantToken": return try await InvalidGrantTokenException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "InvalidKeyUsage": return try await InvalidKeyUsageException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "KeyUnavailable": return try await KeyUnavailableException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) @@ -4717,11 +4863,12 @@ extension GenerateDataKeyWithoutPlaintextOutputResponseBody: Swift.Decodable { extension GenerateMacInput: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "GenerateMacInput(grantTokens: \(Swift.String(describing: grantTokens)), keyId: \(Swift.String(describing: keyId)), macAlgorithm: \(Swift.String(describing: macAlgorithm)), message: \"CONTENT_REDACTED\")"} + "GenerateMacInput(dryRun: \(Swift.String(describing: dryRun)), grantTokens: \(Swift.String(describing: grantTokens)), keyId: \(Swift.String(describing: keyId)), macAlgorithm: \(Swift.String(describing: macAlgorithm)), message: \"CONTENT_REDACTED\")"} } extension GenerateMacInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case dryRun = "DryRun" case grantTokens = "GrantTokens" case keyId = "KeyId" case macAlgorithm = "MacAlgorithm" @@ -4730,6 +4877,9 @@ extension GenerateMacInput: Swift.Encodable { public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let dryRun = self.dryRun { + try encodeContainer.encode(dryRun, forKey: .dryRun) + } if let grantTokens = grantTokens { var grantTokensContainer = encodeContainer.nestedUnkeyedContainer(forKey: .grantTokens) for granttokentype0 in grantTokens { @@ -4755,6 +4905,8 @@ extension GenerateMacInput: ClientRuntime.URLPathProvider { } public struct GenerateMacInput: Swift.Equatable { + /// Checks if your request will succeed. DryRun is an optional parameter. To learn more about how to use this parameter, see [Testing your KMS API calls](https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html) in the Key Management Service Developer Guide. + public var dryRun: Swift.Bool? /// A list of grant tokens. Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see [Grant token](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token) and [Using a grant token](https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token) in the Key Management Service Developer Guide. public var grantTokens: [Swift.String]? /// The HMAC KMS key to use in the operation. The MAC algorithm computes the HMAC for the message and the key as described in [RFC 2104](https://datatracker.ietf.org/doc/html/rfc2104). To identify an HMAC KMS key, use the [DescribeKey] operation and see the KeySpec field in the response. @@ -4768,12 +4920,14 @@ public struct GenerateMacInput: Swift.Equatable { public var message: ClientRuntime.Data? public init( + dryRun: Swift.Bool? = nil, grantTokens: [Swift.String]? = nil, keyId: Swift.String? = nil, macAlgorithm: KMSClientTypes.MacAlgorithmSpec? = nil, message: ClientRuntime.Data? = nil ) { + self.dryRun = dryRun self.grantTokens = grantTokens self.keyId = keyId self.macAlgorithm = macAlgorithm @@ -4786,10 +4940,12 @@ struct GenerateMacInputBody: Swift.Equatable { let keyId: Swift.String? let macAlgorithm: KMSClientTypes.MacAlgorithmSpec? let grantTokens: [Swift.String]? + let dryRun: Swift.Bool? } extension GenerateMacInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case dryRun = "DryRun" case grantTokens = "GrantTokens" case keyId = "KeyId" case macAlgorithm = "MacAlgorithm" @@ -4815,6 +4971,8 @@ extension GenerateMacInputBody: Swift.Decodable { } } grantTokens = grantTokensDecoded0 + let dryRunDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .dryRun) + dryRun = dryRunDecoded } } @@ -4824,6 +4982,7 @@ public enum GenerateMacOutputError: ClientRuntime.HttpResponseErrorBinding { let requestID = httpResponse.requestId switch restJSONError.errorType { case "Disabled": return try await DisabledException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "DryRunOperation": return try await DryRunOperationException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "InvalidGrantToken": return try await InvalidGrantTokenException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "InvalidKeyUsage": return try await InvalidKeyUsageException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "KeyUnavailable": return try await KeyUnavailableException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) @@ -9068,6 +9227,7 @@ extension ReEncryptInput: Swift.Encodable { case destinationEncryptionAlgorithm = "DestinationEncryptionAlgorithm" case destinationEncryptionContext = "DestinationEncryptionContext" case destinationKeyId = "DestinationKeyId" + case dryRun = "DryRun" case grantTokens = "GrantTokens" case sourceEncryptionAlgorithm = "SourceEncryptionAlgorithm" case sourceEncryptionContext = "SourceEncryptionContext" @@ -9091,6 +9251,9 @@ extension ReEncryptInput: Swift.Encodable { if let destinationKeyId = self.destinationKeyId { try encodeContainer.encode(destinationKeyId, forKey: .destinationKeyId) } + if let dryRun = self.dryRun { + try encodeContainer.encode(dryRun, forKey: .dryRun) + } if let grantTokens = grantTokens { var grantTokensContainer = encodeContainer.nestedUnkeyedContainer(forKey: .grantTokens) for granttokentype0 in grantTokens { @@ -9140,6 +9303,8 @@ public struct ReEncryptInput: Swift.Equatable { /// To get the key ID and key ARN for a KMS key, use [ListKeys] or [DescribeKey]. To get the alias name and alias ARN, use [ListAliases]. /// This member is required. public var destinationKeyId: Swift.String? + /// Checks if your request will succeed. DryRun is an optional parameter. To learn more about how to use this parameter, see [Testing your KMS API calls](https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html) in the Key Management Service Developer Guide. + public var dryRun: Swift.Bool? /// A list of grant tokens. Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see [Grant token](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token) and [Using a grant token](https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token) in the Key Management Service Developer Guide. public var grantTokens: [Swift.String]? /// Specifies the encryption algorithm that KMS will use to decrypt the ciphertext before it is reencrypted. The default value, SYMMETRIC_DEFAULT, represents the algorithm used for symmetric encryption KMS keys. Specify the same algorithm that was used to encrypt the ciphertext. If you specify a different algorithm, the decrypt attempt fails. This parameter is required only when the ciphertext was encrypted under an asymmetric KMS key. @@ -9165,6 +9330,7 @@ public struct ReEncryptInput: Swift.Equatable { destinationEncryptionAlgorithm: KMSClientTypes.EncryptionAlgorithmSpec? = nil, destinationEncryptionContext: [Swift.String:Swift.String]? = nil, destinationKeyId: Swift.String? = nil, + dryRun: Swift.Bool? = nil, grantTokens: [Swift.String]? = nil, sourceEncryptionAlgorithm: KMSClientTypes.EncryptionAlgorithmSpec? = nil, sourceEncryptionContext: [Swift.String:Swift.String]? = nil, @@ -9175,6 +9341,7 @@ public struct ReEncryptInput: Swift.Equatable { self.destinationEncryptionAlgorithm = destinationEncryptionAlgorithm self.destinationEncryptionContext = destinationEncryptionContext self.destinationKeyId = destinationKeyId + self.dryRun = dryRun self.grantTokens = grantTokens self.sourceEncryptionAlgorithm = sourceEncryptionAlgorithm self.sourceEncryptionContext = sourceEncryptionContext @@ -9191,6 +9358,7 @@ struct ReEncryptInputBody: Swift.Equatable { let sourceEncryptionAlgorithm: KMSClientTypes.EncryptionAlgorithmSpec? let destinationEncryptionAlgorithm: KMSClientTypes.EncryptionAlgorithmSpec? let grantTokens: [Swift.String]? + let dryRun: Swift.Bool? } extension ReEncryptInputBody: Swift.Decodable { @@ -9199,6 +9367,7 @@ extension ReEncryptInputBody: Swift.Decodable { case destinationEncryptionAlgorithm = "DestinationEncryptionAlgorithm" case destinationEncryptionContext = "DestinationEncryptionContext" case destinationKeyId = "DestinationKeyId" + case dryRun = "DryRun" case grantTokens = "GrantTokens" case sourceEncryptionAlgorithm = "SourceEncryptionAlgorithm" case sourceEncryptionContext = "SourceEncryptionContext" @@ -9250,6 +9419,8 @@ extension ReEncryptInputBody: Swift.Decodable { } } grantTokens = grantTokensDecoded0 + let dryRunDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .dryRun) + dryRun = dryRunDecoded } } @@ -9260,6 +9431,7 @@ public enum ReEncryptOutputError: ClientRuntime.HttpResponseErrorBinding { switch restJSONError.errorType { case "DependencyTimeout": return try await DependencyTimeoutException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "Disabled": return try await DisabledException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "DryRunOperation": return try await DryRunOperationException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "IncorrectKeyException": return try await IncorrectKeyException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "InvalidCiphertext": return try await InvalidCiphertextException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "InvalidGrantToken": return try await InvalidGrantTokenException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) @@ -9633,6 +9805,7 @@ extension ReplicateKeyOutputResponseBody: Swift.Decodable { extension RetireGrantInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case dryRun = "DryRun" case grantId = "GrantId" case grantToken = "GrantToken" case keyId = "KeyId" @@ -9640,6 +9813,9 @@ extension RetireGrantInput: Swift.Encodable { public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let dryRun = self.dryRun { + try encodeContainer.encode(dryRun, forKey: .dryRun) + } if let grantId = self.grantId { try encodeContainer.encode(grantId, forKey: .grantId) } @@ -9659,6 +9835,8 @@ extension RetireGrantInput: ClientRuntime.URLPathProvider { } public struct RetireGrantInput: Swift.Equatable { + /// Checks if your request will succeed. DryRun is an optional parameter. To learn more about how to use this parameter, see [Testing your KMS API calls](https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html) in the Key Management Service Developer Guide. + public var dryRun: Swift.Bool? /// Identifies the grant to retire. To get the grant ID, use [CreateGrant], [ListGrants], or [ListRetirableGrants]. /// /// * Grant ID Example - 0123456789012345678901234567890123456789012345678901234567890123 @@ -9669,11 +9847,13 @@ public struct RetireGrantInput: Swift.Equatable { public var keyId: Swift.String? public init( + dryRun: Swift.Bool? = nil, grantId: Swift.String? = nil, grantToken: Swift.String? = nil, keyId: Swift.String? = nil ) { + self.dryRun = dryRun self.grantId = grantId self.grantToken = grantToken self.keyId = keyId @@ -9684,10 +9864,12 @@ struct RetireGrantInputBody: Swift.Equatable { let grantToken: Swift.String? let keyId: Swift.String? let grantId: Swift.String? + let dryRun: Swift.Bool? } extension RetireGrantInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case dryRun = "DryRun" case grantId = "GrantId" case grantToken = "GrantToken" case keyId = "KeyId" @@ -9701,6 +9883,8 @@ extension RetireGrantInputBody: Swift.Decodable { keyId = keyIdDecoded let grantIdDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .grantId) grantId = grantIdDecoded + let dryRunDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .dryRun) + dryRun = dryRunDecoded } } @@ -9710,6 +9894,7 @@ public enum RetireGrantOutputError: ClientRuntime.HttpResponseErrorBinding { let requestID = httpResponse.requestId switch restJSONError.errorType { case "DependencyTimeout": return try await DependencyTimeoutException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "DryRunOperation": return try await DryRunOperationException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "InvalidArn": return try await InvalidArnException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "InvalidGrantId": return try await InvalidGrantIdException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "InvalidGrantToken": return try await InvalidGrantTokenException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) @@ -9733,12 +9918,16 @@ public struct RetireGrantOutputResponse: Swift.Equatable { extension RevokeGrantInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case dryRun = "DryRun" case grantId = "GrantId" case keyId = "KeyId" } public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let dryRun = self.dryRun { + try encodeContainer.encode(dryRun, forKey: .dryRun) + } if let grantId = self.grantId { try encodeContainer.encode(grantId, forKey: .grantId) } @@ -9755,6 +9944,8 @@ extension RevokeGrantInput: ClientRuntime.URLPathProvider { } public struct RevokeGrantInput: Swift.Equatable { + /// Checks if your request will succeed. DryRun is an optional parameter. To learn more about how to use this parameter, see [Testing your KMS API calls](https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html) in the Key Management Service Developer Guide. + public var dryRun: Swift.Bool? /// Identifies the grant to revoke. To get the grant ID, use [CreateGrant], [ListGrants], or [ListRetirableGrants]. /// This member is required. public var grantId: Swift.String? @@ -9770,10 +9961,12 @@ public struct RevokeGrantInput: Swift.Equatable { public var keyId: Swift.String? public init( + dryRun: Swift.Bool? = nil, grantId: Swift.String? = nil, keyId: Swift.String? = nil ) { + self.dryRun = dryRun self.grantId = grantId self.keyId = keyId } @@ -9782,10 +9975,12 @@ public struct RevokeGrantInput: Swift.Equatable { struct RevokeGrantInputBody: Swift.Equatable { let keyId: Swift.String? let grantId: Swift.String? + let dryRun: Swift.Bool? } extension RevokeGrantInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case dryRun = "DryRun" case grantId = "GrantId" case keyId = "KeyId" } @@ -9796,6 +9991,8 @@ extension RevokeGrantInputBody: Swift.Decodable { keyId = keyIdDecoded let grantIdDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .grantId) grantId = grantIdDecoded + let dryRunDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .dryRun) + dryRun = dryRunDecoded } } @@ -9805,6 +10002,7 @@ public enum RevokeGrantOutputError: ClientRuntime.HttpResponseErrorBinding { let requestID = httpResponse.requestId switch restJSONError.errorType { case "DependencyTimeout": return try await DependencyTimeoutException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "DryRunOperation": return try await DryRunOperationException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "InvalidArn": return try await InvalidArnException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "InvalidGrantId": return try await InvalidGrantIdException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "KMSInternal": return try await KMSInternalException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) @@ -9859,7 +10057,7 @@ public struct ScheduleKeyDeletionInput: Swift.Equatable { /// To get the key ID and key ARN for a KMS key, use [ListKeys] or [DescribeKey]. /// This member is required. public var keyId: Swift.String? - /// The waiting period, specified in number of days. After the waiting period ends, KMS deletes the KMS key. If the KMS key is a multi-Region primary key with replica keys, the waiting period begins when the last of its replica keys is deleted. Otherwise, the waiting period begins immediately. This value is optional. If you include a value, it must be between 7 and 30, inclusive. If you do not include a value, it defaults to 30. You can use the [kms:ScheduleKeyDeletionPendingWindowInDays](https://docs.aws.amazon.com/kms/latest/developerguide/conditions-kms.html#conditions-pending-deletion-window) condition key to further constrain the values that principals can specify in the PendingWindowInDays parameter. + /// The waiting period, specified in number of days. After the waiting period ends, KMS deletes the KMS key. If the KMS key is a multi-Region primary key with replica keys, the waiting period begins when the last of its replica keys is deleted. Otherwise, the waiting period begins immediately. This value is optional. If you include a value, it must be between 7 and 30, inclusive. If you do not include a value, it defaults to 30. You can use the [kms:ScheduleKeyDeletionPendingWindowInDays](https://docs.aws.amazon.com/kms/latest/developerguide/conditions-kms.html#conditions-kms-schedule-key-deletion-pending-window-in-days) condition key to further constrain the values that principals can specify in the PendingWindowInDays parameter. public var pendingWindowInDays: Swift.Int? public init( @@ -9979,11 +10177,12 @@ extension ScheduleKeyDeletionOutputResponseBody: Swift.Decodable { extension SignInput: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "SignInput(grantTokens: \(Swift.String(describing: grantTokens)), keyId: \(Swift.String(describing: keyId)), messageType: \(Swift.String(describing: messageType)), signingAlgorithm: \(Swift.String(describing: signingAlgorithm)), message: \"CONTENT_REDACTED\")"} + "SignInput(dryRun: \(Swift.String(describing: dryRun)), grantTokens: \(Swift.String(describing: grantTokens)), keyId: \(Swift.String(describing: keyId)), messageType: \(Swift.String(describing: messageType)), signingAlgorithm: \(Swift.String(describing: signingAlgorithm)), message: \"CONTENT_REDACTED\")"} } extension SignInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case dryRun = "DryRun" case grantTokens = "GrantTokens" case keyId = "KeyId" case message = "Message" @@ -9993,6 +10192,9 @@ extension SignInput: Swift.Encodable { public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let dryRun = self.dryRun { + try encodeContainer.encode(dryRun, forKey: .dryRun) + } if let grantTokens = grantTokens { var grantTokensContainer = encodeContainer.nestedUnkeyedContainer(forKey: .grantTokens) for granttokentype0 in grantTokens { @@ -10021,6 +10223,8 @@ extension SignInput: ClientRuntime.URLPathProvider { } public struct SignInput: Swift.Equatable { + /// Checks if your request will succeed. DryRun is an optional parameter. To learn more about how to use this parameter, see [Testing your KMS API calls](https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html) in the Key Management Service Developer Guide. + public var dryRun: Swift.Bool? /// A list of grant tokens. Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see [Grant token](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token) and [Using a grant token](https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token) in the Key Management Service Developer Guide. public var grantTokens: [Swift.String]? /// Identifies an asymmetric KMS key. KMS uses the private key in the asymmetric KMS key to sign the message. The KeyUsage type of the KMS key must be SIGN_VERIFY. To find the KeyUsage of a KMS key, use the [DescribeKey] operation. To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with "alias/". To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN. For example: @@ -10055,6 +10259,7 @@ public struct SignInput: Swift.Equatable { public var signingAlgorithm: KMSClientTypes.SigningAlgorithmSpec? public init( + dryRun: Swift.Bool? = nil, grantTokens: [Swift.String]? = nil, keyId: Swift.String? = nil, message: ClientRuntime.Data? = nil, @@ -10062,6 +10267,7 @@ public struct SignInput: Swift.Equatable { signingAlgorithm: KMSClientTypes.SigningAlgorithmSpec? = nil ) { + self.dryRun = dryRun self.grantTokens = grantTokens self.keyId = keyId self.message = message @@ -10076,10 +10282,12 @@ struct SignInputBody: Swift.Equatable { let messageType: KMSClientTypes.MessageType? let grantTokens: [Swift.String]? let signingAlgorithm: KMSClientTypes.SigningAlgorithmSpec? + let dryRun: Swift.Bool? } extension SignInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case dryRun = "DryRun" case grantTokens = "GrantTokens" case keyId = "KeyId" case message = "Message" @@ -10108,6 +10316,8 @@ extension SignInputBody: Swift.Decodable { grantTokens = grantTokensDecoded0 let signingAlgorithmDecoded = try containerValues.decodeIfPresent(KMSClientTypes.SigningAlgorithmSpec.self, forKey: .signingAlgorithm) signingAlgorithm = signingAlgorithmDecoded + let dryRunDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .dryRun) + dryRun = dryRunDecoded } } @@ -10118,6 +10328,7 @@ public enum SignOutputError: ClientRuntime.HttpResponseErrorBinding { switch restJSONError.errorType { case "DependencyTimeout": return try await DependencyTimeoutException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "Disabled": return try await DisabledException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "DryRunOperation": return try await DryRunOperationException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "InvalidGrantToken": return try await InvalidGrantTokenException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "InvalidKeyUsage": return try await InvalidKeyUsageException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "KeyUnavailable": return try await KeyUnavailableException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) @@ -11088,11 +11299,12 @@ public struct UpdatePrimaryRegionOutputResponse: Swift.Equatable { extension VerifyInput: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "VerifyInput(grantTokens: \(Swift.String(describing: grantTokens)), keyId: \(Swift.String(describing: keyId)), messageType: \(Swift.String(describing: messageType)), signature: \(Swift.String(describing: signature)), signingAlgorithm: \(Swift.String(describing: signingAlgorithm)), message: \"CONTENT_REDACTED\")"} + "VerifyInput(dryRun: \(Swift.String(describing: dryRun)), grantTokens: \(Swift.String(describing: grantTokens)), keyId: \(Swift.String(describing: keyId)), messageType: \(Swift.String(describing: messageType)), signature: \(Swift.String(describing: signature)), signingAlgorithm: \(Swift.String(describing: signingAlgorithm)), message: \"CONTENT_REDACTED\")"} } extension VerifyInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case dryRun = "DryRun" case grantTokens = "GrantTokens" case keyId = "KeyId" case message = "Message" @@ -11103,6 +11315,9 @@ extension VerifyInput: Swift.Encodable { public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let dryRun = self.dryRun { + try encodeContainer.encode(dryRun, forKey: .dryRun) + } if let grantTokens = grantTokens { var grantTokensContainer = encodeContainer.nestedUnkeyedContainer(forKey: .grantTokens) for granttokentype0 in grantTokens { @@ -11134,6 +11349,8 @@ extension VerifyInput: ClientRuntime.URLPathProvider { } public struct VerifyInput: Swift.Equatable { + /// Checks if your request will succeed. DryRun is an optional parameter. To learn more about how to use this parameter, see [Testing your KMS API calls](https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html) in the Key Management Service Developer Guide. + public var dryRun: Swift.Bool? /// A list of grant tokens. Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see [Grant token](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token) and [Using a grant token](https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token) in the Key Management Service Developer Guide. public var grantTokens: [Swift.String]? /// Identifies the asymmetric KMS key that will be used to verify the signature. This must be the same KMS key that was used to generate the signature. If you specify a different KMS key, the signature verification fails. To specify a KMS key, use its key ID, key ARN, alias name, or alias ARN. When using an alias name, prefix it with "alias/". To specify a KMS key in a different Amazon Web Services account, you must use the key ARN or alias ARN. For example: @@ -11171,6 +11388,7 @@ public struct VerifyInput: Swift.Equatable { public var signingAlgorithm: KMSClientTypes.SigningAlgorithmSpec? public init( + dryRun: Swift.Bool? = nil, grantTokens: [Swift.String]? = nil, keyId: Swift.String? = nil, message: ClientRuntime.Data? = nil, @@ -11179,6 +11397,7 @@ public struct VerifyInput: Swift.Equatable { signingAlgorithm: KMSClientTypes.SigningAlgorithmSpec? = nil ) { + self.dryRun = dryRun self.grantTokens = grantTokens self.keyId = keyId self.message = message @@ -11195,10 +11414,12 @@ struct VerifyInputBody: Swift.Equatable { let signature: ClientRuntime.Data? let signingAlgorithm: KMSClientTypes.SigningAlgorithmSpec? let grantTokens: [Swift.String]? + let dryRun: Swift.Bool? } extension VerifyInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case dryRun = "DryRun" case grantTokens = "GrantTokens" case keyId = "KeyId" case message = "Message" @@ -11230,16 +11451,19 @@ extension VerifyInputBody: Swift.Decodable { } } grantTokens = grantTokensDecoded0 + let dryRunDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .dryRun) + dryRun = dryRunDecoded } } extension VerifyMacInput: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "VerifyMacInput(grantTokens: \(Swift.String(describing: grantTokens)), keyId: \(Swift.String(describing: keyId)), mac: \(Swift.String(describing: mac)), macAlgorithm: \(Swift.String(describing: macAlgorithm)), message: \"CONTENT_REDACTED\")"} + "VerifyMacInput(dryRun: \(Swift.String(describing: dryRun)), grantTokens: \(Swift.String(describing: grantTokens)), keyId: \(Swift.String(describing: keyId)), mac: \(Swift.String(describing: mac)), macAlgorithm: \(Swift.String(describing: macAlgorithm)), message: \"CONTENT_REDACTED\")"} } extension VerifyMacInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case dryRun = "DryRun" case grantTokens = "GrantTokens" case keyId = "KeyId" case mac = "Mac" @@ -11249,6 +11473,9 @@ extension VerifyMacInput: Swift.Encodable { public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let dryRun = self.dryRun { + try encodeContainer.encode(dryRun, forKey: .dryRun) + } if let grantTokens = grantTokens { var grantTokensContainer = encodeContainer.nestedUnkeyedContainer(forKey: .grantTokens) for granttokentype0 in grantTokens { @@ -11277,6 +11504,8 @@ extension VerifyMacInput: ClientRuntime.URLPathProvider { } public struct VerifyMacInput: Swift.Equatable { + /// Checks if your request will succeed. DryRun is an optional parameter. To learn more about how to use this parameter, see [Testing your KMS API calls](https://docs.aws.amazon.com/kms/latest/developerguide/programming-dryrun.html) in the Key Management Service Developer Guide. + public var dryRun: Swift.Bool? /// A list of grant tokens. Use a grant token when your permission to call this operation comes from a new grant that has not yet achieved eventual consistency. For more information, see [Grant token](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#grant_token) and [Using a grant token](https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#using-grant-token) in the Key Management Service Developer Guide. public var grantTokens: [Swift.String]? /// The KMS key that will be used in the verification. Enter a key ID of the KMS key that was used to generate the HMAC. If you identify a different KMS key, the VerifyMac operation fails. @@ -11293,6 +11522,7 @@ public struct VerifyMacInput: Swift.Equatable { public var message: ClientRuntime.Data? public init( + dryRun: Swift.Bool? = nil, grantTokens: [Swift.String]? = nil, keyId: Swift.String? = nil, mac: ClientRuntime.Data? = nil, @@ -11300,6 +11530,7 @@ public struct VerifyMacInput: Swift.Equatable { message: ClientRuntime.Data? = nil ) { + self.dryRun = dryRun self.grantTokens = grantTokens self.keyId = keyId self.mac = mac @@ -11314,10 +11545,12 @@ struct VerifyMacInputBody: Swift.Equatable { let macAlgorithm: KMSClientTypes.MacAlgorithmSpec? let mac: ClientRuntime.Data? let grantTokens: [Swift.String]? + let dryRun: Swift.Bool? } extension VerifyMacInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case dryRun = "DryRun" case grantTokens = "GrantTokens" case keyId = "KeyId" case mac = "Mac" @@ -11346,6 +11579,8 @@ extension VerifyMacInputBody: Swift.Decodable { } } grantTokens = grantTokensDecoded0 + let dryRunDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .dryRun) + dryRun = dryRunDecoded } } @@ -11355,6 +11590,7 @@ public enum VerifyMacOutputError: ClientRuntime.HttpResponseErrorBinding { let requestID = httpResponse.requestId switch restJSONError.errorType { case "Disabled": return try await DisabledException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "DryRunOperation": return try await DryRunOperationException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "InvalidGrantToken": return try await InvalidGrantTokenException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "InvalidKeyUsage": return try await InvalidKeyUsageException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "KeyUnavailable": return try await KeyUnavailableException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) @@ -11434,6 +11670,7 @@ public enum VerifyOutputError: ClientRuntime.HttpResponseErrorBinding { switch restJSONError.errorType { case "DependencyTimeout": return try await DependencyTimeoutException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "Disabled": return try await DisabledException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "DryRunOperation": return try await DryRunOperationException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "InvalidGrantToken": return try await InvalidGrantTokenException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "InvalidKeyUsage": return try await InvalidKeyUsageException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) case "KeyUnavailable": return try await KeyUnavailableException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) diff --git a/Sources/Services/AWSLocation/LocationClient.swift b/Sources/Services/AWSLocation/LocationClient.swift index 983f04cfd0f..e346394ae3e 100644 --- a/Sources/Services/AWSLocation/LocationClient.swift +++ b/Sources/Services/AWSLocation/LocationClient.swift @@ -354,6 +354,7 @@ extension LocationClient: LocationClientProtocol { operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.serviceSpecific.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.QueryItemMiddleware()) operation.serializeStep.intercept(position: .after, middleware: ContentTypeMiddleware(contentType: "application/json")) operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.SerializableBodyMiddleware(xmlName: "CalculateRouteRequest")) operation.finalizeStep.intercept(position: .before, middleware: ClientRuntime.ContentLengthMiddleware()) @@ -394,6 +395,7 @@ extension LocationClient: LocationClientProtocol { operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.serviceSpecific.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.QueryItemMiddleware()) operation.serializeStep.intercept(position: .after, middleware: ContentTypeMiddleware(contentType: "application/json")) operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.SerializableBodyMiddleware(xmlName: "CalculateRouteMatrixRequest")) operation.finalizeStep.intercept(position: .before, middleware: ClientRuntime.ContentLengthMiddleware()) @@ -442,7 +444,7 @@ extension LocationClient: LocationClientProtocol { return result } - /// Creates an API key resource in your Amazon Web Services account, which lets you grant geo:GetMap* actions for Amazon Location Map resources to the API key bearer. The API keys feature is in preview. We may add, change, or remove features before announcing general availability. For more information, see [Using API keys](https://docs.aws.amazon.com/location/latest/developerguide/using-apikeys.html). + /// Creates an API key resource in your Amazon Web Services account, which lets you grant actions for Amazon Location resources to the API key bearer. For more information, see [Using API keys](https://docs.aws.amazon.com/location/latest/developerguide/using-apikeys.html). public func createKey(input: CreateKeyInput) async throws -> CreateKeyOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -853,7 +855,7 @@ extension LocationClient: LocationClientProtocol { return result } - /// Retrieves the API key resource details. The API keys feature is in preview. We may add, change, or remove features before announcing general availability. For more information, see [Using API keys](https://docs.aws.amazon.com/location/latest/developerguide/using-apikeys.html). + /// Retrieves the API key resource details. public func describeKey(input: DescribeKeyInput) async throws -> DescribeKeyOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -1437,7 +1439,7 @@ extension LocationClient: LocationClientProtocol { return result } - /// Lists API key resources in your Amazon Web Services account. The API keys feature is in preview. We may add, change, or remove features before announcing general availability. For more information, see [Using API keys](https://docs.aws.amazon.com/location/latest/developerguide/using-apikeys.html). + /// Lists API key resources in your Amazon Web Services account. public func listKeys(input: ListKeysInput) async throws -> ListKeysOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -1746,6 +1748,7 @@ extension LocationClient: LocationClientProtocol { operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.serviceSpecific.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.QueryItemMiddleware()) operation.serializeStep.intercept(position: .after, middleware: ContentTypeMiddleware(contentType: "application/json")) operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.SerializableBodyMiddleware(xmlName: "SearchPlaceIndexForPositionRequest")) operation.finalizeStep.intercept(position: .before, middleware: ClientRuntime.ContentLengthMiddleware()) @@ -1782,6 +1785,7 @@ extension LocationClient: LocationClientProtocol { operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.serviceSpecific.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.QueryItemMiddleware()) operation.serializeStep.intercept(position: .after, middleware: ContentTypeMiddleware(contentType: "application/json")) operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.SerializableBodyMiddleware(xmlName: "SearchPlaceIndexForSuggestionsRequest")) operation.finalizeStep.intercept(position: .before, middleware: ClientRuntime.ContentLengthMiddleware()) @@ -1818,6 +1822,7 @@ extension LocationClient: LocationClientProtocol { operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.serviceSpecific.endpointResolver, endpointParams: endpointParams)) let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.QueryItemMiddleware()) operation.serializeStep.intercept(position: .after, middleware: ContentTypeMiddleware(contentType: "application/json")) operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.SerializableBodyMiddleware(xmlName: "SearchPlaceIndexForTextRequest")) operation.finalizeStep.intercept(position: .before, middleware: ClientRuntime.ContentLengthMiddleware()) @@ -1936,7 +1941,7 @@ extension LocationClient: LocationClientProtocol { return result } - /// Updates the specified properties of a given API key resource. The API keys feature is in preview. We may add, change, or remove features before announcing general availability. For more information, see [Using API keys](https://docs.aws.amazon.com/location/latest/developerguide/using-apikeys.html). + /// Updates the specified properties of a given API key resource. public func updateKey(input: UpdateKeyInput) async throws -> UpdateKeyOutputResponse { let context = ClientRuntime.HttpContextBuilder() diff --git a/Sources/Services/AWSLocation/LocationClientProtocol.swift b/Sources/Services/AWSLocation/LocationClientProtocol.swift index fa9189c3595..61e5a661f54 100644 --- a/Sources/Services/AWSLocation/LocationClientProtocol.swift +++ b/Sources/Services/AWSLocation/LocationClientProtocol.swift @@ -39,7 +39,7 @@ public protocol LocationClientProtocol { func calculateRouteMatrix(input: CalculateRouteMatrixInput) async throws -> CalculateRouteMatrixOutputResponse /// Creates a geofence collection, which manages and stores geofences. func createGeofenceCollection(input: CreateGeofenceCollectionInput) async throws -> CreateGeofenceCollectionOutputResponse - /// Creates an API key resource in your Amazon Web Services account, which lets you grant geo:GetMap* actions for Amazon Location Map resources to the API key bearer. The API keys feature is in preview. We may add, change, or remove features before announcing general availability. For more information, see [Using API keys](https://docs.aws.amazon.com/location/latest/developerguide/using-apikeys.html). + /// Creates an API key resource in your Amazon Web Services account, which lets you grant actions for Amazon Location resources to the API key bearer. For more information, see [Using API keys](https://docs.aws.amazon.com/location/latest/developerguide/using-apikeys.html). func createKey(input: CreateKeyInput) async throws -> CreateKeyOutputResponse /// Creates a map resource in your Amazon Web Services account, which provides map tiles of different styles sourced from global location data providers. If your application is tracking or routing assets you use in your business, such as delivery vehicles or employees, you must not use Esri as your geolocation provider. See section 82 of the [Amazon Web Services service terms](http://aws.amazon.com/service-terms) for more details. func createMap(input: CreateMapInput) async throws -> CreateMapOutputResponse @@ -63,7 +63,7 @@ public protocol LocationClientProtocol { func deleteTracker(input: DeleteTrackerInput) async throws -> DeleteTrackerOutputResponse /// Retrieves the geofence collection details. func describeGeofenceCollection(input: DescribeGeofenceCollectionInput) async throws -> DescribeGeofenceCollectionOutputResponse - /// Retrieves the API key resource details. The API keys feature is in preview. We may add, change, or remove features before announcing general availability. For more information, see [Using API keys](https://docs.aws.amazon.com/location/latest/developerguide/using-apikeys.html). + /// Retrieves the API key resource details. func describeKey(input: DescribeKeyInput) async throws -> DescribeKeyOutputResponse /// Retrieves the map resource details. func describeMap(input: DescribeMapInput) async throws -> DescribeMapOutputResponse @@ -103,7 +103,7 @@ public protocol LocationClientProtocol { func listGeofenceCollections(input: ListGeofenceCollectionsInput) async throws -> ListGeofenceCollectionsOutputResponse /// Lists geofences stored in a given geofence collection. func listGeofences(input: ListGeofencesInput) async throws -> ListGeofencesOutputResponse - /// Lists API key resources in your Amazon Web Services account. The API keys feature is in preview. We may add, change, or remove features before announcing general availability. For more information, see [Using API keys](https://docs.aws.amazon.com/location/latest/developerguide/using-apikeys.html). + /// Lists API key resources in your Amazon Web Services account. func listKeys(input: ListKeysInput) async throws -> ListKeysOutputResponse /// Lists map resources in your Amazon Web Services account. func listMaps(input: ListMapsInput) async throws -> ListMapsOutputResponse @@ -131,7 +131,7 @@ public protocol LocationClientProtocol { func untagResource(input: UntagResourceInput) async throws -> UntagResourceOutputResponse /// Updates the specified properties of a given geofence collection. func updateGeofenceCollection(input: UpdateGeofenceCollectionInput) async throws -> UpdateGeofenceCollectionOutputResponse - /// Updates the specified properties of a given API key resource. The API keys feature is in preview. We may add, change, or remove features before announcing general availability. For more information, see [Using API keys](https://docs.aws.amazon.com/location/latest/developerguide/using-apikeys.html). + /// Updates the specified properties of a given API key resource. func updateKey(input: UpdateKeyInput) async throws -> UpdateKeyOutputResponse /// Updates the specified properties of a given map resource. func updateMap(input: UpdateMapInput) async throws -> UpdateMapOutputResponse diff --git a/Sources/Services/AWSLocation/models/Models.swift b/Sources/Services/AWSLocation/models/Models.swift index e350bee4e7f..95e7fcb88ef 100644 --- a/Sources/Services/AWSLocation/models/Models.swift +++ b/Sources/Services/AWSLocation/models/Models.swift @@ -163,7 +163,39 @@ extension LocationClientTypes.ApiKeyRestrictions: Swift.Codable { extension LocationClientTypes { /// API Restrictions on the allowed actions, resources, and referers for an API key resource. public struct ApiKeyRestrictions: Swift.Equatable { - /// A list of allowed actions that an API key resource grants permissions to perform Currently, the only valid action is geo:GetMap* as an input to the list. For example, ["geo:GetMap*"] is valid but ["geo:GetMapTile"] is not. + /// A list of allowed actions that an API key resource grants permissions to perform. You must have at least one action for each type of resource. For example, if you have a place resource, you must include at least one place action. The following are valid values for the actions. + /// + /// * Map actions + /// + /// * geo:GetMap* - Allows all actions needed for map rendering. + /// + /// + /// + /// + /// * Place actions + /// + /// * geo:SearchPlaceIndexForText - Allows geocoding. + /// + /// * geo:SearchPlaceIndexForPosition - Allows reverse geocoding. + /// + /// * geo:SearchPlaceIndexForSuggestions - Allows generating suggestions from text. + /// + /// * GetPlace - Allows finding a place by place ID. + /// + /// + /// + /// + /// * Route actions + /// + /// * geo:CalculateRoute - Allows point to point routing. + /// + /// * geo:CalculateRouteMatrix - Allows calculating a matrix of routes. + /// + /// + /// + /// + /// + /// You must use these strings exactly. For example, to provide access to map rendering, the only valid action is geo:GetMap* as an input to the list. ["geo:GetMap*"] is valid but ["geo:GetMapTile"] is not. Similarly, you cannot use ["geo:SearchPlaceIndexFor*"] - you must list each of the Place actions separately. /// This member is required. public var allowActions: [Swift.String]? /// An optional list of allowed HTTP referers for which requests must originate from. Requests using this API key from other domains will not be allowed. Requirements: @@ -176,19 +208,18 @@ extension LocationClientTypes { /// /// * No spaces allowed. For example, https://example.com. public var allowReferers: [Swift.String]? - /// A list of allowed resource ARNs that a API key bearer can perform actions on For more information about ARN format, see [Amazon Resource Names (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html). In this preview, you can allow only map resources. Requirements: + /// A list of allowed resource ARNs that a API key bearer can perform actions on. /// - /// * Must be prefixed with arn. + /// * The ARN must be the correct ARN for a map, place, or route ARN. You may include wildcards in the resource-id to match multiple resources of the same type. /// - /// * partition and service must not be empty and should begin with only alphanumeric characters (A–Z, a–z, 0–9) and contain only alphanumeric numbers, hyphens (-) and periods (.). + /// * The resources must be in the same partition, region, and account-id as the key that is being created. /// - /// * region and account-id can be empty or should begin with only alphanumeric characters (A–Z, a–z, 0–9) and contain only alphanumeric numbers, hyphens (-) and periods (.). + /// * Other than wildcards, you must include the full ARN, including the arn, partition, service, region, account-id and resource-id, delimited by colons (:). /// - /// * resource-id can begin with any character except for forward slash (/) and contain any characters after, including forward slashes to form a path. resource-id can also include wildcard characters, denoted by an asterisk (*). + /// * No spaces allowed, even with wildcards. For example, arn:aws:geo:region:account-id:map/ExampleMap*. /// - /// * arn, partition, service, region, account-id and resource-id must be delimited by a colon (:). /// - /// * No spaces allowed. For example, arn:aws:geo:region:account-id:map/ExampleMap*. + /// For more information about ARN format, see [Amazon Resource Names (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html). /// This member is required. public var allowResources: [Swift.String]? @@ -1395,7 +1426,7 @@ extension LocationClientTypes { /// The identifier for the geofence to be stored in a given geofence collection. /// This member is required. public var geofenceId: Swift.String? - /// Specifies additional user-defined properties to store with the Geofence. An array of key-value pairs. + /// Associates one of more properties with the geofence. A property is a key-value pair stored with the geofence and added to any geofence event triggered with that geofence. Format: "key" : "value" public var geofenceProperties: [Swift.String:Swift.String]? /// Contains the details of the position of the geofence. Can be either a polygon or a circle. Including both will return a validation error. Each [ geofence polygon](https://docs.aws.amazon.com/location-geofences/latest/APIReference/API_GeofenceGeometry.html) can have a maximum of 1,000 vertices. /// This member is required. @@ -1711,7 +1742,7 @@ extension LocationClientTypes { extension CalculateRouteInput: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "CalculateRouteInput(calculatorName: \(Swift.String(describing: calculatorName)), carModeOptions: \(Swift.String(describing: carModeOptions)), departNow: \(Swift.String(describing: departNow)), departureTime: \(Swift.String(describing: departureTime)), distanceUnit: \(Swift.String(describing: distanceUnit)), includeLegGeometry: \(Swift.String(describing: includeLegGeometry)), travelMode: \(Swift.String(describing: travelMode)), truckModeOptions: \(Swift.String(describing: truckModeOptions)), waypointPositions: \(Swift.String(describing: waypointPositions)), departurePosition: \"CONTENT_REDACTED\", destinationPosition: \"CONTENT_REDACTED\")"} + "CalculateRouteInput(calculatorName: \(Swift.String(describing: calculatorName)), carModeOptions: \(Swift.String(describing: carModeOptions)), departNow: \(Swift.String(describing: departNow)), departureTime: \(Swift.String(describing: departureTime)), distanceUnit: \(Swift.String(describing: distanceUnit)), includeLegGeometry: \(Swift.String(describing: includeLegGeometry)), travelMode: \(Swift.String(describing: travelMode)), truckModeOptions: \(Swift.String(describing: truckModeOptions)), waypointPositions: \(Swift.String(describing: waypointPositions)), departurePosition: \"CONTENT_REDACTED\", destinationPosition: \"CONTENT_REDACTED\", key: \"CONTENT_REDACTED\")"} } extension CalculateRouteInput: Swift.Encodable { @@ -1775,6 +1806,19 @@ extension CalculateRouteInput: Swift.Encodable { } } +extension CalculateRouteInput: ClientRuntime.QueryItemProvider { + public var queryItems: [ClientRuntime.URLQueryItem] { + get throws { + var items = [ClientRuntime.URLQueryItem]() + if let key = key { + let keyQueryItem = ClientRuntime.URLQueryItem(name: "key".urlPercentEncoding(), value: Swift.String(key).urlPercentEncoding()) + items.append(keyQueryItem) + } + return items + } + } +} + extension CalculateRouteInput: ClientRuntime.URLPathProvider { public var urlPath: Swift.String? { guard let calculatorName = calculatorName else { @@ -1816,6 +1860,8 @@ public struct CalculateRouteInput: Swift.Equatable { public var distanceUnit: LocationClientTypes.DistanceUnit? /// Set to include the geometry details in the result for each path between a pair of positions. Default Value: false Valid Values: false | true public var includeLegGeometry: Swift.Bool? + /// The optional [API key](https://docs.aws.amazon.com/location/latest/developerguide/using-apikeys.html) to authorize the request. + public var key: Swift.String? /// Specifies the mode of transport when calculating a route. Used in estimating the speed of travel and road compatibility. You can choose Car, Truck, Walking, Bicycle or Motorcycle as options for the TravelMode. Bicycle and Motorcycle are only valid when using Grab as a data provider, and only within Southeast Asia. Truck is not available for Grab. For more details on the using Grab for routing, including areas of coverage, see [GrabMaps](https://docs.aws.amazon.com/location/latest/developerguide/grab.html) in the Amazon Location Service Developer Guide. The TravelMode you specify also determines how you specify route preferences: /// /// * If traveling by Car use the CarModeOptions parameter. @@ -1844,6 +1890,7 @@ public struct CalculateRouteInput: Swift.Equatable { destinationPosition: [Swift.Double]? = nil, distanceUnit: LocationClientTypes.DistanceUnit? = nil, includeLegGeometry: Swift.Bool? = nil, + key: Swift.String? = nil, travelMode: LocationClientTypes.TravelMode? = nil, truckModeOptions: LocationClientTypes.CalculateRouteTruckModeOptions? = nil, waypointPositions: [[Swift.Double]]? = nil @@ -1857,6 +1904,7 @@ public struct CalculateRouteInput: Swift.Equatable { self.destinationPosition = destinationPosition self.distanceUnit = distanceUnit self.includeLegGeometry = includeLegGeometry + self.key = key self.travelMode = travelMode self.truckModeOptions = truckModeOptions self.waypointPositions = waypointPositions @@ -1951,6 +1999,11 @@ extension CalculateRouteInputBody: Swift.Decodable { } } +extension CalculateRouteMatrixInput: Swift.CustomDebugStringConvertible { + public var debugDescription: Swift.String { + "CalculateRouteMatrixInput(calculatorName: \(Swift.String(describing: calculatorName)), carModeOptions: \(Swift.String(describing: carModeOptions)), departNow: \(Swift.String(describing: departNow)), departurePositions: \(Swift.String(describing: departurePositions)), departureTime: \(Swift.String(describing: departureTime)), destinationPositions: \(Swift.String(describing: destinationPositions)), distanceUnit: \(Swift.String(describing: distanceUnit)), travelMode: \(Swift.String(describing: travelMode)), truckModeOptions: \(Swift.String(describing: truckModeOptions)), key: \"CONTENT_REDACTED\")"} +} + extension CalculateRouteMatrixInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { case carModeOptions = "CarModeOptions" @@ -2004,6 +2057,19 @@ extension CalculateRouteMatrixInput: Swift.Encodable { } } +extension CalculateRouteMatrixInput: ClientRuntime.QueryItemProvider { + public var queryItems: [ClientRuntime.URLQueryItem] { + get throws { + var items = [ClientRuntime.URLQueryItem]() + if let key = key { + let keyQueryItem = ClientRuntime.URLQueryItem(name: "key".urlPercentEncoding(), value: Swift.String(key).urlPercentEncoding()) + items.append(keyQueryItem) + } + return items + } + } +} + extension CalculateRouteMatrixInput: ClientRuntime.URLPathProvider { public var urlPath: Swift.String? { guard let calculatorName = calculatorName else { @@ -2033,6 +2099,8 @@ public struct CalculateRouteMatrixInput: Swift.Equatable { public var destinationPositions: [[Swift.Double]]? /// Set the unit system to specify the distance. Default Value: Kilometers public var distanceUnit: LocationClientTypes.DistanceUnit? + /// The optional [API key](https://docs.aws.amazon.com/location/latest/developerguide/using-apikeys.html) to authorize the request. + public var key: Swift.String? /// Specifies the mode of transport when calculating a route. Used in estimating the speed of travel and road compatibility. The TravelMode you specify also determines how you specify route preferences: /// /// * If traveling by Car use the CarModeOptions parameter. @@ -2053,6 +2121,7 @@ public struct CalculateRouteMatrixInput: Swift.Equatable { departureTime: ClientRuntime.Date? = nil, destinationPositions: [[Swift.Double]]? = nil, distanceUnit: LocationClientTypes.DistanceUnit? = nil, + key: Swift.String? = nil, travelMode: LocationClientTypes.TravelMode? = nil, truckModeOptions: LocationClientTypes.CalculateRouteTruckModeOptions? = nil ) @@ -2064,6 +2133,7 @@ public struct CalculateRouteMatrixInput: Swift.Equatable { self.departureTime = departureTime self.destinationPositions = destinationPositions self.distanceUnit = distanceUnit + self.key = key self.travelMode = travelMode self.truckModeOptions = truckModeOptions } @@ -3886,6 +3956,7 @@ extension CreateRouteCalculatorOutputResponseBody: Swift.Decodable { extension CreateTrackerInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { case description = "Description" + case eventBridgeEnabled = "EventBridgeEnabled" case kmsKeyId = "KmsKeyId" case positionFiltering = "PositionFiltering" case pricingPlan = "PricingPlan" @@ -3899,6 +3970,9 @@ extension CreateTrackerInput: Swift.Encodable { if let description = self.description { try encodeContainer.encode(description, forKey: .description) } + if let eventBridgeEnabled = self.eventBridgeEnabled { + try encodeContainer.encode(eventBridgeEnabled, forKey: .eventBridgeEnabled) + } if let kmsKeyId = self.kmsKeyId { try encodeContainer.encode(kmsKeyId, forKey: .kmsKeyId) } @@ -3932,6 +4006,8 @@ extension CreateTrackerInput: ClientRuntime.URLPathProvider { public struct CreateTrackerInput: Swift.Equatable { /// An optional description for the tracker resource. public var description: Swift.String? + /// Whether to enable position UPDATE events from this tracker to be sent to EventBridge. You do not need enable this feature to get ENTER and EXIT events for geofences with this tracker. Those events are always sent to EventBridge. + public var eventBridgeEnabled: Swift.Bool? /// A key identifier for an [Amazon Web Services KMS customer managed key](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html). Enter a key ID, key ARN, alias name, or alias ARN. public var kmsKeyId: Swift.String? /// Specifies the position filtering for the tracker resource. Valid values: @@ -3977,6 +4053,7 @@ public struct CreateTrackerInput: Swift.Equatable { public init( description: Swift.String? = nil, + eventBridgeEnabled: Swift.Bool? = nil, kmsKeyId: Swift.String? = nil, positionFiltering: LocationClientTypes.PositionFiltering? = nil, pricingPlan: LocationClientTypes.PricingPlan? = nil, @@ -3986,6 +4063,7 @@ public struct CreateTrackerInput: Swift.Equatable { ) { self.description = description + self.eventBridgeEnabled = eventBridgeEnabled self.kmsKeyId = kmsKeyId self.positionFiltering = positionFiltering self.pricingPlan = pricingPlan @@ -4003,11 +4081,13 @@ struct CreateTrackerInputBody: Swift.Equatable { let description: Swift.String? let tags: [Swift.String:Swift.String]? let positionFiltering: LocationClientTypes.PositionFiltering? + let eventBridgeEnabled: Swift.Bool? } extension CreateTrackerInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { case description = "Description" + case eventBridgeEnabled = "EventBridgeEnabled" case kmsKeyId = "KmsKeyId" case positionFiltering = "PositionFiltering" case pricingPlan = "PricingPlan" @@ -4041,6 +4121,8 @@ extension CreateTrackerInputBody: Swift.Decodable { tags = tagsDecoded0 let positionFilteringDecoded = try containerValues.decodeIfPresent(LocationClientTypes.PositionFiltering.self, forKey: .positionFiltering) positionFiltering = positionFilteringDecoded + let eventBridgeEnabledDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .eventBridgeEnabled) + eventBridgeEnabled = eventBridgeEnabledDecoded } } @@ -5502,6 +5584,7 @@ extension DescribeTrackerOutputResponse: ClientRuntime.HttpResponseBinding { let output: DescribeTrackerOutputResponseBody = try responseDecoder.decode(responseBody: data) self.createTime = output.createTime self.description = output.description + self.eventBridgeEnabled = output.eventBridgeEnabled self.kmsKeyId = output.kmsKeyId self.positionFiltering = output.positionFiltering self.pricingPlan = output.pricingPlan @@ -5513,6 +5596,7 @@ extension DescribeTrackerOutputResponse: ClientRuntime.HttpResponseBinding { } else { self.createTime = nil self.description = nil + self.eventBridgeEnabled = nil self.kmsKeyId = nil self.positionFiltering = nil self.pricingPlan = nil @@ -5532,6 +5616,8 @@ public struct DescribeTrackerOutputResponse: Swift.Equatable { /// The optional description for the tracker resource. /// This member is required. public var description: Swift.String? + /// Whether UPDATE events from this tracker in EventBridge are enabled. If set to true these events will be sent to EventBridge. + public var eventBridgeEnabled: Swift.Bool? /// A key identifier for an [Amazon Web Services KMS customer managed key](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html) assigned to the Amazon Location resource. public var kmsKeyId: Swift.String? /// The position filtering method of the tracker resource. @@ -5559,6 +5645,7 @@ public struct DescribeTrackerOutputResponse: Swift.Equatable { public init( createTime: ClientRuntime.Date? = nil, description: Swift.String? = nil, + eventBridgeEnabled: Swift.Bool? = nil, kmsKeyId: Swift.String? = nil, positionFiltering: LocationClientTypes.PositionFiltering? = nil, pricingPlan: LocationClientTypes.PricingPlan? = nil, @@ -5571,6 +5658,7 @@ public struct DescribeTrackerOutputResponse: Swift.Equatable { { self.createTime = createTime self.description = description + self.eventBridgeEnabled = eventBridgeEnabled self.kmsKeyId = kmsKeyId self.positionFiltering = positionFiltering self.pricingPlan = pricingPlan @@ -5593,12 +5681,14 @@ struct DescribeTrackerOutputResponseBody: Swift.Equatable { let updateTime: ClientRuntime.Date? let kmsKeyId: Swift.String? let positionFiltering: LocationClientTypes.PositionFiltering? + let eventBridgeEnabled: Swift.Bool? } extension DescribeTrackerOutputResponseBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { case createTime = "CreateTime" case description = "Description" + case eventBridgeEnabled = "EventBridgeEnabled" case kmsKeyId = "KmsKeyId" case positionFiltering = "PositionFiltering" case pricingPlan = "PricingPlan" @@ -5640,6 +5730,8 @@ extension DescribeTrackerOutputResponseBody: Swift.Decodable { kmsKeyId = kmsKeyIdDecoded let positionFilteringDecoded = try containerValues.decodeIfPresent(LocationClientTypes.PositionFiltering.self, forKey: .positionFiltering) positionFiltering = positionFilteringDecoded + let eventBridgeEnabledDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .eventBridgeEnabled) + eventBridgeEnabled = eventBridgeEnabledDecoded } } @@ -6519,7 +6611,7 @@ public struct GetGeofenceOutputResponse: Swift.Equatable { /// The geofence identifier. /// This member is required. public var geofenceId: Swift.String? - /// Contains additional user-defined properties stored with the geofence. An array of key-value pairs. + /// User defined properties of the geofence. A property is a key-value pair stored with the geofence and added to any geofence event triggered with that geofence. Format: "key" : "value" public var geofenceProperties: [Swift.String:Swift.String]? /// Contains the geofence geometry details describing a polygon or a circle. /// This member is required. @@ -7201,6 +7293,11 @@ extension GetMapTileOutputResponseBody: Swift.Decodable { } } +extension GetPlaceInput: Swift.CustomDebugStringConvertible { + public var debugDescription: Swift.String { + "GetPlaceInput(indexName: \(Swift.String(describing: indexName)), language: \(Swift.String(describing: language)), placeId: \(Swift.String(describing: placeId)), key: \"CONTENT_REDACTED\")"} +} + extension GetPlaceInput: ClientRuntime.QueryItemProvider { public var queryItems: [ClientRuntime.URLQueryItem] { get throws { @@ -7209,6 +7306,10 @@ extension GetPlaceInput: ClientRuntime.QueryItemProvider { let languageQueryItem = ClientRuntime.URLQueryItem(name: "language".urlPercentEncoding(), value: Swift.String(language).urlPercentEncoding()) items.append(languageQueryItem) } + if let key = key { + let keyQueryItem = ClientRuntime.URLQueryItem(name: "key".urlPercentEncoding(), value: Swift.String(key).urlPercentEncoding()) + items.append(keyQueryItem) + } return items } } @@ -7230,6 +7331,8 @@ public struct GetPlaceInput: Swift.Equatable { /// The name of the place index resource that you want to use for the search. /// This member is required. public var indexName: Swift.String? + /// The optional [API key](https://docs.aws.amazon.com/location/latest/developerguide/using-apikeys.html) to authorize the request. + public var key: Swift.String? /// The preferred language used to return results. The value must be a valid [BCP 47](https://tools.ietf.org/search/bcp47) language tag, for example, en for English. This setting affects the languages used in the results, but not the results themselves. If no language is specified, or not supported for a particular result, the partner automatically chooses a language for the result. For an example, we'll use the Greek language. You search for a location around Athens, Greece, with the language parameter set to en. The city in the results will most likely be returned as Athens. If you set the language parameter to el, for Greek, then the city in the results will more likely be returned as Αθήνα. If the data provider does not have a value for Greek, the result will be in a language that the provider does support. public var language: Swift.String? /// The identifier of the place to find. @@ -7238,11 +7341,13 @@ public struct GetPlaceInput: Swift.Equatable { public init( indexName: Swift.String? = nil, + key: Swift.String? = nil, language: Swift.String? = nil, placeId: Swift.String? = nil ) { self.indexName = indexName + self.key = key self.language = language self.placeId = placeId } @@ -8155,7 +8260,7 @@ extension LocationClientTypes { /// The geofence identifier. /// This member is required. public var geofenceId: Swift.String? - /// Contains additional user-defined properties stored with the geofence. An array of key-value pairs. + /// User defined properties of the geofence. A property is a key-value pair stored with the geofence and added to any geofence event triggered with that geofence. Format: "key" : "value" public var geofenceProperties: [Swift.String:Swift.String]? /// Contains the geofence geometry details describing a polygon or a circle. /// This member is required. @@ -10279,7 +10384,7 @@ public struct PutGeofenceInput: Swift.Equatable { /// An identifier for the geofence. For example, ExampleGeofence-1. /// This member is required. public var geofenceId: Swift.String? - /// Specifies additional user-defined properties to store with the Geofence. An array of key-value pairs. + /// Associates one of more properties with the geofence. A property is a key-value pair stored with the geofence and added to any geofence event triggered with that geofence. Format: "key" : "value" public var geofenceProperties: [Swift.String:Swift.String]? /// Contains the details to specify the position of the geofence. Can be either a polygon or a circle. Including both will return a validation error. Each [ geofence polygon](https://docs.aws.amazon.com/location-geofences/latest/APIReference/API_GeofenceGeometry.html) can have a maximum of 1,000 vertices. /// This member is required. @@ -10850,7 +10955,7 @@ extension LocationClientTypes { extension SearchPlaceIndexForPositionInput: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "SearchPlaceIndexForPositionInput(indexName: \(Swift.String(describing: indexName)), language: \(Swift.String(describing: language)), maxResults: \(Swift.String(describing: maxResults)), position: \"CONTENT_REDACTED\")"} + "SearchPlaceIndexForPositionInput(indexName: \(Swift.String(describing: indexName)), language: \(Swift.String(describing: language)), maxResults: \(Swift.String(describing: maxResults)), key: \"CONTENT_REDACTED\", position: \"CONTENT_REDACTED\")"} } extension SearchPlaceIndexForPositionInput: Swift.Encodable { @@ -10877,6 +10982,19 @@ extension SearchPlaceIndexForPositionInput: Swift.Encodable { } } +extension SearchPlaceIndexForPositionInput: ClientRuntime.QueryItemProvider { + public var queryItems: [ClientRuntime.URLQueryItem] { + get throws { + var items = [ClientRuntime.URLQueryItem]() + if let key = key { + let keyQueryItem = ClientRuntime.URLQueryItem(name: "key".urlPercentEncoding(), value: Swift.String(key).urlPercentEncoding()) + items.append(keyQueryItem) + } + return items + } + } +} + extension SearchPlaceIndexForPositionInput: ClientRuntime.URLPathProvider { public var urlPath: Swift.String? { guard let indexName = indexName else { @@ -10890,6 +11008,8 @@ public struct SearchPlaceIndexForPositionInput: Swift.Equatable { /// The name of the place index resource you want to use for the search. /// This member is required. public var indexName: Swift.String? + /// The optional [API key](https://docs.aws.amazon.com/location/latest/developerguide/using-apikeys.html) to authorize the request. + public var key: Swift.String? /// The preferred language used to return results. The value must be a valid [BCP 47](https://tools.ietf.org/search/bcp47) language tag, for example, en for English. This setting affects the languages used in the results, but not the results themselves. If no language is specified, or not supported for a particular result, the partner automatically chooses a language for the result. For an example, we'll use the Greek language. You search for a location around Athens, Greece, with the language parameter set to en. The city in the results will most likely be returned as Athens. If you set the language parameter to el, for Greek, then the city in the results will more likely be returned as Αθήνα. If the data provider does not have a value for Greek, the result will be in a language that the provider does support. public var language: Swift.String? /// An optional parameter. The maximum number of results returned per request. Default value: 50 @@ -10900,12 +11020,14 @@ public struct SearchPlaceIndexForPositionInput: Swift.Equatable { public init( indexName: Swift.String? = nil, + key: Swift.String? = nil, language: Swift.String? = nil, maxResults: Swift.Int = 0, position: [Swift.Double]? = nil ) { self.indexName = indexName + self.key = key self.language = language self.maxResults = maxResults self.position = position @@ -11116,7 +11238,7 @@ extension LocationClientTypes { extension SearchPlaceIndexForSuggestionsInput: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "SearchPlaceIndexForSuggestionsInput(filterCategories: \(Swift.String(describing: filterCategories)), filterCountries: \(Swift.String(describing: filterCountries)), indexName: \(Swift.String(describing: indexName)), language: \(Swift.String(describing: language)), maxResults: \(Swift.String(describing: maxResults)), biasPosition: \"CONTENT_REDACTED\", filterBBox: \"CONTENT_REDACTED\", text: \"CONTENT_REDACTED\")"} + "SearchPlaceIndexForSuggestionsInput(filterCategories: \(Swift.String(describing: filterCategories)), filterCountries: \(Swift.String(describing: filterCountries)), indexName: \(Swift.String(describing: indexName)), language: \(Swift.String(describing: language)), maxResults: \(Swift.String(describing: maxResults)), biasPosition: \"CONTENT_REDACTED\", filterBBox: \"CONTENT_REDACTED\", key: \"CONTENT_REDACTED\", text: \"CONTENT_REDACTED\")"} } extension SearchPlaceIndexForSuggestionsInput: Swift.Encodable { @@ -11168,6 +11290,19 @@ extension SearchPlaceIndexForSuggestionsInput: Swift.Encodable { } } +extension SearchPlaceIndexForSuggestionsInput: ClientRuntime.QueryItemProvider { + public var queryItems: [ClientRuntime.URLQueryItem] { + get throws { + var items = [ClientRuntime.URLQueryItem]() + if let key = key { + let keyQueryItem = ClientRuntime.URLQueryItem(name: "key".urlPercentEncoding(), value: Swift.String(key).urlPercentEncoding()) + items.append(keyQueryItem) + } + return items + } + } +} + extension SearchPlaceIndexForSuggestionsInput: ClientRuntime.URLPathProvider { public var urlPath: Swift.String? { guard let indexName = indexName else { @@ -11191,6 +11326,8 @@ public struct SearchPlaceIndexForSuggestionsInput: Swift.Equatable { /// The name of the place index resource you want to use for the search. /// This member is required. public var indexName: Swift.String? + /// The optional [API key](https://docs.aws.amazon.com/location/latest/developerguide/using-apikeys.html) to authorize the request. + public var key: Swift.String? /// The preferred language used to return results. The value must be a valid [BCP 47](https://tools.ietf.org/search/bcp47) language tag, for example, en for English. This setting affects the languages used in the results. If no language is specified, or not supported for a particular result, the partner automatically chooses a language for the result. For an example, we'll use the Greek language. You search for Athens, Gr to get suggestions with the language parameter set to en. The results found will most likely be returned as Athens, Greece. If you set the language parameter to el, for Greek, then the result found will more likely be returned as Αθήνα, Ελλάδα. If the data provider does not have a value for Greek, the result will be in a language that the provider does support. public var language: Swift.String? /// An optional parameter. The maximum number of results returned per request. The default: 5 @@ -11205,6 +11342,7 @@ public struct SearchPlaceIndexForSuggestionsInput: Swift.Equatable { filterCategories: [Swift.String]? = nil, filterCountries: [Swift.String]? = nil, indexName: Swift.String? = nil, + key: Swift.String? = nil, language: Swift.String? = nil, maxResults: Swift.Int? = nil, text: Swift.String? = nil @@ -11215,6 +11353,7 @@ public struct SearchPlaceIndexForSuggestionsInput: Swift.Equatable { self.filterCategories = filterCategories self.filterCountries = filterCountries self.indexName = indexName + self.key = key self.language = language self.maxResults = maxResults self.text = text @@ -11544,7 +11683,7 @@ extension LocationClientTypes { extension SearchPlaceIndexForTextInput: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "SearchPlaceIndexForTextInput(filterCategories: \(Swift.String(describing: filterCategories)), filterCountries: \(Swift.String(describing: filterCountries)), indexName: \(Swift.String(describing: indexName)), language: \(Swift.String(describing: language)), maxResults: \(Swift.String(describing: maxResults)), biasPosition: \"CONTENT_REDACTED\", filterBBox: \"CONTENT_REDACTED\", text: \"CONTENT_REDACTED\")"} + "SearchPlaceIndexForTextInput(filterCategories: \(Swift.String(describing: filterCategories)), filterCountries: \(Swift.String(describing: filterCountries)), indexName: \(Swift.String(describing: indexName)), language: \(Swift.String(describing: language)), maxResults: \(Swift.String(describing: maxResults)), biasPosition: \"CONTENT_REDACTED\", filterBBox: \"CONTENT_REDACTED\", key: \"CONTENT_REDACTED\", text: \"CONTENT_REDACTED\")"} } extension SearchPlaceIndexForTextInput: Swift.Encodable { @@ -11596,6 +11735,19 @@ extension SearchPlaceIndexForTextInput: Swift.Encodable { } } +extension SearchPlaceIndexForTextInput: ClientRuntime.QueryItemProvider { + public var queryItems: [ClientRuntime.URLQueryItem] { + get throws { + var items = [ClientRuntime.URLQueryItem]() + if let key = key { + let keyQueryItem = ClientRuntime.URLQueryItem(name: "key".urlPercentEncoding(), value: Swift.String(key).urlPercentEncoding()) + items.append(keyQueryItem) + } + return items + } + } +} + extension SearchPlaceIndexForTextInput: ClientRuntime.URLPathProvider { public var urlPath: Swift.String? { guard let indexName = indexName else { @@ -11619,6 +11771,8 @@ public struct SearchPlaceIndexForTextInput: Swift.Equatable { /// The name of the place index resource you want to use for the search. /// This member is required. public var indexName: Swift.String? + /// The optional [API key](https://docs.aws.amazon.com/location/latest/developerguide/using-apikeys.html) to authorize the request. + public var key: Swift.String? /// The preferred language used to return results. The value must be a valid [BCP 47](https://tools.ietf.org/search/bcp47) language tag, for example, en for English. This setting affects the languages used in the results, but not the results themselves. If no language is specified, or not supported for a particular result, the partner automatically chooses a language for the result. For an example, we'll use the Greek language. You search for Athens, Greece, with the language parameter set to en. The result found will most likely be returned as Athens. If you set the language parameter to el, for Greek, then the result found will more likely be returned as Αθήνα. If the data provider does not have a value for Greek, the result will be in a language that the provider does support. public var language: Swift.String? /// An optional parameter. The maximum number of results returned per request. The default: 50 @@ -11633,6 +11787,7 @@ public struct SearchPlaceIndexForTextInput: Swift.Equatable { filterCategories: [Swift.String]? = nil, filterCountries: [Swift.String]? = nil, indexName: Swift.String? = nil, + key: Swift.String? = nil, language: Swift.String? = nil, maxResults: Swift.Int = 0, text: Swift.String? = nil @@ -11643,6 +11798,7 @@ public struct SearchPlaceIndexForTextInput: Swift.Equatable { self.filterCategories = filterCategories self.filterCountries = filterCountries self.indexName = indexName + self.key = key self.language = language self.maxResults = maxResults self.text = text @@ -13463,6 +13619,7 @@ extension UpdateRouteCalculatorOutputResponseBody: Swift.Decodable { extension UpdateTrackerInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { case description = "Description" + case eventBridgeEnabled = "EventBridgeEnabled" case positionFiltering = "PositionFiltering" case pricingPlan = "PricingPlan" case pricingPlanDataSource = "PricingPlanDataSource" @@ -13473,6 +13630,9 @@ extension UpdateTrackerInput: Swift.Encodable { if let description = self.description { try encodeContainer.encode(description, forKey: .description) } + if let eventBridgeEnabled = self.eventBridgeEnabled { + try encodeContainer.encode(eventBridgeEnabled, forKey: .eventBridgeEnabled) + } if let positionFiltering = self.positionFiltering { try encodeContainer.encode(positionFiltering.rawValue, forKey: .positionFiltering) } @@ -13497,6 +13657,8 @@ extension UpdateTrackerInput: ClientRuntime.URLPathProvider { public struct UpdateTrackerInput: Swift.Equatable { /// Updates the description for the tracker resource. public var description: Swift.String? + /// Whether to enable position UPDATE events from this tracker to be sent to EventBridge. You do not need enable this feature to get ENTER and EXIT events for geofences with this tracker. Those events are always sent to EventBridge. + public var eventBridgeEnabled: Swift.Bool? /// Updates the position filtering for the tracker resource. Valid values: /// /// * TimeBased - Location updates are evaluated against linked geofence collections, but not every location update is stored. If your update frequency is more often than 30 seconds, only one update per 30 seconds is stored for each unique device ID. @@ -13517,6 +13679,7 @@ public struct UpdateTrackerInput: Swift.Equatable { public init( description: Swift.String? = nil, + eventBridgeEnabled: Swift.Bool? = nil, positionFiltering: LocationClientTypes.PositionFiltering? = nil, pricingPlan: LocationClientTypes.PricingPlan? = nil, pricingPlanDataSource: Swift.String? = nil, @@ -13524,6 +13687,7 @@ public struct UpdateTrackerInput: Swift.Equatable { ) { self.description = description + self.eventBridgeEnabled = eventBridgeEnabled self.positionFiltering = positionFiltering self.pricingPlan = pricingPlan self.pricingPlanDataSource = pricingPlanDataSource @@ -13536,11 +13700,13 @@ struct UpdateTrackerInputBody: Swift.Equatable { let pricingPlanDataSource: Swift.String? let description: Swift.String? let positionFiltering: LocationClientTypes.PositionFiltering? + let eventBridgeEnabled: Swift.Bool? } extension UpdateTrackerInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { case description = "Description" + case eventBridgeEnabled = "EventBridgeEnabled" case positionFiltering = "PositionFiltering" case pricingPlan = "PricingPlan" case pricingPlanDataSource = "PricingPlanDataSource" @@ -13556,6 +13722,8 @@ extension UpdateTrackerInputBody: Swift.Decodable { description = descriptionDecoded let positionFilteringDecoded = try containerValues.decodeIfPresent(LocationClientTypes.PositionFiltering.self, forKey: .positionFiltering) positionFiltering = positionFilteringDecoded + let eventBridgeEnabledDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .eventBridgeEnabled) + eventBridgeEnabled = eventBridgeEnabledDecoded } } diff --git a/Sources/Services/AWSMediaLive/MediaLiveClient.swift b/Sources/Services/AWSMediaLive/MediaLiveClient.swift index c552b24ffbe..3b021a8be68 100644 --- a/Sources/Services/AWSMediaLive/MediaLiveClient.swift +++ b/Sources/Services/AWSMediaLive/MediaLiveClient.swift @@ -870,6 +870,39 @@ extension MediaLiveClient: MediaLiveClientProtocol { return result } + /// Get account configuration + public func describeAccountConfiguration(input: DescribeAccountConfigurationInput) async throws -> DescribeAccountConfigurationOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .get) + .withServiceName(value: serviceName) + .withOperation(value: "describeAccountConfiguration") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "medialive") + .withSigningRegion(value: config.signingRegion) + .build() + var operation = ClientRuntime.OperationStack(id: "describeAccountConfiguration") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.serviceSpecific.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryMiddleware(options: config.retryStrategyOptions)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false, signingAlgorithm: .sigv4) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + let result = try await operation.handleMiddleware(context: context, input: input, next: client.getHandler()) + return result + } + /// Gets details about a channel public func describeChannel(input: DescribeChannelInput) async throws -> DescribeChannelOutputResponse { @@ -1202,6 +1235,40 @@ extension MediaLiveClient: MediaLiveClientProtocol { return result } + /// Describe the latest thumbnails data. + public func describeThumbnails(input: DescribeThumbnailsInput) async throws -> DescribeThumbnailsOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .get) + .withServiceName(value: serviceName) + .withOperation(value: "describeThumbnails") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "medialive") + .withSigningRegion(value: config.signingRegion) + .build() + var operation = ClientRuntime.OperationStack(id: "describeThumbnails") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.serviceSpecific.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.QueryItemMiddleware()) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryMiddleware(options: config.retryStrategyOptions)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false, signingAlgorithm: .sigv4) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + let result = try await operation.handleMiddleware(context: context, input: input, next: client.getHandler()) + return result + } + /// Produces list of channels that have been created public func listChannels(input: ListChannelsInput) async throws -> ListChannelsOutputResponse { @@ -1855,6 +1922,42 @@ extension MediaLiveClient: MediaLiveClientProtocol { return result } + /// Update account configuration + public func updateAccountConfiguration(input: UpdateAccountConfigurationInput) async throws -> UpdateAccountConfigurationOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .put) + .withServiceName(value: serviceName) + .withOperation(value: "updateAccountConfiguration") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "medialive") + .withSigningRegion(value: config.signingRegion) + .build() + var operation = ClientRuntime.OperationStack(id: "updateAccountConfiguration") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.serviceSpecific.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .after, middleware: ContentTypeMiddleware(contentType: "application/json")) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.SerializableBodyMiddleware(xmlName: "UpdateAccountConfigurationRequest")) + operation.finalizeStep.intercept(position: .before, middleware: ClientRuntime.ContentLengthMiddleware()) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryMiddleware(options: config.retryStrategyOptions)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false, signingAlgorithm: .sigv4) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + let result = try await operation.handleMiddleware(context: context, input: input, next: client.getHandler()) + return result + } + /// Updates a channel. public func updateChannel(input: UpdateChannelInput) async throws -> UpdateChannelOutputResponse { diff --git a/Sources/Services/AWSMediaLive/MediaLiveClientProtocol.swift b/Sources/Services/AWSMediaLive/MediaLiveClientProtocol.swift index a8f983b2a42..f2ae1ba4944 100644 --- a/Sources/Services/AWSMediaLive/MediaLiveClientProtocol.swift +++ b/Sources/Services/AWSMediaLive/MediaLiveClientProtocol.swift @@ -48,6 +48,8 @@ public protocol MediaLiveClientProtocol { func deleteSchedule(input: DeleteScheduleInput) async throws -> DeleteScheduleOutputResponse /// Removes tags for a resource func deleteTags(input: DeleteTagsInput) async throws -> DeleteTagsOutputResponse + /// Get account configuration + func describeAccountConfiguration(input: DescribeAccountConfigurationInput) async throws -> DescribeAccountConfigurationOutputResponse /// Gets details about a channel func describeChannel(input: DescribeChannelInput) async throws -> DescribeChannelOutputResponse /// Produces details about an input @@ -68,6 +70,8 @@ public protocol MediaLiveClientProtocol { func describeReservation(input: DescribeReservationInput) async throws -> DescribeReservationOutputResponse /// Get a channel schedule func describeSchedule(input: DescribeScheduleInput) async throws -> DescribeScheduleOutputResponse + /// Describe the latest thumbnails data. + func describeThumbnails(input: DescribeThumbnailsInput) async throws -> DescribeThumbnailsOutputResponse /// Produces list of channels that have been created func listChannels(input: ListChannelsInput) async throws -> ListChannelsOutputResponse /// List input devices @@ -106,6 +110,8 @@ public protocol MediaLiveClientProtocol { func stopMultiplex(input: StopMultiplexInput) async throws -> StopMultiplexOutputResponse /// Start an input device transfer to another AWS account. After you make the request, the other account must accept or reject the transfer. func transferInputDevice(input: TransferInputDeviceInput) async throws -> TransferInputDeviceOutputResponse + /// Update account configuration + func updateAccountConfiguration(input: UpdateAccountConfigurationInput) async throws -> UpdateAccountConfigurationOutputResponse /// Updates a channel. func updateChannel(input: UpdateChannelInput) async throws -> UpdateChannelOutputResponse /// Changes the class of the channel. diff --git a/Sources/Services/AWSMediaLive/models/Models.swift b/Sources/Services/AWSMediaLive/models/Models.swift index 2f757dfd459..f4101a290cd 100644 --- a/Sources/Services/AWSMediaLive/models/Models.swift +++ b/Sources/Services/AWSMediaLive/models/Models.swift @@ -775,6 +775,41 @@ extension MediaLiveClientTypes { } } +extension MediaLiveClientTypes.AccountConfiguration: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case kmsKeyId = "kmsKeyId" + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let kmsKeyId = self.kmsKeyId { + try encodeContainer.encode(kmsKeyId, forKey: .kmsKeyId) + } + } + + public init(from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let kmsKeyIdDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .kmsKeyId) + kmsKeyId = kmsKeyIdDecoded + } +} + +extension MediaLiveClientTypes { + /// Placeholder documentation for AccountConfiguration + public struct AccountConfiguration: Swift.Equatable { + /// Specifies the KMS key to use for all features that use key encryption. Specify the ARN of a KMS key that you have created. Or leave blank to use the key that MediaLive creates and manages for you. + public var kmsKeyId: Swift.String? + + public init( + kmsKeyId: Swift.String? = nil + ) + { + self.kmsKeyId = kmsKeyId + } + } + +} + extension MediaLiveClientTypes { /// Afd Signaling public enum AfdSignaling: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { @@ -8174,6 +8209,84 @@ public struct DeleteTagsOutputResponse: Swift.Equatable { public init() { } } +extension DescribeAccountConfigurationInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + return "/prod/accountConfiguration" + } +} + +/// Placeholder documentation for DescribeAccountConfigurationRequest +public struct DescribeAccountConfigurationInput: Swift.Equatable { + + public init() { } +} + +struct DescribeAccountConfigurationInputBody: Swift.Equatable { +} + +extension DescribeAccountConfigurationInputBody: Swift.Decodable { + + public init(from decoder: Swift.Decoder) throws { + } +} + +public enum DescribeAccountConfigurationOutputError: ClientRuntime.HttpResponseErrorBinding { + public static func makeError(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) async throws -> Swift.Error { + let restJSONError = try await AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.requestId + switch restJSONError.errorType { + case "BadGatewayException": return try await BadGatewayException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "BadRequestException": return try await BadRequestException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "ForbiddenException": return try await ForbiddenException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "GatewayTimeoutException": return try await GatewayTimeoutException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "InternalServerErrorException": return try await InternalServerErrorException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "TooManyRequestsException": return try await TooManyRequestsException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + default: return try await AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(httpResponse: httpResponse, message: restJSONError.errorMessage, requestID: requestID, typeName: restJSONError.errorType) + } + } +} + +extension DescribeAccountConfigurationOutputResponse: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) async throws { + if let data = try await httpResponse.body.readData(), + let responseDecoder = decoder { + let output: DescribeAccountConfigurationOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.accountConfiguration = output.accountConfiguration + } else { + self.accountConfiguration = nil + } + } +} + +/// Placeholder documentation for DescribeAccountConfigurationResponse +public struct DescribeAccountConfigurationOutputResponse: Swift.Equatable { + /// Placeholder documentation for AccountConfiguration + public var accountConfiguration: MediaLiveClientTypes.AccountConfiguration? + + public init( + accountConfiguration: MediaLiveClientTypes.AccountConfiguration? = nil + ) + { + self.accountConfiguration = accountConfiguration + } +} + +struct DescribeAccountConfigurationOutputResponseBody: Swift.Equatable { + let accountConfiguration: MediaLiveClientTypes.AccountConfiguration? +} + +extension DescribeAccountConfigurationOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case accountConfiguration = "accountConfiguration" + } + + public init(from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let accountConfigurationDecoded = try containerValues.decodeIfPresent(MediaLiveClientTypes.AccountConfiguration.self, forKey: .accountConfiguration) + accountConfiguration = accountConfigurationDecoded + } +} + extension DescribeChannelInput: ClientRuntime.URLPathProvider { public var urlPath: Swift.String? { guard let channelId = channelId else { @@ -10276,6 +10389,137 @@ extension DescribeScheduleOutputResponseBody: Swift.Decodable { } } +extension DescribeThumbnailsInput: ClientRuntime.QueryItemProvider { + public var queryItems: [ClientRuntime.URLQueryItem] { + get throws { + var items = [ClientRuntime.URLQueryItem]() + guard let pipelineId = pipelineId else { + let message = "Creating a URL Query Item failed. pipelineId is required and must not be nil." + throw ClientRuntime.ClientError.unknownError(message) + } + let pipelineIdQueryItem = ClientRuntime.URLQueryItem(name: "pipelineId".urlPercentEncoding(), value: Swift.String(pipelineId).urlPercentEncoding()) + items.append(pipelineIdQueryItem) + guard let thumbnailType = thumbnailType else { + let message = "Creating a URL Query Item failed. thumbnailType is required and must not be nil." + throw ClientRuntime.ClientError.unknownError(message) + } + let thumbnailTypeQueryItem = ClientRuntime.URLQueryItem(name: "thumbnailType".urlPercentEncoding(), value: Swift.String(thumbnailType).urlPercentEncoding()) + items.append(thumbnailTypeQueryItem) + return items + } + } +} + +extension DescribeThumbnailsInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + guard let channelId = channelId else { + return nil + } + return "/prod/channels/\(channelId.urlPercentEncoding())/thumbnails" + } +} + +/// Placeholder documentation for DescribeThumbnailsRequest +public struct DescribeThumbnailsInput: Swift.Equatable { + /// Unique ID of the channel + /// This member is required. + public var channelId: Swift.String? + /// Pipeline ID ("0" or "1") + /// This member is required. + public var pipelineId: Swift.String? + /// thumbnail type + /// This member is required. + public var thumbnailType: Swift.String? + + public init( + channelId: Swift.String? = nil, + pipelineId: Swift.String? = nil, + thumbnailType: Swift.String? = nil + ) + { + self.channelId = channelId + self.pipelineId = pipelineId + self.thumbnailType = thumbnailType + } +} + +struct DescribeThumbnailsInputBody: Swift.Equatable { +} + +extension DescribeThumbnailsInputBody: Swift.Decodable { + + public init(from decoder: Swift.Decoder) throws { + } +} + +public enum DescribeThumbnailsOutputError: ClientRuntime.HttpResponseErrorBinding { + public static func makeError(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) async throws -> Swift.Error { + let restJSONError = try await AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.requestId + switch restJSONError.errorType { + case "BadGatewayException": return try await BadGatewayException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "BadRequestException": return try await BadRequestException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "ConflictException": return try await ConflictException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "ForbiddenException": return try await ForbiddenException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "GatewayTimeoutException": return try await GatewayTimeoutException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "InternalServerErrorException": return try await InternalServerErrorException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "NotFoundException": return try await NotFoundException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "TooManyRequestsException": return try await TooManyRequestsException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + default: return try await AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(httpResponse: httpResponse, message: restJSONError.errorMessage, requestID: requestID, typeName: restJSONError.errorType) + } + } +} + +extension DescribeThumbnailsOutputResponse: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) async throws { + if let data = try await httpResponse.body.readData(), + let responseDecoder = decoder { + let output: DescribeThumbnailsOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.thumbnailDetails = output.thumbnailDetails + } else { + self.thumbnailDetails = nil + } + } +} + +/// Placeholder documentation for DescribeThumbnailsResponse +public struct DescribeThumbnailsOutputResponse: Swift.Equatable { + /// Placeholder documentation for __listOfThumbnailDetail + public var thumbnailDetails: [MediaLiveClientTypes.ThumbnailDetail]? + + public init( + thumbnailDetails: [MediaLiveClientTypes.ThumbnailDetail]? = nil + ) + { + self.thumbnailDetails = thumbnailDetails + } +} + +struct DescribeThumbnailsOutputResponseBody: Swift.Equatable { + let thumbnailDetails: [MediaLiveClientTypes.ThumbnailDetail]? +} + +extension DescribeThumbnailsOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case thumbnailDetails = "thumbnailDetails" + } + + public init(from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let thumbnailDetailsContainer = try containerValues.decodeIfPresent([MediaLiveClientTypes.ThumbnailDetail?].self, forKey: .thumbnailDetails) + var thumbnailDetailsDecoded0:[MediaLiveClientTypes.ThumbnailDetail]? = nil + if let thumbnailDetailsContainer = thumbnailDetailsContainer { + thumbnailDetailsDecoded0 = [MediaLiveClientTypes.ThumbnailDetail]() + for structure0 in thumbnailDetailsContainer { + if let structure0 = structure0 { + thumbnailDetailsDecoded0?.append(structure0) + } + } + } + thumbnailDetails = thumbnailDetailsDecoded0 + } +} + extension MediaLiveClientTypes { /// The status of the action to synchronize the device configuration. If you change the configuration of the input device (for example, the maximum bitrate), MediaLive sends the new data to the device. The device might not update itself immediately. SYNCED means the device has updated its configuration. SYNCING means that it has not updated its configuration. public enum DeviceSettingsSyncState: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { @@ -12413,6 +12657,7 @@ extension MediaLiveClientTypes.EncoderSettings: Swift.Codable { case motionGraphicsConfiguration = "motionGraphicsConfiguration" case nielsenConfiguration = "nielsenConfiguration" case outputGroups = "outputGroups" + case thumbnailConfiguration = "thumbnailConfiguration" case timecodeConfig = "timecodeConfig" case videoDescriptions = "videoDescriptions" } @@ -12458,6 +12703,9 @@ extension MediaLiveClientTypes.EncoderSettings: Swift.Codable { try outputGroupsContainer.encode(outputgroup0) } } + if let thumbnailConfiguration = self.thumbnailConfiguration { + try encodeContainer.encode(thumbnailConfiguration, forKey: .thumbnailConfiguration) + } if let timecodeConfig = self.timecodeConfig { try encodeContainer.encode(timecodeConfig, forKey: .timecodeConfig) } @@ -12531,6 +12779,8 @@ extension MediaLiveClientTypes.EncoderSettings: Swift.Codable { } } videoDescriptions = videoDescriptionsDecoded0 + let thumbnailConfigurationDecoded = try containerValues.decodeIfPresent(MediaLiveClientTypes.ThumbnailConfiguration.self, forKey: .thumbnailConfiguration) + thumbnailConfiguration = thumbnailConfigurationDecoded } } @@ -12559,6 +12809,8 @@ extension MediaLiveClientTypes { /// Placeholder documentation for __listOfOutputGroup /// This member is required. public var outputGroups: [MediaLiveClientTypes.OutputGroup]? + /// Thumbnail configuration settings. + public var thumbnailConfiguration: MediaLiveClientTypes.ThumbnailConfiguration? /// Contains settings used to acquire and adjust timecode information from inputs. /// This member is required. public var timecodeConfig: MediaLiveClientTypes.TimecodeConfig? @@ -12577,6 +12829,7 @@ extension MediaLiveClientTypes { motionGraphicsConfiguration: MediaLiveClientTypes.MotionGraphicsConfiguration? = nil, nielsenConfiguration: MediaLiveClientTypes.NielsenConfiguration? = nil, outputGroups: [MediaLiveClientTypes.OutputGroup]? = nil, + thumbnailConfiguration: MediaLiveClientTypes.ThumbnailConfiguration? = nil, timecodeConfig: MediaLiveClientTypes.TimecodeConfig? = nil, videoDescriptions: [MediaLiveClientTypes.VideoDescription]? = nil ) @@ -12591,6 +12844,7 @@ extension MediaLiveClientTypes { self.motionGraphicsConfiguration = motionGraphicsConfiguration self.nielsenConfiguration = nielsenConfiguration self.outputGroups = outputGroups + self.thumbnailConfiguration = thumbnailConfiguration self.timecodeConfig = timecodeConfig self.videoDescriptions = videoDescriptions } @@ -33513,6 +33767,230 @@ extension MediaLiveClientTypes { } } +extension MediaLiveClientTypes.Thumbnail: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case body = "body" + case contentType = "contentType" + case thumbnailType = "thumbnailType" + case timeStamp = "timeStamp" + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let body = self.body { + try encodeContainer.encode(body, forKey: .body) + } + if let contentType = self.contentType { + try encodeContainer.encode(contentType, forKey: .contentType) + } + if let thumbnailType = self.thumbnailType { + try encodeContainer.encode(thumbnailType.rawValue, forKey: .thumbnailType) + } + if let timeStamp = self.timeStamp { + try encodeContainer.encodeTimestamp(timeStamp, format: .dateTime, forKey: .timeStamp) + } + } + + public init(from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let bodyDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .body) + body = bodyDecoded + let contentTypeDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .contentType) + contentType = contentTypeDecoded + let thumbnailTypeDecoded = try containerValues.decodeIfPresent(MediaLiveClientTypes.ThumbnailType.self, forKey: .thumbnailType) + thumbnailType = thumbnailTypeDecoded + let timeStampDecoded = try containerValues.decodeTimestampIfPresent(.dateTime, forKey: .timeStamp) + timeStamp = timeStampDecoded + } +} + +extension MediaLiveClientTypes { + /// Details of a single thumbnail + public struct Thumbnail: Swift.Equatable { + /// The binary data for the latest thumbnail. + public var body: Swift.String? + /// The content type for the latest thumbnail. + public var contentType: Swift.String? + /// Thumbnail Type + public var thumbnailType: MediaLiveClientTypes.ThumbnailType? + /// Time stamp for the latest thumbnail. + public var timeStamp: ClientRuntime.Date? + + public init( + body: Swift.String? = nil, + contentType: Swift.String? = nil, + thumbnailType: MediaLiveClientTypes.ThumbnailType? = nil, + timeStamp: ClientRuntime.Date? = nil + ) + { + self.body = body + self.contentType = contentType + self.thumbnailType = thumbnailType + self.timeStamp = timeStamp + } + } + +} + +extension MediaLiveClientTypes.ThumbnailConfiguration: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case state = "state" + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let state = self.state { + try encodeContainer.encode(state.rawValue, forKey: .state) + } + } + + public init(from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let stateDecoded = try containerValues.decodeIfPresent(MediaLiveClientTypes.ThumbnailState.self, forKey: .state) + state = stateDecoded + } +} + +extension MediaLiveClientTypes { + /// Thumbnail Configuration + public struct ThumbnailConfiguration: Swift.Equatable { + /// Whether Thumbnail is enabled. + /// This member is required. + public var state: MediaLiveClientTypes.ThumbnailState? + + public init( + state: MediaLiveClientTypes.ThumbnailState? = nil + ) + { + self.state = state + } + } + +} + +extension MediaLiveClientTypes.ThumbnailDetail: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case pipelineId = "pipelineId" + case thumbnails = "thumbnails" + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let pipelineId = self.pipelineId { + try encodeContainer.encode(pipelineId, forKey: .pipelineId) + } + if let thumbnails = thumbnails { + var thumbnailsContainer = encodeContainer.nestedUnkeyedContainer(forKey: .thumbnails) + for thumbnail0 in thumbnails { + try thumbnailsContainer.encode(thumbnail0) + } + } + } + + public init(from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let pipelineIdDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .pipelineId) + pipelineId = pipelineIdDecoded + let thumbnailsContainer = try containerValues.decodeIfPresent([MediaLiveClientTypes.Thumbnail?].self, forKey: .thumbnails) + var thumbnailsDecoded0:[MediaLiveClientTypes.Thumbnail]? = nil + if let thumbnailsContainer = thumbnailsContainer { + thumbnailsDecoded0 = [MediaLiveClientTypes.Thumbnail]() + for structure0 in thumbnailsContainer { + if let structure0 = structure0 { + thumbnailsDecoded0?.append(structure0) + } + } + } + thumbnails = thumbnailsDecoded0 + } +} + +extension MediaLiveClientTypes { + /// Thumbnail details for one pipeline of a running channel. + public struct ThumbnailDetail: Swift.Equatable { + /// Pipeline ID + public var pipelineId: Swift.String? + /// thumbnails of a single pipeline + public var thumbnails: [MediaLiveClientTypes.Thumbnail]? + + public init( + pipelineId: Swift.String? = nil, + thumbnails: [MediaLiveClientTypes.Thumbnail]? = nil + ) + { + self.pipelineId = pipelineId + self.thumbnails = thumbnails + } + } + +} + +extension MediaLiveClientTypes { + /// Thumbnail State + public enum ThumbnailState: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { + case auto + case disabled + case sdkUnknown(Swift.String) + + public static var allCases: [ThumbnailState] { + return [ + .auto, + .disabled, + .sdkUnknown("") + ] + } + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + public var rawValue: Swift.String { + switch self { + case .auto: return "AUTO" + case .disabled: return "DISABLED" + case let .sdkUnknown(s): return s + } + } + public init(from decoder: Swift.Decoder) throws { + let container = try decoder.singleValueContainer() + let rawValue = try container.decode(RawValue.self) + self = ThumbnailState(rawValue: rawValue) ?? ThumbnailState.sdkUnknown(rawValue) + } + } +} + +extension MediaLiveClientTypes { + /// Thumbnail type. + public enum ThumbnailType: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { + case currentActive + case unspecified + case sdkUnknown(Swift.String) + + public static var allCases: [ThumbnailType] { + return [ + .currentActive, + .unspecified, + .sdkUnknown("") + ] + } + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + public var rawValue: Swift.String { + switch self { + case .currentActive: return "CURRENT_ACTIVE" + case .unspecified: return "UNSPECIFIED" + case let .sdkUnknown(s): return s + } + } + public init(from decoder: Swift.Decoder) throws { + let container = try decoder.singleValueContainer() + let rawValue = try container.decode(RawValue.self) + self = ThumbnailType(rawValue: rawValue) ?? ThumbnailType.sdkUnknown(rawValue) + } + } +} + extension MediaLiveClientTypes { /// Timecode Burnin Font Size public enum TimecodeBurninFontSize: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { @@ -34312,6 +34790,112 @@ extension UnprocessableEntityExceptionBody: Swift.Decodable { } } +extension UpdateAccountConfigurationInput: Swift.Encodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case accountConfiguration = "accountConfiguration" + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let accountConfiguration = self.accountConfiguration { + try encodeContainer.encode(accountConfiguration, forKey: .accountConfiguration) + } + } +} + +extension UpdateAccountConfigurationInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + return "/prod/accountConfiguration" + } +} + +/// List of account configuration parameters to update. +public struct UpdateAccountConfigurationInput: Swift.Equatable { + /// Placeholder documentation for AccountConfiguration + public var accountConfiguration: MediaLiveClientTypes.AccountConfiguration? + + public init( + accountConfiguration: MediaLiveClientTypes.AccountConfiguration? = nil + ) + { + self.accountConfiguration = accountConfiguration + } +} + +struct UpdateAccountConfigurationInputBody: Swift.Equatable { + let accountConfiguration: MediaLiveClientTypes.AccountConfiguration? +} + +extension UpdateAccountConfigurationInputBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case accountConfiguration = "accountConfiguration" + } + + public init(from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let accountConfigurationDecoded = try containerValues.decodeIfPresent(MediaLiveClientTypes.AccountConfiguration.self, forKey: .accountConfiguration) + accountConfiguration = accountConfigurationDecoded + } +} + +public enum UpdateAccountConfigurationOutputError: ClientRuntime.HttpResponseErrorBinding { + public static func makeError(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) async throws -> Swift.Error { + let restJSONError = try await AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.requestId + switch restJSONError.errorType { + case "BadGatewayException": return try await BadGatewayException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "BadRequestException": return try await BadRequestException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "ForbiddenException": return try await ForbiddenException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "GatewayTimeoutException": return try await GatewayTimeoutException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "InternalServerErrorException": return try await InternalServerErrorException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "TooManyRequestsException": return try await TooManyRequestsException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "UnprocessableEntityException": return try await UnprocessableEntityException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + default: return try await AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(httpResponse: httpResponse, message: restJSONError.errorMessage, requestID: requestID, typeName: restJSONError.errorType) + } + } +} + +extension UpdateAccountConfigurationOutputResponse: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) async throws { + if let data = try await httpResponse.body.readData(), + let responseDecoder = decoder { + let output: UpdateAccountConfigurationOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.accountConfiguration = output.accountConfiguration + } else { + self.accountConfiguration = nil + } + } +} + +/// Placeholder documentation for UpdateAccountConfigurationResponse +public struct UpdateAccountConfigurationOutputResponse: Swift.Equatable { + /// Placeholder documentation for AccountConfiguration + public var accountConfiguration: MediaLiveClientTypes.AccountConfiguration? + + public init( + accountConfiguration: MediaLiveClientTypes.AccountConfiguration? = nil + ) + { + self.accountConfiguration = accountConfiguration + } +} + +struct UpdateAccountConfigurationOutputResponseBody: Swift.Equatable { + let accountConfiguration: MediaLiveClientTypes.AccountConfiguration? +} + +extension UpdateAccountConfigurationOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case accountConfiguration = "accountConfiguration" + } + + public init(from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let accountConfigurationDecoded = try containerValues.decodeIfPresent(MediaLiveClientTypes.AccountConfiguration.self, forKey: .accountConfiguration) + accountConfiguration = accountConfigurationDecoded + } +} + extension UpdateChannelClassInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { case channelClass = "channelClass" diff --git a/Sources/Services/AWSMediaTailor/models/Models.swift b/Sources/Services/AWSMediaTailor/models/Models.swift index ae01c0ffebd..99c23583f57 100644 --- a/Sources/Services/AWSMediaTailor/models/Models.swift +++ b/Sources/Services/AWSMediaTailor/models/Models.swift @@ -81,6 +81,7 @@ extension MediaTailorClientTypes { extension MediaTailorClientTypes.AdBreak: Swift.Codable { enum CodingKeys: Swift.String, Swift.CodingKey { + case adBreakMetadata = "AdBreakMetadata" case messageType = "MessageType" case offsetMillis = "OffsetMillis" case slate = "Slate" @@ -90,6 +91,12 @@ extension MediaTailorClientTypes.AdBreak: Swift.Codable { public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let adBreakMetadata = adBreakMetadata { + var adBreakMetadataContainer = encodeContainer.nestedUnkeyedContainer(forKey: .adBreakMetadata) + for keyvaluepair0 in adBreakMetadata { + try adBreakMetadataContainer.encode(keyvaluepair0) + } + } if let messageType = self.messageType { try encodeContainer.encode(messageType.rawValue, forKey: .messageType) } @@ -119,12 +126,25 @@ extension MediaTailorClientTypes.AdBreak: Swift.Codable { spliceInsertMessage = spliceInsertMessageDecoded let timeSignalMessageDecoded = try containerValues.decodeIfPresent(MediaTailorClientTypes.TimeSignalMessage.self, forKey: .timeSignalMessage) timeSignalMessage = timeSignalMessageDecoded + let adBreakMetadataContainer = try containerValues.decodeIfPresent([MediaTailorClientTypes.KeyValuePair?].self, forKey: .adBreakMetadata) + var adBreakMetadataDecoded0:[MediaTailorClientTypes.KeyValuePair]? = nil + if let adBreakMetadataContainer = adBreakMetadataContainer { + adBreakMetadataDecoded0 = [MediaTailorClientTypes.KeyValuePair]() + for structure0 in adBreakMetadataContainer { + if let structure0 = structure0 { + adBreakMetadataDecoded0?.append(structure0) + } + } + } + adBreakMetadata = adBreakMetadataDecoded0 } } extension MediaTailorClientTypes { /// Ad break configuration parameters. public struct AdBreak: Swift.Equatable { + /// Defines a list of key/value pairs that MediaTailor generates within the EXT-X-ASSETtag for SCTE35_ENHANCED output. + public var adBreakMetadata: [MediaTailorClientTypes.KeyValuePair]? /// The SCTE-35 ad insertion type. Accepted value: SPLICE_INSERT, TIME_SIGNAL. public var messageType: MediaTailorClientTypes.MessageType? /// How long (in milliseconds) after the beginning of the program that an ad starts. This value must fall within 100ms of a segment boundary, otherwise the ad break will be skipped. @@ -137,6 +157,7 @@ extension MediaTailorClientTypes { public var timeSignalMessage: MediaTailorClientTypes.TimeSignalMessage? public init( + adBreakMetadata: [MediaTailorClientTypes.KeyValuePair]? = nil, messageType: MediaTailorClientTypes.MessageType? = nil, offsetMillis: Swift.Int? = nil, slate: MediaTailorClientTypes.SlateSource? = nil, @@ -144,6 +165,7 @@ extension MediaTailorClientTypes { timeSignalMessage: MediaTailorClientTypes.TimeSignalMessage? = nil ) { + self.adBreakMetadata = adBreakMetadata self.messageType = messageType self.offsetMillis = offsetMillis self.slate = slate @@ -189,6 +211,38 @@ extension MediaTailorClientTypes { } +extension MediaTailorClientTypes { + public enum AdMarkupType: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { + case daterange + case scte35Enhanced + case sdkUnknown(Swift.String) + + public static var allCases: [AdMarkupType] { + return [ + .daterange, + .scte35Enhanced, + .sdkUnknown("") + ] + } + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + public var rawValue: Swift.String { + switch self { + case .daterange: return "DATERANGE" + case .scte35Enhanced: return "SCTE35_ENHANCED" + case let .sdkUnknown(s): return s + } + } + public init(from decoder: Swift.Decoder) throws { + let container = try decoder.singleValueContainer() + let rawValue = try container.decode(RawValue.self) + self = AdMarkupType(rawValue: rawValue) ?? AdMarkupType.sdkUnknown(rawValue) + } + } +} + extension MediaTailorClientTypes.Alert: Swift.Codable { enum CodingKeys: Swift.String, Swift.CodingKey { case alertCode = "AlertCode" @@ -4778,11 +4832,18 @@ extension MediaTailorClientTypes { extension MediaTailorClientTypes.HlsPlaylistSettings: Swift.Codable { enum CodingKeys: Swift.String, Swift.CodingKey { + case adMarkupType = "AdMarkupType" case manifestWindowSeconds = "ManifestWindowSeconds" } public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let adMarkupType = adMarkupType { + var adMarkupTypeContainer = encodeContainer.nestedUnkeyedContainer(forKey: .adMarkupType) + for admarkuptype0 in adMarkupType { + try adMarkupTypeContainer.encode(admarkuptype0.rawValue) + } + } if let manifestWindowSeconds = self.manifestWindowSeconds { try encodeContainer.encode(manifestWindowSeconds, forKey: .manifestWindowSeconds) } @@ -4792,19 +4853,34 @@ extension MediaTailorClientTypes.HlsPlaylistSettings: Swift.Codable { let containerValues = try decoder.container(keyedBy: CodingKeys.self) let manifestWindowSecondsDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .manifestWindowSeconds) manifestWindowSeconds = manifestWindowSecondsDecoded + let adMarkupTypeContainer = try containerValues.decodeIfPresent([MediaTailorClientTypes.AdMarkupType?].self, forKey: .adMarkupType) + var adMarkupTypeDecoded0:[MediaTailorClientTypes.AdMarkupType]? = nil + if let adMarkupTypeContainer = adMarkupTypeContainer { + adMarkupTypeDecoded0 = [MediaTailorClientTypes.AdMarkupType]() + for enum0 in adMarkupTypeContainer { + if let enum0 = enum0 { + adMarkupTypeDecoded0?.append(enum0) + } + } + } + adMarkupType = adMarkupTypeDecoded0 } } extension MediaTailorClientTypes { /// HLS playlist configuration parameters. public struct HlsPlaylistSettings: Swift.Equatable { + /// Determines the type of SCTE 35 tags to use in ad markup. Specify DATERANGE to use DATERANGE tags (for live or VOD content). Specify SCTE35_ENHANCED to use EXT-X-CUE-OUT and EXT-X-CUE-IN tags (for VOD content only). + public var adMarkupType: [MediaTailorClientTypes.AdMarkupType]? /// The total duration (in seconds) of each manifest. Minimum value: 30 seconds. Maximum value: 3600 seconds. public var manifestWindowSeconds: Swift.Int? public init( + adMarkupType: [MediaTailorClientTypes.AdMarkupType]? = nil, manifestWindowSeconds: Swift.Int? = nil ) { + self.adMarkupType = adMarkupType self.manifestWindowSeconds = manifestWindowSeconds } } @@ -4905,6 +4981,53 @@ extension MediaTailorClientTypes { } +extension MediaTailorClientTypes.KeyValuePair: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case key = "Key" + case value = "Value" + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let key = self.key { + try encodeContainer.encode(key, forKey: .key) + } + if let value = self.value { + try encodeContainer.encode(value, forKey: .value) + } + } + + public init(from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let keyDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .key) + key = keyDecoded + let valueDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .value) + value = valueDecoded + } +} + +extension MediaTailorClientTypes { + /// For SCTE35_ENHANCED output, defines a key and corresponding value. MediaTailor generates these pairs within the EXT-X-ASSETtag. + public struct KeyValuePair: Swift.Equatable { + /// For SCTE35_ENHANCED output, defines a key. MediaTailor takes this key, and its associated value, and generates the key/value pair within the EXT-X-ASSETtag. If you specify a key, you must also specify a corresponding value. + /// This member is required. + public var key: Swift.String? + /// For SCTE35_ENHANCED output, defines a vaue. MediaTailor; takes this value, and its associated key, and generates the key/value pair within the EXT-X-ASSETtag. If you specify a value, you must also specify a corresponding key. + /// This member is required. + public var value: Swift.String? + + public init( + key: Swift.String? = nil, + value: Swift.String? = nil + ) + { + self.key = key + self.value = value + } + } + +} + extension ListAlertsInput: ClientRuntime.QueryItemProvider { public var queryItems: [ClientRuntime.URLQueryItem] { get throws { diff --git a/Sources/Services/AWSMgn/MgnClient.swift b/Sources/Services/AWSMgn/MgnClient.swift index 9785bebb42d..be512043f06 100644 --- a/Sources/Services/AWSMgn/MgnClient.swift +++ b/Sources/Services/AWSMgn/MgnClient.swift @@ -1286,6 +1286,42 @@ extension MgnClient: MgnClientProtocol { return result } + /// List Managed Accounts. + public func listManagedAccounts(input: ListManagedAccountsInput) async throws -> ListManagedAccountsOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "listManagedAccounts") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "mgn") + .withSigningRegion(value: config.signingRegion) + .build() + var operation = ClientRuntime.OperationStack(id: "listManagedAccounts") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.serviceSpecific.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .after, middleware: ContentTypeMiddleware(contentType: "application/json")) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.SerializableBodyMiddleware(xmlName: "ListManagedAccountsRequest")) + operation.finalizeStep.intercept(position: .before, middleware: ClientRuntime.ContentLengthMiddleware()) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryMiddleware(options: config.retryStrategyOptions)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false, signingAlgorithm: .sigv4) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + let result = try await operation.handleMiddleware(context: context, input: input, next: client.getHandler()) + return result + } + /// List source server post migration custom actions. public func listSourceServerActions(input: ListSourceServerActionsInput) async throws -> ListSourceServerActionsOutputResponse { @@ -1463,6 +1499,42 @@ extension MgnClient: MgnClientProtocol { return result } + /// Pause Replication. + public func pauseReplication(input: PauseReplicationInput) async throws -> PauseReplicationOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "pauseReplication") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "mgn") + .withSigningRegion(value: config.signingRegion) + .build() + var operation = ClientRuntime.OperationStack(id: "pauseReplication") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.serviceSpecific.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .after, middleware: ContentTypeMiddleware(contentType: "application/json")) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.SerializableBodyMiddleware(xmlName: "PauseReplicationRequest")) + operation.finalizeStep.intercept(position: .before, middleware: ClientRuntime.ContentLengthMiddleware()) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryMiddleware(options: config.retryStrategyOptions)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false, signingAlgorithm: .sigv4) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + let result = try await operation.handleMiddleware(context: context, input: input, next: client.getHandler()) + return result + } + /// Put source server post migration custom action. public func putSourceServerAction(input: PutSourceServerActionInput) async throws -> PutSourceServerActionOutputResponse { @@ -1607,6 +1679,42 @@ extension MgnClient: MgnClientProtocol { return result } + /// Resume Replication. + public func resumeReplication(input: ResumeReplicationInput) async throws -> ResumeReplicationOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "resumeReplication") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "mgn") + .withSigningRegion(value: config.signingRegion) + .build() + var operation = ClientRuntime.OperationStack(id: "resumeReplication") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.serviceSpecific.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .after, middleware: ContentTypeMiddleware(contentType: "application/json")) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.SerializableBodyMiddleware(xmlName: "ResumeReplicationRequest")) + operation.finalizeStep.intercept(position: .before, middleware: ClientRuntime.ContentLengthMiddleware()) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryMiddleware(options: config.retryStrategyOptions)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false, signingAlgorithm: .sigv4) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + let result = try await operation.handleMiddleware(context: context, input: input, next: client.getHandler()) + return result + } + /// Causes the data replication initiation sequence to begin immediately upon next Handshake for specified SourceServer IDs, regardless of when the previous initiation started. This command will not work if the SourceServer is not stalled or is in a DISCONNECTED or STOPPED state. public func retryDataReplication(input: RetryDataReplicationInput) async throws -> RetryDataReplicationOutputResponse { @@ -1831,6 +1939,42 @@ extension MgnClient: MgnClientProtocol { return result } + /// Stop Replication. + public func stopReplication(input: StopReplicationInput) async throws -> StopReplicationOutputResponse + { + let context = ClientRuntime.HttpContextBuilder() + .withEncoder(value: encoder) + .withDecoder(value: decoder) + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "stopReplication") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withCredentialsProvider(value: config.credentialsProvider) + .withRegion(value: config.region) + .withSigningName(value: "mgn") + .withSigningRegion(value: config.signingRegion) + .build() + var operation = ClientRuntime.OperationStack(id: "stopReplication") + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLPathMiddleware()) + operation.initializeStep.intercept(position: .after, middleware: ClientRuntime.URLHostMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + operation.buildStep.intercept(position: .before, middleware: EndpointResolverMiddleware(endpointResolver: config.serviceSpecific.endpointResolver, endpointParams: endpointParams)) + let apiMetadata = AWSClientRuntime.APIMetadata(serviceId: serviceName, version: "1.0") + operation.buildStep.intercept(position: .before, middleware: AWSClientRuntime.UserAgentMiddleware(metadata: AWSClientRuntime.AWSUserAgentMetadata.fromEnv(apiMetadata: apiMetadata, frameworkMetadata: config.frameworkMetadata))) + operation.serializeStep.intercept(position: .after, middleware: ContentTypeMiddleware(contentType: "application/json")) + operation.serializeStep.intercept(position: .after, middleware: ClientRuntime.SerializableBodyMiddleware(xmlName: "StopReplicationRequest")) + operation.finalizeStep.intercept(position: .before, middleware: ClientRuntime.ContentLengthMiddleware()) + operation.finalizeStep.intercept(position: .after, middleware: ClientRuntime.RetryMiddleware(options: config.retryStrategyOptions)) + let sigv4Config = AWSClientRuntime.SigV4Config(unsignedBody: false, signingAlgorithm: .sigv4) + operation.finalizeStep.intercept(position: .before, middleware: AWSClientRuntime.SigV4Middleware(config: sigv4Config)) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.DeserializeMiddleware()) + operation.deserializeStep.intercept(position: .after, middleware: ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + let result = try await operation.handleMiddleware(context: context, input: input, next: client.getHandler()) + return result + } + /// Adds or overwrites only the specified tags for the specified Application Migration Service resource or resources. When you specify an existing tag key, the value is overwritten with the new value. Each resource can have a maximum of 50 tags. Each tag consists of a key and optional value. public func tagResource(input: TagResourceInput) async throws -> TagResourceOutputResponse { diff --git a/Sources/Services/AWSMgn/MgnClientProtocol.swift b/Sources/Services/AWSMgn/MgnClientProtocol.swift index 7df9bdb8793..e4c79f1581d 100644 --- a/Sources/Services/AWSMgn/MgnClientProtocol.swift +++ b/Sources/Services/AWSMgn/MgnClientProtocol.swift @@ -72,6 +72,8 @@ public protocol MgnClientProtocol { func listImportErrors(input: ListImportErrorsInput) async throws -> ListImportErrorsOutputResponse /// List imports. func listImports(input: ListImportsInput) async throws -> ListImportsOutputResponse + /// List Managed Accounts. + func listManagedAccounts(input: ListManagedAccountsInput) async throws -> ListManagedAccountsOutputResponse /// List source server post migration custom actions. func listSourceServerActions(input: ListSourceServerActionsInput) async throws -> ListSourceServerActionsOutputResponse /// List all tags for your Application Migration Service resources. @@ -82,6 +84,8 @@ public protocol MgnClientProtocol { func listWaves(input: ListWavesInput) async throws -> ListWavesOutputResponse /// Archives specific Source Servers by setting the SourceServer.isArchived property to true for specified SourceServers by ID. This command only works for SourceServers with a lifecycle. state which equals DISCONNECTED or CUTOVER. func markAsArchived(input: MarkAsArchivedInput) async throws -> MarkAsArchivedOutputResponse + /// Pause Replication. + func pauseReplication(input: PauseReplicationInput) async throws -> PauseReplicationOutputResponse /// Put source server post migration custom action. func putSourceServerAction(input: PutSourceServerActionInput) async throws -> PutSourceServerActionOutputResponse /// Put template post migration custom action. @@ -90,6 +94,8 @@ public protocol MgnClientProtocol { func removeSourceServerAction(input: RemoveSourceServerActionInput) async throws -> RemoveSourceServerActionOutputResponse /// Remove template post migration custom action. func removeTemplateAction(input: RemoveTemplateActionInput) async throws -> RemoveTemplateActionOutputResponse + /// Resume Replication. + func resumeReplication(input: ResumeReplicationInput) async throws -> ResumeReplicationOutputResponse /// Causes the data replication initiation sequence to begin immediately upon next Handshake for specified SourceServer IDs, regardless of when the previous initiation started. This command will not work if the SourceServer is not stalled or is in a DISCONNECTED or STOPPED state. func retryDataReplication(input: RetryDataReplicationInput) async throws -> RetryDataReplicationOutputResponse /// Launches a Cutover Instance for specific Source Servers. This command starts a LAUNCH job whose initiatedBy property is StartCutover and changes the SourceServer.lifeCycle.state property to CUTTING_OVER. @@ -102,6 +108,8 @@ public protocol MgnClientProtocol { func startReplication(input: StartReplicationInput) async throws -> StartReplicationOutputResponse /// Launches a Test Instance for specific Source Servers. This command starts a LAUNCH job whose initiatedBy property is StartTest and changes the SourceServer.lifeCycle.state property to TESTING. func startTest(input: StartTestInput) async throws -> StartTestOutputResponse + /// Stop Replication. + func stopReplication(input: StopReplicationInput) async throws -> StopReplicationOutputResponse /// Adds or overwrites only the specified tags for the specified Application Migration Service resource or resources. When you specify an existing tag key, the value is overwritten with the new value. Each resource can have a maximum of 50 tags. Each tag consists of a key and optional value. func tagResource(input: TagResourceInput) async throws -> TagResourceOutputResponse /// Starts a job that terminates specific launched EC2 Test and Cutover instances. This command will not work for any Source Server with a lifecycle.state of TESTING, CUTTING_OVER, or CUTOVER. diff --git a/Sources/Services/AWSMgn/Paginators.swift b/Sources/Services/AWSMgn/Paginators.swift index 0f79619f2fc..01ae187adba 100644 --- a/Sources/Services/AWSMgn/Paginators.swift +++ b/Sources/Services/AWSMgn/Paginators.swift @@ -1,5 +1,34 @@ // Code generated by smithy-swift-codegen. DO NOT EDIT! +import ClientRuntime +extension MgnClient { + /// Paginate over `[ListManagedAccountsOutputResponse]` results. + /// + /// When this operation is called, an `AsyncSequence` is created. AsyncSequences are lazy so no service + /// calls are made until the sequence is iterated over. This also means there is no guarantee that the request is valid + /// until then. If there are errors in your request, you will see the failures only after you start iterating. + /// - Parameters: + /// - input: A `[ListManagedAccountsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListManagedAccountsOutputResponse` + public func listManagedAccountsPaginated(input: ListManagedAccountsInput) -> ClientRuntime.PaginatorSequence { + return ClientRuntime.PaginatorSequence(input: input, inputKey: \ListManagedAccountsInput.nextToken, outputKey: \ListManagedAccountsOutputResponse.nextToken, paginationFunction: self.listManagedAccounts(input:)) + } +} +extension ListManagedAccountsInput: ClientRuntime.PaginateToken { + public func usingPaginationToken(_ token: Swift.String) -> ListManagedAccountsInput { + return ListManagedAccountsInput( + maxResults: self.maxResults, + nextToken: token + )} +} +extension PaginatorSequence where Input == ListManagedAccountsInput, Output == ListManagedAccountsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listManagedAccountsPaginated` + /// to access the nested member `[MgnClientTypes.ManagedAccount]` + /// - Returns: `[MgnClientTypes.ManagedAccount]` + public func items() async throws -> [MgnClientTypes.ManagedAccount] { + return try await self.asyncCompactMap { item in item.items } + } +} diff --git a/Sources/Services/AWSMgn/models/Models.swift b/Sources/Services/AWSMgn/models/Models.swift index cc690020fba..3d892d8eba0 100644 --- a/Sources/Services/AWSMgn/models/Models.swift +++ b/Sources/Services/AWSMgn/models/Models.swift @@ -400,11 +400,15 @@ extension MgnClientTypes { extension ArchiveApplicationInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case applicationID } public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let accountID = self.accountID { + try encodeContainer.encode(accountID, forKey: .accountID) + } if let applicationID = self.applicationID { try encodeContainer.encode(applicationID, forKey: .applicationID) } @@ -418,24 +422,30 @@ extension ArchiveApplicationInput: ClientRuntime.URLPathProvider { } public struct ArchiveApplicationInput: Swift.Equatable { + /// Account ID. + public var accountID: Swift.String? /// Application ID. /// This member is required. public var applicationID: Swift.String? public init( + accountID: Swift.String? = nil, applicationID: Swift.String? = nil ) { + self.accountID = accountID self.applicationID = applicationID } } struct ArchiveApplicationInputBody: Swift.Equatable { let applicationID: Swift.String? + let accountID: Swift.String? } extension ArchiveApplicationInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case applicationID } @@ -443,6 +453,8 @@ extension ArchiveApplicationInputBody: Swift.Decodable { let containerValues = try decoder.container(keyedBy: CodingKeys.self) let applicationIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .applicationID) applicationID = applicationIDDecoded + let accountIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .accountID) + accountID = accountIDDecoded } } @@ -606,11 +618,15 @@ extension ArchiveApplicationOutputResponseBody: Swift.Decodable { extension ArchiveWaveInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case waveID } public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let accountID = self.accountID { + try encodeContainer.encode(accountID, forKey: .accountID) + } if let waveID = self.waveID { try encodeContainer.encode(waveID, forKey: .waveID) } @@ -624,24 +640,30 @@ extension ArchiveWaveInput: ClientRuntime.URLPathProvider { } public struct ArchiveWaveInput: Swift.Equatable { + /// Account ID. + public var accountID: Swift.String? /// Wave ID. /// This member is required. public var waveID: Swift.String? public init( + accountID: Swift.String? = nil, waveID: Swift.String? = nil ) { + self.accountID = accountID self.waveID = waveID } } struct ArchiveWaveInputBody: Swift.Equatable { let waveID: Swift.String? + let accountID: Swift.String? } extension ArchiveWaveInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case waveID } @@ -649,6 +671,8 @@ extension ArchiveWaveInputBody: Swift.Decodable { let containerValues = try decoder.container(keyedBy: CodingKeys.self) let waveIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .waveID) waveID = waveIDDecoded + let accountIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .accountID) + accountID = accountIDDecoded } } @@ -802,12 +826,16 @@ extension ArchiveWaveOutputResponseBody: Swift.Decodable { extension AssociateApplicationsInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case applicationIDs case waveID } public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let accountID = self.accountID { + try encodeContainer.encode(accountID, forKey: .accountID) + } if let applicationIDs = applicationIDs { var applicationIDsContainer = encodeContainer.nestedUnkeyedContainer(forKey: .applicationIDs) for applicationid0 in applicationIDs { @@ -827,6 +855,8 @@ extension AssociateApplicationsInput: ClientRuntime.URLPathProvider { } public struct AssociateApplicationsInput: Swift.Equatable { + /// Account ID. + public var accountID: Swift.String? /// Application IDs list. /// This member is required. public var applicationIDs: [Swift.String]? @@ -835,10 +865,12 @@ public struct AssociateApplicationsInput: Swift.Equatable { public var waveID: Swift.String? public init( + accountID: Swift.String? = nil, applicationIDs: [Swift.String]? = nil, waveID: Swift.String? = nil ) { + self.accountID = accountID self.applicationIDs = applicationIDs self.waveID = waveID } @@ -847,10 +879,12 @@ public struct AssociateApplicationsInput: Swift.Equatable { struct AssociateApplicationsInputBody: Swift.Equatable { let waveID: Swift.String? let applicationIDs: [Swift.String]? + let accountID: Swift.String? } extension AssociateApplicationsInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case applicationIDs case waveID } @@ -870,6 +904,8 @@ extension AssociateApplicationsInputBody: Swift.Decodable { } } applicationIDs = applicationIDsDecoded0 + let accountIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .accountID) + accountID = accountIDDecoded } } @@ -899,12 +935,16 @@ public struct AssociateApplicationsOutputResponse: Swift.Equatable { extension AssociateSourceServersInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case applicationID case sourceServerIDs } public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let accountID = self.accountID { + try encodeContainer.encode(accountID, forKey: .accountID) + } if let applicationID = self.applicationID { try encodeContainer.encode(applicationID, forKey: .applicationID) } @@ -924,6 +964,8 @@ extension AssociateSourceServersInput: ClientRuntime.URLPathProvider { } public struct AssociateSourceServersInput: Swift.Equatable { + /// Account ID. + public var accountID: Swift.String? /// Application ID. /// This member is required. public var applicationID: Swift.String? @@ -932,10 +974,12 @@ public struct AssociateSourceServersInput: Swift.Equatable { public var sourceServerIDs: [Swift.String]? public init( + accountID: Swift.String? = nil, applicationID: Swift.String? = nil, sourceServerIDs: [Swift.String]? = nil ) { + self.accountID = accountID self.applicationID = applicationID self.sourceServerIDs = sourceServerIDs } @@ -944,10 +988,12 @@ public struct AssociateSourceServersInput: Swift.Equatable { struct AssociateSourceServersInputBody: Swift.Equatable { let applicationID: Swift.String? let sourceServerIDs: [Swift.String]? + let accountID: Swift.String? } extension AssociateSourceServersInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case applicationID case sourceServerIDs } @@ -967,6 +1013,8 @@ extension AssociateSourceServersInputBody: Swift.Decodable { } } sourceServerIDs = sourceServerIDsDecoded0 + let accountIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .accountID) + accountID = accountIDDecoded } } @@ -1073,12 +1121,16 @@ extension MgnClientTypes { extension ChangeServerLifeCycleStateInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case lifeCycle case sourceServerID } public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let accountID = self.accountID { + try encodeContainer.encode(accountID, forKey: .accountID) + } if let lifeCycle = self.lifeCycle { try encodeContainer.encode(lifeCycle, forKey: .lifeCycle) } @@ -1095,6 +1147,8 @@ extension ChangeServerLifeCycleStateInput: ClientRuntime.URLPathProvider { } public struct ChangeServerLifeCycleStateInput: Swift.Equatable { + /// The request to change the source server migration account ID. + public var accountID: Swift.String? /// The request to change the source server migration lifecycle state. /// This member is required. public var lifeCycle: MgnClientTypes.ChangeServerLifeCycleStateSourceServerLifecycle? @@ -1103,10 +1157,12 @@ public struct ChangeServerLifeCycleStateInput: Swift.Equatable { public var sourceServerID: Swift.String? public init( + accountID: Swift.String? = nil, lifeCycle: MgnClientTypes.ChangeServerLifeCycleStateSourceServerLifecycle? = nil, sourceServerID: Swift.String? = nil ) { + self.accountID = accountID self.lifeCycle = lifeCycle self.sourceServerID = sourceServerID } @@ -1115,10 +1171,12 @@ public struct ChangeServerLifeCycleStateInput: Swift.Equatable { struct ChangeServerLifeCycleStateInputBody: Swift.Equatable { let sourceServerID: Swift.String? let lifeCycle: MgnClientTypes.ChangeServerLifeCycleStateSourceServerLifecycle? + let accountID: Swift.String? } extension ChangeServerLifeCycleStateInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case lifeCycle case sourceServerID } @@ -1129,6 +1187,8 @@ extension ChangeServerLifeCycleStateInputBody: Swift.Decodable { sourceServerID = sourceServerIDDecoded let lifeCycleDecoded = try containerValues.decodeIfPresent(MgnClientTypes.ChangeServerLifeCycleStateSourceServerLifecycle.self, forKey: .lifeCycle) lifeCycle = lifeCycleDecoded + let accountIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .accountID) + accountID = accountIDDecoded } } @@ -1496,11 +1556,12 @@ extension ConflictExceptionBody: Swift.Decodable { extension CreateApplicationInput: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "CreateApplicationInput(description: \(Swift.String(describing: description)), name: \(Swift.String(describing: name)), tags: \"CONTENT_REDACTED\")"} + "CreateApplicationInput(accountID: \(Swift.String(describing: accountID)), description: \(Swift.String(describing: description)), name: \(Swift.String(describing: name)), tags: \"CONTENT_REDACTED\")"} } extension CreateApplicationInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case description case name case tags @@ -1508,6 +1569,9 @@ extension CreateApplicationInput: Swift.Encodable { public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let accountID = self.accountID { + try encodeContainer.encode(accountID, forKey: .accountID) + } if let description = self.description { try encodeContainer.encode(description, forKey: .description) } @@ -1530,6 +1594,8 @@ extension CreateApplicationInput: ClientRuntime.URLPathProvider { } public struct CreateApplicationInput: Swift.Equatable { + /// Account ID. + public var accountID: Swift.String? /// Application description. public var description: Swift.String? /// Application name. @@ -1539,11 +1605,13 @@ public struct CreateApplicationInput: Swift.Equatable { public var tags: [Swift.String:Swift.String]? public init( + accountID: Swift.String? = nil, description: Swift.String? = nil, name: Swift.String? = nil, tags: [Swift.String:Swift.String]? = nil ) { + self.accountID = accountID self.description = description self.name = name self.tags = tags @@ -1554,10 +1622,12 @@ struct CreateApplicationInputBody: Swift.Equatable { let name: Swift.String? let description: Swift.String? let tags: [Swift.String:Swift.String]? + let accountID: Swift.String? } extension CreateApplicationInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case description case name case tags @@ -1580,6 +1650,8 @@ extension CreateApplicationInputBody: Swift.Decodable { } } tags = tagsDecoded0 + let accountIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .accountID) + accountID = accountIDDecoded } } @@ -2190,7 +2262,7 @@ extension CreateLaunchConfigurationTemplateOutputResponseBody: Swift.Decodable { extension CreateReplicationConfigurationTemplateInput: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "CreateReplicationConfigurationTemplateInput(associateDefaultSecurityGroup: \(Swift.String(describing: associateDefaultSecurityGroup)), bandwidthThrottling: \(Swift.String(describing: bandwidthThrottling)), createPublicIP: \(Swift.String(describing: createPublicIP)), dataPlaneRouting: \(Swift.String(describing: dataPlaneRouting)), defaultLargeStagingDiskType: \(Swift.String(describing: defaultLargeStagingDiskType)), ebsEncryption: \(Swift.String(describing: ebsEncryption)), ebsEncryptionKeyArn: \(Swift.String(describing: ebsEncryptionKeyArn)), replicationServerInstanceType: \(Swift.String(describing: replicationServerInstanceType)), replicationServersSecurityGroupsIDs: \(Swift.String(describing: replicationServersSecurityGroupsIDs)), stagingAreaSubnetId: \(Swift.String(describing: stagingAreaSubnetId)), useDedicatedReplicationServer: \(Swift.String(describing: useDedicatedReplicationServer)), stagingAreaTags: \"CONTENT_REDACTED\", tags: \"CONTENT_REDACTED\")"} + "CreateReplicationConfigurationTemplateInput(associateDefaultSecurityGroup: \(Swift.String(describing: associateDefaultSecurityGroup)), bandwidthThrottling: \(Swift.String(describing: bandwidthThrottling)), createPublicIP: \(Swift.String(describing: createPublicIP)), dataPlaneRouting: \(Swift.String(describing: dataPlaneRouting)), defaultLargeStagingDiskType: \(Swift.String(describing: defaultLargeStagingDiskType)), ebsEncryption: \(Swift.String(describing: ebsEncryption)), ebsEncryptionKeyArn: \(Swift.String(describing: ebsEncryptionKeyArn)), replicationServerInstanceType: \(Swift.String(describing: replicationServerInstanceType)), replicationServersSecurityGroupsIDs: \(Swift.String(describing: replicationServersSecurityGroupsIDs)), stagingAreaSubnetId: \(Swift.String(describing: stagingAreaSubnetId)), useDedicatedReplicationServer: \(Swift.String(describing: useDedicatedReplicationServer)), useFipsEndpoint: \(Swift.String(describing: useFipsEndpoint)), stagingAreaTags: \"CONTENT_REDACTED\", tags: \"CONTENT_REDACTED\")"} } extension CreateReplicationConfigurationTemplateInput: Swift.Encodable { @@ -2208,6 +2280,7 @@ extension CreateReplicationConfigurationTemplateInput: Swift.Encodable { case stagingAreaTags case tags case useDedicatedReplicationServer + case useFipsEndpoint } public func encode(to encoder: Swift.Encoder) throws { @@ -2260,6 +2333,9 @@ extension CreateReplicationConfigurationTemplateInput: Swift.Encodable { if let useDedicatedReplicationServer = self.useDedicatedReplicationServer { try encodeContainer.encode(useDedicatedReplicationServer, forKey: .useDedicatedReplicationServer) } + if let useFipsEndpoint = self.useFipsEndpoint { + try encodeContainer.encode(useFipsEndpoint, forKey: .useFipsEndpoint) + } } } @@ -2307,6 +2383,8 @@ public struct CreateReplicationConfigurationTemplateInput: Swift.Equatable { /// Request to use Dedicated Replication Servers during Replication Settings template creation. /// This member is required. public var useDedicatedReplicationServer: Swift.Bool? + /// Request to use Fips Endpoint during Replication Settings template creation. + public var useFipsEndpoint: Swift.Bool? public init( associateDefaultSecurityGroup: Swift.Bool? = nil, @@ -2321,7 +2399,8 @@ public struct CreateReplicationConfigurationTemplateInput: Swift.Equatable { stagingAreaSubnetId: Swift.String? = nil, stagingAreaTags: [Swift.String:Swift.String]? = nil, tags: [Swift.String:Swift.String]? = nil, - useDedicatedReplicationServer: Swift.Bool? = nil + useDedicatedReplicationServer: Swift.Bool? = nil, + useFipsEndpoint: Swift.Bool? = nil ) { self.associateDefaultSecurityGroup = associateDefaultSecurityGroup @@ -2337,6 +2416,7 @@ public struct CreateReplicationConfigurationTemplateInput: Swift.Equatable { self.stagingAreaTags = stagingAreaTags self.tags = tags self.useDedicatedReplicationServer = useDedicatedReplicationServer + self.useFipsEndpoint = useFipsEndpoint } } @@ -2353,6 +2433,7 @@ struct CreateReplicationConfigurationTemplateInputBody: Swift.Equatable { let dataPlaneRouting: MgnClientTypes.ReplicationConfigurationDataPlaneRouting? let createPublicIP: Swift.Bool? let stagingAreaTags: [Swift.String:Swift.String]? + let useFipsEndpoint: Swift.Bool? let tags: [Swift.String:Swift.String]? } @@ -2371,6 +2452,7 @@ extension CreateReplicationConfigurationTemplateInputBody: Swift.Decodable { case stagingAreaTags case tags case useDedicatedReplicationServer + case useFipsEndpoint } public init(from decoder: Swift.Decoder) throws { @@ -2417,6 +2499,8 @@ extension CreateReplicationConfigurationTemplateInputBody: Swift.Decodable { } } stagingAreaTags = stagingAreaTagsDecoded0 + let useFipsEndpointDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .useFipsEndpoint) + useFipsEndpoint = useFipsEndpointDecoded let tagsContainer = try containerValues.decodeIfPresent([Swift.String: Swift.String?].self, forKey: .tags) var tagsDecoded0: [Swift.String:Swift.String]? = nil if let tagsContainer = tagsContainer { @@ -2446,7 +2530,7 @@ public enum CreateReplicationConfigurationTemplateOutputError: ClientRuntime.Htt extension CreateReplicationConfigurationTemplateOutputResponse: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "CreateReplicationConfigurationTemplateOutputResponse(arn: \(Swift.String(describing: arn)), associateDefaultSecurityGroup: \(Swift.String(describing: associateDefaultSecurityGroup)), bandwidthThrottling: \(Swift.String(describing: bandwidthThrottling)), createPublicIP: \(Swift.String(describing: createPublicIP)), dataPlaneRouting: \(Swift.String(describing: dataPlaneRouting)), defaultLargeStagingDiskType: \(Swift.String(describing: defaultLargeStagingDiskType)), ebsEncryption: \(Swift.String(describing: ebsEncryption)), ebsEncryptionKeyArn: \(Swift.String(describing: ebsEncryptionKeyArn)), replicationConfigurationTemplateID: \(Swift.String(describing: replicationConfigurationTemplateID)), replicationServerInstanceType: \(Swift.String(describing: replicationServerInstanceType)), replicationServersSecurityGroupsIDs: \(Swift.String(describing: replicationServersSecurityGroupsIDs)), stagingAreaSubnetId: \(Swift.String(describing: stagingAreaSubnetId)), useDedicatedReplicationServer: \(Swift.String(describing: useDedicatedReplicationServer)), stagingAreaTags: \"CONTENT_REDACTED\", tags: \"CONTENT_REDACTED\")"} + "CreateReplicationConfigurationTemplateOutputResponse(arn: \(Swift.String(describing: arn)), associateDefaultSecurityGroup: \(Swift.String(describing: associateDefaultSecurityGroup)), bandwidthThrottling: \(Swift.String(describing: bandwidthThrottling)), createPublicIP: \(Swift.String(describing: createPublicIP)), dataPlaneRouting: \(Swift.String(describing: dataPlaneRouting)), defaultLargeStagingDiskType: \(Swift.String(describing: defaultLargeStagingDiskType)), ebsEncryption: \(Swift.String(describing: ebsEncryption)), ebsEncryptionKeyArn: \(Swift.String(describing: ebsEncryptionKeyArn)), replicationConfigurationTemplateID: \(Swift.String(describing: replicationConfigurationTemplateID)), replicationServerInstanceType: \(Swift.String(describing: replicationServerInstanceType)), replicationServersSecurityGroupsIDs: \(Swift.String(describing: replicationServersSecurityGroupsIDs)), stagingAreaSubnetId: \(Swift.String(describing: stagingAreaSubnetId)), useDedicatedReplicationServer: \(Swift.String(describing: useDedicatedReplicationServer)), useFipsEndpoint: \(Swift.String(describing: useFipsEndpoint)), stagingAreaTags: \"CONTENT_REDACTED\", tags: \"CONTENT_REDACTED\")"} } extension CreateReplicationConfigurationTemplateOutputResponse: ClientRuntime.HttpResponseBinding { @@ -2469,6 +2553,7 @@ extension CreateReplicationConfigurationTemplateOutputResponse: ClientRuntime.Ht self.stagingAreaTags = output.stagingAreaTags self.tags = output.tags self.useDedicatedReplicationServer = output.useDedicatedReplicationServer + self.useFipsEndpoint = output.useFipsEndpoint } else { self.arn = nil self.associateDefaultSecurityGroup = nil @@ -2485,6 +2570,7 @@ extension CreateReplicationConfigurationTemplateOutputResponse: ClientRuntime.Ht self.stagingAreaTags = nil self.tags = nil self.useDedicatedReplicationServer = nil + self.useFipsEndpoint = nil } } } @@ -2521,6 +2607,8 @@ public struct CreateReplicationConfigurationTemplateOutputResponse: Swift.Equata public var tags: [Swift.String:Swift.String]? /// Replication Configuration template use Dedicated Replication Server. public var useDedicatedReplicationServer: Swift.Bool? + /// Replication Configuration template use Fips Endpoint. + public var useFipsEndpoint: Swift.Bool? public init( arn: Swift.String? = nil, @@ -2537,7 +2625,8 @@ public struct CreateReplicationConfigurationTemplateOutputResponse: Swift.Equata stagingAreaSubnetId: Swift.String? = nil, stagingAreaTags: [Swift.String:Swift.String]? = nil, tags: [Swift.String:Swift.String]? = nil, - useDedicatedReplicationServer: Swift.Bool? = nil + useDedicatedReplicationServer: Swift.Bool? = nil, + useFipsEndpoint: Swift.Bool? = nil ) { self.arn = arn @@ -2555,6 +2644,7 @@ public struct CreateReplicationConfigurationTemplateOutputResponse: Swift.Equata self.stagingAreaTags = stagingAreaTags self.tags = tags self.useDedicatedReplicationServer = useDedicatedReplicationServer + self.useFipsEndpoint = useFipsEndpoint } } @@ -2573,6 +2663,7 @@ struct CreateReplicationConfigurationTemplateOutputResponseBody: Swift.Equatable let dataPlaneRouting: MgnClientTypes.ReplicationConfigurationDataPlaneRouting? let createPublicIP: Swift.Bool? let stagingAreaTags: [Swift.String:Swift.String]? + let useFipsEndpoint: Swift.Bool? let tags: [Swift.String:Swift.String]? } @@ -2593,6 +2684,7 @@ extension CreateReplicationConfigurationTemplateOutputResponseBody: Swift.Decoda case stagingAreaTags case tags case useDedicatedReplicationServer + case useFipsEndpoint } public init(from decoder: Swift.Decoder) throws { @@ -2643,6 +2735,8 @@ extension CreateReplicationConfigurationTemplateOutputResponseBody: Swift.Decoda } } stagingAreaTags = stagingAreaTagsDecoded0 + let useFipsEndpointDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .useFipsEndpoint) + useFipsEndpoint = useFipsEndpointDecoded let tagsContainer = try containerValues.decodeIfPresent([Swift.String: Swift.String?].self, forKey: .tags) var tagsDecoded0: [Swift.String:Swift.String]? = nil if let tagsContainer = tagsContainer { @@ -2659,11 +2753,12 @@ extension CreateReplicationConfigurationTemplateOutputResponseBody: Swift.Decoda extension CreateWaveInput: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "CreateWaveInput(description: \(Swift.String(describing: description)), name: \(Swift.String(describing: name)), tags: \"CONTENT_REDACTED\")"} + "CreateWaveInput(accountID: \(Swift.String(describing: accountID)), description: \(Swift.String(describing: description)), name: \(Swift.String(describing: name)), tags: \"CONTENT_REDACTED\")"} } extension CreateWaveInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case description case name case tags @@ -2671,6 +2766,9 @@ extension CreateWaveInput: Swift.Encodable { public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let accountID = self.accountID { + try encodeContainer.encode(accountID, forKey: .accountID) + } if let description = self.description { try encodeContainer.encode(description, forKey: .description) } @@ -2693,6 +2791,8 @@ extension CreateWaveInput: ClientRuntime.URLPathProvider { } public struct CreateWaveInput: Swift.Equatable { + /// Account ID. + public var accountID: Swift.String? /// Wave description. public var description: Swift.String? /// Wave name. @@ -2702,11 +2802,13 @@ public struct CreateWaveInput: Swift.Equatable { public var tags: [Swift.String:Swift.String]? public init( + accountID: Swift.String? = nil, description: Swift.String? = nil, name: Swift.String? = nil, tags: [Swift.String:Swift.String]? = nil ) { + self.accountID = accountID self.description = description self.name = name self.tags = tags @@ -2717,10 +2819,12 @@ struct CreateWaveInputBody: Swift.Equatable { let name: Swift.String? let description: Swift.String? let tags: [Swift.String:Swift.String]? + let accountID: Swift.String? } extension CreateWaveInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case description case name case tags @@ -2743,6 +2847,8 @@ extension CreateWaveInputBody: Swift.Decodable { } } tags = tagsDecoded0 + let accountIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .accountID) + accountID = accountIDDecoded } } @@ -3470,11 +3576,15 @@ extension MgnClientTypes { extension DeleteApplicationInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case applicationID } public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let accountID = self.accountID { + try encodeContainer.encode(accountID, forKey: .accountID) + } if let applicationID = self.applicationID { try encodeContainer.encode(applicationID, forKey: .applicationID) } @@ -3488,24 +3598,30 @@ extension DeleteApplicationInput: ClientRuntime.URLPathProvider { } public struct DeleteApplicationInput: Swift.Equatable { + /// Account ID. + public var accountID: Swift.String? /// Application ID. /// This member is required. public var applicationID: Swift.String? public init( + accountID: Swift.String? = nil, applicationID: Swift.String? = nil ) { + self.accountID = accountID self.applicationID = applicationID } } struct DeleteApplicationInputBody: Swift.Equatable { let applicationID: Swift.String? + let accountID: Swift.String? } extension DeleteApplicationInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case applicationID } @@ -3513,6 +3629,8 @@ extension DeleteApplicationInputBody: Swift.Decodable { let containerValues = try decoder.container(keyedBy: CodingKeys.self) let applicationIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .applicationID) applicationID = applicationIDDecoded + let accountIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .accountID) + accountID = accountIDDecoded } } @@ -3541,11 +3659,15 @@ public struct DeleteApplicationOutputResponse: Swift.Equatable { extension DeleteJobInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case jobID } public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let accountID = self.accountID { + try encodeContainer.encode(accountID, forKey: .accountID) + } if let jobID = self.jobID { try encodeContainer.encode(jobID, forKey: .jobID) } @@ -3559,24 +3681,30 @@ extension DeleteJobInput: ClientRuntime.URLPathProvider { } public struct DeleteJobInput: Swift.Equatable { + /// Request to delete Job from service by Account ID. + public var accountID: Swift.String? /// Request to delete Job from service by Job ID. /// This member is required. public var jobID: Swift.String? public init( + accountID: Swift.String? = nil, jobID: Swift.String? = nil ) { + self.accountID = accountID self.jobID = jobID } } struct DeleteJobInputBody: Swift.Equatable { let jobID: Swift.String? + let accountID: Swift.String? } extension DeleteJobInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case jobID } @@ -3584,6 +3712,8 @@ extension DeleteJobInputBody: Swift.Decodable { let containerValues = try decoder.container(keyedBy: CodingKeys.self) let jobIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .jobID) jobID = jobIDDecoded + let accountIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .accountID) + accountID = accountIDDecoded } } @@ -3754,11 +3884,15 @@ public struct DeleteReplicationConfigurationTemplateOutputResponse: Swift.Equata extension DeleteSourceServerInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case sourceServerID } public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let accountID = self.accountID { + try encodeContainer.encode(accountID, forKey: .accountID) + } if let sourceServerID = self.sourceServerID { try encodeContainer.encode(sourceServerID, forKey: .sourceServerID) } @@ -3772,24 +3906,30 @@ extension DeleteSourceServerInput: ClientRuntime.URLPathProvider { } public struct DeleteSourceServerInput: Swift.Equatable { + /// Request to delete Source Server from service by Account ID. + public var accountID: Swift.String? /// Request to delete Source Server from service by Server ID. /// This member is required. public var sourceServerID: Swift.String? public init( + accountID: Swift.String? = nil, sourceServerID: Swift.String? = nil ) { + self.accountID = accountID self.sourceServerID = sourceServerID } } struct DeleteSourceServerInputBody: Swift.Equatable { let sourceServerID: Swift.String? + let accountID: Swift.String? } extension DeleteSourceServerInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case sourceServerID } @@ -3797,6 +3937,8 @@ extension DeleteSourceServerInputBody: Swift.Decodable { let containerValues = try decoder.container(keyedBy: CodingKeys.self) let sourceServerIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .sourceServerID) sourceServerID = sourceServerIDDecoded + let accountIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .accountID) + accountID = accountIDDecoded } } @@ -3896,11 +4038,15 @@ public struct DeleteVcenterClientOutputResponse: Swift.Equatable { extension DeleteWaveInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case waveID } public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let accountID = self.accountID { + try encodeContainer.encode(accountID, forKey: .accountID) + } if let waveID = self.waveID { try encodeContainer.encode(waveID, forKey: .waveID) } @@ -3914,24 +4060,30 @@ extension DeleteWaveInput: ClientRuntime.URLPathProvider { } public struct DeleteWaveInput: Swift.Equatable { + /// Account ID. + public var accountID: Swift.String? /// Wave ID. /// This member is required. public var waveID: Swift.String? public init( + accountID: Swift.String? = nil, waveID: Swift.String? = nil ) { + self.accountID = accountID self.waveID = waveID } } struct DeleteWaveInputBody: Swift.Equatable { let waveID: Swift.String? + let accountID: Swift.String? } extension DeleteWaveInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case waveID } @@ -3939,6 +4091,8 @@ extension DeleteWaveInputBody: Swift.Decodable { let containerValues = try decoder.container(keyedBy: CodingKeys.self) let waveIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .waveID) waveID = waveIDDecoded + let accountIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .accountID) + accountID = accountIDDecoded } } @@ -3967,6 +4121,7 @@ public struct DeleteWaveOutputResponse: Swift.Equatable { extension DescribeJobLogItemsInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case jobID case maxResults case nextToken @@ -3974,6 +4129,9 @@ extension DescribeJobLogItemsInput: Swift.Encodable { public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let accountID = self.accountID { + try encodeContainer.encode(accountID, forKey: .accountID) + } if let jobID = self.jobID { try encodeContainer.encode(jobID, forKey: .jobID) } @@ -3993,6 +4151,8 @@ extension DescribeJobLogItemsInput: ClientRuntime.URLPathProvider { } public struct DescribeJobLogItemsInput: Swift.Equatable { + /// Request to describe Job log Account ID. + public var accountID: Swift.String? /// Request to describe Job log job ID. /// This member is required. public var jobID: Swift.String? @@ -4002,11 +4162,13 @@ public struct DescribeJobLogItemsInput: Swift.Equatable { public var nextToken: Swift.String? public init( + accountID: Swift.String? = nil, jobID: Swift.String? = nil, maxResults: Swift.Int = 0, nextToken: Swift.String? = nil ) { + self.accountID = accountID self.jobID = jobID self.maxResults = maxResults self.nextToken = nextToken @@ -4017,10 +4179,12 @@ struct DescribeJobLogItemsInputBody: Swift.Equatable { let jobID: Swift.String? let maxResults: Swift.Int let nextToken: Swift.String? + let accountID: Swift.String? } extension DescribeJobLogItemsInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case jobID case maxResults case nextToken @@ -4034,6 +4198,8 @@ extension DescribeJobLogItemsInputBody: Swift.Decodable { maxResults = maxResultsDecoded let nextTokenDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .nextToken) nextToken = nextTokenDecoded + let accountIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .accountID) + accountID = accountIDDecoded } } @@ -4110,6 +4276,7 @@ extension DescribeJobLogItemsOutputResponseBody: Swift.Decodable { extension DescribeJobsInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case filters case maxResults case nextToken @@ -4117,6 +4284,9 @@ extension DescribeJobsInput: Swift.Encodable { public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let accountID = self.accountID { + try encodeContainer.encode(accountID, forKey: .accountID) + } if let filters = self.filters { try encodeContainer.encode(filters, forKey: .filters) } @@ -4136,6 +4306,8 @@ extension DescribeJobsInput: ClientRuntime.URLPathProvider { } public struct DescribeJobsInput: Swift.Equatable { + /// Request to describe job log items by Account ID. + public var accountID: Swift.String? /// Request to describe Job log filters. public var filters: MgnClientTypes.DescribeJobsRequestFilters? /// Request to describe job log items by max results. @@ -4144,11 +4316,13 @@ public struct DescribeJobsInput: Swift.Equatable { public var nextToken: Swift.String? public init( + accountID: Swift.String? = nil, filters: MgnClientTypes.DescribeJobsRequestFilters? = nil, maxResults: Swift.Int = 0, nextToken: Swift.String? = nil ) { + self.accountID = accountID self.filters = filters self.maxResults = maxResults self.nextToken = nextToken @@ -4159,10 +4333,12 @@ struct DescribeJobsInputBody: Swift.Equatable { let filters: MgnClientTypes.DescribeJobsRequestFilters? let maxResults: Swift.Int let nextToken: Swift.String? + let accountID: Swift.String? } extension DescribeJobsInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case filters case maxResults case nextToken @@ -4176,6 +4352,8 @@ extension DescribeJobsInputBody: Swift.Decodable { maxResults = maxResultsDecoded let nextTokenDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .nextToken) nextToken = nextTokenDecoded + let accountIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .accountID) + accountID = accountIDDecoded } } @@ -4629,6 +4807,7 @@ extension DescribeReplicationConfigurationTemplatesOutputResponseBody: Swift.Dec extension DescribeSourceServersInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case filters case maxResults case nextToken @@ -4636,6 +4815,9 @@ extension DescribeSourceServersInput: Swift.Encodable { public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let accountID = self.accountID { + try encodeContainer.encode(accountID, forKey: .accountID) + } if let filters = self.filters { try encodeContainer.encode(filters, forKey: .filters) } @@ -4655,6 +4837,8 @@ extension DescribeSourceServersInput: ClientRuntime.URLPathProvider { } public struct DescribeSourceServersInput: Swift.Equatable { + /// Request to filter Source Servers list by Accoun ID. + public var accountID: Swift.String? /// Request to filter Source Servers list. public var filters: MgnClientTypes.DescribeSourceServersRequestFilters? /// Request to filter Source Servers list by maximum results. @@ -4663,11 +4847,13 @@ public struct DescribeSourceServersInput: Swift.Equatable { public var nextToken: Swift.String? public init( + accountID: Swift.String? = nil, filters: MgnClientTypes.DescribeSourceServersRequestFilters? = nil, maxResults: Swift.Int = 0, nextToken: Swift.String? = nil ) { + self.accountID = accountID self.filters = filters self.maxResults = maxResults self.nextToken = nextToken @@ -4678,10 +4864,12 @@ struct DescribeSourceServersInputBody: Swift.Equatable { let filters: MgnClientTypes.DescribeSourceServersRequestFilters? let maxResults: Swift.Int let nextToken: Swift.String? + let accountID: Swift.String? } extension DescribeSourceServersInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case filters case maxResults case nextToken @@ -4695,6 +4883,8 @@ extension DescribeSourceServersInputBody: Swift.Decodable { maxResults = maxResultsDecoded let nextTokenDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .nextToken) nextToken = nextTokenDecoded + let accountIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .accountID) + accountID = accountIDDecoded } } @@ -5014,12 +5204,16 @@ extension DescribeVcenterClientsOutputResponseBody: Swift.Decodable { extension DisassociateApplicationsInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case applicationIDs case waveID } public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let accountID = self.accountID { + try encodeContainer.encode(accountID, forKey: .accountID) + } if let applicationIDs = applicationIDs { var applicationIDsContainer = encodeContainer.nestedUnkeyedContainer(forKey: .applicationIDs) for applicationid0 in applicationIDs { @@ -5039,6 +5233,8 @@ extension DisassociateApplicationsInput: ClientRuntime.URLPathProvider { } public struct DisassociateApplicationsInput: Swift.Equatable { + /// Account ID. + public var accountID: Swift.String? /// Application IDs list. /// This member is required. public var applicationIDs: [Swift.String]? @@ -5047,10 +5243,12 @@ public struct DisassociateApplicationsInput: Swift.Equatable { public var waveID: Swift.String? public init( + accountID: Swift.String? = nil, applicationIDs: [Swift.String]? = nil, waveID: Swift.String? = nil ) { + self.accountID = accountID self.applicationIDs = applicationIDs self.waveID = waveID } @@ -5059,10 +5257,12 @@ public struct DisassociateApplicationsInput: Swift.Equatable { struct DisassociateApplicationsInputBody: Swift.Equatable { let waveID: Swift.String? let applicationIDs: [Swift.String]? + let accountID: Swift.String? } extension DisassociateApplicationsInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case applicationIDs case waveID } @@ -5082,6 +5282,8 @@ extension DisassociateApplicationsInputBody: Swift.Decodable { } } applicationIDs = applicationIDsDecoded0 + let accountIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .accountID) + accountID = accountIDDecoded } } @@ -5110,12 +5312,16 @@ public struct DisassociateApplicationsOutputResponse: Swift.Equatable { extension DisassociateSourceServersInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case applicationID case sourceServerIDs } public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let accountID = self.accountID { + try encodeContainer.encode(accountID, forKey: .accountID) + } if let applicationID = self.applicationID { try encodeContainer.encode(applicationID, forKey: .applicationID) } @@ -5135,6 +5341,8 @@ extension DisassociateSourceServersInput: ClientRuntime.URLPathProvider { } public struct DisassociateSourceServersInput: Swift.Equatable { + /// Account ID. + public var accountID: Swift.String? /// Application ID. /// This member is required. public var applicationID: Swift.String? @@ -5143,10 +5351,12 @@ public struct DisassociateSourceServersInput: Swift.Equatable { public var sourceServerIDs: [Swift.String]? public init( + accountID: Swift.String? = nil, applicationID: Swift.String? = nil, sourceServerIDs: [Swift.String]? = nil ) { + self.accountID = accountID self.applicationID = applicationID self.sourceServerIDs = sourceServerIDs } @@ -5155,10 +5365,12 @@ public struct DisassociateSourceServersInput: Swift.Equatable { struct DisassociateSourceServersInputBody: Swift.Equatable { let applicationID: Swift.String? let sourceServerIDs: [Swift.String]? + let accountID: Swift.String? } extension DisassociateSourceServersInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case applicationID case sourceServerIDs } @@ -5178,6 +5390,8 @@ extension DisassociateSourceServersInputBody: Swift.Decodable { } } sourceServerIDs = sourceServerIDsDecoded0 + let accountIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .accountID) + accountID = accountIDDecoded } } @@ -5206,11 +5420,15 @@ public struct DisassociateSourceServersOutputResponse: Swift.Equatable { extension DisconnectFromServiceInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case sourceServerID } public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let accountID = self.accountID { + try encodeContainer.encode(accountID, forKey: .accountID) + } if let sourceServerID = self.sourceServerID { try encodeContainer.encode(sourceServerID, forKey: .sourceServerID) } @@ -5224,24 +5442,30 @@ extension DisconnectFromServiceInput: ClientRuntime.URLPathProvider { } public struct DisconnectFromServiceInput: Swift.Equatable { + /// Request to disconnect Source Server from service by Account ID. + public var accountID: Swift.String? /// Request to disconnect Source Server from service by Server ID. /// This member is required. public var sourceServerID: Swift.String? public init( + accountID: Swift.String? = nil, sourceServerID: Swift.String? = nil ) { + self.accountID = accountID self.sourceServerID = sourceServerID } } struct DisconnectFromServiceInputBody: Swift.Equatable { let sourceServerID: Swift.String? + let accountID: Swift.String? } extension DisconnectFromServiceInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case sourceServerID } @@ -5249,6 +5473,8 @@ extension DisconnectFromServiceInputBody: Swift.Decodable { let containerValues = try decoder.container(keyedBy: CodingKeys.self) let sourceServerIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .sourceServerID) sourceServerID = sourceServerIDDecoded + let accountIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .accountID) + accountID = accountIDDecoded } } @@ -5839,11 +6065,15 @@ extension MgnClientTypes { extension FinalizeCutoverInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case sourceServerID } public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let accountID = self.accountID { + try encodeContainer.encode(accountID, forKey: .accountID) + } if let sourceServerID = self.sourceServerID { try encodeContainer.encode(sourceServerID, forKey: .sourceServerID) } @@ -5857,24 +6087,30 @@ extension FinalizeCutoverInput: ClientRuntime.URLPathProvider { } public struct FinalizeCutoverInput: Swift.Equatable { + /// Request to finalize Cutover by Source Account ID. + public var accountID: Swift.String? /// Request to finalize Cutover by Source Server ID. /// This member is required. public var sourceServerID: Swift.String? public init( + accountID: Swift.String? = nil, sourceServerID: Swift.String? = nil ) { + self.accountID = accountID self.sourceServerID = sourceServerID } } struct FinalizeCutoverInputBody: Swift.Equatable { let sourceServerID: Swift.String? + let accountID: Swift.String? } extension FinalizeCutoverInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case sourceServerID } @@ -5882,6 +6118,8 @@ extension FinalizeCutoverInputBody: Swift.Decodable { let containerValues = try decoder.container(keyedBy: CodingKeys.self) let sourceServerIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .sourceServerID) sourceServerID = sourceServerIDDecoded + let accountIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .accountID) + accountID = accountIDDecoded } } @@ -6113,11 +6351,15 @@ extension MgnClientTypes { extension GetLaunchConfigurationInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case sourceServerID } public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let accountID = self.accountID { + try encodeContainer.encode(accountID, forKey: .accountID) + } if let sourceServerID = self.sourceServerID { try encodeContainer.encode(sourceServerID, forKey: .sourceServerID) } @@ -6131,24 +6373,30 @@ extension GetLaunchConfigurationInput: ClientRuntime.URLPathProvider { } public struct GetLaunchConfigurationInput: Swift.Equatable { + /// Request to get Launch Configuration information by Account ID. + public var accountID: Swift.String? /// Request to get Launch Configuration information by Source Server ID. /// This member is required. public var sourceServerID: Swift.String? public init( + accountID: Swift.String? = nil, sourceServerID: Swift.String? = nil ) { + self.accountID = accountID self.sourceServerID = sourceServerID } } struct GetLaunchConfigurationInputBody: Swift.Equatable { let sourceServerID: Swift.String? + let accountID: Swift.String? } extension GetLaunchConfigurationInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case sourceServerID } @@ -6156,6 +6404,8 @@ extension GetLaunchConfigurationInputBody: Swift.Decodable { let containerValues = try decoder.container(keyedBy: CodingKeys.self) let sourceServerIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .sourceServerID) sourceServerID = sourceServerIDDecoded + let accountIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .accountID) + accountID = accountIDDecoded } } @@ -6323,11 +6573,15 @@ extension GetLaunchConfigurationOutputResponseBody: Swift.Decodable { extension GetReplicationConfigurationInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case sourceServerID } public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let accountID = self.accountID { + try encodeContainer.encode(accountID, forKey: .accountID) + } if let sourceServerID = self.sourceServerID { try encodeContainer.encode(sourceServerID, forKey: .sourceServerID) } @@ -6341,24 +6595,30 @@ extension GetReplicationConfigurationInput: ClientRuntime.URLPathProvider { } public struct GetReplicationConfigurationInput: Swift.Equatable { + /// Request to get Replication Configuration by Account ID. + public var accountID: Swift.String? /// Request to get Replication Configuration by Source Server ID. /// This member is required. public var sourceServerID: Swift.String? public init( + accountID: Swift.String? = nil, sourceServerID: Swift.String? = nil ) { + self.accountID = accountID self.sourceServerID = sourceServerID } } struct GetReplicationConfigurationInputBody: Swift.Equatable { let sourceServerID: Swift.String? + let accountID: Swift.String? } extension GetReplicationConfigurationInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case sourceServerID } @@ -6366,6 +6626,8 @@ extension GetReplicationConfigurationInputBody: Swift.Decodable { let containerValues = try decoder.container(keyedBy: CodingKeys.self) let sourceServerIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .sourceServerID) sourceServerID = sourceServerIDDecoded + let accountIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .accountID) + accountID = accountIDDecoded } } @@ -6383,7 +6645,7 @@ public enum GetReplicationConfigurationOutputError: ClientRuntime.HttpResponseEr extension GetReplicationConfigurationOutputResponse: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "GetReplicationConfigurationOutputResponse(associateDefaultSecurityGroup: \(Swift.String(describing: associateDefaultSecurityGroup)), bandwidthThrottling: \(Swift.String(describing: bandwidthThrottling)), createPublicIP: \(Swift.String(describing: createPublicIP)), dataPlaneRouting: \(Swift.String(describing: dataPlaneRouting)), defaultLargeStagingDiskType: \(Swift.String(describing: defaultLargeStagingDiskType)), ebsEncryption: \(Swift.String(describing: ebsEncryption)), ebsEncryptionKeyArn: \(Swift.String(describing: ebsEncryptionKeyArn)), name: \(Swift.String(describing: name)), replicatedDisks: \(Swift.String(describing: replicatedDisks)), replicationServerInstanceType: \(Swift.String(describing: replicationServerInstanceType)), replicationServersSecurityGroupsIDs: \(Swift.String(describing: replicationServersSecurityGroupsIDs)), sourceServerID: \(Swift.String(describing: sourceServerID)), stagingAreaSubnetId: \(Swift.String(describing: stagingAreaSubnetId)), useDedicatedReplicationServer: \(Swift.String(describing: useDedicatedReplicationServer)), stagingAreaTags: \"CONTENT_REDACTED\")"} + "GetReplicationConfigurationOutputResponse(associateDefaultSecurityGroup: \(Swift.String(describing: associateDefaultSecurityGroup)), bandwidthThrottling: \(Swift.String(describing: bandwidthThrottling)), createPublicIP: \(Swift.String(describing: createPublicIP)), dataPlaneRouting: \(Swift.String(describing: dataPlaneRouting)), defaultLargeStagingDiskType: \(Swift.String(describing: defaultLargeStagingDiskType)), ebsEncryption: \(Swift.String(describing: ebsEncryption)), ebsEncryptionKeyArn: \(Swift.String(describing: ebsEncryptionKeyArn)), name: \(Swift.String(describing: name)), replicatedDisks: \(Swift.String(describing: replicatedDisks)), replicationServerInstanceType: \(Swift.String(describing: replicationServerInstanceType)), replicationServersSecurityGroupsIDs: \(Swift.String(describing: replicationServersSecurityGroupsIDs)), sourceServerID: \(Swift.String(describing: sourceServerID)), stagingAreaSubnetId: \(Swift.String(describing: stagingAreaSubnetId)), useDedicatedReplicationServer: \(Swift.String(describing: useDedicatedReplicationServer)), useFipsEndpoint: \(Swift.String(describing: useFipsEndpoint)), stagingAreaTags: \"CONTENT_REDACTED\")"} } extension GetReplicationConfigurationOutputResponse: ClientRuntime.HttpResponseBinding { @@ -6406,6 +6668,7 @@ extension GetReplicationConfigurationOutputResponse: ClientRuntime.HttpResponseB self.stagingAreaSubnetId = output.stagingAreaSubnetId self.stagingAreaTags = output.stagingAreaTags self.useDedicatedReplicationServer = output.useDedicatedReplicationServer + self.useFipsEndpoint = output.useFipsEndpoint } else { self.associateDefaultSecurityGroup = nil self.bandwidthThrottling = 0 @@ -6422,6 +6685,7 @@ extension GetReplicationConfigurationOutputResponse: ClientRuntime.HttpResponseB self.stagingAreaSubnetId = nil self.stagingAreaTags = nil self.useDedicatedReplicationServer = nil + self.useFipsEndpoint = nil } } } @@ -6457,6 +6721,8 @@ public struct GetReplicationConfigurationOutputResponse: Swift.Equatable { public var stagingAreaTags: [Swift.String:Swift.String]? /// Replication Configuration use Dedicated Replication Server. public var useDedicatedReplicationServer: Swift.Bool? + /// Replication Configuration use Fips Endpoint. + public var useFipsEndpoint: Swift.Bool? public init( associateDefaultSecurityGroup: Swift.Bool? = nil, @@ -6473,7 +6739,8 @@ public struct GetReplicationConfigurationOutputResponse: Swift.Equatable { sourceServerID: Swift.String? = nil, stagingAreaSubnetId: Swift.String? = nil, stagingAreaTags: [Swift.String:Swift.String]? = nil, - useDedicatedReplicationServer: Swift.Bool? = nil + useDedicatedReplicationServer: Swift.Bool? = nil, + useFipsEndpoint: Swift.Bool? = nil ) { self.associateDefaultSecurityGroup = associateDefaultSecurityGroup @@ -6491,6 +6758,7 @@ public struct GetReplicationConfigurationOutputResponse: Swift.Equatable { self.stagingAreaSubnetId = stagingAreaSubnetId self.stagingAreaTags = stagingAreaTags self.useDedicatedReplicationServer = useDedicatedReplicationServer + self.useFipsEndpoint = useFipsEndpoint } } @@ -6510,6 +6778,7 @@ struct GetReplicationConfigurationOutputResponseBody: Swift.Equatable { let dataPlaneRouting: MgnClientTypes.ReplicationConfigurationDataPlaneRouting? let createPublicIP: Swift.Bool? let stagingAreaTags: [Swift.String:Swift.String]? + let useFipsEndpoint: Swift.Bool? } extension GetReplicationConfigurationOutputResponseBody: Swift.Decodable { @@ -6529,6 +6798,7 @@ extension GetReplicationConfigurationOutputResponseBody: Swift.Decodable { case stagingAreaSubnetId case stagingAreaTags case useDedicatedReplicationServer + case useFipsEndpoint } public init(from decoder: Swift.Decoder) throws { @@ -6590,6 +6860,8 @@ extension GetReplicationConfigurationOutputResponseBody: Swift.Decodable { } } stagingAreaTags = stagingAreaTagsDecoded0 + let useFipsEndpointDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .useFipsEndpoint) + useFipsEndpoint = useFipsEndpointDecoded } } @@ -6670,6 +6942,7 @@ extension MgnClientTypes { extension MgnClientTypes.ImportErrorData: Swift.Codable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case applicationID case ec2LaunchTemplateID case rawError @@ -6680,6 +6953,9 @@ extension MgnClientTypes.ImportErrorData: Swift.Codable { public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let accountID = self.accountID { + try encodeContainer.encode(accountID, forKey: .accountID) + } if let applicationID = self.applicationID { try encodeContainer.encode(applicationID, forKey: .applicationID) } @@ -6714,12 +6990,16 @@ extension MgnClientTypes.ImportErrorData: Swift.Codable { rowNumber = rowNumberDecoded let rawErrorDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .rawError) rawError = rawErrorDecoded + let accountIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .accountID) + accountID = accountIDDecoded } } extension MgnClientTypes { /// Import error data. public struct ImportErrorData: Swift.Equatable { + /// Import error data source account ID. + public var accountID: Swift.String? /// Import error data application ID. public var applicationID: Swift.String? /// Import error data ec2 LaunchTemplate ID. @@ -6734,6 +7014,7 @@ extension MgnClientTypes { public var waveID: Swift.String? public init( + accountID: Swift.String? = nil, applicationID: Swift.String? = nil, ec2LaunchTemplateID: Swift.String? = nil, rawError: Swift.String? = nil, @@ -6742,6 +7023,7 @@ extension MgnClientTypes { waveID: Swift.String? = nil ) { + self.accountID = accountID self.applicationID = applicationID self.ec2LaunchTemplateID = ec2LaunchTemplateID self.rawError = rawError @@ -8712,6 +8994,7 @@ extension MgnClientTypes { extension ListApplicationsInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case filters case maxResults case nextToken @@ -8719,6 +9002,9 @@ extension ListApplicationsInput: Swift.Encodable { public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let accountID = self.accountID { + try encodeContainer.encode(accountID, forKey: .accountID) + } if let filters = self.filters { try encodeContainer.encode(filters, forKey: .filters) } @@ -8738,6 +9024,8 @@ extension ListApplicationsInput: ClientRuntime.URLPathProvider { } public struct ListApplicationsInput: Swift.Equatable { + /// Applications list Account ID. + public var accountID: Swift.String? /// Applications list filters. public var filters: MgnClientTypes.ListApplicationsRequestFilters? /// Maximum results to return when listing applications. @@ -8746,11 +9034,13 @@ public struct ListApplicationsInput: Swift.Equatable { public var nextToken: Swift.String? public init( + accountID: Swift.String? = nil, filters: MgnClientTypes.ListApplicationsRequestFilters? = nil, maxResults: Swift.Int = 0, nextToken: Swift.String? = nil ) { + self.accountID = accountID self.filters = filters self.maxResults = maxResults self.nextToken = nextToken @@ -8761,10 +9051,12 @@ struct ListApplicationsInputBody: Swift.Equatable { let filters: MgnClientTypes.ListApplicationsRequestFilters? let maxResults: Swift.Int let nextToken: Swift.String? + let accountID: Swift.String? } extension ListApplicationsInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case filters case maxResults case nextToken @@ -8778,6 +9070,8 @@ extension ListApplicationsInputBody: Swift.Decodable { maxResults = maxResultsDecoded let nextTokenDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .nextToken) nextToken = nextTokenDecoded + let accountIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .accountID) + accountID = accountIDDecoded } } @@ -9601,8 +9895,142 @@ extension MgnClientTypes { } +extension ListManagedAccountsInput: Swift.Encodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case maxResults + case nextToken + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let maxResults = self.maxResults { + try encodeContainer.encode(maxResults, forKey: .maxResults) + } + if let nextToken = self.nextToken { + try encodeContainer.encode(nextToken, forKey: .nextToken) + } + } +} + +extension ListManagedAccountsInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + return "/ListManagedAccounts" + } +} + +/// List managed accounts request. +public struct ListManagedAccountsInput: Swift.Equatable { + /// List managed accounts request max results. + public var maxResults: Swift.Int? + /// List managed accounts request next token. + public var nextToken: Swift.String? + + public init( + maxResults: Swift.Int? = nil, + nextToken: Swift.String? = nil + ) + { + self.maxResults = maxResults + self.nextToken = nextToken + } +} + +struct ListManagedAccountsInputBody: Swift.Equatable { + let maxResults: Swift.Int? + let nextToken: Swift.String? +} + +extension ListManagedAccountsInputBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case maxResults + case nextToken + } + + public init(from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let maxResultsDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .maxResults) + maxResults = maxResultsDecoded + let nextTokenDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .nextToken) + nextToken = nextTokenDecoded + } +} + +public enum ListManagedAccountsOutputError: ClientRuntime.HttpResponseErrorBinding { + public static func makeError(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) async throws -> Swift.Error { + let restJSONError = try await AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.requestId + switch restJSONError.errorType { + case "UninitializedAccountException": return try await UninitializedAccountException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "ValidationException": return try await ValidationException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + default: return try await AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(httpResponse: httpResponse, message: restJSONError.errorMessage, requestID: requestID, typeName: restJSONError.errorType) + } + } +} + +extension ListManagedAccountsOutputResponse: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) async throws { + if let data = try await httpResponse.body.readData(), + let responseDecoder = decoder { + let output: ListManagedAccountsOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.items = output.items + self.nextToken = output.nextToken + } else { + self.items = nil + self.nextToken = nil + } + } +} + +/// List managed accounts response. +public struct ListManagedAccountsOutputResponse: Swift.Equatable { + /// List managed accounts response items. + /// This member is required. + public var items: [MgnClientTypes.ManagedAccount]? + /// List managed accounts response next token. + public var nextToken: Swift.String? + + public init( + items: [MgnClientTypes.ManagedAccount]? = nil, + nextToken: Swift.String? = nil + ) + { + self.items = items + self.nextToken = nextToken + } +} + +struct ListManagedAccountsOutputResponseBody: Swift.Equatable { + let items: [MgnClientTypes.ManagedAccount]? + let nextToken: Swift.String? +} + +extension ListManagedAccountsOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case items + case nextToken + } + + public init(from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let itemsContainer = try containerValues.decodeIfPresent([MgnClientTypes.ManagedAccount?].self, forKey: .items) + var itemsDecoded0:[MgnClientTypes.ManagedAccount]? = nil + if let itemsContainer = itemsContainer { + itemsDecoded0 = [MgnClientTypes.ManagedAccount]() + for structure0 in itemsContainer { + if let structure0 = structure0 { + itemsDecoded0?.append(structure0) + } + } + } + items = itemsDecoded0 + let nextTokenDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .nextToken) + nextToken = nextTokenDecoded + } +} + extension ListSourceServerActionsInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case filters case maxResults case nextToken @@ -9611,6 +10039,9 @@ extension ListSourceServerActionsInput: Swift.Encodable { public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let accountID = self.accountID { + try encodeContainer.encode(accountID, forKey: .accountID) + } if let filters = self.filters { try encodeContainer.encode(filters, forKey: .filters) } @@ -9633,6 +10064,8 @@ extension ListSourceServerActionsInput: ClientRuntime.URLPathProvider { } public struct ListSourceServerActionsInput: Swift.Equatable { + /// Account ID to return when listing source server post migration custom actions. + public var accountID: Swift.String? /// Filters to apply when listing source server post migration custom actions. public var filters: MgnClientTypes.SourceServerActionsRequestFilters? /// Maximum amount of items to return when listing source server post migration custom actions. @@ -9644,12 +10077,14 @@ public struct ListSourceServerActionsInput: Swift.Equatable { public var sourceServerID: Swift.String? public init( + accountID: Swift.String? = nil, filters: MgnClientTypes.SourceServerActionsRequestFilters? = nil, maxResults: Swift.Int = 0, nextToken: Swift.String? = nil, sourceServerID: Swift.String? = nil ) { + self.accountID = accountID self.filters = filters self.maxResults = maxResults self.nextToken = nextToken @@ -9662,10 +10097,12 @@ struct ListSourceServerActionsInputBody: Swift.Equatable { let filters: MgnClientTypes.SourceServerActionsRequestFilters? let maxResults: Swift.Int let nextToken: Swift.String? + let accountID: Swift.String? } extension ListSourceServerActionsInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case filters case maxResults case nextToken @@ -9682,6 +10119,8 @@ extension ListSourceServerActionsInputBody: Swift.Decodable { maxResults = maxResultsDecoded let nextTokenDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .nextToken) nextToken = nextTokenDecoded + let accountIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .accountID) + accountID = accountIDDecoded } } @@ -10013,6 +10452,7 @@ extension ListTemplateActionsOutputResponseBody: Swift.Decodable { extension ListWavesInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case filters case maxResults case nextToken @@ -10020,6 +10460,9 @@ extension ListWavesInput: Swift.Encodable { public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let accountID = self.accountID { + try encodeContainer.encode(accountID, forKey: .accountID) + } if let filters = self.filters { try encodeContainer.encode(filters, forKey: .filters) } @@ -10039,6 +10482,8 @@ extension ListWavesInput: ClientRuntime.URLPathProvider { } public struct ListWavesInput: Swift.Equatable { + /// Request account ID. + public var accountID: Swift.String? /// Waves list filters. public var filters: MgnClientTypes.ListWavesRequestFilters? /// Maximum results to return when listing waves. @@ -10047,11 +10492,13 @@ public struct ListWavesInput: Swift.Equatable { public var nextToken: Swift.String? public init( + accountID: Swift.String? = nil, filters: MgnClientTypes.ListWavesRequestFilters? = nil, maxResults: Swift.Int = 0, nextToken: Swift.String? = nil ) { + self.accountID = accountID self.filters = filters self.maxResults = maxResults self.nextToken = nextToken @@ -10062,10 +10509,12 @@ struct ListWavesInputBody: Swift.Equatable { let filters: MgnClientTypes.ListWavesRequestFilters? let maxResults: Swift.Int let nextToken: Swift.String? + let accountID: Swift.String? } extension ListWavesInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case filters case maxResults case nextToken @@ -10079,6 +10528,8 @@ extension ListWavesInputBody: Swift.Decodable { maxResults = maxResultsDecoded let nextTokenDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .nextToken) nextToken = nextTokenDecoded + let accountIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .accountID) + accountID = accountIDDecoded } } @@ -10209,13 +10660,52 @@ extension MgnClientTypes { } +extension MgnClientTypes.ManagedAccount: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case accountId + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let accountId = self.accountId { + try encodeContainer.encode(accountId, forKey: .accountId) + } + } + + public init(from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let accountIdDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .accountId) + accountId = accountIdDecoded + } +} + +extension MgnClientTypes { + /// Managed account. + public struct ManagedAccount: Swift.Equatable { + /// Managed account, account ID. + public var accountId: Swift.String? + + public init( + accountId: Swift.String? = nil + ) + { + self.accountId = accountId + } + } + +} + extension MarkAsArchivedInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case sourceServerID } public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let accountID = self.accountID { + try encodeContainer.encode(accountID, forKey: .accountID) + } if let sourceServerID = self.sourceServerID { try encodeContainer.encode(sourceServerID, forKey: .sourceServerID) } @@ -10229,24 +10719,30 @@ extension MarkAsArchivedInput: ClientRuntime.URLPathProvider { } public struct MarkAsArchivedInput: Swift.Equatable { + /// Mark as archived by Account ID. + public var accountID: Swift.String? /// Mark as archived by Source Server ID. /// This member is required. public var sourceServerID: Swift.String? public init( + accountID: Swift.String? = nil, sourceServerID: Swift.String? = nil ) { + self.accountID = accountID self.sourceServerID = sourceServerID } } struct MarkAsArchivedInputBody: Swift.Equatable { let sourceServerID: Swift.String? + let accountID: Swift.String? } extension MarkAsArchivedInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case sourceServerID } @@ -10254,6 +10750,8 @@ extension MarkAsArchivedInputBody: Swift.Decodable { let containerValues = try decoder.container(keyedBy: CodingKeys.self) let sourceServerIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .sourceServerID) sourceServerID = sourceServerIDDecoded + let accountIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .accountID) + accountID = accountIDDecoded } } @@ -10612,97 +11110,346 @@ extension MgnClientTypes { } -extension MgnClientTypes { - public enum PostLaunchActionExecutionStatus: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { - case failed - case inProgress - case success - case sdkUnknown(Swift.String) +extension PauseReplicationInput: Swift.Encodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID + case sourceServerID + } - public static var allCases: [PostLaunchActionExecutionStatus] { - return [ - .failed, - .inProgress, - .success, - .sdkUnknown("") - ] - } - public init?(rawValue: Swift.String) { - let value = Self.allCases.first(where: { $0.rawValue == rawValue }) - self = value ?? Self.sdkUnknown(rawValue) - } - public var rawValue: Swift.String { - switch self { - case .failed: return "FAILED" - case .inProgress: return "IN_PROGRESS" - case .success: return "SUCCESS" - case let .sdkUnknown(s): return s - } + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let accountID = self.accountID { + try encodeContainer.encode(accountID, forKey: .accountID) } - public init(from decoder: Swift.Decoder) throws { - let container = try decoder.singleValueContainer() - let rawValue = try container.decode(RawValue.self) - self = PostLaunchActionExecutionStatus(rawValue: rawValue) ?? PostLaunchActionExecutionStatus.sdkUnknown(rawValue) + if let sourceServerID = self.sourceServerID { + try encodeContainer.encode(sourceServerID, forKey: .sourceServerID) } } } -extension MgnClientTypes.PostLaunchActions: Swift.Codable { - enum CodingKeys: Swift.String, Swift.CodingKey { - case cloudWatchLogGroupName - case deployment - case s3LogBucket - case s3OutputKeyPrefix - case ssmDocuments +extension PauseReplicationInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + return "/PauseReplication" } +} - public func encode(to encoder: Swift.Encoder) throws { - var encodeContainer = encoder.container(keyedBy: CodingKeys.self) - if let cloudWatchLogGroupName = self.cloudWatchLogGroupName { - try encodeContainer.encode(cloudWatchLogGroupName, forKey: .cloudWatchLogGroupName) - } - if let deployment = self.deployment { - try encodeContainer.encode(deployment.rawValue, forKey: .deployment) - } - if let s3LogBucket = self.s3LogBucket { - try encodeContainer.encode(s3LogBucket, forKey: .s3LogBucket) - } - if let s3OutputKeyPrefix = self.s3OutputKeyPrefix { - try encodeContainer.encode(s3OutputKeyPrefix, forKey: .s3OutputKeyPrefix) - } - if let ssmDocuments = ssmDocuments { - var ssmDocumentsContainer = encodeContainer.nestedUnkeyedContainer(forKey: .ssmDocuments) - for ssmdocument0 in ssmDocuments { - try ssmDocumentsContainer.encode(ssmdocument0) - } - } +public struct PauseReplicationInput: Swift.Equatable { + /// Pause Replication Request account ID. + public var accountID: Swift.String? + /// Pause Replication Request source server ID. + /// This member is required. + public var sourceServerID: Swift.String? + + public init( + accountID: Swift.String? = nil, + sourceServerID: Swift.String? = nil + ) + { + self.accountID = accountID + self.sourceServerID = sourceServerID + } +} + +struct PauseReplicationInputBody: Swift.Equatable { + let sourceServerID: Swift.String? + let accountID: Swift.String? +} + +extension PauseReplicationInputBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID + case sourceServerID } public init(from decoder: Swift.Decoder) throws { let containerValues = try decoder.container(keyedBy: CodingKeys.self) - let deploymentDecoded = try containerValues.decodeIfPresent(MgnClientTypes.PostLaunchActionsDeploymentType.self, forKey: .deployment) - deployment = deploymentDecoded - let s3LogBucketDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .s3LogBucket) - s3LogBucket = s3LogBucketDecoded - let s3OutputKeyPrefixDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .s3OutputKeyPrefix) - s3OutputKeyPrefix = s3OutputKeyPrefixDecoded - let cloudWatchLogGroupNameDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .cloudWatchLogGroupName) - cloudWatchLogGroupName = cloudWatchLogGroupNameDecoded - let ssmDocumentsContainer = try containerValues.decodeIfPresent([MgnClientTypes.SsmDocument?].self, forKey: .ssmDocuments) - var ssmDocumentsDecoded0:[MgnClientTypes.SsmDocument]? = nil - if let ssmDocumentsContainer = ssmDocumentsContainer { - ssmDocumentsDecoded0 = [MgnClientTypes.SsmDocument]() - for structure0 in ssmDocumentsContainer { - if let structure0 = structure0 { - ssmDocumentsDecoded0?.append(structure0) - } - } - } - ssmDocuments = ssmDocumentsDecoded0 + let sourceServerIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .sourceServerID) + sourceServerID = sourceServerIDDecoded + let accountIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .accountID) + accountID = accountIDDecoded } } -extension MgnClientTypes { +public enum PauseReplicationOutputError: ClientRuntime.HttpResponseErrorBinding { + public static func makeError(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) async throws -> Swift.Error { + let restJSONError = try await AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.requestId + switch restJSONError.errorType { + case "ConflictException": return try await ConflictException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "ResourceNotFoundException": return try await ResourceNotFoundException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "ServiceQuotaExceededException": return try await ServiceQuotaExceededException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "UninitializedAccountException": return try await UninitializedAccountException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "ValidationException": return try await ValidationException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + default: return try await AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(httpResponse: httpResponse, message: restJSONError.errorMessage, requestID: requestID, typeName: restJSONError.errorType) + } + } +} + +extension PauseReplicationOutputResponse: Swift.CustomDebugStringConvertible { + public var debugDescription: Swift.String { + "PauseReplicationOutputResponse(applicationID: \(Swift.String(describing: applicationID)), arn: \(Swift.String(describing: arn)), dataReplicationInfo: \(Swift.String(describing: dataReplicationInfo)), fqdnForActionFramework: \(Swift.String(describing: fqdnForActionFramework)), isArchived: \(Swift.String(describing: isArchived)), launchedInstance: \(Swift.String(describing: launchedInstance)), lifeCycle: \(Swift.String(describing: lifeCycle)), replicationType: \(Swift.String(describing: replicationType)), sourceProperties: \(Swift.String(describing: sourceProperties)), sourceServerID: \(Swift.String(describing: sourceServerID)), userProvidedID: \(Swift.String(describing: userProvidedID)), vcenterClientID: \(Swift.String(describing: vcenterClientID)), tags: \"CONTENT_REDACTED\")"} +} + +extension PauseReplicationOutputResponse: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) async throws { + if let data = try await httpResponse.body.readData(), + let responseDecoder = decoder { + let output: PauseReplicationOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.applicationID = output.applicationID + self.arn = output.arn + self.dataReplicationInfo = output.dataReplicationInfo + self.fqdnForActionFramework = output.fqdnForActionFramework + self.isArchived = output.isArchived + self.launchedInstance = output.launchedInstance + self.lifeCycle = output.lifeCycle + self.replicationType = output.replicationType + self.sourceProperties = output.sourceProperties + self.sourceServerID = output.sourceServerID + self.tags = output.tags + self.userProvidedID = output.userProvidedID + self.vcenterClientID = output.vcenterClientID + } else { + self.applicationID = nil + self.arn = nil + self.dataReplicationInfo = nil + self.fqdnForActionFramework = nil + self.isArchived = nil + self.launchedInstance = nil + self.lifeCycle = nil + self.replicationType = nil + self.sourceProperties = nil + self.sourceServerID = nil + self.tags = nil + self.userProvidedID = nil + self.vcenterClientID = nil + } + } +} + +public struct PauseReplicationOutputResponse: Swift.Equatable { + /// Source server application ID. + public var applicationID: Swift.String? + /// Source server ARN. + public var arn: Swift.String? + /// Source server data replication info. + public var dataReplicationInfo: MgnClientTypes.DataReplicationInfo? + /// Source server fqdn for action framework. + public var fqdnForActionFramework: Swift.String? + /// Source server archived status. + public var isArchived: Swift.Bool? + /// Source server launched instance. + public var launchedInstance: MgnClientTypes.LaunchedInstance? + /// Source server lifecycle state. + public var lifeCycle: MgnClientTypes.LifeCycle? + /// Source server replication type. + public var replicationType: MgnClientTypes.ReplicationType? + /// Source server properties. + public var sourceProperties: MgnClientTypes.SourceProperties? + /// Source server ID. + public var sourceServerID: Swift.String? + /// Source server Tags. + public var tags: [Swift.String:Swift.String]? + /// Source server user provided ID. + public var userProvidedID: Swift.String? + /// Source server vCenter client id. + public var vcenterClientID: Swift.String? + + public init( + applicationID: Swift.String? = nil, + arn: Swift.String? = nil, + dataReplicationInfo: MgnClientTypes.DataReplicationInfo? = nil, + fqdnForActionFramework: Swift.String? = nil, + isArchived: Swift.Bool? = nil, + launchedInstance: MgnClientTypes.LaunchedInstance? = nil, + lifeCycle: MgnClientTypes.LifeCycle? = nil, + replicationType: MgnClientTypes.ReplicationType? = nil, + sourceProperties: MgnClientTypes.SourceProperties? = nil, + sourceServerID: Swift.String? = nil, + tags: [Swift.String:Swift.String]? = nil, + userProvidedID: Swift.String? = nil, + vcenterClientID: Swift.String? = nil + ) + { + self.applicationID = applicationID + self.arn = arn + self.dataReplicationInfo = dataReplicationInfo + self.fqdnForActionFramework = fqdnForActionFramework + self.isArchived = isArchived + self.launchedInstance = launchedInstance + self.lifeCycle = lifeCycle + self.replicationType = replicationType + self.sourceProperties = sourceProperties + self.sourceServerID = sourceServerID + self.tags = tags + self.userProvidedID = userProvidedID + self.vcenterClientID = vcenterClientID + } +} + +struct PauseReplicationOutputResponseBody: Swift.Equatable { + let sourceServerID: Swift.String? + let arn: Swift.String? + let isArchived: Swift.Bool? + let tags: [Swift.String:Swift.String]? + let launchedInstance: MgnClientTypes.LaunchedInstance? + let dataReplicationInfo: MgnClientTypes.DataReplicationInfo? + let lifeCycle: MgnClientTypes.LifeCycle? + let sourceProperties: MgnClientTypes.SourceProperties? + let replicationType: MgnClientTypes.ReplicationType? + let vcenterClientID: Swift.String? + let applicationID: Swift.String? + let userProvidedID: Swift.String? + let fqdnForActionFramework: Swift.String? +} + +extension PauseReplicationOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case applicationID + case arn + case dataReplicationInfo + case fqdnForActionFramework + case isArchived + case launchedInstance + case lifeCycle + case replicationType + case sourceProperties + case sourceServerID + case tags + case userProvidedID + case vcenterClientID + } + + public init(from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let sourceServerIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .sourceServerID) + sourceServerID = sourceServerIDDecoded + let arnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .arn) + arn = arnDecoded + let isArchivedDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .isArchived) + isArchived = isArchivedDecoded + let tagsContainer = try containerValues.decodeIfPresent([Swift.String: Swift.String?].self, forKey: .tags) + var tagsDecoded0: [Swift.String:Swift.String]? = nil + if let tagsContainer = tagsContainer { + tagsDecoded0 = [Swift.String:Swift.String]() + for (key0, tagvalue0) in tagsContainer { + if let tagvalue0 = tagvalue0 { + tagsDecoded0?[key0] = tagvalue0 + } + } + } + tags = tagsDecoded0 + let launchedInstanceDecoded = try containerValues.decodeIfPresent(MgnClientTypes.LaunchedInstance.self, forKey: .launchedInstance) + launchedInstance = launchedInstanceDecoded + let dataReplicationInfoDecoded = try containerValues.decodeIfPresent(MgnClientTypes.DataReplicationInfo.self, forKey: .dataReplicationInfo) + dataReplicationInfo = dataReplicationInfoDecoded + let lifeCycleDecoded = try containerValues.decodeIfPresent(MgnClientTypes.LifeCycle.self, forKey: .lifeCycle) + lifeCycle = lifeCycleDecoded + let sourcePropertiesDecoded = try containerValues.decodeIfPresent(MgnClientTypes.SourceProperties.self, forKey: .sourceProperties) + sourceProperties = sourcePropertiesDecoded + let replicationTypeDecoded = try containerValues.decodeIfPresent(MgnClientTypes.ReplicationType.self, forKey: .replicationType) + replicationType = replicationTypeDecoded + let vcenterClientIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .vcenterClientID) + vcenterClientID = vcenterClientIDDecoded + let applicationIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .applicationID) + applicationID = applicationIDDecoded + let userProvidedIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .userProvidedID) + userProvidedID = userProvidedIDDecoded + let fqdnForActionFrameworkDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .fqdnForActionFramework) + fqdnForActionFramework = fqdnForActionFrameworkDecoded + } +} + +extension MgnClientTypes { + public enum PostLaunchActionExecutionStatus: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { + case failed + case inProgress + case success + case sdkUnknown(Swift.String) + + public static var allCases: [PostLaunchActionExecutionStatus] { + return [ + .failed, + .inProgress, + .success, + .sdkUnknown("") + ] + } + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + public var rawValue: Swift.String { + switch self { + case .failed: return "FAILED" + case .inProgress: return "IN_PROGRESS" + case .success: return "SUCCESS" + case let .sdkUnknown(s): return s + } + } + public init(from decoder: Swift.Decoder) throws { + let container = try decoder.singleValueContainer() + let rawValue = try container.decode(RawValue.self) + self = PostLaunchActionExecutionStatus(rawValue: rawValue) ?? PostLaunchActionExecutionStatus.sdkUnknown(rawValue) + } + } +} + +extension MgnClientTypes.PostLaunchActions: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case cloudWatchLogGroupName + case deployment + case s3LogBucket + case s3OutputKeyPrefix + case ssmDocuments + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let cloudWatchLogGroupName = self.cloudWatchLogGroupName { + try encodeContainer.encode(cloudWatchLogGroupName, forKey: .cloudWatchLogGroupName) + } + if let deployment = self.deployment { + try encodeContainer.encode(deployment.rawValue, forKey: .deployment) + } + if let s3LogBucket = self.s3LogBucket { + try encodeContainer.encode(s3LogBucket, forKey: .s3LogBucket) + } + if let s3OutputKeyPrefix = self.s3OutputKeyPrefix { + try encodeContainer.encode(s3OutputKeyPrefix, forKey: .s3OutputKeyPrefix) + } + if let ssmDocuments = ssmDocuments { + var ssmDocumentsContainer = encodeContainer.nestedUnkeyedContainer(forKey: .ssmDocuments) + for ssmdocument0 in ssmDocuments { + try ssmDocumentsContainer.encode(ssmdocument0) + } + } + } + + public init(from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let deploymentDecoded = try containerValues.decodeIfPresent(MgnClientTypes.PostLaunchActionsDeploymentType.self, forKey: .deployment) + deployment = deploymentDecoded + let s3LogBucketDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .s3LogBucket) + s3LogBucket = s3LogBucketDecoded + let s3OutputKeyPrefixDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .s3OutputKeyPrefix) + s3OutputKeyPrefix = s3OutputKeyPrefixDecoded + let cloudWatchLogGroupNameDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .cloudWatchLogGroupName) + cloudWatchLogGroupName = cloudWatchLogGroupNameDecoded + let ssmDocumentsContainer = try containerValues.decodeIfPresent([MgnClientTypes.SsmDocument?].self, forKey: .ssmDocuments) + var ssmDocumentsDecoded0:[MgnClientTypes.SsmDocument]? = nil + if let ssmDocumentsContainer = ssmDocumentsContainer { + ssmDocumentsDecoded0 = [MgnClientTypes.SsmDocument]() + for structure0 in ssmDocumentsContainer { + if let structure0 = structure0 { + ssmDocumentsDecoded0?.append(structure0) + } + } + } + ssmDocuments = ssmDocumentsDecoded0 + } +} + +extension MgnClientTypes { /// Post Launch Actions to executed on the Test or Cutover instance. public struct PostLaunchActions: Swift.Equatable { /// AWS Systems Manager Command's CloudWatch log group name. @@ -10828,6 +11575,7 @@ extension MgnClientTypes { extension PutSourceServerActionInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case actionID case actionName case active @@ -10845,6 +11593,9 @@ extension PutSourceServerActionInput: Swift.Encodable { public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let accountID = self.accountID { + try encodeContainer.encode(accountID, forKey: .accountID) + } if let actionID = self.actionID { try encodeContainer.encode(actionID, forKey: .actionID) } @@ -10903,6 +11654,8 @@ extension PutSourceServerActionInput: ClientRuntime.URLPathProvider { } public struct PutSourceServerActionInput: Swift.Equatable { + /// Source server post migration custom account ID. + public var accountID: Swift.String? /// Source server post migration custom action ID. /// This member is required. public var actionID: Swift.String? @@ -10936,6 +11689,7 @@ public struct PutSourceServerActionInput: Swift.Equatable { public var timeoutSeconds: Swift.Int public init( + accountID: Swift.String? = nil, actionID: Swift.String? = nil, actionName: Swift.String? = nil, active: Swift.Bool? = nil, @@ -10951,6 +11705,7 @@ public struct PutSourceServerActionInput: Swift.Equatable { timeoutSeconds: Swift.Int = 0 ) { + self.accountID = accountID self.actionID = actionID self.actionName = actionName self.active = active @@ -10981,10 +11736,12 @@ struct PutSourceServerActionInputBody: Swift.Equatable { let externalParameters: [Swift.String:MgnClientTypes.SsmExternalParameter]? let description: Swift.String? let category: MgnClientTypes.ActionCategory? + let accountID: Swift.String? } extension PutSourceServerActionInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case actionID case actionName case active @@ -11053,6 +11810,8 @@ extension PutSourceServerActionInputBody: Swift.Decodable { description = descriptionDecoded let categoryDecoded = try containerValues.decodeIfPresent(MgnClientTypes.ActionCategory.self, forKey: .category) category = categoryDecoded + let accountIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .accountID) + accountID = accountIDDecoded } } @@ -11688,12 +12447,16 @@ extension PutTemplateActionOutputResponseBody: Swift.Decodable { extension RemoveSourceServerActionInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case actionID case sourceServerID } public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let accountID = self.accountID { + try encodeContainer.encode(accountID, forKey: .accountID) + } if let actionID = self.actionID { try encodeContainer.encode(actionID, forKey: .actionID) } @@ -11710,6 +12473,8 @@ extension RemoveSourceServerActionInput: ClientRuntime.URLPathProvider { } public struct RemoveSourceServerActionInput: Swift.Equatable { + /// Source server post migration account ID. + public var accountID: Swift.String? /// Source server post migration custom action ID to remove. /// This member is required. public var actionID: Swift.String? @@ -11718,10 +12483,12 @@ public struct RemoveSourceServerActionInput: Swift.Equatable { public var sourceServerID: Swift.String? public init( + accountID: Swift.String? = nil, actionID: Swift.String? = nil, sourceServerID: Swift.String? = nil ) { + self.accountID = accountID self.actionID = actionID self.sourceServerID = sourceServerID } @@ -11730,10 +12497,12 @@ public struct RemoveSourceServerActionInput: Swift.Equatable { struct RemoveSourceServerActionInputBody: Swift.Equatable { let sourceServerID: Swift.String? let actionID: Swift.String? + let accountID: Swift.String? } extension RemoveSourceServerActionInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case actionID case sourceServerID } @@ -11744,6 +12513,8 @@ extension RemoveSourceServerActionInputBody: Swift.Decodable { sourceServerID = sourceServerIDDecoded let actionIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .actionID) actionID = actionIDDecoded + let accountIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .accountID) + accountID = accountIDDecoded } } @@ -12095,6 +12866,7 @@ extension MgnClientTypes.ReplicationConfigurationTemplate: Swift.Codable { case stagingAreaTags case tags case useDedicatedReplicationServer + case useFipsEndpoint } public func encode(to encoder: Swift.Encoder) throws { @@ -12153,6 +12925,9 @@ extension MgnClientTypes.ReplicationConfigurationTemplate: Swift.Codable { if let useDedicatedReplicationServer = self.useDedicatedReplicationServer { try encodeContainer.encode(useDedicatedReplicationServer, forKey: .useDedicatedReplicationServer) } + if let useFipsEndpoint = self.useFipsEndpoint { + try encodeContainer.encode(useFipsEndpoint, forKey: .useFipsEndpoint) + } } public init(from decoder: Swift.Decoder) throws { @@ -12203,6 +12978,8 @@ extension MgnClientTypes.ReplicationConfigurationTemplate: Swift.Codable { } } stagingAreaTags = stagingAreaTagsDecoded0 + let useFipsEndpointDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .useFipsEndpoint) + useFipsEndpoint = useFipsEndpointDecoded let tagsContainer = try containerValues.decodeIfPresent([Swift.String: Swift.String?].self, forKey: .tags) var tagsDecoded0: [Swift.String:Swift.String]? = nil if let tagsContainer = tagsContainer { @@ -12219,7 +12996,7 @@ extension MgnClientTypes.ReplicationConfigurationTemplate: Swift.Codable { extension MgnClientTypes.ReplicationConfigurationTemplate: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "ReplicationConfigurationTemplate(arn: \(Swift.String(describing: arn)), associateDefaultSecurityGroup: \(Swift.String(describing: associateDefaultSecurityGroup)), bandwidthThrottling: \(Swift.String(describing: bandwidthThrottling)), createPublicIP: \(Swift.String(describing: createPublicIP)), dataPlaneRouting: \(Swift.String(describing: dataPlaneRouting)), defaultLargeStagingDiskType: \(Swift.String(describing: defaultLargeStagingDiskType)), ebsEncryption: \(Swift.String(describing: ebsEncryption)), ebsEncryptionKeyArn: \(Swift.String(describing: ebsEncryptionKeyArn)), replicationConfigurationTemplateID: \(Swift.String(describing: replicationConfigurationTemplateID)), replicationServerInstanceType: \(Swift.String(describing: replicationServerInstanceType)), replicationServersSecurityGroupsIDs: \(Swift.String(describing: replicationServersSecurityGroupsIDs)), stagingAreaSubnetId: \(Swift.String(describing: stagingAreaSubnetId)), useDedicatedReplicationServer: \(Swift.String(describing: useDedicatedReplicationServer)), stagingAreaTags: \"CONTENT_REDACTED\", tags: \"CONTENT_REDACTED\")"} + "ReplicationConfigurationTemplate(arn: \(Swift.String(describing: arn)), associateDefaultSecurityGroup: \(Swift.String(describing: associateDefaultSecurityGroup)), bandwidthThrottling: \(Swift.String(describing: bandwidthThrottling)), createPublicIP: \(Swift.String(describing: createPublicIP)), dataPlaneRouting: \(Swift.String(describing: dataPlaneRouting)), defaultLargeStagingDiskType: \(Swift.String(describing: defaultLargeStagingDiskType)), ebsEncryption: \(Swift.String(describing: ebsEncryption)), ebsEncryptionKeyArn: \(Swift.String(describing: ebsEncryptionKeyArn)), replicationConfigurationTemplateID: \(Swift.String(describing: replicationConfigurationTemplateID)), replicationServerInstanceType: \(Swift.String(describing: replicationServerInstanceType)), replicationServersSecurityGroupsIDs: \(Swift.String(describing: replicationServersSecurityGroupsIDs)), stagingAreaSubnetId: \(Swift.String(describing: stagingAreaSubnetId)), useDedicatedReplicationServer: \(Swift.String(describing: useDedicatedReplicationServer)), useFipsEndpoint: \(Swift.String(describing: useFipsEndpoint)), stagingAreaTags: \"CONTENT_REDACTED\", tags: \"CONTENT_REDACTED\")"} } extension MgnClientTypes { @@ -12255,6 +13032,8 @@ extension MgnClientTypes { public var tags: [Swift.String:Swift.String]? /// Replication Configuration template use Dedicated Replication Server. public var useDedicatedReplicationServer: Swift.Bool? + /// Replication Configuration template use Fips Endpoint. + public var useFipsEndpoint: Swift.Bool? public init( arn: Swift.String? = nil, @@ -12271,7 +13050,8 @@ extension MgnClientTypes { stagingAreaSubnetId: Swift.String? = nil, stagingAreaTags: [Swift.String:Swift.String]? = nil, tags: [Swift.String:Swift.String]? = nil, - useDedicatedReplicationServer: Swift.Bool? = nil + useDedicatedReplicationServer: Swift.Bool? = nil, + useFipsEndpoint: Swift.Bool? = nil ) { self.arn = arn @@ -12289,6 +13069,7 @@ extension MgnClientTypes { self.stagingAreaTags = stagingAreaTags self.tags = tags self.useDedicatedReplicationServer = useDedicatedReplicationServer + self.useFipsEndpoint = useFipsEndpoint } } @@ -12410,13 +13191,266 @@ extension ResourceNotFoundExceptionBody: Swift.Decodable { } } +extension ResumeReplicationInput: Swift.Encodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID + case sourceServerID + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let accountID = self.accountID { + try encodeContainer.encode(accountID, forKey: .accountID) + } + if let sourceServerID = self.sourceServerID { + try encodeContainer.encode(sourceServerID, forKey: .sourceServerID) + } + } +} + +extension ResumeReplicationInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + return "/ResumeReplication" + } +} + +public struct ResumeReplicationInput: Swift.Equatable { + /// Resume Replication Request account ID. + public var accountID: Swift.String? + /// Resume Replication Request source server ID. + /// This member is required. + public var sourceServerID: Swift.String? + + public init( + accountID: Swift.String? = nil, + sourceServerID: Swift.String? = nil + ) + { + self.accountID = accountID + self.sourceServerID = sourceServerID + } +} + +struct ResumeReplicationInputBody: Swift.Equatable { + let sourceServerID: Swift.String? + let accountID: Swift.String? +} + +extension ResumeReplicationInputBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID + case sourceServerID + } + + public init(from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let sourceServerIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .sourceServerID) + sourceServerID = sourceServerIDDecoded + let accountIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .accountID) + accountID = accountIDDecoded + } +} + +public enum ResumeReplicationOutputError: ClientRuntime.HttpResponseErrorBinding { + public static func makeError(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) async throws -> Swift.Error { + let restJSONError = try await AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.requestId + switch restJSONError.errorType { + case "ConflictException": return try await ConflictException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "ResourceNotFoundException": return try await ResourceNotFoundException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "ServiceQuotaExceededException": return try await ServiceQuotaExceededException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "UninitializedAccountException": return try await UninitializedAccountException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "ValidationException": return try await ValidationException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + default: return try await AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(httpResponse: httpResponse, message: restJSONError.errorMessage, requestID: requestID, typeName: restJSONError.errorType) + } + } +} + +extension ResumeReplicationOutputResponse: Swift.CustomDebugStringConvertible { + public var debugDescription: Swift.String { + "ResumeReplicationOutputResponse(applicationID: \(Swift.String(describing: applicationID)), arn: \(Swift.String(describing: arn)), dataReplicationInfo: \(Swift.String(describing: dataReplicationInfo)), fqdnForActionFramework: \(Swift.String(describing: fqdnForActionFramework)), isArchived: \(Swift.String(describing: isArchived)), launchedInstance: \(Swift.String(describing: launchedInstance)), lifeCycle: \(Swift.String(describing: lifeCycle)), replicationType: \(Swift.String(describing: replicationType)), sourceProperties: \(Swift.String(describing: sourceProperties)), sourceServerID: \(Swift.String(describing: sourceServerID)), userProvidedID: \(Swift.String(describing: userProvidedID)), vcenterClientID: \(Swift.String(describing: vcenterClientID)), tags: \"CONTENT_REDACTED\")"} +} + +extension ResumeReplicationOutputResponse: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) async throws { + if let data = try await httpResponse.body.readData(), + let responseDecoder = decoder { + let output: ResumeReplicationOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.applicationID = output.applicationID + self.arn = output.arn + self.dataReplicationInfo = output.dataReplicationInfo + self.fqdnForActionFramework = output.fqdnForActionFramework + self.isArchived = output.isArchived + self.launchedInstance = output.launchedInstance + self.lifeCycle = output.lifeCycle + self.replicationType = output.replicationType + self.sourceProperties = output.sourceProperties + self.sourceServerID = output.sourceServerID + self.tags = output.tags + self.userProvidedID = output.userProvidedID + self.vcenterClientID = output.vcenterClientID + } else { + self.applicationID = nil + self.arn = nil + self.dataReplicationInfo = nil + self.fqdnForActionFramework = nil + self.isArchived = nil + self.launchedInstance = nil + self.lifeCycle = nil + self.replicationType = nil + self.sourceProperties = nil + self.sourceServerID = nil + self.tags = nil + self.userProvidedID = nil + self.vcenterClientID = nil + } + } +} + +public struct ResumeReplicationOutputResponse: Swift.Equatable { + /// Source server application ID. + public var applicationID: Swift.String? + /// Source server ARN. + public var arn: Swift.String? + /// Source server data replication info. + public var dataReplicationInfo: MgnClientTypes.DataReplicationInfo? + /// Source server fqdn for action framework. + public var fqdnForActionFramework: Swift.String? + /// Source server archived status. + public var isArchived: Swift.Bool? + /// Source server launched instance. + public var launchedInstance: MgnClientTypes.LaunchedInstance? + /// Source server lifecycle state. + public var lifeCycle: MgnClientTypes.LifeCycle? + /// Source server replication type. + public var replicationType: MgnClientTypes.ReplicationType? + /// Source server properties. + public var sourceProperties: MgnClientTypes.SourceProperties? + /// Source server ID. + public var sourceServerID: Swift.String? + /// Source server Tags. + public var tags: [Swift.String:Swift.String]? + /// Source server user provided ID. + public var userProvidedID: Swift.String? + /// Source server vCenter client id. + public var vcenterClientID: Swift.String? + + public init( + applicationID: Swift.String? = nil, + arn: Swift.String? = nil, + dataReplicationInfo: MgnClientTypes.DataReplicationInfo? = nil, + fqdnForActionFramework: Swift.String? = nil, + isArchived: Swift.Bool? = nil, + launchedInstance: MgnClientTypes.LaunchedInstance? = nil, + lifeCycle: MgnClientTypes.LifeCycle? = nil, + replicationType: MgnClientTypes.ReplicationType? = nil, + sourceProperties: MgnClientTypes.SourceProperties? = nil, + sourceServerID: Swift.String? = nil, + tags: [Swift.String:Swift.String]? = nil, + userProvidedID: Swift.String? = nil, + vcenterClientID: Swift.String? = nil + ) + { + self.applicationID = applicationID + self.arn = arn + self.dataReplicationInfo = dataReplicationInfo + self.fqdnForActionFramework = fqdnForActionFramework + self.isArchived = isArchived + self.launchedInstance = launchedInstance + self.lifeCycle = lifeCycle + self.replicationType = replicationType + self.sourceProperties = sourceProperties + self.sourceServerID = sourceServerID + self.tags = tags + self.userProvidedID = userProvidedID + self.vcenterClientID = vcenterClientID + } +} + +struct ResumeReplicationOutputResponseBody: Swift.Equatable { + let sourceServerID: Swift.String? + let arn: Swift.String? + let isArchived: Swift.Bool? + let tags: [Swift.String:Swift.String]? + let launchedInstance: MgnClientTypes.LaunchedInstance? + let dataReplicationInfo: MgnClientTypes.DataReplicationInfo? + let lifeCycle: MgnClientTypes.LifeCycle? + let sourceProperties: MgnClientTypes.SourceProperties? + let replicationType: MgnClientTypes.ReplicationType? + let vcenterClientID: Swift.String? + let applicationID: Swift.String? + let userProvidedID: Swift.String? + let fqdnForActionFramework: Swift.String? +} + +extension ResumeReplicationOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case applicationID + case arn + case dataReplicationInfo + case fqdnForActionFramework + case isArchived + case launchedInstance + case lifeCycle + case replicationType + case sourceProperties + case sourceServerID + case tags + case userProvidedID + case vcenterClientID + } + + public init(from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let sourceServerIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .sourceServerID) + sourceServerID = sourceServerIDDecoded + let arnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .arn) + arn = arnDecoded + let isArchivedDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .isArchived) + isArchived = isArchivedDecoded + let tagsContainer = try containerValues.decodeIfPresent([Swift.String: Swift.String?].self, forKey: .tags) + var tagsDecoded0: [Swift.String:Swift.String]? = nil + if let tagsContainer = tagsContainer { + tagsDecoded0 = [Swift.String:Swift.String]() + for (key0, tagvalue0) in tagsContainer { + if let tagvalue0 = tagvalue0 { + tagsDecoded0?[key0] = tagvalue0 + } + } + } + tags = tagsDecoded0 + let launchedInstanceDecoded = try containerValues.decodeIfPresent(MgnClientTypes.LaunchedInstance.self, forKey: .launchedInstance) + launchedInstance = launchedInstanceDecoded + let dataReplicationInfoDecoded = try containerValues.decodeIfPresent(MgnClientTypes.DataReplicationInfo.self, forKey: .dataReplicationInfo) + dataReplicationInfo = dataReplicationInfoDecoded + let lifeCycleDecoded = try containerValues.decodeIfPresent(MgnClientTypes.LifeCycle.self, forKey: .lifeCycle) + lifeCycle = lifeCycleDecoded + let sourcePropertiesDecoded = try containerValues.decodeIfPresent(MgnClientTypes.SourceProperties.self, forKey: .sourceProperties) + sourceProperties = sourcePropertiesDecoded + let replicationTypeDecoded = try containerValues.decodeIfPresent(MgnClientTypes.ReplicationType.self, forKey: .replicationType) + replicationType = replicationTypeDecoded + let vcenterClientIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .vcenterClientID) + vcenterClientID = vcenterClientIDDecoded + let applicationIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .applicationID) + applicationID = applicationIDDecoded + let userProvidedIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .userProvidedID) + userProvidedID = userProvidedIDDecoded + let fqdnForActionFrameworkDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .fqdnForActionFramework) + fqdnForActionFramework = fqdnForActionFrameworkDecoded + } +} + extension RetryDataReplicationInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case sourceServerID } public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let accountID = self.accountID { + try encodeContainer.encode(accountID, forKey: .accountID) + } if let sourceServerID = self.sourceServerID { try encodeContainer.encode(sourceServerID, forKey: .sourceServerID) } @@ -12430,24 +13464,30 @@ extension RetryDataReplicationInput: ClientRuntime.URLPathProvider { } public struct RetryDataReplicationInput: Swift.Equatable { + /// Retry data replication for Account ID. + public var accountID: Swift.String? /// Retry data replication for Source Server ID. /// This member is required. public var sourceServerID: Swift.String? public init( + accountID: Swift.String? = nil, sourceServerID: Swift.String? = nil ) { + self.accountID = accountID self.sourceServerID = sourceServerID } } struct RetryDataReplicationInputBody: Swift.Equatable { let sourceServerID: Swift.String? + let accountID: Swift.String? } extension RetryDataReplicationInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case sourceServerID } @@ -12455,6 +13495,8 @@ extension RetryDataReplicationInputBody: Swift.Decodable { let containerValues = try decoder.container(keyedBy: CodingKeys.self) let sourceServerIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .sourceServerID) sourceServerID = sourceServerIDDecoded + let accountIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .accountID) + accountID = accountIDDecoded } } @@ -13621,17 +14663,21 @@ extension MgnClientTypes { extension StartCutoverInput: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "StartCutoverInput(sourceServerIDs: \(Swift.String(describing: sourceServerIDs)), tags: \"CONTENT_REDACTED\")"} + "StartCutoverInput(accountID: \(Swift.String(describing: accountID)), sourceServerIDs: \(Swift.String(describing: sourceServerIDs)), tags: \"CONTENT_REDACTED\")"} } extension StartCutoverInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case sourceServerIDs case tags } public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let accountID = self.accountID { + try encodeContainer.encode(accountID, forKey: .accountID) + } if let sourceServerIDs = sourceServerIDs { var sourceServerIDsContainer = encodeContainer.nestedUnkeyedContainer(forKey: .sourceServerIDs) for sourceserverid0 in sourceServerIDs { @@ -13654,6 +14700,8 @@ extension StartCutoverInput: ClientRuntime.URLPathProvider { } public struct StartCutoverInput: Swift.Equatable { + /// Start Cutover by Account IDs + public var accountID: Swift.String? /// Start Cutover by Source Server IDs. /// This member is required. public var sourceServerIDs: [Swift.String]? @@ -13661,10 +14709,12 @@ public struct StartCutoverInput: Swift.Equatable { public var tags: [Swift.String:Swift.String]? public init( + accountID: Swift.String? = nil, sourceServerIDs: [Swift.String]? = nil, tags: [Swift.String:Swift.String]? = nil ) { + self.accountID = accountID self.sourceServerIDs = sourceServerIDs self.tags = tags } @@ -13673,10 +14723,12 @@ public struct StartCutoverInput: Swift.Equatable { struct StartCutoverInputBody: Swift.Equatable { let sourceServerIDs: [Swift.String]? let tags: [Swift.String:Swift.String]? + let accountID: Swift.String? } extension StartCutoverInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case sourceServerIDs case tags } @@ -13705,6 +14757,8 @@ extension StartCutoverInputBody: Swift.Decodable { } } tags = tagsDecoded0 + let accountIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .accountID) + accountID = accountIDDecoded } } @@ -14008,11 +15062,15 @@ extension StartImportOutputResponseBody: Swift.Decodable { extension StartReplicationInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case sourceServerID } public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let accountID = self.accountID { + try encodeContainer.encode(accountID, forKey: .accountID) + } if let sourceServerID = self.sourceServerID { try encodeContainer.encode(sourceServerID, forKey: .sourceServerID) } @@ -14026,24 +15084,30 @@ extension StartReplicationInput: ClientRuntime.URLPathProvider { } public struct StartReplicationInput: Swift.Equatable { + /// Account ID on which to start replication. + public var accountID: Swift.String? /// ID of source server on which to start replication. /// This member is required. public var sourceServerID: Swift.String? public init( + accountID: Swift.String? = nil, sourceServerID: Swift.String? = nil ) { + self.accountID = accountID self.sourceServerID = sourceServerID } } struct StartReplicationInputBody: Swift.Equatable { let sourceServerID: Swift.String? + let accountID: Swift.String? } extension StartReplicationInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case sourceServerID } @@ -14051,6 +15115,8 @@ extension StartReplicationInputBody: Swift.Decodable { let containerValues = try decoder.container(keyedBy: CodingKeys.self) let sourceServerIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .sourceServerID) sourceServerID = sourceServerIDDecoded + let accountIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .accountID) + accountID = accountIDDecoded } } @@ -14245,17 +15311,21 @@ extension StartReplicationOutputResponseBody: Swift.Decodable { extension StartTestInput: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "StartTestInput(sourceServerIDs: \(Swift.String(describing: sourceServerIDs)), tags: \"CONTENT_REDACTED\")"} + "StartTestInput(accountID: \(Swift.String(describing: accountID)), sourceServerIDs: \(Swift.String(describing: sourceServerIDs)), tags: \"CONTENT_REDACTED\")"} } extension StartTestInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case sourceServerIDs case tags } public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let accountID = self.accountID { + try encodeContainer.encode(accountID, forKey: .accountID) + } if let sourceServerIDs = sourceServerIDs { var sourceServerIDsContainer = encodeContainer.nestedUnkeyedContainer(forKey: .sourceServerIDs) for sourceserverid0 in sourceServerIDs { @@ -14278,6 +15348,8 @@ extension StartTestInput: ClientRuntime.URLPathProvider { } public struct StartTestInput: Swift.Equatable { + /// Start Test for Account ID. + public var accountID: Swift.String? /// Start Test for Source Server IDs. /// This member is required. public var sourceServerIDs: [Swift.String]? @@ -14285,10 +15357,12 @@ public struct StartTestInput: Swift.Equatable { public var tags: [Swift.String:Swift.String]? public init( + accountID: Swift.String? = nil, sourceServerIDs: [Swift.String]? = nil, tags: [Swift.String:Swift.String]? = nil ) { + self.accountID = accountID self.sourceServerIDs = sourceServerIDs self.tags = tags } @@ -14297,10 +15371,12 @@ public struct StartTestInput: Swift.Equatable { struct StartTestInputBody: Swift.Equatable { let sourceServerIDs: [Swift.String]? let tags: [Swift.String:Swift.String]? + let accountID: Swift.String? } extension StartTestInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case sourceServerIDs case tags } @@ -14329,6 +15405,8 @@ extension StartTestInputBody: Swift.Decodable { } } tags = tagsDecoded0 + let accountIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .accountID) + accountID = accountIDDecoded } } @@ -14385,6 +15463,255 @@ extension StartTestOutputResponseBody: Swift.Decodable { } } +extension StopReplicationInput: Swift.Encodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID + case sourceServerID + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let accountID = self.accountID { + try encodeContainer.encode(accountID, forKey: .accountID) + } + if let sourceServerID = self.sourceServerID { + try encodeContainer.encode(sourceServerID, forKey: .sourceServerID) + } + } +} + +extension StopReplicationInput: ClientRuntime.URLPathProvider { + public var urlPath: Swift.String? { + return "/StopReplication" + } +} + +public struct StopReplicationInput: Swift.Equatable { + /// Stop Replication Request account ID. + public var accountID: Swift.String? + /// Stop Replication Request source server ID. + /// This member is required. + public var sourceServerID: Swift.String? + + public init( + accountID: Swift.String? = nil, + sourceServerID: Swift.String? = nil + ) + { + self.accountID = accountID + self.sourceServerID = sourceServerID + } +} + +struct StopReplicationInputBody: Swift.Equatable { + let sourceServerID: Swift.String? + let accountID: Swift.String? +} + +extension StopReplicationInputBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID + case sourceServerID + } + + public init(from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let sourceServerIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .sourceServerID) + sourceServerID = sourceServerIDDecoded + let accountIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .accountID) + accountID = accountIDDecoded + } +} + +public enum StopReplicationOutputError: ClientRuntime.HttpResponseErrorBinding { + public static func makeError(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) async throws -> Swift.Error { + let restJSONError = try await AWSClientRuntime.RestJSONError(httpResponse: httpResponse) + let requestID = httpResponse.requestId + switch restJSONError.errorType { + case "ConflictException": return try await ConflictException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "ResourceNotFoundException": return try await ResourceNotFoundException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "ServiceQuotaExceededException": return try await ServiceQuotaExceededException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "UninitializedAccountException": return try await UninitializedAccountException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + case "ValidationException": return try await ValidationException(httpResponse: httpResponse, decoder: decoder, message: restJSONError.errorMessage, requestID: requestID) + default: return try await AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(httpResponse: httpResponse, message: restJSONError.errorMessage, requestID: requestID, typeName: restJSONError.errorType) + } + } +} + +extension StopReplicationOutputResponse: Swift.CustomDebugStringConvertible { + public var debugDescription: Swift.String { + "StopReplicationOutputResponse(applicationID: \(Swift.String(describing: applicationID)), arn: \(Swift.String(describing: arn)), dataReplicationInfo: \(Swift.String(describing: dataReplicationInfo)), fqdnForActionFramework: \(Swift.String(describing: fqdnForActionFramework)), isArchived: \(Swift.String(describing: isArchived)), launchedInstance: \(Swift.String(describing: launchedInstance)), lifeCycle: \(Swift.String(describing: lifeCycle)), replicationType: \(Swift.String(describing: replicationType)), sourceProperties: \(Swift.String(describing: sourceProperties)), sourceServerID: \(Swift.String(describing: sourceServerID)), userProvidedID: \(Swift.String(describing: userProvidedID)), vcenterClientID: \(Swift.String(describing: vcenterClientID)), tags: \"CONTENT_REDACTED\")"} +} + +extension StopReplicationOutputResponse: ClientRuntime.HttpResponseBinding { + public init(httpResponse: ClientRuntime.HttpResponse, decoder: ClientRuntime.ResponseDecoder? = nil) async throws { + if let data = try await httpResponse.body.readData(), + let responseDecoder = decoder { + let output: StopReplicationOutputResponseBody = try responseDecoder.decode(responseBody: data) + self.applicationID = output.applicationID + self.arn = output.arn + self.dataReplicationInfo = output.dataReplicationInfo + self.fqdnForActionFramework = output.fqdnForActionFramework + self.isArchived = output.isArchived + self.launchedInstance = output.launchedInstance + self.lifeCycle = output.lifeCycle + self.replicationType = output.replicationType + self.sourceProperties = output.sourceProperties + self.sourceServerID = output.sourceServerID + self.tags = output.tags + self.userProvidedID = output.userProvidedID + self.vcenterClientID = output.vcenterClientID + } else { + self.applicationID = nil + self.arn = nil + self.dataReplicationInfo = nil + self.fqdnForActionFramework = nil + self.isArchived = nil + self.launchedInstance = nil + self.lifeCycle = nil + self.replicationType = nil + self.sourceProperties = nil + self.sourceServerID = nil + self.tags = nil + self.userProvidedID = nil + self.vcenterClientID = nil + } + } +} + +public struct StopReplicationOutputResponse: Swift.Equatable { + /// Source server application ID. + public var applicationID: Swift.String? + /// Source server ARN. + public var arn: Swift.String? + /// Source server data replication info. + public var dataReplicationInfo: MgnClientTypes.DataReplicationInfo? + /// Source server fqdn for action framework. + public var fqdnForActionFramework: Swift.String? + /// Source server archived status. + public var isArchived: Swift.Bool? + /// Source server launched instance. + public var launchedInstance: MgnClientTypes.LaunchedInstance? + /// Source server lifecycle state. + public var lifeCycle: MgnClientTypes.LifeCycle? + /// Source server replication type. + public var replicationType: MgnClientTypes.ReplicationType? + /// Source server properties. + public var sourceProperties: MgnClientTypes.SourceProperties? + /// Source server ID. + public var sourceServerID: Swift.String? + /// Source server Tags. + public var tags: [Swift.String:Swift.String]? + /// Source server user provided ID. + public var userProvidedID: Swift.String? + /// Source server vCenter client id. + public var vcenterClientID: Swift.String? + + public init( + applicationID: Swift.String? = nil, + arn: Swift.String? = nil, + dataReplicationInfo: MgnClientTypes.DataReplicationInfo? = nil, + fqdnForActionFramework: Swift.String? = nil, + isArchived: Swift.Bool? = nil, + launchedInstance: MgnClientTypes.LaunchedInstance? = nil, + lifeCycle: MgnClientTypes.LifeCycle? = nil, + replicationType: MgnClientTypes.ReplicationType? = nil, + sourceProperties: MgnClientTypes.SourceProperties? = nil, + sourceServerID: Swift.String? = nil, + tags: [Swift.String:Swift.String]? = nil, + userProvidedID: Swift.String? = nil, + vcenterClientID: Swift.String? = nil + ) + { + self.applicationID = applicationID + self.arn = arn + self.dataReplicationInfo = dataReplicationInfo + self.fqdnForActionFramework = fqdnForActionFramework + self.isArchived = isArchived + self.launchedInstance = launchedInstance + self.lifeCycle = lifeCycle + self.replicationType = replicationType + self.sourceProperties = sourceProperties + self.sourceServerID = sourceServerID + self.tags = tags + self.userProvidedID = userProvidedID + self.vcenterClientID = vcenterClientID + } +} + +struct StopReplicationOutputResponseBody: Swift.Equatable { + let sourceServerID: Swift.String? + let arn: Swift.String? + let isArchived: Swift.Bool? + let tags: [Swift.String:Swift.String]? + let launchedInstance: MgnClientTypes.LaunchedInstance? + let dataReplicationInfo: MgnClientTypes.DataReplicationInfo? + let lifeCycle: MgnClientTypes.LifeCycle? + let sourceProperties: MgnClientTypes.SourceProperties? + let replicationType: MgnClientTypes.ReplicationType? + let vcenterClientID: Swift.String? + let applicationID: Swift.String? + let userProvidedID: Swift.String? + let fqdnForActionFramework: Swift.String? +} + +extension StopReplicationOutputResponseBody: Swift.Decodable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case applicationID + case arn + case dataReplicationInfo + case fqdnForActionFramework + case isArchived + case launchedInstance + case lifeCycle + case replicationType + case sourceProperties + case sourceServerID + case tags + case userProvidedID + case vcenterClientID + } + + public init(from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let sourceServerIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .sourceServerID) + sourceServerID = sourceServerIDDecoded + let arnDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .arn) + arn = arnDecoded + let isArchivedDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .isArchived) + isArchived = isArchivedDecoded + let tagsContainer = try containerValues.decodeIfPresent([Swift.String: Swift.String?].self, forKey: .tags) + var tagsDecoded0: [Swift.String:Swift.String]? = nil + if let tagsContainer = tagsContainer { + tagsDecoded0 = [Swift.String:Swift.String]() + for (key0, tagvalue0) in tagsContainer { + if let tagvalue0 = tagvalue0 { + tagsDecoded0?[key0] = tagvalue0 + } + } + } + tags = tagsDecoded0 + let launchedInstanceDecoded = try containerValues.decodeIfPresent(MgnClientTypes.LaunchedInstance.self, forKey: .launchedInstance) + launchedInstance = launchedInstanceDecoded + let dataReplicationInfoDecoded = try containerValues.decodeIfPresent(MgnClientTypes.DataReplicationInfo.self, forKey: .dataReplicationInfo) + dataReplicationInfo = dataReplicationInfoDecoded + let lifeCycleDecoded = try containerValues.decodeIfPresent(MgnClientTypes.LifeCycle.self, forKey: .lifeCycle) + lifeCycle = lifeCycleDecoded + let sourcePropertiesDecoded = try containerValues.decodeIfPresent(MgnClientTypes.SourceProperties.self, forKey: .sourceProperties) + sourceProperties = sourcePropertiesDecoded + let replicationTypeDecoded = try containerValues.decodeIfPresent(MgnClientTypes.ReplicationType.self, forKey: .replicationType) + replicationType = replicationTypeDecoded + let vcenterClientIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .vcenterClientID) + vcenterClientID = vcenterClientIDDecoded + let applicationIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .applicationID) + applicationID = applicationIDDecoded + let userProvidedIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .userProvidedID) + userProvidedID = userProvidedIDDecoded + let fqdnForActionFrameworkDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .fqdnForActionFramework) + fqdnForActionFramework = fqdnForActionFrameworkDecoded + } +} + extension TagResourceInput: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { "TagResourceInput(resourceArn: \(Swift.String(describing: resourceArn)), tags: \"CONTENT_REDACTED\")"} @@ -14752,17 +16079,21 @@ extension MgnClientTypes { extension TerminateTargetInstancesInput: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "TerminateTargetInstancesInput(sourceServerIDs: \(Swift.String(describing: sourceServerIDs)), tags: \"CONTENT_REDACTED\")"} + "TerminateTargetInstancesInput(accountID: \(Swift.String(describing: accountID)), sourceServerIDs: \(Swift.String(describing: sourceServerIDs)), tags: \"CONTENT_REDACTED\")"} } extension TerminateTargetInstancesInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case sourceServerIDs case tags } public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let accountID = self.accountID { + try encodeContainer.encode(accountID, forKey: .accountID) + } if let sourceServerIDs = sourceServerIDs { var sourceServerIDsContainer = encodeContainer.nestedUnkeyedContainer(forKey: .sourceServerIDs) for sourceserverid0 in sourceServerIDs { @@ -14785,6 +16116,8 @@ extension TerminateTargetInstancesInput: ClientRuntime.URLPathProvider { } public struct TerminateTargetInstancesInput: Swift.Equatable { + /// Terminate Target instance by Account ID + public var accountID: Swift.String? /// Terminate Target instance by Source Server IDs. /// This member is required. public var sourceServerIDs: [Swift.String]? @@ -14792,10 +16125,12 @@ public struct TerminateTargetInstancesInput: Swift.Equatable { public var tags: [Swift.String:Swift.String]? public init( + accountID: Swift.String? = nil, sourceServerIDs: [Swift.String]? = nil, tags: [Swift.String:Swift.String]? = nil ) { + self.accountID = accountID self.sourceServerIDs = sourceServerIDs self.tags = tags } @@ -14804,10 +16139,12 @@ public struct TerminateTargetInstancesInput: Swift.Equatable { struct TerminateTargetInstancesInputBody: Swift.Equatable { let sourceServerIDs: [Swift.String]? let tags: [Swift.String:Swift.String]? + let accountID: Swift.String? } extension TerminateTargetInstancesInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case sourceServerIDs case tags } @@ -14836,6 +16173,8 @@ extension TerminateTargetInstancesInputBody: Swift.Decodable { } } tags = tagsDecoded0 + let accountIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .accountID) + accountID = accountIDDecoded } } @@ -14979,11 +16318,15 @@ extension ThrottlingExceptionBody: Swift.Decodable { extension UnarchiveApplicationInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case applicationID } public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let accountID = self.accountID { + try encodeContainer.encode(accountID, forKey: .accountID) + } if let applicationID = self.applicationID { try encodeContainer.encode(applicationID, forKey: .applicationID) } @@ -14997,24 +16340,30 @@ extension UnarchiveApplicationInput: ClientRuntime.URLPathProvider { } public struct UnarchiveApplicationInput: Swift.Equatable { + /// Account ID. + public var accountID: Swift.String? /// Application ID. /// This member is required. public var applicationID: Swift.String? public init( + accountID: Swift.String? = nil, applicationID: Swift.String? = nil ) { + self.accountID = accountID self.applicationID = applicationID } } struct UnarchiveApplicationInputBody: Swift.Equatable { let applicationID: Swift.String? + let accountID: Swift.String? } extension UnarchiveApplicationInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case applicationID } @@ -15022,6 +16371,8 @@ extension UnarchiveApplicationInputBody: Swift.Decodable { let containerValues = try decoder.container(keyedBy: CodingKeys.self) let applicationIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .applicationID) applicationID = applicationIDDecoded + let accountIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .accountID) + accountID = accountIDDecoded } } @@ -15184,11 +16535,15 @@ extension UnarchiveApplicationOutputResponseBody: Swift.Decodable { extension UnarchiveWaveInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case waveID } public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let accountID = self.accountID { + try encodeContainer.encode(accountID, forKey: .accountID) + } if let waveID = self.waveID { try encodeContainer.encode(waveID, forKey: .waveID) } @@ -15202,24 +16557,30 @@ extension UnarchiveWaveInput: ClientRuntime.URLPathProvider { } public struct UnarchiveWaveInput: Swift.Equatable { + /// Account ID. + public var accountID: Swift.String? /// Wave ID. /// This member is required. public var waveID: Swift.String? public init( + accountID: Swift.String? = nil, waveID: Swift.String? = nil ) { + self.accountID = accountID self.waveID = waveID } } struct UnarchiveWaveInputBody: Swift.Equatable { let waveID: Swift.String? + let accountID: Swift.String? } extension UnarchiveWaveInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case waveID } @@ -15227,6 +16588,8 @@ extension UnarchiveWaveInputBody: Swift.Decodable { let containerValues = try decoder.container(keyedBy: CodingKeys.self) let waveIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .waveID) waveID = waveIDDecoded + let accountIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .accountID) + accountID = accountIDDecoded } } @@ -15526,6 +16889,7 @@ public struct UntagResourceOutputResponse: Swift.Equatable { extension UpdateApplicationInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case applicationID case description case name @@ -15533,6 +16897,9 @@ extension UpdateApplicationInput: Swift.Encodable { public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let accountID = self.accountID { + try encodeContainer.encode(accountID, forKey: .accountID) + } if let applicationID = self.applicationID { try encodeContainer.encode(applicationID, forKey: .applicationID) } @@ -15552,6 +16919,8 @@ extension UpdateApplicationInput: ClientRuntime.URLPathProvider { } public struct UpdateApplicationInput: Swift.Equatable { + /// Account ID. + public var accountID: Swift.String? /// Application ID. /// This member is required. public var applicationID: Swift.String? @@ -15561,11 +16930,13 @@ public struct UpdateApplicationInput: Swift.Equatable { public var name: Swift.String? public init( + accountID: Swift.String? = nil, applicationID: Swift.String? = nil, description: Swift.String? = nil, name: Swift.String? = nil ) { + self.accountID = accountID self.applicationID = applicationID self.description = description self.name = name @@ -15576,10 +16947,12 @@ struct UpdateApplicationInputBody: Swift.Equatable { let applicationID: Swift.String? let name: Swift.String? let description: Swift.String? + let accountID: Swift.String? } extension UpdateApplicationInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case applicationID case description case name @@ -15593,6 +16966,8 @@ extension UpdateApplicationInputBody: Swift.Decodable { name = nameDecoded let descriptionDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .description) description = descriptionDecoded + let accountIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .accountID) + accountID = accountIDDecoded } } @@ -15755,6 +17130,7 @@ extension UpdateApplicationOutputResponseBody: Swift.Decodable { extension UpdateLaunchConfigurationInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case bootMode case copyPrivateIp case copyTags @@ -15770,6 +17146,9 @@ extension UpdateLaunchConfigurationInput: Swift.Encodable { public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let accountID = self.accountID { + try encodeContainer.encode(accountID, forKey: .accountID) + } if let bootMode = self.bootMode { try encodeContainer.encode(bootMode.rawValue, forKey: .bootMode) } @@ -15813,6 +17192,8 @@ extension UpdateLaunchConfigurationInput: ClientRuntime.URLPathProvider { } public struct UpdateLaunchConfigurationInput: Swift.Equatable { + /// Update Launch configuration Account ID. + public var accountID: Swift.String? /// Update Launch configuration boot mode request. public var bootMode: MgnClientTypes.BootMode? /// Update Launch configuration copy Private IP request. @@ -15838,6 +17219,7 @@ public struct UpdateLaunchConfigurationInput: Swift.Equatable { public var targetInstanceTypeRightSizingMethod: MgnClientTypes.TargetInstanceTypeRightSizingMethod? public init( + accountID: Swift.String? = nil, bootMode: MgnClientTypes.BootMode? = nil, copyPrivateIp: Swift.Bool? = nil, copyTags: Swift.Bool? = nil, @@ -15851,6 +17233,7 @@ public struct UpdateLaunchConfigurationInput: Swift.Equatable { targetInstanceTypeRightSizingMethod: MgnClientTypes.TargetInstanceTypeRightSizingMethod? = nil ) { + self.accountID = accountID self.bootMode = bootMode self.copyPrivateIp = copyPrivateIp self.copyTags = copyTags @@ -15877,10 +17260,12 @@ struct UpdateLaunchConfigurationInputBody: Swift.Equatable { let postLaunchActions: MgnClientTypes.PostLaunchActions? let enableMapAutoTagging: Swift.Bool? let mapAutoTaggingMpeID: Swift.String? + let accountID: Swift.String? } extension UpdateLaunchConfigurationInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case bootMode case copyPrivateIp case copyTags @@ -15918,6 +17303,8 @@ extension UpdateLaunchConfigurationInputBody: Swift.Decodable { enableMapAutoTagging = enableMapAutoTaggingDecoded let mapAutoTaggingMpeIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .mapAutoTaggingMpeID) mapAutoTaggingMpeID = mapAutoTaggingMpeIDDecoded + let accountIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .accountID) + accountID = accountIDDecoded } } @@ -16520,11 +17907,12 @@ extension UpdateLaunchConfigurationTemplateOutputResponseBody: Swift.Decodable { extension UpdateReplicationConfigurationInput: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "UpdateReplicationConfigurationInput(associateDefaultSecurityGroup: \(Swift.String(describing: associateDefaultSecurityGroup)), bandwidthThrottling: \(Swift.String(describing: bandwidthThrottling)), createPublicIP: \(Swift.String(describing: createPublicIP)), dataPlaneRouting: \(Swift.String(describing: dataPlaneRouting)), defaultLargeStagingDiskType: \(Swift.String(describing: defaultLargeStagingDiskType)), ebsEncryption: \(Swift.String(describing: ebsEncryption)), ebsEncryptionKeyArn: \(Swift.String(describing: ebsEncryptionKeyArn)), name: \(Swift.String(describing: name)), replicatedDisks: \(Swift.String(describing: replicatedDisks)), replicationServerInstanceType: \(Swift.String(describing: replicationServerInstanceType)), replicationServersSecurityGroupsIDs: \(Swift.String(describing: replicationServersSecurityGroupsIDs)), sourceServerID: \(Swift.String(describing: sourceServerID)), stagingAreaSubnetId: \(Swift.String(describing: stagingAreaSubnetId)), useDedicatedReplicationServer: \(Swift.String(describing: useDedicatedReplicationServer)), stagingAreaTags: \"CONTENT_REDACTED\")"} + "UpdateReplicationConfigurationInput(accountID: \(Swift.String(describing: accountID)), associateDefaultSecurityGroup: \(Swift.String(describing: associateDefaultSecurityGroup)), bandwidthThrottling: \(Swift.String(describing: bandwidthThrottling)), createPublicIP: \(Swift.String(describing: createPublicIP)), dataPlaneRouting: \(Swift.String(describing: dataPlaneRouting)), defaultLargeStagingDiskType: \(Swift.String(describing: defaultLargeStagingDiskType)), ebsEncryption: \(Swift.String(describing: ebsEncryption)), ebsEncryptionKeyArn: \(Swift.String(describing: ebsEncryptionKeyArn)), name: \(Swift.String(describing: name)), replicatedDisks: \(Swift.String(describing: replicatedDisks)), replicationServerInstanceType: \(Swift.String(describing: replicationServerInstanceType)), replicationServersSecurityGroupsIDs: \(Swift.String(describing: replicationServersSecurityGroupsIDs)), sourceServerID: \(Swift.String(describing: sourceServerID)), stagingAreaSubnetId: \(Swift.String(describing: stagingAreaSubnetId)), useDedicatedReplicationServer: \(Swift.String(describing: useDedicatedReplicationServer)), useFipsEndpoint: \(Swift.String(describing: useFipsEndpoint)), stagingAreaTags: \"CONTENT_REDACTED\")"} } extension UpdateReplicationConfigurationInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case associateDefaultSecurityGroup case bandwidthThrottling case createPublicIP @@ -16540,10 +17928,14 @@ extension UpdateReplicationConfigurationInput: Swift.Encodable { case stagingAreaSubnetId case stagingAreaTags case useDedicatedReplicationServer + case useFipsEndpoint } public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let accountID = self.accountID { + try encodeContainer.encode(accountID, forKey: .accountID) + } if let associateDefaultSecurityGroup = self.associateDefaultSecurityGroup { try encodeContainer.encode(associateDefaultSecurityGroup, forKey: .associateDefaultSecurityGroup) } @@ -16598,6 +17990,9 @@ extension UpdateReplicationConfigurationInput: Swift.Encodable { if let useDedicatedReplicationServer = self.useDedicatedReplicationServer { try encodeContainer.encode(useDedicatedReplicationServer, forKey: .useDedicatedReplicationServer) } + if let useFipsEndpoint = self.useFipsEndpoint { + try encodeContainer.encode(useFipsEndpoint, forKey: .useFipsEndpoint) + } } } @@ -16608,6 +18003,8 @@ extension UpdateReplicationConfigurationInput: ClientRuntime.URLPathProvider { } public struct UpdateReplicationConfigurationInput: Swift.Equatable { + /// Update replication configuration Account ID request. + public var accountID: Swift.String? /// Update replication configuration associate default Application Migration Service Security group request. public var associateDefaultSecurityGroup: Swift.Bool? /// Update replication configuration bandwidth throttling request. @@ -16639,8 +18036,11 @@ public struct UpdateReplicationConfigurationInput: Swift.Equatable { public var stagingAreaTags: [Swift.String:Swift.String]? /// Update replication configuration use dedicated Replication Server request. public var useDedicatedReplicationServer: Swift.Bool? + /// Update replication configuration use Fips Endpoint. + public var useFipsEndpoint: Swift.Bool? public init( + accountID: Swift.String? = nil, associateDefaultSecurityGroup: Swift.Bool? = nil, bandwidthThrottling: Swift.Int = 0, createPublicIP: Swift.Bool? = nil, @@ -16655,9 +18055,11 @@ public struct UpdateReplicationConfigurationInput: Swift.Equatable { sourceServerID: Swift.String? = nil, stagingAreaSubnetId: Swift.String? = nil, stagingAreaTags: [Swift.String:Swift.String]? = nil, - useDedicatedReplicationServer: Swift.Bool? = nil + useDedicatedReplicationServer: Swift.Bool? = nil, + useFipsEndpoint: Swift.Bool? = nil ) { + self.accountID = accountID self.associateDefaultSecurityGroup = associateDefaultSecurityGroup self.bandwidthThrottling = bandwidthThrottling self.createPublicIP = createPublicIP @@ -16673,6 +18075,7 @@ public struct UpdateReplicationConfigurationInput: Swift.Equatable { self.stagingAreaSubnetId = stagingAreaSubnetId self.stagingAreaTags = stagingAreaTags self.useDedicatedReplicationServer = useDedicatedReplicationServer + self.useFipsEndpoint = useFipsEndpoint } } @@ -16692,10 +18095,13 @@ struct UpdateReplicationConfigurationInputBody: Swift.Equatable { let dataPlaneRouting: MgnClientTypes.ReplicationConfigurationDataPlaneRouting? let createPublicIP: Swift.Bool? let stagingAreaTags: [Swift.String:Swift.String]? + let useFipsEndpoint: Swift.Bool? + let accountID: Swift.String? } extension UpdateReplicationConfigurationInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case associateDefaultSecurityGroup case bandwidthThrottling case createPublicIP @@ -16711,6 +18117,7 @@ extension UpdateReplicationConfigurationInputBody: Swift.Decodable { case stagingAreaSubnetId case stagingAreaTags case useDedicatedReplicationServer + case useFipsEndpoint } public init(from decoder: Swift.Decoder) throws { @@ -16772,6 +18179,10 @@ extension UpdateReplicationConfigurationInputBody: Swift.Decodable { } } stagingAreaTags = stagingAreaTagsDecoded0 + let useFipsEndpointDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .useFipsEndpoint) + useFipsEndpoint = useFipsEndpointDecoded + let accountIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .accountID) + accountID = accountIDDecoded } } @@ -16792,7 +18203,7 @@ public enum UpdateReplicationConfigurationOutputError: ClientRuntime.HttpRespons extension UpdateReplicationConfigurationOutputResponse: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "UpdateReplicationConfigurationOutputResponse(associateDefaultSecurityGroup: \(Swift.String(describing: associateDefaultSecurityGroup)), bandwidthThrottling: \(Swift.String(describing: bandwidthThrottling)), createPublicIP: \(Swift.String(describing: createPublicIP)), dataPlaneRouting: \(Swift.String(describing: dataPlaneRouting)), defaultLargeStagingDiskType: \(Swift.String(describing: defaultLargeStagingDiskType)), ebsEncryption: \(Swift.String(describing: ebsEncryption)), ebsEncryptionKeyArn: \(Swift.String(describing: ebsEncryptionKeyArn)), name: \(Swift.String(describing: name)), replicatedDisks: \(Swift.String(describing: replicatedDisks)), replicationServerInstanceType: \(Swift.String(describing: replicationServerInstanceType)), replicationServersSecurityGroupsIDs: \(Swift.String(describing: replicationServersSecurityGroupsIDs)), sourceServerID: \(Swift.String(describing: sourceServerID)), stagingAreaSubnetId: \(Swift.String(describing: stagingAreaSubnetId)), useDedicatedReplicationServer: \(Swift.String(describing: useDedicatedReplicationServer)), stagingAreaTags: \"CONTENT_REDACTED\")"} + "UpdateReplicationConfigurationOutputResponse(associateDefaultSecurityGroup: \(Swift.String(describing: associateDefaultSecurityGroup)), bandwidthThrottling: \(Swift.String(describing: bandwidthThrottling)), createPublicIP: \(Swift.String(describing: createPublicIP)), dataPlaneRouting: \(Swift.String(describing: dataPlaneRouting)), defaultLargeStagingDiskType: \(Swift.String(describing: defaultLargeStagingDiskType)), ebsEncryption: \(Swift.String(describing: ebsEncryption)), ebsEncryptionKeyArn: \(Swift.String(describing: ebsEncryptionKeyArn)), name: \(Swift.String(describing: name)), replicatedDisks: \(Swift.String(describing: replicatedDisks)), replicationServerInstanceType: \(Swift.String(describing: replicationServerInstanceType)), replicationServersSecurityGroupsIDs: \(Swift.String(describing: replicationServersSecurityGroupsIDs)), sourceServerID: \(Swift.String(describing: sourceServerID)), stagingAreaSubnetId: \(Swift.String(describing: stagingAreaSubnetId)), useDedicatedReplicationServer: \(Swift.String(describing: useDedicatedReplicationServer)), useFipsEndpoint: \(Swift.String(describing: useFipsEndpoint)), stagingAreaTags: \"CONTENT_REDACTED\")"} } extension UpdateReplicationConfigurationOutputResponse: ClientRuntime.HttpResponseBinding { @@ -16815,6 +18226,7 @@ extension UpdateReplicationConfigurationOutputResponse: ClientRuntime.HttpRespon self.stagingAreaSubnetId = output.stagingAreaSubnetId self.stagingAreaTags = output.stagingAreaTags self.useDedicatedReplicationServer = output.useDedicatedReplicationServer + self.useFipsEndpoint = output.useFipsEndpoint } else { self.associateDefaultSecurityGroup = nil self.bandwidthThrottling = 0 @@ -16831,6 +18243,7 @@ extension UpdateReplicationConfigurationOutputResponse: ClientRuntime.HttpRespon self.stagingAreaSubnetId = nil self.stagingAreaTags = nil self.useDedicatedReplicationServer = nil + self.useFipsEndpoint = nil } } } @@ -16866,6 +18279,8 @@ public struct UpdateReplicationConfigurationOutputResponse: Swift.Equatable { public var stagingAreaTags: [Swift.String:Swift.String]? /// Replication Configuration use Dedicated Replication Server. public var useDedicatedReplicationServer: Swift.Bool? + /// Replication Configuration use Fips Endpoint. + public var useFipsEndpoint: Swift.Bool? public init( associateDefaultSecurityGroup: Swift.Bool? = nil, @@ -16882,7 +18297,8 @@ public struct UpdateReplicationConfigurationOutputResponse: Swift.Equatable { sourceServerID: Swift.String? = nil, stagingAreaSubnetId: Swift.String? = nil, stagingAreaTags: [Swift.String:Swift.String]? = nil, - useDedicatedReplicationServer: Swift.Bool? = nil + useDedicatedReplicationServer: Swift.Bool? = nil, + useFipsEndpoint: Swift.Bool? = nil ) { self.associateDefaultSecurityGroup = associateDefaultSecurityGroup @@ -16900,6 +18316,7 @@ public struct UpdateReplicationConfigurationOutputResponse: Swift.Equatable { self.stagingAreaSubnetId = stagingAreaSubnetId self.stagingAreaTags = stagingAreaTags self.useDedicatedReplicationServer = useDedicatedReplicationServer + self.useFipsEndpoint = useFipsEndpoint } } @@ -16919,6 +18336,7 @@ struct UpdateReplicationConfigurationOutputResponseBody: Swift.Equatable { let dataPlaneRouting: MgnClientTypes.ReplicationConfigurationDataPlaneRouting? let createPublicIP: Swift.Bool? let stagingAreaTags: [Swift.String:Swift.String]? + let useFipsEndpoint: Swift.Bool? } extension UpdateReplicationConfigurationOutputResponseBody: Swift.Decodable { @@ -16938,6 +18356,7 @@ extension UpdateReplicationConfigurationOutputResponseBody: Swift.Decodable { case stagingAreaSubnetId case stagingAreaTags case useDedicatedReplicationServer + case useFipsEndpoint } public init(from decoder: Swift.Decoder) throws { @@ -16999,12 +18418,14 @@ extension UpdateReplicationConfigurationOutputResponseBody: Swift.Decodable { } } stagingAreaTags = stagingAreaTagsDecoded0 + let useFipsEndpointDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .useFipsEndpoint) + useFipsEndpoint = useFipsEndpointDecoded } } extension UpdateReplicationConfigurationTemplateInput: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "UpdateReplicationConfigurationTemplateInput(arn: \(Swift.String(describing: arn)), associateDefaultSecurityGroup: \(Swift.String(describing: associateDefaultSecurityGroup)), bandwidthThrottling: \(Swift.String(describing: bandwidthThrottling)), createPublicIP: \(Swift.String(describing: createPublicIP)), dataPlaneRouting: \(Swift.String(describing: dataPlaneRouting)), defaultLargeStagingDiskType: \(Swift.String(describing: defaultLargeStagingDiskType)), ebsEncryption: \(Swift.String(describing: ebsEncryption)), ebsEncryptionKeyArn: \(Swift.String(describing: ebsEncryptionKeyArn)), replicationConfigurationTemplateID: \(Swift.String(describing: replicationConfigurationTemplateID)), replicationServerInstanceType: \(Swift.String(describing: replicationServerInstanceType)), replicationServersSecurityGroupsIDs: \(Swift.String(describing: replicationServersSecurityGroupsIDs)), stagingAreaSubnetId: \(Swift.String(describing: stagingAreaSubnetId)), useDedicatedReplicationServer: \(Swift.String(describing: useDedicatedReplicationServer)), stagingAreaTags: \"CONTENT_REDACTED\")"} + "UpdateReplicationConfigurationTemplateInput(arn: \(Swift.String(describing: arn)), associateDefaultSecurityGroup: \(Swift.String(describing: associateDefaultSecurityGroup)), bandwidthThrottling: \(Swift.String(describing: bandwidthThrottling)), createPublicIP: \(Swift.String(describing: createPublicIP)), dataPlaneRouting: \(Swift.String(describing: dataPlaneRouting)), defaultLargeStagingDiskType: \(Swift.String(describing: defaultLargeStagingDiskType)), ebsEncryption: \(Swift.String(describing: ebsEncryption)), ebsEncryptionKeyArn: \(Swift.String(describing: ebsEncryptionKeyArn)), replicationConfigurationTemplateID: \(Swift.String(describing: replicationConfigurationTemplateID)), replicationServerInstanceType: \(Swift.String(describing: replicationServerInstanceType)), replicationServersSecurityGroupsIDs: \(Swift.String(describing: replicationServersSecurityGroupsIDs)), stagingAreaSubnetId: \(Swift.String(describing: stagingAreaSubnetId)), useDedicatedReplicationServer: \(Swift.String(describing: useDedicatedReplicationServer)), useFipsEndpoint: \(Swift.String(describing: useFipsEndpoint)), stagingAreaTags: \"CONTENT_REDACTED\")"} } extension UpdateReplicationConfigurationTemplateInput: Swift.Encodable { @@ -17023,6 +18444,7 @@ extension UpdateReplicationConfigurationTemplateInput: Swift.Encodable { case stagingAreaSubnetId case stagingAreaTags case useDedicatedReplicationServer + case useFipsEndpoint } public func encode(to encoder: Swift.Encoder) throws { @@ -17075,6 +18497,9 @@ extension UpdateReplicationConfigurationTemplateInput: Swift.Encodable { if let useDedicatedReplicationServer = self.useDedicatedReplicationServer { try encodeContainer.encode(useDedicatedReplicationServer, forKey: .useDedicatedReplicationServer) } + if let useFipsEndpoint = self.useFipsEndpoint { + try encodeContainer.encode(useFipsEndpoint, forKey: .useFipsEndpoint) + } } } @@ -17114,6 +18539,8 @@ public struct UpdateReplicationConfigurationTemplateInput: Swift.Equatable { public var stagingAreaTags: [Swift.String:Swift.String]? /// Update replication configuration template use dedicated Replication Server request. public var useDedicatedReplicationServer: Swift.Bool? + /// Update replication configuration template use Fips Endpoint request. + public var useFipsEndpoint: Swift.Bool? public init( arn: Swift.String? = nil, @@ -17129,7 +18556,8 @@ public struct UpdateReplicationConfigurationTemplateInput: Swift.Equatable { replicationServersSecurityGroupsIDs: [Swift.String]? = nil, stagingAreaSubnetId: Swift.String? = nil, stagingAreaTags: [Swift.String:Swift.String]? = nil, - useDedicatedReplicationServer: Swift.Bool? = nil + useDedicatedReplicationServer: Swift.Bool? = nil, + useFipsEndpoint: Swift.Bool? = nil ) { self.arn = arn @@ -17146,6 +18574,7 @@ public struct UpdateReplicationConfigurationTemplateInput: Swift.Equatable { self.stagingAreaSubnetId = stagingAreaSubnetId self.stagingAreaTags = stagingAreaTags self.useDedicatedReplicationServer = useDedicatedReplicationServer + self.useFipsEndpoint = useFipsEndpoint } } @@ -17164,6 +18593,7 @@ struct UpdateReplicationConfigurationTemplateInputBody: Swift.Equatable { let dataPlaneRouting: MgnClientTypes.ReplicationConfigurationDataPlaneRouting? let createPublicIP: Swift.Bool? let stagingAreaTags: [Swift.String:Swift.String]? + let useFipsEndpoint: Swift.Bool? } extension UpdateReplicationConfigurationTemplateInputBody: Swift.Decodable { @@ -17182,6 +18612,7 @@ extension UpdateReplicationConfigurationTemplateInputBody: Swift.Decodable { case stagingAreaSubnetId case stagingAreaTags case useDedicatedReplicationServer + case useFipsEndpoint } public init(from decoder: Swift.Decoder) throws { @@ -17232,6 +18663,8 @@ extension UpdateReplicationConfigurationTemplateInputBody: Swift.Decodable { } } stagingAreaTags = stagingAreaTagsDecoded0 + let useFipsEndpointDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .useFipsEndpoint) + useFipsEndpoint = useFipsEndpointDecoded } } @@ -17251,7 +18684,7 @@ public enum UpdateReplicationConfigurationTemplateOutputError: ClientRuntime.Htt extension UpdateReplicationConfigurationTemplateOutputResponse: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "UpdateReplicationConfigurationTemplateOutputResponse(arn: \(Swift.String(describing: arn)), associateDefaultSecurityGroup: \(Swift.String(describing: associateDefaultSecurityGroup)), bandwidthThrottling: \(Swift.String(describing: bandwidthThrottling)), createPublicIP: \(Swift.String(describing: createPublicIP)), dataPlaneRouting: \(Swift.String(describing: dataPlaneRouting)), defaultLargeStagingDiskType: \(Swift.String(describing: defaultLargeStagingDiskType)), ebsEncryption: \(Swift.String(describing: ebsEncryption)), ebsEncryptionKeyArn: \(Swift.String(describing: ebsEncryptionKeyArn)), replicationConfigurationTemplateID: \(Swift.String(describing: replicationConfigurationTemplateID)), replicationServerInstanceType: \(Swift.String(describing: replicationServerInstanceType)), replicationServersSecurityGroupsIDs: \(Swift.String(describing: replicationServersSecurityGroupsIDs)), stagingAreaSubnetId: \(Swift.String(describing: stagingAreaSubnetId)), useDedicatedReplicationServer: \(Swift.String(describing: useDedicatedReplicationServer)), stagingAreaTags: \"CONTENT_REDACTED\", tags: \"CONTENT_REDACTED\")"} + "UpdateReplicationConfigurationTemplateOutputResponse(arn: \(Swift.String(describing: arn)), associateDefaultSecurityGroup: \(Swift.String(describing: associateDefaultSecurityGroup)), bandwidthThrottling: \(Swift.String(describing: bandwidthThrottling)), createPublicIP: \(Swift.String(describing: createPublicIP)), dataPlaneRouting: \(Swift.String(describing: dataPlaneRouting)), defaultLargeStagingDiskType: \(Swift.String(describing: defaultLargeStagingDiskType)), ebsEncryption: \(Swift.String(describing: ebsEncryption)), ebsEncryptionKeyArn: \(Swift.String(describing: ebsEncryptionKeyArn)), replicationConfigurationTemplateID: \(Swift.String(describing: replicationConfigurationTemplateID)), replicationServerInstanceType: \(Swift.String(describing: replicationServerInstanceType)), replicationServersSecurityGroupsIDs: \(Swift.String(describing: replicationServersSecurityGroupsIDs)), stagingAreaSubnetId: \(Swift.String(describing: stagingAreaSubnetId)), useDedicatedReplicationServer: \(Swift.String(describing: useDedicatedReplicationServer)), useFipsEndpoint: \(Swift.String(describing: useFipsEndpoint)), stagingAreaTags: \"CONTENT_REDACTED\", tags: \"CONTENT_REDACTED\")"} } extension UpdateReplicationConfigurationTemplateOutputResponse: ClientRuntime.HttpResponseBinding { @@ -17274,6 +18707,7 @@ extension UpdateReplicationConfigurationTemplateOutputResponse: ClientRuntime.Ht self.stagingAreaTags = output.stagingAreaTags self.tags = output.tags self.useDedicatedReplicationServer = output.useDedicatedReplicationServer + self.useFipsEndpoint = output.useFipsEndpoint } else { self.arn = nil self.associateDefaultSecurityGroup = nil @@ -17290,6 +18724,7 @@ extension UpdateReplicationConfigurationTemplateOutputResponse: ClientRuntime.Ht self.stagingAreaTags = nil self.tags = nil self.useDedicatedReplicationServer = nil + self.useFipsEndpoint = nil } } } @@ -17326,6 +18761,8 @@ public struct UpdateReplicationConfigurationTemplateOutputResponse: Swift.Equata public var tags: [Swift.String:Swift.String]? /// Replication Configuration template use Dedicated Replication Server. public var useDedicatedReplicationServer: Swift.Bool? + /// Replication Configuration template use Fips Endpoint. + public var useFipsEndpoint: Swift.Bool? public init( arn: Swift.String? = nil, @@ -17342,7 +18779,8 @@ public struct UpdateReplicationConfigurationTemplateOutputResponse: Swift.Equata stagingAreaSubnetId: Swift.String? = nil, stagingAreaTags: [Swift.String:Swift.String]? = nil, tags: [Swift.String:Swift.String]? = nil, - useDedicatedReplicationServer: Swift.Bool? = nil + useDedicatedReplicationServer: Swift.Bool? = nil, + useFipsEndpoint: Swift.Bool? = nil ) { self.arn = arn @@ -17360,6 +18798,7 @@ public struct UpdateReplicationConfigurationTemplateOutputResponse: Swift.Equata self.stagingAreaTags = stagingAreaTags self.tags = tags self.useDedicatedReplicationServer = useDedicatedReplicationServer + self.useFipsEndpoint = useFipsEndpoint } } @@ -17378,6 +18817,7 @@ struct UpdateReplicationConfigurationTemplateOutputResponseBody: Swift.Equatable let dataPlaneRouting: MgnClientTypes.ReplicationConfigurationDataPlaneRouting? let createPublicIP: Swift.Bool? let stagingAreaTags: [Swift.String:Swift.String]? + let useFipsEndpoint: Swift.Bool? let tags: [Swift.String:Swift.String]? } @@ -17398,6 +18838,7 @@ extension UpdateReplicationConfigurationTemplateOutputResponseBody: Swift.Decoda case stagingAreaTags case tags case useDedicatedReplicationServer + case useFipsEndpoint } public init(from decoder: Swift.Decoder) throws { @@ -17448,6 +18889,8 @@ extension UpdateReplicationConfigurationTemplateOutputResponseBody: Swift.Decoda } } stagingAreaTags = stagingAreaTagsDecoded0 + let useFipsEndpointDecoded = try containerValues.decodeIfPresent(Swift.Bool.self, forKey: .useFipsEndpoint) + useFipsEndpoint = useFipsEndpointDecoded let tagsContainer = try containerValues.decodeIfPresent([Swift.String: Swift.String?].self, forKey: .tags) var tagsDecoded0: [Swift.String:Swift.String]? = nil if let tagsContainer = tagsContainer { @@ -17464,12 +18907,16 @@ extension UpdateReplicationConfigurationTemplateOutputResponseBody: Swift.Decoda extension UpdateSourceServerReplicationTypeInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case replicationType case sourceServerID } public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let accountID = self.accountID { + try encodeContainer.encode(accountID, forKey: .accountID) + } if let replicationType = self.replicationType { try encodeContainer.encode(replicationType.rawValue, forKey: .replicationType) } @@ -17486,6 +18933,8 @@ extension UpdateSourceServerReplicationTypeInput: ClientRuntime.URLPathProvider } public struct UpdateSourceServerReplicationTypeInput: Swift.Equatable { + /// Account ID on which to update replication type. + public var accountID: Swift.String? /// Replication type to which to update source server. /// This member is required. public var replicationType: MgnClientTypes.ReplicationType? @@ -17494,10 +18943,12 @@ public struct UpdateSourceServerReplicationTypeInput: Swift.Equatable { public var sourceServerID: Swift.String? public init( + accountID: Swift.String? = nil, replicationType: MgnClientTypes.ReplicationType? = nil, sourceServerID: Swift.String? = nil ) { + self.accountID = accountID self.replicationType = replicationType self.sourceServerID = sourceServerID } @@ -17506,10 +18957,12 @@ public struct UpdateSourceServerReplicationTypeInput: Swift.Equatable { struct UpdateSourceServerReplicationTypeInputBody: Swift.Equatable { let sourceServerID: Swift.String? let replicationType: MgnClientTypes.ReplicationType? + let accountID: Swift.String? } extension UpdateSourceServerReplicationTypeInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case replicationType case sourceServerID } @@ -17520,6 +18973,8 @@ extension UpdateSourceServerReplicationTypeInputBody: Swift.Decodable { sourceServerID = sourceServerIDDecoded let replicationTypeDecoded = try containerValues.decodeIfPresent(MgnClientTypes.ReplicationType.self, forKey: .replicationType) replicationType = replicationTypeDecoded + let accountIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .accountID) + accountID = accountIDDecoded } } @@ -17713,6 +19168,7 @@ extension UpdateSourceServerReplicationTypeOutputResponseBody: Swift.Decodable { extension UpdateWaveInput: Swift.Encodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case description case name case waveID @@ -17720,6 +19176,9 @@ extension UpdateWaveInput: Swift.Encodable { public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let accountID = self.accountID { + try encodeContainer.encode(accountID, forKey: .accountID) + } if let description = self.description { try encodeContainer.encode(description, forKey: .description) } @@ -17739,6 +19198,8 @@ extension UpdateWaveInput: ClientRuntime.URLPathProvider { } public struct UpdateWaveInput: Swift.Equatable { + /// Account ID. + public var accountID: Swift.String? /// Wave description. public var description: Swift.String? /// Wave name. @@ -17748,11 +19209,13 @@ public struct UpdateWaveInput: Swift.Equatable { public var waveID: Swift.String? public init( + accountID: Swift.String? = nil, description: Swift.String? = nil, name: Swift.String? = nil, waveID: Swift.String? = nil ) { + self.accountID = accountID self.description = description self.name = name self.waveID = waveID @@ -17763,10 +19226,12 @@ struct UpdateWaveInputBody: Swift.Equatable { let waveID: Swift.String? let name: Swift.String? let description: Swift.String? + let accountID: Swift.String? } extension UpdateWaveInputBody: Swift.Decodable { enum CodingKeys: Swift.String, Swift.CodingKey { + case accountID case description case name case waveID @@ -17780,6 +19245,8 @@ extension UpdateWaveInputBody: Swift.Decodable { name = nameDecoded let descriptionDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .description) description = descriptionDecoded + let accountIDDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .accountID) + accountID = accountIDDecoded } } diff --git a/Sources/Services/AWSOutposts/Paginators.swift b/Sources/Services/AWSOutposts/Paginators.swift index 94a3c9f342c..dd1ca052c03 100644 --- a/Sources/Services/AWSOutposts/Paginators.swift +++ b/Sources/Services/AWSOutposts/Paginators.swift @@ -24,6 +24,15 @@ extension GetOutpostInstanceTypesInput: ClientRuntime.PaginateToken { outpostId: self.outpostId )} } + +extension PaginatorSequence where Input == GetOutpostInstanceTypesInput, Output == GetOutpostInstanceTypesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `getOutpostInstanceTypesPaginated` + /// to access the nested member `[OutpostsClientTypes.InstanceTypeItem]` + /// - Returns: `[OutpostsClientTypes.InstanceTypeItem]` + public func instanceTypes() async throws -> [OutpostsClientTypes.InstanceTypeItem] { + return try await self.asyncCompactMap { item in item.instanceTypes } + } +} extension OutpostsClient { /// Paginate over `[ListAssetsOutputResponse]` results. /// @@ -48,6 +57,15 @@ extension ListAssetsInput: ClientRuntime.PaginateToken { statusFilter: self.statusFilter )} } + +extension PaginatorSequence where Input == ListAssetsInput, Output == ListAssetsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listAssetsPaginated` + /// to access the nested member `[OutpostsClientTypes.AssetInfo]` + /// - Returns: `[OutpostsClientTypes.AssetInfo]` + public func assets() async throws -> [OutpostsClientTypes.AssetInfo] { + return try await self.asyncCompactMap { item in item.assets } + } +} extension OutpostsClient { /// Paginate over `[ListCatalogItemsOutputResponse]` results. /// @@ -72,6 +90,15 @@ extension ListCatalogItemsInput: ClientRuntime.PaginateToken { supportedStorageFilter: self.supportedStorageFilter )} } + +extension PaginatorSequence where Input == ListCatalogItemsInput, Output == ListCatalogItemsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listCatalogItemsPaginated` + /// to access the nested member `[OutpostsClientTypes.CatalogItem]` + /// - Returns: `[OutpostsClientTypes.CatalogItem]` + public func catalogItems() async throws -> [OutpostsClientTypes.CatalogItem] { + return try await self.asyncCompactMap { item in item.catalogItems } + } +} extension OutpostsClient { /// Paginate over `[ListOrdersOutputResponse]` results. /// @@ -94,6 +121,15 @@ extension ListOrdersInput: ClientRuntime.PaginateToken { outpostIdentifierFilter: self.outpostIdentifierFilter )} } + +extension PaginatorSequence where Input == ListOrdersInput, Output == ListOrdersOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listOrdersPaginated` + /// to access the nested member `[OutpostsClientTypes.OrderSummary]` + /// - Returns: `[OutpostsClientTypes.OrderSummary]` + public func orders() async throws -> [OutpostsClientTypes.OrderSummary] { + return try await self.asyncCompactMap { item in item.orders } + } +} extension OutpostsClient { /// Paginate over `[ListOutpostsOutputResponse]` results. /// @@ -118,6 +154,15 @@ extension ListOutpostsInput: ClientRuntime.PaginateToken { nextToken: token )} } + +extension PaginatorSequence where Input == ListOutpostsInput, Output == ListOutpostsOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listOutpostsPaginated` + /// to access the nested member `[OutpostsClientTypes.Outpost]` + /// - Returns: `[OutpostsClientTypes.Outpost]` + public func outposts() async throws -> [OutpostsClientTypes.Outpost] { + return try await self.asyncCompactMap { item in item.outposts } + } +} extension OutpostsClient { /// Paginate over `[ListSitesOutputResponse]` results. /// @@ -142,3 +187,12 @@ extension ListSitesInput: ClientRuntime.PaginateToken { operatingAddressStateOrRegionFilter: self.operatingAddressStateOrRegionFilter )} } + +extension PaginatorSequence where Input == ListSitesInput, Output == ListSitesOutputResponse { + /// This paginator transforms the `AsyncSequence` returned by `listSitesPaginated` + /// to access the nested member `[OutpostsClientTypes.Site]` + /// - Returns: `[OutpostsClientTypes.Site]` + public func sites() async throws -> [OutpostsClientTypes.Site] { + return try await self.asyncCompactMap { item in item.sites } + } +} diff --git a/Sources/Services/AWSOutposts/models/Models.swift b/Sources/Services/AWSOutposts/models/Models.swift index fd7c1074250..d1f0dc5ed1d 100644 --- a/Sources/Services/AWSOutposts/models/Models.swift +++ b/Sources/Services/AWSOutposts/models/Models.swift @@ -342,12 +342,14 @@ extension OutpostsClientTypes { extension OutpostsClientTypes { public enum AssetState: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { case active + case isolated case retiring case sdkUnknown(Swift.String) public static var allCases: [AssetState] { return [ .active, + .isolated, .retiring, .sdkUnknown("") ] @@ -359,6 +361,7 @@ extension OutpostsClientTypes { public var rawValue: Swift.String { switch self { case .active: return "ACTIVE" + case .isolated: return "ISOLATED" case .retiring: return "RETIRING" case let .sdkUnknown(s): return s } @@ -2519,7 +2522,7 @@ extension OutpostsClientTypes { public var lineItemId: Swift.String? /// The ID of the previous line item. public var previousLineItemId: Swift.String? - /// The ID of the previous order. + /// The ID of the previous order item. public var previousOrderId: Swift.String? /// The quantity of the line item. public var quantity: Swift.Int @@ -3779,7 +3782,7 @@ extension OutpostsClientTypes { public var orderId: Swift.String? /// The submission date for the order. public var orderSubmissionDate: ClientRuntime.Date? - /// The type of order. + /// Type of order. public var orderType: OutpostsClientTypes.OrderType? /// The ID of the Outpost in the order. public var outpostId: Swift.String? diff --git a/Sources/Services/AWSQuickSight/QuickSightClient.swift b/Sources/Services/AWSQuickSight/QuickSightClient.swift index ab3e7889669..607faf7f54d 100644 --- a/Sources/Services/AWSQuickSight/QuickSightClient.swift +++ b/Sources/Services/AWSQuickSight/QuickSightClient.swift @@ -4371,7 +4371,7 @@ extension QuickSightClient: QuickSightClientProtocol { return result } - /// Starts an Asset Bundle export job. An Asset Bundle export job exports specified Amazon QuickSight assets. You can also choose to export any asset dependencies in the same job. Export jobs run asynchronously and can be polled with a DescribeAssetBundleExportJob API call. When a job is successfully completed, a download URL that contains the exported assets is returned. The URL is valid for 5 minutes and can be refreshed with a DescribeAssetBundleExportJob API call. Each Amazon QuickSight account can run up to 10 export jobs concurrently. The API caller must have the necessary permissions in their IAM role to access each resource before the resources can be exported. + /// Starts an Asset Bundle export job. An Asset Bundle export job exports specified Amazon QuickSight assets. You can also choose to export any asset dependencies in the same job. Export jobs run asynchronously and can be polled with a DescribeAssetBundleExportJob API call. When a job is successfully completed, a download URL that contains the exported assets is returned. The URL is valid for 5 minutes and can be refreshed with a DescribeAssetBundleExportJob API call. Each Amazon QuickSight account can run up to 5 export jobs concurrently. The API caller must have the necessary permissions in their IAM role to access each resource before the resources can be exported. public func startAssetBundleExportJob(input: StartAssetBundleExportJobInput) async throws -> StartAssetBundleExportJobOutputResponse { let context = ClientRuntime.HttpContextBuilder() @@ -4407,7 +4407,7 @@ extension QuickSightClient: QuickSightClientProtocol { return result } - /// Starts an Asset Bundle import job. An Asset Bundle import job imports specified Amazon QuickSight assets into an Amazon QuickSight account. You can also choose to import a naming prefix and specified configuration overrides. The assets that are contained in the bundle file that you provide are used to create or update a new or existing asset in your Amazon QuickSight account. Each Amazon QuickSight account can run up to 10 import jobs concurrently. The API caller must have the necessary "create", "describe", and "update" permissions in their IAM role to access each resource type that is contained in the bundle file before the resources can be imported. + /// Starts an Asset Bundle import job. An Asset Bundle import job imports specified Amazon QuickSight assets into an Amazon QuickSight account. You can also choose to import a naming prefix and specified configuration overrides. The assets that are contained in the bundle file that you provide are used to create or update a new or existing asset in your Amazon QuickSight account. Each Amazon QuickSight account can run up to 5 import jobs concurrently. The API caller must have the necessary "create", "describe", and "update" permissions in their IAM role to access each resource type that is contained in the bundle file before the resources can be imported. public func startAssetBundleImportJob(input: StartAssetBundleImportJobInput) async throws -> StartAssetBundleImportJobOutputResponse { let context = ClientRuntime.HttpContextBuilder() diff --git a/Sources/Services/AWSQuickSight/QuickSightClientProtocol.swift b/Sources/Services/AWSQuickSight/QuickSightClientProtocol.swift index 7311e02b1bd..06c5bc42e88 100644 --- a/Sources/Services/AWSQuickSight/QuickSightClientProtocol.swift +++ b/Sources/Services/AWSQuickSight/QuickSightClientProtocol.swift @@ -306,9 +306,9 @@ public protocol QuickSightClientProtocol { func searchFolders(input: SearchFoldersInput) async throws -> SearchFoldersOutputResponse /// Use the SearchGroups operation to search groups in a specified Amazon QuickSight namespace using the supplied filters. func searchGroups(input: SearchGroupsInput) async throws -> SearchGroupsOutputResponse - /// Starts an Asset Bundle export job. An Asset Bundle export job exports specified Amazon QuickSight assets. You can also choose to export any asset dependencies in the same job. Export jobs run asynchronously and can be polled with a DescribeAssetBundleExportJob API call. When a job is successfully completed, a download URL that contains the exported assets is returned. The URL is valid for 5 minutes and can be refreshed with a DescribeAssetBundleExportJob API call. Each Amazon QuickSight account can run up to 10 export jobs concurrently. The API caller must have the necessary permissions in their IAM role to access each resource before the resources can be exported. + /// Starts an Asset Bundle export job. An Asset Bundle export job exports specified Amazon QuickSight assets. You can also choose to export any asset dependencies in the same job. Export jobs run asynchronously and can be polled with a DescribeAssetBundleExportJob API call. When a job is successfully completed, a download URL that contains the exported assets is returned. The URL is valid for 5 minutes and can be refreshed with a DescribeAssetBundleExportJob API call. Each Amazon QuickSight account can run up to 5 export jobs concurrently. The API caller must have the necessary permissions in their IAM role to access each resource before the resources can be exported. func startAssetBundleExportJob(input: StartAssetBundleExportJobInput) async throws -> StartAssetBundleExportJobOutputResponse - /// Starts an Asset Bundle import job. An Asset Bundle import job imports specified Amazon QuickSight assets into an Amazon QuickSight account. You can also choose to import a naming prefix and specified configuration overrides. The assets that are contained in the bundle file that you provide are used to create or update a new or existing asset in your Amazon QuickSight account. Each Amazon QuickSight account can run up to 10 import jobs concurrently. The API caller must have the necessary "create", "describe", and "update" permissions in their IAM role to access each resource type that is contained in the bundle file before the resources can be imported. + /// Starts an Asset Bundle import job. An Asset Bundle import job imports specified Amazon QuickSight assets into an Amazon QuickSight account. You can also choose to import a naming prefix and specified configuration overrides. The assets that are contained in the bundle file that you provide are used to create or update a new or existing asset in your Amazon QuickSight account. Each Amazon QuickSight account can run up to 5 import jobs concurrently. The API caller must have the necessary "create", "describe", and "update" permissions in their IAM role to access each resource type that is contained in the bundle file before the resources can be imported. func startAssetBundleImportJob(input: StartAssetBundleImportJobInput) async throws -> StartAssetBundleImportJobOutputResponse /// Assigns one or more tags (key-value pairs) to the specified Amazon QuickSight resource. Tags can help you organize and categorize your resources. You can also use them to scope user permissions, by granting a user permission to access or change only resources with certain tag values. You can use the TagResource operation with a resource that already has tags. If you specify a new tag key for the resource, this tag is appended to the list of tags associated with the resource. If you specify a tag key that is already associated with the resource, the new tag value that you specify replaces the previous value for that tag. You can associate as many as 50 tags with a resource. Amazon QuickSight supports tagging on data set, data source, dashboard, template, and topic. Tagging for Amazon QuickSight works in a similar way to tagging for other Amazon Web Services services, except for the following: /// diff --git a/Sources/Services/AWSQuickSight/models/Models.swift b/Sources/Services/AWSQuickSight/models/Models.swift index ac38fc62ff2..ff5fce7c338 100644 --- a/Sources/Services/AWSQuickSight/models/Models.swift +++ b/Sources/Services/AWSQuickSight/models/Models.swift @@ -464,7 +464,6 @@ extension QuickSightClientTypes { /// The configuration options to sort aggregated values. public struct AggregationSortConfiguration: Swift.Equatable { /// The function that aggregates the values in Column. - /// This member is required. public var aggregationFunction: QuickSightClientTypes.AggregationFunction? /// The column that determines the sort order of aggregated values. /// This member is required. @@ -3939,7 +3938,7 @@ extension QuickSightClientTypes.AssetBundleImportSource: Swift.CustomDebugString } extension QuickSightClientTypes { - /// The source of the asset bundle zip file that contains the data that you want to import. + /// The source of the asset bundle zip file that contains the data that you want to import. The file must be in QUICKSIGHT_JSON format. public struct AssetBundleImportSource: Swift.Equatable { /// The bytes of the base64 encoded asset bundle import zip file. This file can't exceed 20 MB. If you are calling the API operations from the Amazon Web Services SDK for Java, JavaScript, Python, or PHP, the SDK encodes base64 automatically to allow the direct setting of the zip file's bytes. If you are using an SDK for a different language or receiving related errors, try to base64 encode your data. public var body: ClientRuntime.Data? @@ -7664,8 +7663,56 @@ extension QuickSightClientTypes { } +extension QuickSightClientTypes.ColorsConfiguration: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case customColors = "CustomColors" + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let customColors = customColors { + var customColorsContainer = encodeContainer.nestedUnkeyedContainer(forKey: .customColors) + for customcolor0 in customColors { + try customColorsContainer.encode(customcolor0) + } + } + } + + public init(from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let customColorsContainer = try containerValues.decodeIfPresent([QuickSightClientTypes.CustomColor?].self, forKey: .customColors) + var customColorsDecoded0:[QuickSightClientTypes.CustomColor]? = nil + if let customColorsContainer = customColorsContainer { + customColorsDecoded0 = [QuickSightClientTypes.CustomColor]() + for structure0 in customColorsContainer { + if let structure0 = structure0 { + customColorsDecoded0?.append(structure0) + } + } + } + customColors = customColorsDecoded0 + } +} + +extension QuickSightClientTypes { + /// The color configurations for a column. + public struct ColorsConfiguration: Swift.Equatable { + /// A list of up to 50 custom colors. + public var customColors: [QuickSightClientTypes.CustomColor]? + + public init( + customColors: [QuickSightClientTypes.CustomColor]? = nil + ) + { + self.customColors = customColors + } + } + +} + extension QuickSightClientTypes.ColumnConfiguration: Swift.Codable { enum CodingKeys: Swift.String, Swift.CodingKey { + case colorsConfiguration = "ColorsConfiguration" case column = "Column" case formatConfiguration = "FormatConfiguration" case role = "Role" @@ -7673,6 +7720,9 @@ extension QuickSightClientTypes.ColumnConfiguration: Swift.Codable { public func encode(to encoder: Swift.Encoder) throws { var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let colorsConfiguration = self.colorsConfiguration { + try encodeContainer.encode(colorsConfiguration, forKey: .colorsConfiguration) + } if let column = self.column { try encodeContainer.encode(column, forKey: .column) } @@ -7692,12 +7742,16 @@ extension QuickSightClientTypes.ColumnConfiguration: Swift.Codable { formatConfiguration = formatConfigurationDecoded let roleDecoded = try containerValues.decodeIfPresent(QuickSightClientTypes.ColumnRole.self, forKey: .role) role = roleDecoded + let colorsConfigurationDecoded = try containerValues.decodeIfPresent(QuickSightClientTypes.ColorsConfiguration.self, forKey: .colorsConfiguration) + colorsConfiguration = colorsConfigurationDecoded } } extension QuickSightClientTypes { /// The general configuration of a column. public struct ColumnConfiguration: Swift.Equatable { + /// The color configurations of the column. + public var colorsConfiguration: QuickSightClientTypes.ColorsConfiguration? /// The column. /// This member is required. public var column: QuickSightClientTypes.ColumnIdentifier? @@ -7707,11 +7761,13 @@ extension QuickSightClientTypes { public var role: QuickSightClientTypes.ColumnRole? public init( + colorsConfiguration: QuickSightClientTypes.ColorsConfiguration? = nil, column: QuickSightClientTypes.ColumnIdentifier? = nil, formatConfiguration: QuickSightClientTypes.FormatConfiguration? = nil, role: QuickSightClientTypes.ColumnRole? = nil ) { + self.colorsConfiguration = colorsConfiguration self.column = column self.formatConfiguration = formatConfiguration self.role = role @@ -15173,6 +15229,67 @@ extension QuickSightClientTypes { } +extension QuickSightClientTypes.CustomColor: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case color = "Color" + case fieldValue = "FieldValue" + case specialValue = "SpecialValue" + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let color = self.color { + try encodeContainer.encode(color, forKey: .color) + } + if let fieldValue = self.fieldValue { + try encodeContainer.encode(fieldValue, forKey: .fieldValue) + } + if let specialValue = self.specialValue { + try encodeContainer.encode(specialValue.rawValue, forKey: .specialValue) + } + } + + public init(from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let fieldValueDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .fieldValue) + fieldValue = fieldValueDecoded + let colorDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .color) + color = colorDecoded + let specialValueDecoded = try containerValues.decodeIfPresent(QuickSightClientTypes.SpecialValue.self, forKey: .specialValue) + specialValue = specialValueDecoded + } +} + +extension QuickSightClientTypes.CustomColor: Swift.CustomDebugStringConvertible { + public var debugDescription: Swift.String { + "CustomColor(color: \(Swift.String(describing: color)), specialValue: \(Swift.String(describing: specialValue)), fieldValue: \"CONTENT_REDACTED\")"} +} + +extension QuickSightClientTypes { + /// Determines the color that's applied to a particular data value in a column. + public struct CustomColor: Swift.Equatable { + /// The color that is applied to the data value. + /// This member is required. + public var color: Swift.String? + /// The data value that the color is applied to. + public var fieldValue: Swift.String? + /// The value of a special data value. + public var specialValue: QuickSightClientTypes.SpecialValue? + + public init( + color: Swift.String? = nil, + fieldValue: Swift.String? = nil, + specialValue: QuickSightClientTypes.SpecialValue? = nil + ) + { + self.color = color + self.fieldValue = fieldValue + self.specialValue = specialValue + } + } + +} + extension QuickSightClientTypes.CustomContentConfiguration: Swift.Codable { enum CodingKeys: Swift.String, Swift.CodingKey { case contentType = "ContentType" @@ -25461,7 +25578,7 @@ public struct DescribeAssetBundleExportJobOutputResponse: Swift.Equatable { public var downloadUrl: Swift.String? /// An array of error records that describes any failures that occurred during the export job processing. Error records accumulate while the job runs. The complete set of error records is available after the job has completed and failed. public var errors: [QuickSightClientTypes.AssetBundleExportJobError]? - /// The format of the export. + /// The format of the exported asset bundle. A QUICKSIGHT_JSON formatted file can be used to make a StartAssetBundleImportJob API call. A CLOUDFORMATION_JSON formatted file can be used in the CloudFormation console and with the CloudFormation APIs. public var exportFormat: QuickSightClientTypes.AssetBundleExportFormat? /// The include dependencies flag. public var includeAllDependencies: Swift.Bool @@ -63004,11 +63121,122 @@ extension QuickSightClientTypes { } +extension QuickSightClientTypes { + public enum SmallMultiplesAxisPlacement: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { + case inside + case outside + case sdkUnknown(Swift.String) + + public static var allCases: [SmallMultiplesAxisPlacement] { + return [ + .inside, + .outside, + .sdkUnknown("") + ] + } + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + public var rawValue: Swift.String { + switch self { + case .inside: return "INSIDE" + case .outside: return "OUTSIDE" + case let .sdkUnknown(s): return s + } + } + public init(from decoder: Swift.Decoder) throws { + let container = try decoder.singleValueContainer() + let rawValue = try container.decode(RawValue.self) + self = SmallMultiplesAxisPlacement(rawValue: rawValue) ?? SmallMultiplesAxisPlacement.sdkUnknown(rawValue) + } + } +} + +extension QuickSightClientTypes.SmallMultiplesAxisProperties: Swift.Codable { + enum CodingKeys: Swift.String, Swift.CodingKey { + case placement = "Placement" + case scale = "Scale" + } + + public func encode(to encoder: Swift.Encoder) throws { + var encodeContainer = encoder.container(keyedBy: CodingKeys.self) + if let placement = self.placement { + try encodeContainer.encode(placement.rawValue, forKey: .placement) + } + if let scale = self.scale { + try encodeContainer.encode(scale.rawValue, forKey: .scale) + } + } + + public init(from decoder: Swift.Decoder) throws { + let containerValues = try decoder.container(keyedBy: CodingKeys.self) + let scaleDecoded = try containerValues.decodeIfPresent(QuickSightClientTypes.SmallMultiplesAxisScale.self, forKey: .scale) + scale = scaleDecoded + let placementDecoded = try containerValues.decodeIfPresent(QuickSightClientTypes.SmallMultiplesAxisPlacement.self, forKey: .placement) + placement = placementDecoded + } +} + +extension QuickSightClientTypes { + /// Configures the properties of a chart's axes that are used by small multiples panels. + public struct SmallMultiplesAxisProperties: Swift.Equatable { + /// Defines the placement of the axis. By default, axes are rendered OUTSIDE of the panels. Axes with INDEPENDENT scale are rendered INSIDE the panels. + public var placement: QuickSightClientTypes.SmallMultiplesAxisPlacement? + /// Determines whether scale of the axes are shared or independent. The default value is SHARED. + public var scale: QuickSightClientTypes.SmallMultiplesAxisScale? + + public init( + placement: QuickSightClientTypes.SmallMultiplesAxisPlacement? = nil, + scale: QuickSightClientTypes.SmallMultiplesAxisScale? = nil + ) + { + self.placement = placement + self.scale = scale + } + } + +} + +extension QuickSightClientTypes { + public enum SmallMultiplesAxisScale: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { + case independent + case shared + case sdkUnknown(Swift.String) + + public static var allCases: [SmallMultiplesAxisScale] { + return [ + .independent, + .shared, + .sdkUnknown("") + ] + } + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + public var rawValue: Swift.String { + switch self { + case .independent: return "INDEPENDENT" + case .shared: return "SHARED" + case let .sdkUnknown(s): return s + } + } + public init(from decoder: Swift.Decoder) throws { + let container = try decoder.singleValueContainer() + let rawValue = try container.decode(RawValue.self) + self = SmallMultiplesAxisScale(rawValue: rawValue) ?? SmallMultiplesAxisScale.sdkUnknown(rawValue) + } + } +} + extension QuickSightClientTypes.SmallMultiplesOptions: Swift.Codable { enum CodingKeys: Swift.String, Swift.CodingKey { case maxVisibleColumns = "MaxVisibleColumns" case maxVisibleRows = "MaxVisibleRows" case panelConfiguration = "PanelConfiguration" + case xAxis = "XAxis" + case yAxis = "YAxis" } public func encode(to encoder: Swift.Encoder) throws { @@ -63022,6 +63250,12 @@ extension QuickSightClientTypes.SmallMultiplesOptions: Swift.Codable { if let panelConfiguration = self.panelConfiguration { try encodeContainer.encode(panelConfiguration, forKey: .panelConfiguration) } + if let xAxis = self.xAxis { + try encodeContainer.encode(xAxis, forKey: .xAxis) + } + if let yAxis = self.yAxis { + try encodeContainer.encode(yAxis, forKey: .yAxis) + } } public init(from decoder: Swift.Decoder) throws { @@ -63032,6 +63266,10 @@ extension QuickSightClientTypes.SmallMultiplesOptions: Swift.Codable { maxVisibleColumns = maxVisibleColumnsDecoded let panelConfigurationDecoded = try containerValues.decodeIfPresent(QuickSightClientTypes.PanelConfiguration.self, forKey: .panelConfiguration) panelConfiguration = panelConfigurationDecoded + let xAxisDecoded = try containerValues.decodeIfPresent(QuickSightClientTypes.SmallMultiplesAxisProperties.self, forKey: .xAxis) + xAxis = xAxisDecoded + let yAxisDecoded = try containerValues.decodeIfPresent(QuickSightClientTypes.SmallMultiplesAxisProperties.self, forKey: .yAxis) + yAxis = yAxisDecoded } } @@ -63044,16 +63282,24 @@ extension QuickSightClientTypes { public var maxVisibleRows: Swift.Int? /// Configures the display options for each small multiples panel. public var panelConfiguration: QuickSightClientTypes.PanelConfiguration? + /// The properties of a small multiples X axis. + public var xAxis: QuickSightClientTypes.SmallMultiplesAxisProperties? + /// The properties of a small multiples Y axis. + public var yAxis: QuickSightClientTypes.SmallMultiplesAxisProperties? public init( maxVisibleColumns: Swift.Int? = nil, maxVisibleRows: Swift.Int? = nil, - panelConfiguration: QuickSightClientTypes.PanelConfiguration? = nil + panelConfiguration: QuickSightClientTypes.PanelConfiguration? = nil, + xAxis: QuickSightClientTypes.SmallMultiplesAxisProperties? = nil, + yAxis: QuickSightClientTypes.SmallMultiplesAxisProperties? = nil ) { self.maxVisibleColumns = maxVisibleColumns self.maxVisibleRows = maxVisibleRows self.panelConfiguration = panelConfiguration + self.xAxis = xAxis + self.yAxis = yAxis } } @@ -63261,6 +63507,41 @@ extension QuickSightClientTypes { } +extension QuickSightClientTypes { + public enum SpecialValue: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { + case empty + case null + case other + case sdkUnknown(Swift.String) + + public static var allCases: [SpecialValue] { + return [ + .empty, + .null, + .other, + .sdkUnknown("") + ] + } + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + public var rawValue: Swift.String { + switch self { + case .empty: return "EMPTY" + case .null: return "NULL" + case .other: return "OTHER" + case let .sdkUnknown(s): return s + } + } + public init(from decoder: Swift.Decoder) throws { + let container = try decoder.singleValueContainer() + let rawValue = try container.decode(RawValue.self) + self = SpecialValue(rawValue: rawValue) ?? SpecialValue.sdkUnknown(rawValue) + } + } +} + extension QuickSightClientTypes.SqlServerParameters: Swift.Codable { enum CodingKeys: Swift.String, Swift.CodingKey { case database = "Database" @@ -63613,7 +63894,7 @@ public struct StartAssetBundleImportJobInput: Swift.Equatable { /// The ID of the job. This ID is unique while the job is running. After the job is completed, you can reuse this ID for another job. /// This member is required. public var assetBundleImportJobId: Swift.String? - /// The source of the asset bundle zip file that contains the data that you want to import. + /// The source of the asset bundle zip file that contains the data that you want to import. The file must be in QUICKSIGHT_JSON format. /// This member is required. public var assetBundleImportSource: QuickSightClientTypes.AssetBundleImportSource? /// The ID of the Amazon Web Services account to import assets into. diff --git a/Sources/Services/AWSRDS/RDSClient.swift b/Sources/Services/AWSRDS/RDSClient.swift index 7a6066759c0..12713d86997 100644 --- a/Sources/Services/AWSRDS/RDSClient.swift +++ b/Sources/Services/AWSRDS/RDSClient.swift @@ -1080,7 +1080,7 @@ extension RDSClient: RDSClientProtocol { return result } - /// Creates an Aurora global database spread across multiple Amazon Web Services Regions. The global database contains a single primary cluster with read-write capability, and a read-only secondary cluster that receives data from the primary cluster through high-speed replication performed by the Aurora storage subsystem. You can create a global database that is initially empty, and then add a primary cluster and a secondary cluster to it. Or you can specify an existing Aurora cluster during the create operation, and this cluster becomes the primary cluster of the global database. This action applies only to Aurora DB clusters. + /// Creates an Aurora global database spread across multiple Amazon Web Services Regions. The global database contains a single primary cluster with read-write capability, and a read-only secondary cluster that receives data from the primary cluster through high-speed replication performed by the Aurora storage subsystem. You can create a global database that is initially empty, and then add a primary cluster and a secondary cluster to it. Or you can specify an existing Aurora cluster during the create operation, and this cluster becomes the primary cluster of the global database. This operation applies only to Aurora DB clusters. public func createGlobalCluster(input: CreateGlobalClusterInput) async throws -> CreateGlobalClusterOutputResponse { let context = ClientRuntime.HttpContextBuilder() diff --git a/Sources/Services/AWSRDS/RDSClientProtocol.swift b/Sources/Services/AWSRDS/RDSClientProtocol.swift index 135dc3dd225..83f1672077d 100644 --- a/Sources/Services/AWSRDS/RDSClientProtocol.swift +++ b/Sources/Services/AWSRDS/RDSClientProtocol.swift @@ -84,7 +84,7 @@ public protocol RDSClientProtocol { func createDBSubnetGroup(input: CreateDBSubnetGroupInput) async throws -> CreateDBSubnetGroupOutputResponse /// Creates an RDS event notification subscription. This operation requires a topic Amazon Resource Name (ARN) created by either the RDS console, the SNS console, or the SNS API. To obtain an ARN with SNS, you must create a topic in Amazon SNS and subscribe to the topic. The ARN is displayed in the SNS console. You can specify the type of source (SourceType) that you want to be notified of and provide a list of RDS sources (SourceIds) that triggers the events. You can also provide a list of event categories (EventCategories) for events that you want to be notified of. For example, you can specify SourceType = db-instance, SourceIds = mydbinstance1, mydbinstance2 and EventCategories = Availability, Backup. If you specify both the SourceType and SourceIds, such as SourceType = db-instance and SourceIds = myDBInstance1, you are notified of all the db-instance events for the specified source. If you specify a SourceType but do not specify SourceIds, you receive notice of the events for that source type for all your RDS sources. If you don't specify either the SourceType or the SourceIds, you are notified of events generated from all RDS sources belonging to your customer account. For more information about subscribing to an event for RDS DB engines, see [ Subscribing to Amazon RDS event notification](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.Subscribing.html) in the Amazon RDS User Guide. For more information about subscribing to an event for Aurora DB engines, see [ Subscribing to Amazon RDS event notification](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Events.Subscribing.html) in the Amazon Aurora User Guide. func createEventSubscription(input: CreateEventSubscriptionInput) async throws -> CreateEventSubscriptionOutputResponse - /// Creates an Aurora global database spread across multiple Amazon Web Services Regions. The global database contains a single primary cluster with read-write capability, and a read-only secondary cluster that receives data from the primary cluster through high-speed replication performed by the Aurora storage subsystem. You can create a global database that is initially empty, and then add a primary cluster and a secondary cluster to it. Or you can specify an existing Aurora cluster during the create operation, and this cluster becomes the primary cluster of the global database. This action applies only to Aurora DB clusters. + /// Creates an Aurora global database spread across multiple Amazon Web Services Regions. The global database contains a single primary cluster with read-write capability, and a read-only secondary cluster that receives data from the primary cluster through high-speed replication performed by the Aurora storage subsystem. You can create a global database that is initially empty, and then add a primary cluster and a secondary cluster to it. Or you can specify an existing Aurora cluster during the create operation, and this cluster becomes the primary cluster of the global database. This operation applies only to Aurora DB clusters. func createGlobalCluster(input: CreateGlobalClusterInput) async throws -> CreateGlobalClusterOutputResponse /// Creates a new option group. You can create up to 20 option groups. This command doesn't apply to RDS Custom. func createOptionGroup(input: CreateOptionGroupInput) async throws -> CreateOptionGroupOutputResponse diff --git a/Sources/Services/AWSRDS/models/Models.swift b/Sources/Services/AWSRDS/models/Models.swift index 641ff334d62..d6eaedc7c19 100644 --- a/Sources/Services/AWSRDS/models/Models.swift +++ b/Sources/Services/AWSRDS/models/Models.swift @@ -6644,14 +6644,14 @@ extension CreateDBInstanceInput: ClientRuntime.URLPathProvider { /// public struct CreateDBInstanceInput: Swift.Equatable { - /// The amount of storage in gibibytes (GiB) to allocate for the DB instance. This setting doesn't apply to Amazon Aurora DB instances. Aurora cluster volumes automatically grow as the amount of data in your database increases, though you are only charged for the space that you use in an Aurora cluster volume. Amazon RDS Custom RDS for MariaDB RDS for MySQL RDS for Oracle RDS for PostgreSQL RDS for SQL Server Constraints to the amount of storage for each storage type are the following: + /// The amount of storage in gibibytes (GiB) to allocate for the DB instance. This setting doesn't apply to Amazon Aurora DB instances. Aurora cluster volumes automatically grow as the amount of data in your database increases, though you are only charged for the space that you use in an Aurora cluster volume. Amazon RDS Custom Constraints to the amount of storage for each storage type are the following: /// /// * General Purpose (SSD) storage (gp2, gp3): Must be an integer from 40 to 65536 for RDS Custom for Oracle, 16384 for RDS Custom for SQL Server. /// /// * Provisioned IOPS storage (io1): Must be an integer from 40 to 65536 for RDS Custom for Oracle, 16384 for RDS Custom for SQL Server. /// /// - /// Constraints to the amount of storage for each storage type are the following: + /// RDS for MariaDB Constraints to the amount of storage for each storage type are the following: /// /// * General Purpose (SSD) storage (gp2, gp3): Must be an integer from 20 to 65536. /// @@ -6660,7 +6660,7 @@ public struct CreateDBInstanceInput: Swift.Equatable { /// * Magnetic storage (standard): Must be an integer from 5 to 3072. /// /// - /// Constraints to the amount of storage for each storage type are the following: + /// RDS for MySQL Constraints to the amount of storage for each storage type are the following: /// /// * General Purpose (SSD) storage (gp2, gp3): Must be an integer from 20 to 65536. /// @@ -6669,7 +6669,7 @@ public struct CreateDBInstanceInput: Swift.Equatable { /// * Magnetic storage (standard): Must be an integer from 5 to 3072. /// /// - /// Constraints to the amount of storage for each storage type are the following: + /// RDS for Oracle Constraints to the amount of storage for each storage type are the following: /// /// * General Purpose (SSD) storage (gp2, gp3): Must be an integer from 20 to 65536. /// @@ -6678,7 +6678,7 @@ public struct CreateDBInstanceInput: Swift.Equatable { /// * Magnetic storage (standard): Must be an integer from 10 to 3072. /// /// - /// Constraints to the amount of storage for each storage type are the following: + /// RDS for PostgreSQL Constraints to the amount of storage for each storage type are the following: /// /// * General Purpose (SSD) storage (gp2, gp3): Must be an integer from 20 to 65536. /// @@ -6687,7 +6687,7 @@ public struct CreateDBInstanceInput: Swift.Equatable { /// * Magnetic storage (standard): Must be an integer from 5 to 3072. /// /// - /// Constraints to the amount of storage for each storage type are the following: + /// RDS for SQL Server Constraints to the amount of storage for each storage type are the following: /// /// * General Purpose (SSD) storage (gp2, gp3): /// @@ -6749,7 +6749,7 @@ public struct CreateDBInstanceInput: Swift.Equatable { /// /// * RDS Custom - However, if you need to change the character set, you can change it on the database itself. public var characterSetName: Swift.String? - /// Spcifies whether to copy tags from the DB instance to snapshots of the DB instance. By default, tags are not copied. This setting doesn't apply to Amazon Aurora DB instances. Copying tags to snapshots is managed by the DB cluster. Setting this value for an Aurora DB instance has no effect on the DB cluster setting. + /// Specifies whether to copy tags from the DB instance to snapshots of the DB instance. By default, tags are not copied. This setting doesn't apply to Amazon Aurora DB instances. Copying tags to snapshots is managed by the DB cluster. Setting this value for an Aurora DB instance has no effect on the DB cluster setting. public var copyTagsToSnapshot: Swift.Bool? /// The instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance. This setting is required for RDS Custom. Constraints: /// @@ -6779,14 +6779,14 @@ public struct CreateDBInstanceInput: Swift.Equatable { /// Example: mydbinstance /// This member is required. public var dbInstanceIdentifier: Swift.String? - /// The meaning of this parameter differs depending on the database engine. Amazon Aurora MySQL Amazon Aurora PostgreSQL Amazon RDS Custom for Oracle Amazon RDS Custom for SQL Server RDS for MariaDB RDS for MySQL RDS for Oracle RDS for PostgreSQL RDS for SQL Server The name of the database to create when the primary DB instance of the Aurora MySQL DB cluster is created. If you don't specify a value, Amazon RDS doesn't create a database in the DB cluster. Constraints: + /// The meaning of this parameter differs depending on the database engine. Amazon Aurora MySQL The name of the database to create when the primary DB instance of the Aurora MySQL DB cluster is created. If you don't specify a value, Amazon RDS doesn't create a database in the DB cluster. Constraints: /// /// * Must contain 1 to 64 alphanumeric characters. /// /// * Can't be a word reserved by the database engine. /// /// - /// The name of the database to create when the primary DB instance of the Aurora PostgreSQL DB cluster is created. Default: postgres Constraints: + /// Amazon Aurora PostgreSQL The name of the database to create when the primary DB instance of the Aurora PostgreSQL DB cluster is created. Default: postgres Constraints: /// /// * Must contain 1 to 63 alphanumeric characters. /// @@ -6795,7 +6795,7 @@ public struct CreateDBInstanceInput: Swift.Equatable { /// * Can't be a word reserved by the database engine. /// /// - /// The Oracle System ID (SID) of the created RDS Custom DB instance. Default: ORCL Constraints: + /// Amazon RDS Custom for Oracle The Oracle System ID (SID) of the created RDS Custom DB instance. Default: ORCL Constraints: /// /// * Must contain 1 to 8 alphanumeric characters. /// @@ -6804,7 +6804,7 @@ public struct CreateDBInstanceInput: Swift.Equatable { /// * Can't be a word reserved by the database engine. /// /// - /// Not applicable. Must be null. The name of the database to create when the DB instance is created. If you don't specify a value, Amazon RDS doesn't create a database in the DB instance. Constraints: + /// Amazon RDS Custom for SQL Server Not applicable. Must be null. RDS for MariaDB The name of the database to create when the DB instance is created. If you don't specify a value, Amazon RDS doesn't create a database in the DB instance. Constraints: /// /// * Must contain 1 to 64 letters or numbers. /// @@ -6813,7 +6813,7 @@ public struct CreateDBInstanceInput: Swift.Equatable { /// * Can't be a word reserved by the database engine. /// /// - /// The name of the database to create when the DB instance is created. If you don't specify a value, Amazon RDS doesn't create a database in the DB instance. Constraints: + /// RDS for MySQL The name of the database to create when the DB instance is created. If you don't specify a value, Amazon RDS doesn't create a database in the DB instance. Constraints: /// /// * Must contain 1 to 64 letters or numbers. /// @@ -6822,14 +6822,14 @@ public struct CreateDBInstanceInput: Swift.Equatable { /// * Can't be a word reserved by the database engine. /// /// - /// The Oracle System ID (SID) of the created DB instance. Default: ORCL Constraints: + /// RDS for Oracle The Oracle System ID (SID) of the created DB instance. Default: ORCL Constraints: /// /// * Can't be longer than 8 characters. /// /// * Can't be a word reserved by the database engine, such as the string NULL. /// /// - /// The name of the database to create when the DB instance is created. Default: postgres Constraints: + /// RDS for PostgreSQL The name of the database to create when the DB instance is created. Default: postgres Constraints: /// /// * Must contain 1 to 63 letters, numbers, or underscores. /// @@ -6838,7 +6838,7 @@ public struct CreateDBInstanceInput: Swift.Equatable { /// * Can't be a word reserved by the database engine. /// /// - /// Not applicable. Must be null. + /// RDS for SQL Server Not applicable. Must be null. public var dbName: Swift.String? /// The name of the DB parameter group to associate with this DB instance. If you don't specify a value, then Amazon RDS uses the default DB parameter group for the specified DB engine and version. This setting doesn't apply to RDS Custom DB instances. Constraints: /// @@ -6867,7 +6867,7 @@ public struct CreateDBInstanceInput: Swift.Equatable { /// /// * RDS Custom public var domain: Swift.String? - /// The ARN for the Secrets Manager secret that contains the credentials for the user performing the domain join. Example: arn:aws:secretsmanager:region:account-number:secret:myselfmanagedADtestsecret-123456 + /// The ARN for the Secrets Manager secret with the credentials for the user joining the domain. Example: arn:aws:secretsmanager:region:account-number:secret:myselfmanagedADtestsecret-123456 public var domainAuthSecretArn: Swift.String? /// The IPv4 DNS IP addresses of your primary and secondary Active Directory domain controllers. Constraints: /// @@ -6876,9 +6876,9 @@ public struct CreateDBInstanceInput: Swift.Equatable { /// /// Example: 123.124.125.126,234.235.236.237 public var domainDnsIps: [Swift.String]? - /// Specifies the fully qualified domain name of an Active Directory domain. Constraints: + /// The fully qualified domain name (FQDN) of an Active Directory domain. Constraints: /// - /// * Cannot be greater than 64 characters. + /// * Can't be longer than 64 characters. /// /// /// Example: mymanagedADtest.mymanagedAD.mydomain @@ -6893,7 +6893,7 @@ public struct CreateDBInstanceInput: Swift.Equatable { /// /// * Must be in the distinguished name format. /// - /// * Cannot be greater than 64 characters. + /// * Can't be longer than 64 characters. /// /// /// Example: OU=mymanagedADtestOU,DC=mymanagedADtest,DC=mymanagedAD,DC=mydomain @@ -6966,7 +6966,7 @@ public struct CreateDBInstanceInput: Swift.Equatable { /// * sqlserver-web /// This member is required. public var engine: Swift.String? - /// The version number of the database engine to use. This setting doesn't apply to Amazon Aurora DB instances. The version number of the database engine the DB instance uses is managed by the DB cluster. For a list of valid engine versions, use the DescribeDBEngineVersions operation. The following are the database engines and links to information about the major and minor versions that are available with Amazon RDS. Not every database engine is available for every Amazon Web Services Region. Amazon RDS Custom for Oracle Amazon RDS Custom for SQL Server RDS for MariaDB RDS for Microsoft SQL Server RDS for MySQL RDS for Oracle RDS for PostgreSQL A custom engine version (CEV) that you have previously created. This setting is required for RDS Custom for Oracle. The CEV name has the following format: 19.customized_string. A valid CEV name is 19.my_cev1. For more information, see [ Creating an RDS Custom for Oracle DB instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-creating.html#custom-creating.create) in the Amazon RDS User Guide. See [RDS Custom for SQL Server general requirements](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-reqs-limits-MS.html) in the Amazon RDS User Guide. For information, see [MariaDB on Amazon RDS versions](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MariaDB.html#MariaDB.Concepts.VersionMgmt) in the Amazon RDS User Guide. For information, see [Microsoft SQL Server versions on Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.VersionSupport) in the Amazon RDS User Guide. For information, see [MySQL on Amazon RDS versions](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MySQL.html#MySQL.Concepts.VersionMgmt) in the Amazon RDS User Guide. For information, see [Oracle Database Engine release notes](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.PatchComposition.html) in the Amazon RDS User Guide. For information, see [Amazon RDS for PostgreSQL versions and extensions](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts) in the Amazon RDS User Guide. + /// The version number of the database engine to use. This setting doesn't apply to Amazon Aurora DB instances. The version number of the database engine the DB instance uses is managed by the DB cluster. For a list of valid engine versions, use the DescribeDBEngineVersions operation. The following are the database engines and links to information about the major and minor versions that are available with Amazon RDS. Not every database engine is available for every Amazon Web Services Region. Amazon RDS Custom for Oracle A custom engine version (CEV) that you have previously created. This setting is required for RDS Custom for Oracle. The CEV name has the following format: 19.customized_string. A valid CEV name is 19.my_cev1. For more information, see [ Creating an RDS Custom for Oracle DB instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-creating.html#custom-creating.create) in the Amazon RDS User Guide. Amazon RDS Custom for SQL Server See [RDS Custom for SQL Server general requirements](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-reqs-limits-MS.html) in the Amazon RDS User Guide. RDS for MariaDB For information, see [MariaDB on Amazon RDS versions](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MariaDB.html#MariaDB.Concepts.VersionMgmt) in the Amazon RDS User Guide. RDS for Microsoft SQL Server For information, see [Microsoft SQL Server versions on Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.VersionSupport) in the Amazon RDS User Guide. RDS for MySQL For information, see [MySQL on Amazon RDS versions](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MySQL.html#MySQL.Concepts.VersionMgmt) in the Amazon RDS User Guide. RDS for Oracle For information, see [Oracle Database Engine release notes](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.PatchComposition.html) in the Amazon RDS User Guide. RDS for PostgreSQL For information, see [Amazon RDS for PostgreSQL versions and extensions](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts) in the Amazon RDS User Guide. public var engineVersion: Swift.String? /// The amount of Provisioned IOPS (input/output operations per second) to initially allocate for the DB instance. For information about valid IOPS values, see [Amazon RDS DB instance storage](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html) in the Amazon RDS User Guide. This setting doesn't apply to Amazon Aurora DB instances. Storage is managed by the DB cluster. Constraints: /// @@ -7914,7 +7914,7 @@ public struct CreateDBInstanceReadReplicaInput: Swift.Equatable { public var deletionProtection: Swift.Bool? /// The Active Directory directory ID to create the DB instance in. Currently, only MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB instances can be created in an Active Directory Domain. For more information, see [ Kerberos Authentication](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/kerberos-authentication.html) in the Amazon RDS User Guide. This setting doesn't apply to RDS Custom. public var domain: Swift.String? - /// The ARN for the Secrets Manager secret that contains the credentials for the user performing the domain join. Example: arn:aws:secretsmanager:region:account-number:secret:myselfmanagedADtestsecret-123456 + /// The ARN for the Secrets Manager secret with the credentials for the user joining the domain. Example: arn:aws:secretsmanager:region:account-number:secret:myselfmanagedADtestsecret-123456 public var domainAuthSecretArn: Swift.String? /// The IPv4 DNS IP addresses of your primary and secondary Active Directory domain controllers. Constraints: /// @@ -7923,9 +7923,9 @@ public struct CreateDBInstanceReadReplicaInput: Swift.Equatable { /// /// Example: 123.124.125.126,234.235.236.237 public var domainDnsIps: [Swift.String]? - /// Specifies the fully qualified domain name of an Active Directory domain. Constraints: + /// The fully qualified domain name (FQDN) of an Active Directory domain. Constraints: /// - /// * Cannot be greater than 64 characters. + /// * Can't be longer than 64 characters. /// /// /// Example: mymanagedADtest.mymanagedAD.mydomain @@ -7936,7 +7936,7 @@ public struct CreateDBInstanceReadReplicaInput: Swift.Equatable { /// /// * Must be in the distinguished name format. /// - /// * Cannot be greater than 64 characters. + /// * Can't be longer than 64 characters. /// /// /// Example: OU=mymanagedADtestOU,DC=mymanagedADtest,DC=mymanagedAD,DC=mydomain @@ -10038,19 +10038,35 @@ extension CreateGlobalClusterInput: ClientRuntime.URLPathProvider { } public struct CreateGlobalClusterInput: Swift.Equatable { - /// The name for your database of up to 64 alphanumeric characters. If you do not provide a name, Amazon Aurora will not create a database in the global database cluster you are creating. + /// The name for your database of up to 64 alphanumeric characters. If you don't specify a name, Amazon Aurora doesn't create a database in the global database cluster. Constraints: + /// + /// * Can't be specified if SourceDBClusterIdentifier is specified. In this case, Amazon Aurora uses the database name from the source DB cluster. public var databaseName: Swift.String? - /// The deletion protection setting for the new global database. The global database can't be deleted when deletion protection is enabled. + /// Specifies whether to enable deletion protection for the new global database cluster. The global database can't be deleted when deletion protection is enabled. public var deletionProtection: Swift.Bool? - /// The name of the database engine to be used for this DB cluster. + /// The database engine to use for this global database cluster. Valid Values: aurora-mysql | aurora-postgresql Constraints: + /// + /// * Can't be specified if SourceDBClusterIdentifier is specified. In this case, Amazon Aurora uses the engine of the source DB cluster. public var engine: Swift.String? - /// The engine version of the Aurora global database. + /// The engine version to use for this global database cluster. Constraints: + /// + /// * Can't be specified if SourceDBClusterIdentifier is specified. In this case, Amazon Aurora uses the engine version of the source DB cluster. public var engineVersion: Swift.String? - /// The cluster identifier of the new global database cluster. This parameter is stored as a lowercase string. + /// The cluster identifier for this global database cluster. This parameter is stored as a lowercase string. public var globalClusterIdentifier: Swift.String? - /// The Amazon Resource Name (ARN) to use as the primary cluster of the global database. This parameter is optional. + /// The Amazon Resource Name (ARN) to use as the primary cluster of the global database. If you provide a value for this parameter, don't specify values for the following settings because Amazon Aurora uses the values from the specified source DB cluster: + /// + /// * DatabaseName + /// + /// * Engine + /// + /// * EngineVersion + /// + /// * StorageEncrypted public var sourceDBClusterIdentifier: Swift.String? - /// The storage encryption setting for the new global database cluster. + /// Specifies whether to enable storage encryption for the new global database cluster. Constraints: + /// + /// * Can't be specified if SourceDBClusterIdentifier is specified. In this case, Amazon Aurora uses the setting from the source DB cluster. public var storageEncrypted: Swift.Bool? public init( @@ -29525,17 +29541,17 @@ extension RDSClientTypes.DomainMembership: Swift.Codable { extension RDSClientTypes { /// An Active Directory Domain membership record associated with the DB instance or cluster. public struct DomainMembership: Swift.Equatable { - /// The ARN for the Secrets Manager secret that contains the credentials for the user performing the domain join. + /// The ARN for the Secrets Manager secret with the credentials for the user that's a member of the domain. public var authSecretArn: Swift.String? - /// The IPv4 DNS IP addresses of your primary and secondary Active Directory domain controllers. + /// The IPv4 DNS IP addresses of the primary and secondary Active Directory domain controllers. public var dnsIps: [Swift.String]? /// The identifier of the Active Directory Domain. public var domain: Swift.String? /// The fully qualified domain name (FQDN) of the Active Directory Domain. public var fqdn: Swift.String? - /// The name of the IAM role to be used when making API calls to the Directory Service. + /// The name of the IAM role used when making API calls to the Directory Service. public var iamRoleName: Swift.String? - /// The Active Directory organizational unit for your DB instance to join. + /// The Active Directory organizational unit for the DB instance or cluster. public var ou: Swift.String? /// The status of the Active Directory Domain membership for the DB instance or cluster. Values include joined, pending-join, failed, and so on. public var status: Swift.String? @@ -36580,11 +36596,11 @@ public struct ModifyDBInstanceInput: Swift.Equatable { public var dbSubnetGroupName: Swift.String? /// Specifies whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection isn't enabled. For more information, see [ Deleting a DB Instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html). public var deletionProtection: Swift.Bool? - /// Boolean. If present, removes the instance from the Active Directory domain. + /// Specifies whether to remove the DB instance from the Active Directory domain. public var disableDomain: Swift.Bool? /// The Active Directory directory ID to move the DB instance to. Specify none to remove the instance from its current domain. You must create the domain before this operation. Currently, you can create only MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB instances in an Active Directory Domain. For more information, see [ Kerberos Authentication](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/kerberos-authentication.html) in the Amazon RDS User Guide. This setting doesn't apply to RDS Custom DB instances. public var domain: Swift.String? - /// The ARN for the Secrets Manager secret that contains the credentials for the user performing the domain join. Example: arn:aws:secretsmanager:region:account-number:secret:myselfmanagedADtestsecret-123456 + /// The ARN for the Secrets Manager secret with the credentials for the user joining the domain. Example: arn:aws:secretsmanager:region:account-number:secret:myselfmanagedADtestsecret-123456 public var domainAuthSecretArn: Swift.String? /// The IPv4 DNS IP addresses of your primary and secondary Active Directory domain controllers. Constraints: /// @@ -36593,9 +36609,9 @@ public struct ModifyDBInstanceInput: Swift.Equatable { /// /// Example: 123.124.125.126,234.235.236.237 public var domainDnsIps: [Swift.String]? - /// Specifies the fully qualified domain name of an Active Directory domain. Constraints: + /// The fully qualified domain name (FQDN) of an Active Directory domain. Constraints: /// - /// * Cannot be greater than 64 characters. + /// * Can't be longer than 64 characters. /// /// /// Example: mymanagedADtest.mymanagedAD.mydomain @@ -36606,7 +36622,7 @@ public struct ModifyDBInstanceInput: Swift.Equatable { /// /// * Must be in the distinguished name format. /// - /// * Cannot be greater than 64 characters. + /// * Can't be longer than 64 characters. /// /// /// Example: OU=mymanagedADtestOU,DC=mymanagedADtest,DC=mymanagedAD,DC=mydomain @@ -46128,7 +46144,7 @@ public struct RestoreDBInstanceFromDBSnapshotInput: Swift.Equatable { public var deletionProtection: Swift.Bool? /// Specify the Active Directory directory ID to restore the DB instance in. The domain/ must be created prior to this operation. Currently, you can create only MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB instances in an Active Directory Domain. For more information, see [ Kerberos Authentication](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/kerberos-authentication.html) in the Amazon RDS User Guide. This setting doesn't apply to RDS Custom. public var domain: Swift.String? - /// The ARN for the Secrets Manager secret that contains the credentials for the user performing the domain join. Constraints: Example: arn:aws:secretsmanager:region:account-number:secret:myselfmanagedADtestsecret-123456 + /// The ARN for the Secrets Manager secret with the credentials for the user joining the domain. Constraints: Example: arn:aws:secretsmanager:region:account-number:secret:myselfmanagedADtestsecret-123456 public var domainAuthSecretArn: Swift.String? /// The IPv4 DNS IP addresses of your primary and secondary Active Directory domain controllers. Constraints: /// @@ -46137,20 +46153,20 @@ public struct RestoreDBInstanceFromDBSnapshotInput: Swift.Equatable { /// /// Example: 123.124.125.126,234.235.236.237 public var domainDnsIps: [Swift.String]? - /// Specifies the fully qualified domain name of an Active Directory domain. Constraints: + /// The fully qualified domain name (FQDN) of an Active Directory domain. Constraints: /// - /// * Cannot be greater than 64 characters. + /// * Can't be longer than 64 characters. /// /// /// Example: mymanagedADtest.mymanagedAD.mydomain public var domainFqdn: Swift.String? - /// Specify the name of the IAM role to be used when making API calls to the Directory Service. This setting doesn't apply to RDS Custom. + /// The name of the IAM role to use when making API calls to the Directory Service. This setting doesn't apply to RDS Custom DB instances. public var domainIAMRoleName: Swift.String? /// The Active Directory organizational unit for your DB instance to join. Constraints: /// /// * Must be in the distinguished name format. /// - /// * Cannot be greater than 64 characters. + /// * Can't be longer than 64 characters. /// /// /// Example: OU=mymanagedADtestOU,DC=mymanagedADtest,DC=mymanagedAD,DC=mydomain @@ -47692,9 +47708,9 @@ public struct RestoreDBInstanceToPointInTimeInput: Swift.Equatable { public var deletionProtection: Swift.Bool? /// Specify the Active Directory directory ID to restore the DB instance in. Create the domain before running this command. Currently, you can create only the MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB instances in an Active Directory Domain. This setting doesn't apply to RDS Custom. For more information, see [ Kerberos Authentication](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/kerberos-authentication.html) in the Amazon RDS User Guide. public var domain: Swift.String? - /// The ARN for the Secrets Manager secret that contains the credentials for the user performing the domain join. Constraints: + /// The ARN for the Secrets Manager secret with the credentials for the user joining the domain. Constraints: /// - /// * Cannot be greater than 64 characters. + /// * Can't be longer than 64 characters. /// /// /// Example: arn:aws:secretsmanager:region:account-number:secret:myselfmanagedADtestsecret-123456 @@ -47706,20 +47722,20 @@ public struct RestoreDBInstanceToPointInTimeInput: Swift.Equatable { /// /// Example: 123.124.125.126,234.235.236.237 public var domainDnsIps: [Swift.String]? - /// Specifies the fully qualified domain name of an Active Directory domain. Constraints: + /// The fully qualified domain name (FQDN) of an Active Directory domain. Constraints: /// - /// * Cannot be greater than 64 characters. + /// * Can't be longer than 64 characters. /// /// /// Example: mymanagedADtest.mymanagedAD.mydomain public var domainFqdn: Swift.String? - /// Specify the name of the IAM role to be used when making API calls to the Directory Service. This setting doesn't apply to RDS Custom. + /// The name of the IAM role to use when making API calls to the Directory Service. This setting doesn't apply to RDS Custom DB instances. public var domainIAMRoleName: Swift.String? /// The Active Directory organizational unit for your DB instance to join. Constraints: /// /// * Must be in the distinguished name format. /// - /// * Cannot be greater than 64 characters. + /// * Can't be longer than 64 characters. /// /// /// Example: OU=mymanagedADtestOU,DC=mymanagedADtest,DC=mymanagedAD,DC=mydomain diff --git a/Sources/Services/AWSSageMaker/models/Models.swift b/Sources/Services/AWSSageMaker/models/Models.swift index b10c6a2d59a..72188d02fab 100644 --- a/Sources/Services/AWSSageMaker/models/Models.swift +++ b/Sources/Services/AWSSageMaker/models/Models.swift @@ -5268,7 +5268,7 @@ extension SageMakerClientTypes { case textclassificationjobconfig(SageMakerClientTypes.TextClassificationJobConfig) /// Settings used to configure an AutoML job V2 for a tabular problem type (regression, classification). case tabularjobconfig(SageMakerClientTypes.TabularJobConfig) - /// Settings used to configure an AutoML job V2 for a time-series forecasting problem type. + /// Settings used to configure an AutoML job V2 for a time-series forecasting problem type. The TimeSeriesForecastingJobConfig problem type is only available in private beta. Contact Amazon Web Services Support or your account manager to learn more about access privileges. case timeseriesforecastingjobconfig(SageMakerClientTypes.TimeSeriesForecastingJobConfig) case sdkUnknown(Swift.String) } @@ -42024,6 +42024,7 @@ extension SageMakerClientTypes.EndpointInputConfiguration: Swift.Codable { case environmentParameterRanges = "EnvironmentParameterRanges" case inferenceSpecificationName = "InferenceSpecificationName" case instanceType = "InstanceType" + case serverlessConfig = "ServerlessConfig" } public func encode(to encoder: Swift.Encoder) throws { @@ -42037,6 +42038,9 @@ extension SageMakerClientTypes.EndpointInputConfiguration: Swift.Codable { if let instanceType = self.instanceType { try encodeContainer.encode(instanceType.rawValue, forKey: .instanceType) } + if let serverlessConfig = self.serverlessConfig { + try encodeContainer.encode(serverlessConfig, forKey: .serverlessConfig) + } } public init(from decoder: Swift.Decoder) throws { @@ -42047,6 +42051,8 @@ extension SageMakerClientTypes.EndpointInputConfiguration: Swift.Codable { inferenceSpecificationName = inferenceSpecificationNameDecoded let environmentParameterRangesDecoded = try containerValues.decodeIfPresent(SageMakerClientTypes.EnvironmentParameterRanges.self, forKey: .environmentParameterRanges) environmentParameterRanges = environmentParameterRangesDecoded + let serverlessConfigDecoded = try containerValues.decodeIfPresent(SageMakerClientTypes.ProductionVariantServerlessConfig.self, forKey: .serverlessConfig) + serverlessConfig = serverlessConfigDecoded } } @@ -42058,18 +42064,21 @@ extension SageMakerClientTypes { /// The inference specification name in the model package version. public var inferenceSpecificationName: Swift.String? /// The instance types to use for the load test. - /// This member is required. public var instanceType: SageMakerClientTypes.ProductionVariantInstanceType? + /// Specifies the serverless configuration for an endpoint variant. + public var serverlessConfig: SageMakerClientTypes.ProductionVariantServerlessConfig? public init( environmentParameterRanges: SageMakerClientTypes.EnvironmentParameterRanges? = nil, inferenceSpecificationName: Swift.String? = nil, - instanceType: SageMakerClientTypes.ProductionVariantInstanceType? = nil + instanceType: SageMakerClientTypes.ProductionVariantInstanceType? = nil, + serverlessConfig: SageMakerClientTypes.ProductionVariantServerlessConfig? = nil ) { self.environmentParameterRanges = environmentParameterRanges self.inferenceSpecificationName = inferenceSpecificationName self.instanceType = instanceType + self.serverlessConfig = serverlessConfig } } @@ -42146,6 +42155,7 @@ extension SageMakerClientTypes.EndpointOutputConfiguration: Swift.Codable { case endpointName = "EndpointName" case initialInstanceCount = "InitialInstanceCount" case instanceType = "InstanceType" + case serverlessConfig = "ServerlessConfig" case variantName = "VariantName" } @@ -42154,12 +42164,15 @@ extension SageMakerClientTypes.EndpointOutputConfiguration: Swift.Codable { if let endpointName = self.endpointName { try encodeContainer.encode(endpointName, forKey: .endpointName) } - if initialInstanceCount != 0 { + if let initialInstanceCount = self.initialInstanceCount { try encodeContainer.encode(initialInstanceCount, forKey: .initialInstanceCount) } if let instanceType = self.instanceType { try encodeContainer.encode(instanceType.rawValue, forKey: .instanceType) } + if let serverlessConfig = self.serverlessConfig { + try encodeContainer.encode(serverlessConfig, forKey: .serverlessConfig) + } if let variantName = self.variantName { try encodeContainer.encode(variantName, forKey: .variantName) } @@ -42173,8 +42186,10 @@ extension SageMakerClientTypes.EndpointOutputConfiguration: Swift.Codable { variantName = variantNameDecoded let instanceTypeDecoded = try containerValues.decodeIfPresent(SageMakerClientTypes.ProductionVariantInstanceType.self, forKey: .instanceType) instanceType = instanceTypeDecoded - let initialInstanceCountDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .initialInstanceCount) ?? 0 + let initialInstanceCountDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .initialInstanceCount) initialInstanceCount = initialInstanceCountDecoded + let serverlessConfigDecoded = try containerValues.decodeIfPresent(SageMakerClientTypes.ProductionVariantServerlessConfig.self, forKey: .serverlessConfig) + serverlessConfig = serverlessConfigDecoded } } @@ -42185,25 +42200,27 @@ extension SageMakerClientTypes { /// This member is required. public var endpointName: Swift.String? /// The number of instances recommended to launch initially. - /// This member is required. - public var initialInstanceCount: Swift.Int + public var initialInstanceCount: Swift.Int? /// The instance type recommended by Amazon SageMaker Inference Recommender. - /// This member is required. public var instanceType: SageMakerClientTypes.ProductionVariantInstanceType? + /// Specifies the serverless configuration for an endpoint variant. + public var serverlessConfig: SageMakerClientTypes.ProductionVariantServerlessConfig? /// The name of the production variant (deployed model) made during a recommendation job. /// This member is required. public var variantName: Swift.String? public init( endpointName: Swift.String? = nil, - initialInstanceCount: Swift.Int = 0, + initialInstanceCount: Swift.Int? = nil, instanceType: SageMakerClientTypes.ProductionVariantInstanceType? = nil, + serverlessConfig: SageMakerClientTypes.ProductionVariantServerlessConfig? = nil, variantName: Swift.String? = nil ) { self.endpointName = endpointName self.initialInstanceCount = initialInstanceCount self.instanceType = instanceType + self.serverlessConfig = serverlessConfig self.variantName = variantName } } @@ -79735,7 +79752,7 @@ extension SageMakerClientTypes { /// The memory size of your serverless endpoint. Valid values are in 1 GB increments: 1024 MB, 2048 MB, 3072 MB, 4096 MB, 5120 MB, or 6144 MB. /// This member is required. public var memorySizeInMB: Swift.Int? - /// The amount of provisioned concurrency to allocate for the serverless endpoint. Should be less than or equal to MaxConcurrency. + /// The amount of provisioned concurrency to allocate for the serverless endpoint. Should be less than or equal to MaxConcurrency. This field is not supported for serverless endpoint recommendations for Inference Recommender jobs. For more information about creating an Inference Recommender job, see [CreateInferenceRecommendationsJobs](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateInferenceRecommendationsJob.html). public var provisionedConcurrency: Swift.Int? public init( @@ -82145,6 +82162,7 @@ extension SageMakerClientTypes.RecommendationJobContainerConfig: Swift.Codable { case frameworkVersion = "FrameworkVersion" case nearestModelName = "NearestModelName" case payloadConfig = "PayloadConfig" + case supportedEndpointType = "SupportedEndpointType" case supportedInstanceTypes = "SupportedInstanceTypes" case task = "Task" } @@ -82169,6 +82187,9 @@ extension SageMakerClientTypes.RecommendationJobContainerConfig: Swift.Codable { if let payloadConfig = self.payloadConfig { try encodeContainer.encode(payloadConfig, forKey: .payloadConfig) } + if let supportedEndpointType = self.supportedEndpointType { + try encodeContainer.encode(supportedEndpointType.rawValue, forKey: .supportedEndpointType) + } if let supportedInstanceTypes = supportedInstanceTypes { var supportedInstanceTypesContainer = encodeContainer.nestedUnkeyedContainer(forKey: .supportedInstanceTypes) for string0 in supportedInstanceTypes { @@ -82207,6 +82228,8 @@ extension SageMakerClientTypes.RecommendationJobContainerConfig: Swift.Codable { supportedInstanceTypes = supportedInstanceTypesDecoded0 let dataInputConfigDecoded = try containerValues.decodeIfPresent(Swift.String.self, forKey: .dataInputConfig) dataInputConfig = dataInputConfigDecoded + let supportedEndpointTypeDecoded = try containerValues.decodeIfPresent(SageMakerClientTypes.RecommendationJobSupportedEndpointType.self, forKey: .supportedEndpointType) + supportedEndpointType = supportedEndpointTypeDecoded } } @@ -82225,6 +82248,8 @@ extension SageMakerClientTypes { public var nearestModelName: Swift.String? /// Specifies the SamplePayloadUrl and all other sample payload-related fields. public var payloadConfig: SageMakerClientTypes.RecommendationJobPayloadConfig? + /// The endpoint type to receive recommendations for. By default this is null, and the results of the inference recommendation job return a combined list of both real-time and serverless benchmarks. By specifying a value for this field, you can receive a longer list of benchmarks for the desired endpoint type. + public var supportedEndpointType: SageMakerClientTypes.RecommendationJobSupportedEndpointType? /// A list of the instance types that are used to generate inferences in real-time. public var supportedInstanceTypes: [Swift.String]? /// The machine learning task that the model accomplishes. Valid Values: IMAGE_CLASSIFICATION | OBJECT_DETECTION | TEXT_GENERATION | IMAGE_SEGMENTATION | FILL_MASK | CLASSIFICATION | REGRESSION | OTHER @@ -82237,6 +82262,7 @@ extension SageMakerClientTypes { frameworkVersion: Swift.String? = nil, nearestModelName: Swift.String? = nil, payloadConfig: SageMakerClientTypes.RecommendationJobPayloadConfig? = nil, + supportedEndpointType: SageMakerClientTypes.RecommendationJobSupportedEndpointType? = nil, supportedInstanceTypes: [Swift.String]? = nil, task: Swift.String? = nil ) @@ -82247,6 +82273,7 @@ extension SageMakerClientTypes { self.frameworkVersion = frameworkVersion self.nearestModelName = nearestModelName self.payloadConfig = payloadConfig + self.supportedEndpointType = supportedEndpointType self.supportedInstanceTypes = supportedInstanceTypes self.task = task } @@ -82769,6 +82796,38 @@ extension SageMakerClientTypes { } +extension SageMakerClientTypes { + public enum RecommendationJobSupportedEndpointType: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { + case realtime + case serverless + case sdkUnknown(Swift.String) + + public static var allCases: [RecommendationJobSupportedEndpointType] { + return [ + .realtime, + .serverless, + .sdkUnknown("") + ] + } + public init?(rawValue: Swift.String) { + let value = Self.allCases.first(where: { $0.rawValue == rawValue }) + self = value ?? Self.sdkUnknown(rawValue) + } + public var rawValue: Swift.String { + switch self { + case .realtime: return "RealTime" + case .serverless: return "Serverless" + case let .sdkUnknown(s): return s + } + } + public init(from decoder: Swift.Decoder) throws { + let container = try decoder.singleValueContainer() + let rawValue = try container.decode(RawValue.self) + self = RecommendationJobSupportedEndpointType(rawValue: rawValue) ?? RecommendationJobSupportedEndpointType.sdkUnknown(rawValue) + } + } +} + extension SageMakerClientTypes { public enum RecommendationJobType: Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Codable, Swift.Hashable { case advanced @@ -82880,6 +82939,7 @@ extension SageMakerClientTypes.RecommendationMetrics: Swift.Codable { case maxInvocations = "MaxInvocations" case memoryUtilization = "MemoryUtilization" case modelLatency = "ModelLatency" + case modelSetupTime = "ModelSetupTime" } public func encode(to encoder: Swift.Encoder) throws { @@ -82902,6 +82962,9 @@ extension SageMakerClientTypes.RecommendationMetrics: Swift.Codable { if modelLatency != 0 { try encodeContainer.encode(modelLatency, forKey: .modelLatency) } + if let modelSetupTime = self.modelSetupTime { + try encodeContainer.encode(modelSetupTime, forKey: .modelSetupTime) + } } public init(from decoder: Swift.Decoder) throws { @@ -82918,6 +82981,8 @@ extension SageMakerClientTypes.RecommendationMetrics: Swift.Codable { cpuUtilization = cpuUtilizationDecoded let memoryUtilizationDecoded = try containerValues.decodeIfPresent(Swift.Float.self, forKey: .memoryUtilization) memoryUtilization = memoryUtilizationDecoded + let modelSetupTimeDecoded = try containerValues.decodeIfPresent(Swift.Int.self, forKey: .modelSetupTime) + modelSetupTime = modelSetupTimeDecoded } } @@ -82940,6 +83005,8 @@ extension SageMakerClientTypes { /// The expected model latency at maximum invocation per minute for the instance. /// This member is required. public var modelLatency: Swift.Int + /// The time it takes to launch new compute resources for a serverless endpoint. The time can vary depending on the model size, how long it takes to download the model, and the start-up time of the container. NaN indicates that the value is not available. + public var modelSetupTime: Swift.Int? public init( costPerHour: Swift.Float = 0.0, @@ -82947,7 +83014,8 @@ extension SageMakerClientTypes { cpuUtilization: Swift.Float? = nil, maxInvocations: Swift.Int = 0, memoryUtilization: Swift.Float? = nil, - modelLatency: Swift.Int = 0 + modelLatency: Swift.Int = 0, + modelSetupTime: Swift.Int? = nil ) { self.costPerHour = costPerHour @@ -82956,6 +83024,7 @@ extension SageMakerClientTypes { self.maxInvocations = maxInvocations self.memoryUtilization = memoryUtilization self.modelLatency = modelLatency + self.modelSetupTime = modelSetupTime } } @@ -84544,12 +84613,12 @@ extension SageMakerClientTypes.RollingUpdatePolicy: Swift.Codable { extension SageMakerClientTypes { /// Specifies a rolling deployment strategy for updating a SageMaker endpoint. public struct RollingUpdatePolicy: Swift.Equatable { - /// Batch size for each rolling step to provision capacity and turn on traffic on the new endpoint fleet, and terminate capacity on the old endpoint fleet. Value must be between 5% to 50% of the variant's total instance count. + /// Specifies the type and size of the endpoint capacity to activate for a blue/green deployment, a rolling deployment, or a rollback strategy. You can specify your batches as either instance count or the overall percentage or your fleet. For a rollback strategy, if you don't specify the fields in this object, or if you set the Value to 100%, then SageMaker uses a blue/green rollback strategy and rolls all traffic back to the blue fleet. /// This member is required. public var maximumBatchSize: SageMakerClientTypes.CapacitySize? /// The time limit for the total deployment. Exceeding this limit causes a timeout. public var maximumExecutionTimeoutInSeconds: Swift.Int? - /// Batch size for rollback to the old endpoint fleet. Each rolling step to provision capacity and turn on traffic on the old endpoint fleet, and terminate capacity on the new endpoint fleet. If this field is absent, the default value will be set to 100% of total capacity which means to bring up the whole capacity of the old fleet at once during rollback. + /// Specifies the type and size of the endpoint capacity to activate for a blue/green deployment, a rolling deployment, or a rollback strategy. You can specify your batches as either instance count or the overall percentage or your fleet. For a rollback strategy, if you don't specify the fields in this object, or if you set the Value to 100%, then SageMaker uses a blue/green rollback strategy and rolls all traffic back to the blue fleet. public var rollbackMaximumBatchSize: SageMakerClientTypes.CapacitySize? /// The length of the baking period, during which SageMaker monitors alarms for each batch on the new fleet. /// This member is required. diff --git a/Sources/Services/AWSSecurityHub/models/Models.swift b/Sources/Services/AWSSecurityHub/models/Models.swift index 703718fa473..615b075e889 100644 --- a/Sources/Services/AWSSecurityHub/models/Models.swift +++ b/Sources/Services/AWSSecurityHub/models/Models.swift @@ -1014,7 +1014,7 @@ extension SecurityHubClientTypes { public struct AutomationRulesAction: Swift.Equatable { /// Specifies that the automation rule action is an update to a finding field. public var findingFieldsUpdate: SecurityHubClientTypes.AutomationRulesFindingFieldsUpdate? - /// Specifies that the rule action should update the Types finding field. The Types finding field provides one or more finding types in the format of namespace/category/classifier that classify a finding. For more information, see [Types taxonomy for ASFF](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-findings-format-type-taxonomy.html) in the Security Hub User Guide. + /// Specifies that the rule action should update the Types finding field. The Types finding field classifies findings in the format of namespace/category/classifier. For more information, see [Types taxonomy for ASFF](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-findings-format-type-taxonomy.html) in the Security Hub User Guide. public var type: SecurityHubClientTypes.AutomationRulesActionType? public init( @@ -1158,11 +1158,11 @@ extension SecurityHubClientTypes { public var createdAt: ClientRuntime.Date? /// The principal that created a rule. public var createdBy: Swift.String? - /// A set of [Amazon Web Services Security Finding Format](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-findings-format.html) finding field attributes and corresponding expected values that Security Hub uses to filter findings. If a finding matches the conditions specified in this parameter, Security Hub applies the rule action to the finding. + /// A set of [Amazon Web Services Security Finding Format](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-findings-format.html) finding field attributes and corresponding expected values that Security Hub uses to filter findings. If a rule is enabled and a finding matches the conditions specified in this parameter, Security Hub applies the rule action to the finding. public var criteria: SecurityHubClientTypes.AutomationRulesFindingFilters? /// A description of the rule. public var description: Swift.String? - /// Specifies whether a rule is the last to be applied with respect to a finding that matches the rule criteria. This is useful when a finding matches the criteria for multiple rules, and each rule has different actions. If the value of this field is set to true for a rule, Security Hub applies the rule action to a finding that matches the rule criteria and won't evaluate other rules for the finding.
 The default value of this field is false. + /// Specifies whether a rule is the last to be applied with respect to a finding that matches the rule criteria. This is useful when a finding matches the criteria for multiple rules, and each rule has different actions. If the value of this field is set to true for a rule, Security Hub applies the rule action to a finding that matches the rule criteria and doesn't evaluate other rules for the finding.
 The default value of this field is false. public var isTerminal: Swift.Bool /// The Amazon Resource Name (ARN) of a rule. public var ruleArn: Swift.String? @@ -1170,7 +1170,7 @@ extension SecurityHubClientTypes { public var ruleName: Swift.String? /// An integer ranging from 1 to 1000 that represents the order in which the rule action is applied to findings. Security Hub applies rules with lower values for this parameter first. public var ruleOrder: Swift.Int - /// Whether the rule is active after it is created. If this parameter is equal to >ENABLED, Security Hub will apply the rule to findings and finding updates after the rule is created. + /// Whether the rule is active after it is created. If this parameter is equal to ENABLED, Security Hub starts applying the rule to findings and finding updates after the rule is created. public var ruleStatus: SecurityHubClientTypes.RuleStatus? /// A timestamp that indicates when the rule was most recently updated. Uses the date-time format specified in [RFC 3339 section 5.6, Internet Date/Time Format](https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z. public var updatedAt: ClientRuntime.Date? @@ -1309,23 +1309,23 @@ extension SecurityHubClientTypes.AutomationRulesFindingFieldsUpdate: Swift.Codab } extension SecurityHubClientTypes { - /// Identifies the finding fields that the automation rule action will update when a finding matches the defined criteria. + /// Identifies the finding fields that the automation rule action updates when a finding matches the defined criteria. public struct AutomationRulesFindingFieldsUpdate: Swift.Equatable { - /// The rule action will update the Confidence field of a finding. + /// The rule action updates the Confidence field of a finding. public var confidence: Swift.Int - /// The rule action will update the Criticality field of a finding. + /// The rule action updates the Criticality field of a finding. public var criticality: Swift.Int /// The updated note. public var note: SecurityHubClientTypes.NoteUpdate? - /// A list of findings that are related to a finding. + /// The rule action updates the RelatedFindings field of a finding. public var relatedFindings: [SecurityHubClientTypes.RelatedFinding]? /// Updates to the severity information for a finding. public var severity: SecurityHubClientTypes.SeverityUpdate? - /// The rule action will update the Types field of a finding. + /// The rule action updates the Types field of a finding. public var types: [Swift.String]? - /// The rule action will update the UserDefinedFields field of a finding. + /// The rule action updates the UserDefinedFields field of a finding. public var userDefinedFields: [Swift.String:Swift.String]? - /// The rule action will update the VerificationState field of a finding. + /// The rule action updates the VerificationState field of a finding. public var verificationState: SecurityHubClientTypes.VerificationState? /// Used to update information about the investigation into the finding. public var workflow: SecurityHubClientTypes.WorkflowUpdate? @@ -2227,7 +2227,7 @@ extension SecurityHubClientTypes { public var createdBy: Swift.String? /// A description of the rule. public var description: Swift.String? - /// Specifies whether a rule is the last to be applied with respect to a finding that matches the rule criteria. This is useful when a finding matches the criteria for multiple rules, and each rule has different actions. If the value of this field is set to true for a rule, Security Hub applies the rule action to a finding that matches the rule criteria and won't evaluate other rules for the finding.
 The default value of this field is false. + /// Specifies whether a rule is the last to be applied with respect to a finding that matches the rule criteria. This is useful when a finding matches the criteria for multiple rules, and each rule has different actions. If the value of this field is set to true for a rule, Security Hub applies the rule action to a finding that matches the rule criteria and doesn't evaluate other rules for the finding.
 The default value of this field is false. public var isTerminal: Swift.Bool /// The Amazon Resource Name (ARN) for the rule. public var ruleArn: Swift.String? @@ -2235,7 +2235,7 @@ extension SecurityHubClientTypes { public var ruleName: Swift.String? /// An integer ranging from 1 to 1000 that represents the order in which the rule action is applied to findings. Security Hub applies rules with lower values for this parameter first. public var ruleOrder: Swift.Int - /// Whether the rule is active after it is created. If this parameter is equal to ENABLED, Security Hub will apply the rule to findings and finding updates after the rule is created. To change the value of this parameter after creating a rule, use BatchUpdateAutomationRules. + /// Whether the rule is active after it is created. If this parameter is equal to ENABLED, Security Hub starts applying the rule to findings and finding updates after the rule is created. To change the value of this parameter after creating a rule, use [BatchUpdateAutomationRules](https://docs.aws.amazon.com/securityhub/1.0/APIReference/API_BatchUpdateAutomationRules.html). public var ruleStatus: SecurityHubClientTypes.RuleStatus? /// A timestamp that indicates when the rule was most recently updated. Uses the date-time format specified in [RFC 3339 section 5.6, Internet Date/Time Format](https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z. public var updatedAt: ClientRuntime.Date? @@ -43984,13 +43984,13 @@ public struct CreateAutomationRuleInput: Swift.Equatable { /// One or more actions to update finding fields if a finding matches the conditions specified in Criteria. /// This member is required. public var actions: [SecurityHubClientTypes.AutomationRulesAction]? - /// A set of ASFF finding field attributes and corresponding expected values that Security Hub uses to filter findings. If a finding matches the conditions specified in this parameter, Security Hub applies the rule action to the finding. + /// A set of ASFF finding field attributes and corresponding expected values that Security Hub uses to filter findings. If a rule is enabled and a finding matches the conditions specified in this parameter, Security Hub applies the rule action to the finding. /// This member is required. public var criteria: SecurityHubClientTypes.AutomationRulesFindingFilters? /// A description of the rule. /// This member is required. public var description: Swift.String? - /// Specifies whether a rule is the last to be applied with respect to a finding that matches the rule criteria. This is useful when a finding matches the criteria for multiple rules, and each rule has different actions. If the value of this field is set to true for a rule, Security Hub applies the rule action to a finding that matches the rule criteria and won't evaluate other rules for the finding. The default value of this field is false. + /// Specifies whether a rule is the last to be applied with respect to a finding that matches the rule criteria. This is useful when a finding matches the criteria for multiple rules, and each rule has different actions. If the value of this field is set to true for a rule, Security Hub applies the rule action to a finding that matches the rule criteria and doesn't evaluate other rules for the finding. The default value of this field is false. public var isTerminal: Swift.Bool? /// The name of the rule. /// This member is required. @@ -43998,7 +43998,7 @@ public struct CreateAutomationRuleInput: Swift.Equatable { /// An integer ranging from 1 to 1000 that represents the order in which the rule action is applied to findings. Security Hub applies rules with lower values for this parameter first. /// This member is required. public var ruleOrder: Swift.Int? - /// Whether the rule is active after it is created. If this parameter is equal to Enabled, Security Hub will apply the rule to findings and finding updates after the rule is created. To change the value of this parameter after creating a rule, use BatchUpdateAutomationRules. + /// Whether the rule is active after it is created. If this parameter is equal to ENABLED, Security Hub starts applying the rule to findings and finding updates after the rule is created. To change the value of this parameter after creating a rule, use [BatchUpdateAutomationRules](https://docs.aws.amazon.com/securityhub/1.0/APIReference/API_BatchUpdateAutomationRules.html). public var ruleStatus: SecurityHubClientTypes.RuleStatus? /// User-defined tags that help you label the purpose of a rule. public var tags: [Swift.String:Swift.String]? @@ -55870,7 +55870,7 @@ extension SecurityHubClientTypes { /// The unique identifier of a security control across standards. Values for this field typically consist of an Amazon Web Service name and a number, such as APIGateway.3. /// This member is required. public var securityControlId: Swift.String? - /// The status of a security control based on the compliance status of its findings. For more information about how control status is determined, see [Determining the overall status of a control from its findings](https://docs.aws.amazon.com/securityhub/latest/userguide/controls-overall-status.html) in the Security Hub User Guide. + /// The enablement status of a security control in a specific standard. /// This member is required. public var securityControlStatus: SecurityHubClientTypes.ControlStatus? /// The severity of a security control. For more information about how Security Hub determines control severity, see [Assigning severity to control findings](https://docs.aws.amazon.com/securityhub/latest/userguide/controls-findings-create-update.html#control-findings-severity) in the Security Hub User Guide. @@ -58636,11 +58636,11 @@ extension SecurityHubClientTypes { public struct UpdateAutomationRulesRequestItem: Swift.Equatable { /// One or more actions to update finding fields if a finding matches the conditions specified in Criteria. public var actions: [SecurityHubClientTypes.AutomationRulesAction]? - /// A set of ASFF finding field attributes and corresponding expected values that Security Hub uses to filter findings. If a finding matches the conditions specified in this parameter, Security Hub applies the rule action to the finding. + /// A set of ASFF finding field attributes and corresponding expected values that Security Hub uses to filter findings. If a rule is enabled and a finding matches the conditions specified in this parameter, Security Hub applies the rule action to the finding. public var criteria: SecurityHubClientTypes.AutomationRulesFindingFilters? /// A description of the rule. public var description: Swift.String? - /// Specifies whether a rule is the last to be applied with respect to a finding that matches the rule criteria. This is useful when a finding matches the criteria for multiple rules, and each rule has different actions. If the value of this field is set to true for a rule, Security Hub applies the rule action to a finding that matches the rule criteria and won't evaluate other rules for the finding.
 The default value of this field is false. + /// Specifies whether a rule is the last to be applied with respect to a finding that matches the rule criteria. This is useful when a finding matches the criteria for multiple rules, and each rule has different actions. If the value of this field is set to true for a rule, Security Hub applies the rule action to a finding that matches the rule criteria and doesn't evaluate other rules for the finding.
 The default value of this field is false. public var isTerminal: Swift.Bool /// The Amazon Resource Name (ARN) for the rule. /// This member is required. @@ -58649,7 +58649,7 @@ extension SecurityHubClientTypes { public var ruleName: Swift.String? /// An integer ranging from 1 to 1000 that represents the order in which the rule action is applied to findings. Security Hub applies rules with lower values for this parameter first. public var ruleOrder: Swift.Int - /// Whether the rule is active after it is created. If this parameter is equal to ENABLED, Security Hub will apply the rule to findings and finding updates after the rule is created. To change the value of this parameter after creating a rule, use BatchUpdateAutomationRules. + /// Whether the rule is active after it is created. If this parameter is equal to ENABLED, Security Hub starts applying the rule to findings and finding updates after the rule is created. To change the value of this parameter after creating a rule, use [BatchUpdateAutomationRules](https://docs.aws.amazon.com/securityhub/1.0/APIReference/API_BatchUpdateAutomationRules.html). public var ruleStatus: SecurityHubClientTypes.RuleStatus? public init( diff --git a/packageDependencies.plist b/packageDependencies.plist index 2a16cda1c6e..b5b83807e35 100644 --- a/packageDependencies.plist +++ b/packageDependencies.plist @@ -9,6 +9,6 @@ clientRuntimeBranch main clientRuntimeVersion - 0.24.0 + 0.25.0