From 1790d497236c16f38d349d8172682794b3c8449b Mon Sep 17 00:00:00 2001 From: AWS SDK Swift Automation Date: Tue, 15 Oct 2024 18:54:08 +0000 Subject: [PATCH] chore: Updates version to 1.0.20 --- Package.swift | 2 + Package.version | 2 +- Package.version.next | 2 +- .../Documentation.docc/AWSSDKForSwift.md | 4 + .../Sources/AWSAmplify/AmplifyClient.swift | 4 +- .../Sources/AWSAmplify/Models.swift | 54 +- .../AWSApplicationAutoScaling/Models.swift | 6 + .../AWSCleanRooms/CleanRoomsClient.swift | 1569 ++++++- .../Sources/AWSCleanRooms/Models.swift | 3303 +++++++++++++- .../Sources/AWSCleanRoomsML/Models.swift | 72 +- .../CloudFormationClient.swift | 46 +- .../Sources/AWSCloudFormation/Models.swift | 294 +- .../Sources/AWSCodeBuild/Models.swift | 188 + .../AWSCodeCommit/CodeCommitClient.swift | 1 + .../Sources/AWSCodeCommit/Models.swift | 43 +- .../AWSCodeStarconnections/Package.swift.txt | 99 + .../AuthSchemeResolver.swift | 56 + .../CodeStarconnectionsClient.swift | 2166 +++++++++ .../AWSCodeStarconnections/Endpoints.swift | 73 + .../AWSCodeStarconnections/Models.swift | 3861 +++++++++++++++++ .../AWSCodeStarconnections/Paginators.swift | 100 + .../AWSCodeStarconnections/Plugins.swift | 82 + .../Resources/Package.version | 1 + .../EndpointResolverTest.swift | 816 ++++ .../Package.swift.txt | 99 + .../AuthSchemeResolver.swift | 56 + .../CodestarnotificationsClient.swift | 1116 +++++ .../AWSCodestarnotifications/Endpoints.swift | 73 + .../AWSCodestarnotifications/Models.swift | 1837 ++++++++ .../AWSCodestarnotifications/Paginators.swift | 105 + .../AWSCodestarnotifications/Plugins.swift | 82 + .../Resources/Package.version | 1 + .../EndpointResolverTest.swift | 516 +++ .../AWSConnectContactLens/Models.swift | 125 +- .../Sources/AWSFirehose/Models.swift | 545 ++- .../AWSIvs/Sources/AWSIvs/Models.swift | 11 + .../MedicalImagingClient.swift | 1 + .../Sources/AWSMedicalImaging/Models.swift | 103 + .../Sources/AWSNetworkFirewall/Models.swift | 17 +- .../NetworkFirewallClient.swift | 2 +- .../Sources/AWSQBusiness/Models.swift | 31 +- .../Sources/AWSRedshift/Models.swift | 1046 ++++- .../Sources/AWSRedshift/Paginators.swift | 32 + .../Sources/AWSRedshift/RedshiftClient.swift | 294 ++ .../AWSRedshiftServerless/Models.swift | 66 +- .../RedshiftServerlessClient.swift | 2 + .../Sources/AWSResiliencehub/Models.swift | 64 +- .../Sources/AWSResiliencehub/Paginators.swift | 1 + .../ResiliencehubClient.swift | 2 +- .../Sources/AWSRolesAnywhere/Models.swift | 15 + .../AWSSESv2/Sources/AWSSESv2/Models.swift | 11 + .../Sources/AWSSecretsManager/Models.swift | 2 +- .../SecretsManagerClient.swift | 6 +- .../Sources/AWSTaxSettings/Endpoints.swift | 2 +- .../EndpointResolverTest.swift | 439 +- .../Sources/AWSTimestreamQuery/Models.swift | 2 +- .../AWSTnb/Sources/AWSTnb/Models.swift | 278 +- .../AWSTnb/Sources/AWSTnb/Paginators.swift | 3 +- .../AWSTnb/Sources/AWSTnb/TnbClient.swift | 4 +- .../AWSTranscribeStreaming/Models.swift | 170 +- .../TranscribeStreamingClient.swift | 6 +- .../AWSWorkSpacesThinClient/Models.swift | 2 +- 62 files changed, 19115 insertions(+), 896 deletions(-) create mode 100644 Sources/Services/AWSCodeStarconnections/Package.swift.txt create mode 100644 Sources/Services/AWSCodeStarconnections/Sources/AWSCodeStarconnections/AuthSchemeResolver.swift create mode 100644 Sources/Services/AWSCodeStarconnections/Sources/AWSCodeStarconnections/CodeStarconnectionsClient.swift create mode 100644 Sources/Services/AWSCodeStarconnections/Sources/AWSCodeStarconnections/Endpoints.swift create mode 100644 Sources/Services/AWSCodeStarconnections/Sources/AWSCodeStarconnections/Models.swift create mode 100644 Sources/Services/AWSCodeStarconnections/Sources/AWSCodeStarconnections/Paginators.swift create mode 100644 Sources/Services/AWSCodeStarconnections/Sources/AWSCodeStarconnections/Plugins.swift create mode 100644 Sources/Services/AWSCodeStarconnections/Sources/AWSCodeStarconnections/Resources/Package.version create mode 100644 Sources/Services/AWSCodeStarconnections/Tests/AWSCodeStarconnectionsTests/EndpointResolverTest.swift create mode 100644 Sources/Services/AWSCodestarnotifications/Package.swift.txt create mode 100644 Sources/Services/AWSCodestarnotifications/Sources/AWSCodestarnotifications/AuthSchemeResolver.swift create mode 100644 Sources/Services/AWSCodestarnotifications/Sources/AWSCodestarnotifications/CodestarnotificationsClient.swift create mode 100644 Sources/Services/AWSCodestarnotifications/Sources/AWSCodestarnotifications/Endpoints.swift create mode 100644 Sources/Services/AWSCodestarnotifications/Sources/AWSCodestarnotifications/Models.swift create mode 100644 Sources/Services/AWSCodestarnotifications/Sources/AWSCodestarnotifications/Paginators.swift create mode 100644 Sources/Services/AWSCodestarnotifications/Sources/AWSCodestarnotifications/Plugins.swift create mode 100644 Sources/Services/AWSCodestarnotifications/Sources/AWSCodestarnotifications/Resources/Package.version create mode 100644 Sources/Services/AWSCodestarnotifications/Tests/AWSCodestarnotificationsTests/EndpointResolverTest.swift diff --git a/Package.swift b/Package.swift index 38fb6562451..dde1de288a2 100644 --- a/Package.swift +++ b/Package.swift @@ -98,7 +98,9 @@ let serviceTargets: [String] = [ "AWSCodeGuruReviewer", "AWSCodeGuruSecurity", "AWSCodePipeline", + "AWSCodeStarconnections", "AWSCodeartifact", + "AWSCodestarnotifications", "AWSCognitoIdentity", "AWSCognitoIdentityProvider", "AWSCognitoSync", diff --git a/Package.version b/Package.version index e7ad390ee29..450f88ee2c4 100644 --- a/Package.version +++ b/Package.version @@ -1 +1 @@ -1.0.19 \ No newline at end of file +1.0.20 \ No newline at end of file diff --git a/Package.version.next b/Package.version.next index 450f88ee2c4..ace256ef5d6 100644 --- a/Package.version.next +++ b/Package.version.next @@ -1 +1 @@ -1.0.20 \ No newline at end of file +1.0.21 \ No newline at end of file diff --git a/Sources/Core/AWSSDKForSwift/Documentation.docc/AWSSDKForSwift.md b/Sources/Core/AWSSDKForSwift/Documentation.docc/AWSSDKForSwift.md index 08a8c312fc7..34f2b35a440 100644 --- a/Sources/Core/AWSSDKForSwift/Documentation.docc/AWSSDKForSwift.md +++ b/Sources/Core/AWSSDKForSwift/Documentation.docc/AWSSDKForSwift.md @@ -229,8 +229,12 @@ This SDK is open-source. Code is available on Github [here](https://github.com/ [AWSCodePipeline](../../../../../swift/api/awscodepipeline/latest) +[AWSCodeStarconnections](../../../../../swift/api/awscodestarconnections/latest) + [AWSCodeartifact](../../../../../swift/api/awscodeartifact/latest) +[AWSCodestarnotifications](../../../../../swift/api/awscodestarnotifications/latest) + [AWSCognitoIdentity](../../../../../swift/api/awscognitoidentity/latest) [AWSCognitoIdentityProvider](../../../../../swift/api/awscognitoidentityprovider/latest) diff --git a/Sources/Services/AWSAmplify/Sources/AWSAmplify/AmplifyClient.swift b/Sources/Services/AWSAmplify/Sources/AWSAmplify/AmplifyClient.swift index 7e5c1c0df93..49134e1692e 100644 --- a/Sources/Services/AWSAmplify/Sources/AWSAmplify/AmplifyClient.swift +++ b/Sources/Services/AWSAmplify/Sources/AWSAmplify/AmplifyClient.swift @@ -416,7 +416,7 @@ extension AmplifyClient { /// Performs the `CreateDeployment` operation on the `Amplify` service. /// - /// Creates a deployment for a manually deployed Amplify app. Manually deployed apps are not connected to a repository. The maximum duration between the CreateDeployment call and the StartDeployment call cannot exceed 8 hours. If the duration exceeds 8 hours, the StartDeployment call and the associated Job will fail. + /// Creates a deployment for a manually deployed Amplify app. Manually deployed apps are not connected to a Git repository. The maximum duration between the CreateDeployment call and the StartDeployment call cannot exceed 8 hours. If the duration exceeds 8 hours, the StartDeployment call and the associated Job will fail. /// /// - Parameter CreateDeploymentInput : The request structure for the create a new deployment request. /// @@ -2168,7 +2168,7 @@ extension AmplifyClient { /// Performs the `StartDeployment` operation on the `Amplify` service. /// - /// Starts a deployment for a manually deployed app. Manually deployed apps are not connected to a repository. The maximum duration between the CreateDeployment call and the StartDeployment call cannot exceed 8 hours. If the duration exceeds 8 hours, the StartDeployment call and the associated Job will fail. + /// Starts a deployment for a manually deployed app. Manually deployed apps are not connected to a Git repository. The maximum duration between the CreateDeployment call and the StartDeployment call cannot exceed 8 hours. If the duration exceeds 8 hours, the StartDeployment call and the associated Job will fail. /// /// - Parameter StartDeploymentInput : The request structure for the start a deployment request. /// diff --git a/Sources/Services/AWSAmplify/Sources/AWSAmplify/Models.swift b/Sources/Services/AWSAmplify/Sources/AWSAmplify/Models.swift index e9a4c1d3120..883db1df026 100644 --- a/Sources/Services/AWSAmplify/Sources/AWSAmplify/Models.swift +++ b/Sources/Services/AWSAmplify/Sources/AWSAmplify/Models.swift @@ -1673,6 +1673,35 @@ extension AmplifyClientTypes { } } +extension AmplifyClientTypes { + + public enum SourceUrlType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case bucketPrefix + case zip + case sdkUnknown(Swift.String) + + public static var allCases: [SourceUrlType] { + return [ + .bucketPrefix, + .zip + ] + } + + 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 .bucketPrefix: return "BUCKET_PREFIX" + case .zip: return "ZIP" + case let .sdkUnknown(s): return s + } + } + } +} + extension AmplifyClientTypes { public enum JobStatus: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { @@ -1738,9 +1767,13 @@ extension AmplifyClientTypes { /// The unique ID for the job. /// This member is required. public var jobId: Swift.String? - /// The type for the job. If the value is RELEASE, the job was manually released from its source by using the StartJob API. If the value is RETRY, the job was manually retried using the StartJob API. If the value is WEB_HOOK, the job was automatically triggered by webhooks. + /// The type for the job. If the value is RELEASE, the job was manually released from its source by using the StartJob API. This value is available only for apps that are connected to a repository. If the value is RETRY, the job was manually retried using the StartJob API. If the value is WEB_HOOK, the job was automatically triggered by webhooks. If the value is MANUAL, the job is for a manually deployed app. Manually deployed apps are not connected to a Git repository. /// This member is required. public var jobType: AmplifyClientTypes.JobType? + /// The source URL for the files to deploy. The source URL can be either an HTTP GET URL that is publicly accessible and downloads a single .zip file, or an Amazon S3 bucket and prefix. + public var sourceUrl: Swift.String? + /// The type of source specified by the sourceURL. If the value is ZIP, the source is a .zip file. If the value is BUCKET_PREFIX, the source is an Amazon S3 bucket and prefix. If no value is specified, the default is ZIP. + public var sourceUrlType: AmplifyClientTypes.SourceUrlType? /// The start date and time for the job. /// This member is required. public var startTime: Foundation.Date? @@ -1756,6 +1789,8 @@ extension AmplifyClientTypes { jobArn: Swift.String? = nil, jobId: Swift.String? = nil, jobType: AmplifyClientTypes.JobType? = nil, + sourceUrl: Swift.String? = nil, + sourceUrlType: AmplifyClientTypes.SourceUrlType? = nil, startTime: Foundation.Date? = nil, status: AmplifyClientTypes.JobStatus? = nil ) @@ -1767,6 +1802,8 @@ extension AmplifyClientTypes { self.jobArn = jobArn self.jobId = jobId self.jobType = jobType + self.sourceUrl = sourceUrl + self.sourceUrlType = sourceUrlType self.startTime = startTime self.status = status } @@ -2537,25 +2574,29 @@ public struct StartDeploymentInput: Swift.Sendable { /// The unique ID for an Amplify app. /// This member is required. public var appId: Swift.String? - /// The name of the branch to use for the job. + /// The name of the branch to use for the deployment job. /// This member is required. public var branchName: Swift.String? - /// The job ID for this deployment, generated by the create deployment request. + /// The job ID for this deployment that is generated by the CreateDeployment request. public var jobId: Swift.String? - /// The source URL for this deployment, used when calling start deployment without create deployment. The source URL can be any HTTP GET URL that is publicly accessible and downloads a single .zip file. + /// The source URL for the deployment that is used when calling StartDeployment without CreateDeployment. The source URL can be either an HTTP GET URL that is publicly accessible and downloads a single .zip file, or an Amazon S3 bucket and prefix. public var sourceUrl: Swift.String? + /// The type of source specified by the sourceURL. If the value is ZIP, the source is a .zip file. If the value is BUCKET_PREFIX, the source is an Amazon S3 bucket and prefix. If no value is specified, the default is ZIP. + public var sourceUrlType: AmplifyClientTypes.SourceUrlType? public init( appId: Swift.String? = nil, branchName: Swift.String? = nil, jobId: Swift.String? = nil, - sourceUrl: Swift.String? = nil + sourceUrl: Swift.String? = nil, + sourceUrlType: AmplifyClientTypes.SourceUrlType? = nil ) { self.appId = appId self.branchName = branchName self.jobId = jobId self.sourceUrl = sourceUrl + self.sourceUrlType = sourceUrlType } } @@ -3683,6 +3724,7 @@ extension StartDeploymentInput { guard let value else { return } try writer["jobId"].write(value.jobId) try writer["sourceUrl"].write(value.sourceUrl) + try writer["sourceUrlType"].write(value.sourceUrlType) } } @@ -5232,6 +5274,8 @@ extension AmplifyClientTypes.JobSummary { value.status = try reader["status"].readIfPresent() ?? .sdkUnknown("") value.endTime = try reader["endTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) value.jobType = try reader["jobType"].readIfPresent() ?? .sdkUnknown("") + value.sourceUrl = try reader["sourceUrl"].readIfPresent() + value.sourceUrlType = try reader["sourceUrlType"].readIfPresent() return value } } diff --git a/Sources/Services/AWSApplicationAutoScaling/Sources/AWSApplicationAutoScaling/Models.swift b/Sources/Services/AWSApplicationAutoScaling/Sources/AWSApplicationAutoScaling/Models.swift index b24fe8cc9b8..9d863c506ec 100644 --- a/Sources/Services/AWSApplicationAutoScaling/Sources/AWSApplicationAutoScaling/Models.swift +++ b/Sources/Services/AWSApplicationAutoScaling/Sources/AWSApplicationAutoScaling/Models.swift @@ -1869,7 +1869,9 @@ extension ApplicationAutoScalingClientTypes { case neptunereaderaveragecpuutilization case rdsreaderaveragecpuutilization case rdsreaderaveragedatabaseconnections + case sagemakerinferencecomponentconcurrentrequestspercopyhighresolution case sagemakerinferencecomponentinvocationspercopy + case sagemakervariantconcurrentrequestspermodelhighresolution case sagemakervariantinvocationsperinstance case sagemakervariantprovisionedconcurrencyutilization case workspacesaverageusersessionscapacityutilization @@ -1898,7 +1900,9 @@ extension ApplicationAutoScalingClientTypes { .neptunereaderaveragecpuutilization, .rdsreaderaveragecpuutilization, .rdsreaderaveragedatabaseconnections, + .sagemakerinferencecomponentconcurrentrequestspercopyhighresolution, .sagemakerinferencecomponentinvocationspercopy, + .sagemakervariantconcurrentrequestspermodelhighresolution, .sagemakervariantinvocationsperinstance, .sagemakervariantprovisionedconcurrencyutilization, .workspacesaverageusersessionscapacityutilization @@ -1933,7 +1937,9 @@ extension ApplicationAutoScalingClientTypes { case .neptunereaderaveragecpuutilization: return "NeptuneReaderAverageCPUUtilization" case .rdsreaderaveragecpuutilization: return "RDSReaderAverageCPUUtilization" case .rdsreaderaveragedatabaseconnections: return "RDSReaderAverageDatabaseConnections" + case .sagemakerinferencecomponentconcurrentrequestspercopyhighresolution: return "SageMakerInferenceComponentConcurrentRequestsPerCopyHighResolution" case .sagemakerinferencecomponentinvocationspercopy: return "SageMakerInferenceComponentInvocationsPerCopy" + case .sagemakervariantconcurrentrequestspermodelhighresolution: return "SageMakerVariantConcurrentRequestsPerModelHighResolution" case .sagemakervariantinvocationsperinstance: return "SageMakerVariantInvocationsPerInstance" case .sagemakervariantprovisionedconcurrencyutilization: return "SageMakerVariantProvisionedConcurrencyUtilization" case .workspacesaverageusersessionscapacityutilization: return "WorkSpacesAverageUserSessionsCapacityUtilization" diff --git a/Sources/Services/AWSCleanRooms/Sources/AWSCleanRooms/CleanRoomsClient.swift b/Sources/Services/AWSCleanRooms/Sources/AWSCleanRooms/CleanRoomsClient.swift index b21ecf7addd..d22b2aa5fea 100644 --- a/Sources/Services/AWSCleanRooms/Sources/AWSCleanRooms/CleanRoomsClient.swift +++ b/Sources/Services/AWSCleanRooms/Sources/AWSCleanRooms/CleanRoomsClient.swift @@ -859,6 +859,230 @@ extension CleanRoomsClient { return try await op.execute(input: input) } + /// Performs the `CreateConfiguredTableAssociationAnalysisRule` operation on the `AWSBastionControlPlaneServiceLambda` service. + /// + /// Creates a new analysis rule for an associated configured table. + /// + /// - Parameter CreateConfiguredTableAssociationAnalysisRuleInput : [no documentation found] + /// + /// - Returns: `CreateConfiguredTableAssociationAnalysisRuleOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : Caller does not have sufficient access to perform this action. + /// - `ConflictException` : Updating or deleting a resource can cause an inconsistent state. + /// - `InternalServerException` : Unexpected error during processing of request. + /// - `ResourceNotFoundException` : Request references a resource which does not exist. + /// - `ThrottlingException` : Request was denied due to request throttling. + /// - `ValidationException` : The input fails to satisfy the specified constraints. + public func createConfiguredTableAssociationAnalysisRule(input: CreateConfiguredTableAssociationAnalysisRuleInput) async throws -> CreateConfiguredTableAssociationAnalysisRuleOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "createConfiguredTableAssociationAnalysisRule") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(CreateConfiguredTableAssociationAnalysisRuleInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: CreateConfiguredTableAssociationAnalysisRuleInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(CreateConfiguredTableAssociationAnalysisRuleOutput.httpOutput(from:), CreateConfiguredTableAssociationAnalysisRuleOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CleanRooms") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "CreateConfiguredTableAssociationAnalysisRule") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `CreateIdMappingTable` operation on the `AWSBastionControlPlaneServiceLambda` service. + /// + /// Creates an ID mapping table. + /// + /// - Parameter CreateIdMappingTableInput : [no documentation found] + /// + /// - Returns: `CreateIdMappingTableOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : Caller does not have sufficient access to perform this action. + /// - `ConflictException` : Updating or deleting a resource can cause an inconsistent state. + /// - `InternalServerException` : Unexpected error during processing of request. + /// - `ResourceNotFoundException` : Request references a resource which does not exist. + /// - `ServiceQuotaExceededException` : Request denied because service quota has been exceeded. + /// - `ThrottlingException` : Request was denied due to request throttling. + /// - `ValidationException` : The input fails to satisfy the specified constraints. + public func createIdMappingTable(input: CreateIdMappingTableInput) async throws -> CreateIdMappingTableOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "createIdMappingTable") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(CreateIdMappingTableInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: CreateIdMappingTableInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(CreateIdMappingTableOutput.httpOutput(from:), CreateIdMappingTableOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CleanRooms") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "CreateIdMappingTable") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `CreateIdNamespaceAssociation` operation on the `AWSBastionControlPlaneServiceLambda` service. + /// + /// Creates an ID namespace association. + /// + /// - Parameter CreateIdNamespaceAssociationInput : [no documentation found] + /// + /// - Returns: `CreateIdNamespaceAssociationOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : Caller does not have sufficient access to perform this action. + /// - `ConflictException` : Updating or deleting a resource can cause an inconsistent state. + /// - `InternalServerException` : Unexpected error during processing of request. + /// - `ResourceNotFoundException` : Request references a resource which does not exist. + /// - `ServiceQuotaExceededException` : Request denied because service quota has been exceeded. + /// - `ThrottlingException` : Request was denied due to request throttling. + /// - `ValidationException` : The input fails to satisfy the specified constraints. + public func createIdNamespaceAssociation(input: CreateIdNamespaceAssociationInput) async throws -> CreateIdNamespaceAssociationOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "createIdNamespaceAssociation") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(CreateIdNamespaceAssociationInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: CreateIdNamespaceAssociationInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(CreateIdNamespaceAssociationOutput.httpOutput(from:), CreateIdNamespaceAssociationOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CleanRooms") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "CreateIdNamespaceAssociation") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `CreateMembership` operation on the `AWSBastionControlPlaneServiceLambda` service. /// /// Creates a membership for a specific collaboration identifier and joins the collaboration. @@ -1430,13 +1654,13 @@ extension CleanRoomsClient { return try await op.execute(input: input) } - /// Performs the `DeleteMember` operation on the `AWSBastionControlPlaneServiceLambda` service. + /// Performs the `DeleteConfiguredTableAssociationAnalysisRule` operation on the `AWSBastionControlPlaneServiceLambda` service. /// - /// Removes the specified member from a collaboration. The removed member is placed in the Removed status and can't interact with the collaboration. The removed member's data is inaccessible to active members of the collaboration. + /// Deletes an analysis rule for a configured table association. /// - /// - Parameter DeleteMemberInput : [no documentation found] + /// - Parameter DeleteConfiguredTableAssociationAnalysisRuleInput : [no documentation found] /// - /// - Returns: `DeleteMemberOutput` : [no documentation found] + /// - Returns: `DeleteConfiguredTableAssociationAnalysisRuleOutput` : [no documentation found] /// /// - Throws: One of the exceptions listed below __Possible Exceptions__. /// @@ -1447,11 +1671,11 @@ extension CleanRoomsClient { /// - `ResourceNotFoundException` : Request references a resource which does not exist. /// - `ThrottlingException` : Request was denied due to request throttling. /// - `ValidationException` : The input fails to satisfy the specified constraints. - public func deleteMember(input: DeleteMemberInput) async throws -> DeleteMemberOutput { + public func deleteConfiguredTableAssociationAnalysisRule(input: DeleteConfiguredTableAssociationAnalysisRuleInput) async throws -> DeleteConfiguredTableAssociationAnalysisRuleOutput { let context = Smithy.ContextBuilder() .withMethod(value: .delete) .withServiceName(value: serviceName) - .withOperation(value: "deleteMember") + .withOperation(value: "deleteConfiguredTableAssociationAnalysisRule") .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) .withLogger(value: config.logger) .withPartitionID(value: config.partitionID) @@ -1466,29 +1690,29 @@ extension CleanRoomsClient { .withSigningName(value: "cleanrooms") .withSigningRegion(value: config.signingRegion) .build() - let builder = ClientRuntime.OrchestratorBuilder() + let builder = ClientRuntime.OrchestratorBuilder() config.interceptorProviders.forEach { provider in builder.interceptors.add(provider.create()) } config.httpInterceptorProviders.forEach { provider in builder.interceptors.add(provider.create()) } - builder.interceptors.add(ClientRuntime.URLPathMiddleware(DeleteMemberInput.urlPathProvider(_:))) - builder.interceptors.add(ClientRuntime.URLHostMiddleware()) - builder.deserialize(ClientRuntime.DeserializeMiddleware(DeleteMemberOutput.httpOutput(from:), DeleteMemberOutputError.httpError(from:))) - builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.interceptors.add(ClientRuntime.URLPathMiddleware(DeleteConfiguredTableAssociationAnalysisRuleInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(DeleteConfiguredTableAssociationAnalysisRuleOutput.httpOutput(from:), DeleteConfiguredTableAssociationAnalysisRuleOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) - builder.applySigner(ClientRuntime.SignerMiddleware()) + builder.applySigner(ClientRuntime.SignerMiddleware()) let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) - builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) - builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) - builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) - builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) - builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) var metricsAttributes = Smithy.Attributes() metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CleanRooms") - metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "DeleteMember") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "DeleteConfiguredTableAssociationAnalysisRule") let op = builder.attributes(context) .telemetry(ClientRuntime.OrchestratorTelemetry( telemetryProvider: config.telemetryProvider, @@ -1501,28 +1725,27 @@ extension CleanRoomsClient { return try await op.execute(input: input) } - /// Performs the `DeleteMembership` operation on the `AWSBastionControlPlaneServiceLambda` service. + /// Performs the `DeleteIdMappingTable` operation on the `AWSBastionControlPlaneServiceLambda` service. /// - /// Deletes a specified membership. All resources under a membership must be deleted. + /// Deletes an ID mapping table. /// - /// - Parameter DeleteMembershipInput : [no documentation found] + /// - Parameter DeleteIdMappingTableInput : [no documentation found] /// - /// - Returns: `DeleteMembershipOutput` : [no documentation found] + /// - Returns: `DeleteIdMappingTableOutput` : [no documentation found] /// /// - Throws: One of the exceptions listed below __Possible Exceptions__. /// /// __Possible Exceptions:__ /// - `AccessDeniedException` : Caller does not have sufficient access to perform this action. - /// - `ConflictException` : Updating or deleting a resource can cause an inconsistent state. /// - `InternalServerException` : Unexpected error during processing of request. /// - `ResourceNotFoundException` : Request references a resource which does not exist. /// - `ThrottlingException` : Request was denied due to request throttling. /// - `ValidationException` : The input fails to satisfy the specified constraints. - public func deleteMembership(input: DeleteMembershipInput) async throws -> DeleteMembershipOutput { + public func deleteIdMappingTable(input: DeleteIdMappingTableInput) async throws -> DeleteIdMappingTableOutput { let context = Smithy.ContextBuilder() .withMethod(value: .delete) .withServiceName(value: serviceName) - .withOperation(value: "deleteMembership") + .withOperation(value: "deleteIdMappingTable") .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) .withLogger(value: config.logger) .withPartitionID(value: config.partitionID) @@ -1537,29 +1760,29 @@ extension CleanRoomsClient { .withSigningName(value: "cleanrooms") .withSigningRegion(value: config.signingRegion) .build() - let builder = ClientRuntime.OrchestratorBuilder() + let builder = ClientRuntime.OrchestratorBuilder() config.interceptorProviders.forEach { provider in builder.interceptors.add(provider.create()) } config.httpInterceptorProviders.forEach { provider in builder.interceptors.add(provider.create()) } - builder.interceptors.add(ClientRuntime.URLPathMiddleware(DeleteMembershipInput.urlPathProvider(_:))) - builder.interceptors.add(ClientRuntime.URLHostMiddleware()) - builder.deserialize(ClientRuntime.DeserializeMiddleware(DeleteMembershipOutput.httpOutput(from:), DeleteMembershipOutputError.httpError(from:))) - builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.interceptors.add(ClientRuntime.URLPathMiddleware(DeleteIdMappingTableInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(DeleteIdMappingTableOutput.httpOutput(from:), DeleteIdMappingTableOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) - builder.applySigner(ClientRuntime.SignerMiddleware()) + builder.applySigner(ClientRuntime.SignerMiddleware()) let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) - builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) - builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) - builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) - builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) - builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) var metricsAttributes = Smithy.Attributes() metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CleanRooms") - metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "DeleteMembership") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "DeleteIdMappingTable") let op = builder.attributes(context) .telemetry(ClientRuntime.OrchestratorTelemetry( telemetryProvider: config.telemetryProvider, @@ -1572,13 +1795,13 @@ extension CleanRoomsClient { return try await op.execute(input: input) } - /// Performs the `DeletePrivacyBudgetTemplate` operation on the `AWSBastionControlPlaneServiceLambda` service. + /// Performs the `DeleteIdNamespaceAssociation` operation on the `AWSBastionControlPlaneServiceLambda` service. /// - /// Deletes a privacy budget template for a specified membership. + /// Deletes an ID namespace association. /// - /// - Parameter DeletePrivacyBudgetTemplateInput : [no documentation found] + /// - Parameter DeleteIdNamespaceAssociationInput : [no documentation found] /// - /// - Returns: `DeletePrivacyBudgetTemplateOutput` : [no documentation found] + /// - Returns: `DeleteIdNamespaceAssociationOutput` : [no documentation found] /// /// - Throws: One of the exceptions listed below __Possible Exceptions__. /// @@ -1588,11 +1811,11 @@ extension CleanRoomsClient { /// - `ResourceNotFoundException` : Request references a resource which does not exist. /// - `ThrottlingException` : Request was denied due to request throttling. /// - `ValidationException` : The input fails to satisfy the specified constraints. - public func deletePrivacyBudgetTemplate(input: DeletePrivacyBudgetTemplateInput) async throws -> DeletePrivacyBudgetTemplateOutput { + public func deleteIdNamespaceAssociation(input: DeleteIdNamespaceAssociationInput) async throws -> DeleteIdNamespaceAssociationOutput { let context = Smithy.ContextBuilder() .withMethod(value: .delete) .withServiceName(value: serviceName) - .withOperation(value: "deletePrivacyBudgetTemplate") + .withOperation(value: "deleteIdNamespaceAssociation") .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) .withLogger(value: config.logger) .withPartitionID(value: config.partitionID) @@ -1607,29 +1830,29 @@ extension CleanRoomsClient { .withSigningName(value: "cleanrooms") .withSigningRegion(value: config.signingRegion) .build() - let builder = ClientRuntime.OrchestratorBuilder() + let builder = ClientRuntime.OrchestratorBuilder() config.interceptorProviders.forEach { provider in builder.interceptors.add(provider.create()) } config.httpInterceptorProviders.forEach { provider in builder.interceptors.add(provider.create()) } - builder.interceptors.add(ClientRuntime.URLPathMiddleware(DeletePrivacyBudgetTemplateInput.urlPathProvider(_:))) - builder.interceptors.add(ClientRuntime.URLHostMiddleware()) - builder.deserialize(ClientRuntime.DeserializeMiddleware(DeletePrivacyBudgetTemplateOutput.httpOutput(from:), DeletePrivacyBudgetTemplateOutputError.httpError(from:))) - builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.interceptors.add(ClientRuntime.URLPathMiddleware(DeleteIdNamespaceAssociationInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(DeleteIdNamespaceAssociationOutput.httpOutput(from:), DeleteIdNamespaceAssociationOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) - builder.applySigner(ClientRuntime.SignerMiddleware()) + builder.applySigner(ClientRuntime.SignerMiddleware()) let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) - builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) - builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) - builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) - builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) - builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) var metricsAttributes = Smithy.Attributes() metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CleanRooms") - metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "DeletePrivacyBudgetTemplate") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "DeleteIdNamespaceAssociation") let op = builder.attributes(context) .telemetry(ClientRuntime.OrchestratorTelemetry( telemetryProvider: config.telemetryProvider, @@ -1642,27 +1865,28 @@ extension CleanRoomsClient { return try await op.execute(input: input) } - /// Performs the `GetAnalysisTemplate` operation on the `AWSBastionControlPlaneServiceLambda` service. + /// Performs the `DeleteMember` operation on the `AWSBastionControlPlaneServiceLambda` service. /// - /// Retrieves an analysis template. + /// Removes the specified member from a collaboration. The removed member is placed in the Removed status and can't interact with the collaboration. The removed member's data is inaccessible to active members of the collaboration. /// - /// - Parameter GetAnalysisTemplateInput : [no documentation found] + /// - Parameter DeleteMemberInput : [no documentation found] /// - /// - Returns: `GetAnalysisTemplateOutput` : [no documentation found] + /// - Returns: `DeleteMemberOutput` : [no documentation found] /// /// - Throws: One of the exceptions listed below __Possible Exceptions__. /// /// __Possible Exceptions:__ /// - `AccessDeniedException` : Caller does not have sufficient access to perform this action. + /// - `ConflictException` : Updating or deleting a resource can cause an inconsistent state. /// - `InternalServerException` : Unexpected error during processing of request. /// - `ResourceNotFoundException` : Request references a resource which does not exist. /// - `ThrottlingException` : Request was denied due to request throttling. /// - `ValidationException` : The input fails to satisfy the specified constraints. - public func getAnalysisTemplate(input: GetAnalysisTemplateInput) async throws -> GetAnalysisTemplateOutput { + public func deleteMember(input: DeleteMemberInput) async throws -> DeleteMemberOutput { let context = Smithy.ContextBuilder() - .withMethod(value: .get) + .withMethod(value: .delete) .withServiceName(value: serviceName) - .withOperation(value: "getAnalysisTemplate") + .withOperation(value: "deleteMember") .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) .withLogger(value: config.logger) .withPartitionID(value: config.partitionID) @@ -1677,29 +1901,29 @@ extension CleanRoomsClient { .withSigningName(value: "cleanrooms") .withSigningRegion(value: config.signingRegion) .build() - let builder = ClientRuntime.OrchestratorBuilder() + let builder = ClientRuntime.OrchestratorBuilder() config.interceptorProviders.forEach { provider in builder.interceptors.add(provider.create()) } config.httpInterceptorProviders.forEach { provider in builder.interceptors.add(provider.create()) } - builder.interceptors.add(ClientRuntime.URLPathMiddleware(GetAnalysisTemplateInput.urlPathProvider(_:))) - builder.interceptors.add(ClientRuntime.URLHostMiddleware()) - builder.deserialize(ClientRuntime.DeserializeMiddleware(GetAnalysisTemplateOutput.httpOutput(from:), GetAnalysisTemplateOutputError.httpError(from:))) - builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.interceptors.add(ClientRuntime.URLPathMiddleware(DeleteMemberInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(DeleteMemberOutput.httpOutput(from:), DeleteMemberOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) - builder.applySigner(ClientRuntime.SignerMiddleware()) + builder.applySigner(ClientRuntime.SignerMiddleware()) let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) - builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) - builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) - builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) - builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) - builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) var metricsAttributes = Smithy.Attributes() metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CleanRooms") - metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "GetAnalysisTemplate") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "DeleteMember") let op = builder.attributes(context) .telemetry(ClientRuntime.OrchestratorTelemetry( telemetryProvider: config.telemetryProvider, @@ -1712,7 +1936,218 @@ extension CleanRoomsClient { return try await op.execute(input: input) } - /// Performs the `GetCollaboration` operation on the `AWSBastionControlPlaneServiceLambda` service. + /// Performs the `DeleteMembership` operation on the `AWSBastionControlPlaneServiceLambda` service. + /// + /// Deletes a specified membership. All resources under a membership must be deleted. + /// + /// - Parameter DeleteMembershipInput : [no documentation found] + /// + /// - Returns: `DeleteMembershipOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : Caller does not have sufficient access to perform this action. + /// - `ConflictException` : Updating or deleting a resource can cause an inconsistent state. + /// - `InternalServerException` : Unexpected error during processing of request. + /// - `ResourceNotFoundException` : Request references a resource which does not exist. + /// - `ThrottlingException` : Request was denied due to request throttling. + /// - `ValidationException` : The input fails to satisfy the specified constraints. + public func deleteMembership(input: DeleteMembershipInput) async throws -> DeleteMembershipOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .delete) + .withServiceName(value: serviceName) + .withOperation(value: "deleteMembership") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(DeleteMembershipInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(DeleteMembershipOutput.httpOutput(from:), DeleteMembershipOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CleanRooms") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "DeleteMembership") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `DeletePrivacyBudgetTemplate` operation on the `AWSBastionControlPlaneServiceLambda` service. + /// + /// Deletes a privacy budget template for a specified membership. + /// + /// - Parameter DeletePrivacyBudgetTemplateInput : [no documentation found] + /// + /// - Returns: `DeletePrivacyBudgetTemplateOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : Caller does not have sufficient access to perform this action. + /// - `InternalServerException` : Unexpected error during processing of request. + /// - `ResourceNotFoundException` : Request references a resource which does not exist. + /// - `ThrottlingException` : Request was denied due to request throttling. + /// - `ValidationException` : The input fails to satisfy the specified constraints. + public func deletePrivacyBudgetTemplate(input: DeletePrivacyBudgetTemplateInput) async throws -> DeletePrivacyBudgetTemplateOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .delete) + .withServiceName(value: serviceName) + .withOperation(value: "deletePrivacyBudgetTemplate") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(DeletePrivacyBudgetTemplateInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(DeletePrivacyBudgetTemplateOutput.httpOutput(from:), DeletePrivacyBudgetTemplateOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CleanRooms") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "DeletePrivacyBudgetTemplate") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `GetAnalysisTemplate` operation on the `AWSBastionControlPlaneServiceLambda` service. + /// + /// Retrieves an analysis template. + /// + /// - Parameter GetAnalysisTemplateInput : [no documentation found] + /// + /// - Returns: `GetAnalysisTemplateOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : Caller does not have sufficient access to perform this action. + /// - `InternalServerException` : Unexpected error during processing of request. + /// - `ResourceNotFoundException` : Request references a resource which does not exist. + /// - `ThrottlingException` : Request was denied due to request throttling. + /// - `ValidationException` : The input fails to satisfy the specified constraints. + public func getAnalysisTemplate(input: GetAnalysisTemplateInput) async throws -> GetAnalysisTemplateOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .get) + .withServiceName(value: serviceName) + .withOperation(value: "getAnalysisTemplate") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(GetAnalysisTemplateInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(GetAnalysisTemplateOutput.httpOutput(from:), GetAnalysisTemplateOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CleanRooms") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "GetAnalysisTemplate") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `GetCollaboration` operation on the `AWSBastionControlPlaneServiceLambda` service. /// /// Returns metadata about a collaboration. /// @@ -1921,6 +2356,76 @@ extension CleanRoomsClient { return try await op.execute(input: input) } + /// Performs the `GetCollaborationIdNamespaceAssociation` operation on the `AWSBastionControlPlaneServiceLambda` service. + /// + /// Retrieves an ID namespace association from a specific collaboration. + /// + /// - Parameter GetCollaborationIdNamespaceAssociationInput : [no documentation found] + /// + /// - Returns: `GetCollaborationIdNamespaceAssociationOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : Caller does not have sufficient access to perform this action. + /// - `InternalServerException` : Unexpected error during processing of request. + /// - `ResourceNotFoundException` : Request references a resource which does not exist. + /// - `ThrottlingException` : Request was denied due to request throttling. + /// - `ValidationException` : The input fails to satisfy the specified constraints. + public func getCollaborationIdNamespaceAssociation(input: GetCollaborationIdNamespaceAssociationInput) async throws -> GetCollaborationIdNamespaceAssociationOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .get) + .withServiceName(value: serviceName) + .withOperation(value: "getCollaborationIdNamespaceAssociation") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(GetCollaborationIdNamespaceAssociationInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(GetCollaborationIdNamespaceAssociationOutput.httpOutput(from:), GetCollaborationIdNamespaceAssociationOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CleanRooms") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "GetCollaborationIdNamespaceAssociation") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `GetCollaborationPrivacyBudgetTemplate` operation on the `AWSBastionControlPlaneServiceLambda` service. /// /// Returns details about a specified privacy budget template. @@ -2039,16 +2544,226 @@ extension CleanRoomsClient { builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) - builder.applySigner(ClientRuntime.SignerMiddleware()) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CleanRooms") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "GetConfiguredAudienceModelAssociation") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `GetConfiguredTable` operation on the `AWSBastionControlPlaneServiceLambda` service. + /// + /// Retrieves a configured table. + /// + /// - Parameter GetConfiguredTableInput : [no documentation found] + /// + /// - Returns: `GetConfiguredTableOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : Caller does not have sufficient access to perform this action. + /// - `InternalServerException` : Unexpected error during processing of request. + /// - `ResourceNotFoundException` : Request references a resource which does not exist. + /// - `ThrottlingException` : Request was denied due to request throttling. + /// - `ValidationException` : The input fails to satisfy the specified constraints. + public func getConfiguredTable(input: GetConfiguredTableInput) async throws -> GetConfiguredTableOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .get) + .withServiceName(value: serviceName) + .withOperation(value: "getConfiguredTable") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(GetConfiguredTableInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(GetConfiguredTableOutput.httpOutput(from:), GetConfiguredTableOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CleanRooms") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "GetConfiguredTable") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `GetConfiguredTableAnalysisRule` operation on the `AWSBastionControlPlaneServiceLambda` service. + /// + /// Retrieves a configured table analysis rule. + /// + /// - Parameter GetConfiguredTableAnalysisRuleInput : [no documentation found] + /// + /// - Returns: `GetConfiguredTableAnalysisRuleOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : Caller does not have sufficient access to perform this action. + /// - `InternalServerException` : Unexpected error during processing of request. + /// - `ResourceNotFoundException` : Request references a resource which does not exist. + /// - `ThrottlingException` : Request was denied due to request throttling. + /// - `ValidationException` : The input fails to satisfy the specified constraints. + public func getConfiguredTableAnalysisRule(input: GetConfiguredTableAnalysisRuleInput) async throws -> GetConfiguredTableAnalysisRuleOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .get) + .withServiceName(value: serviceName) + .withOperation(value: "getConfiguredTableAnalysisRule") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(GetConfiguredTableAnalysisRuleInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(GetConfiguredTableAnalysisRuleOutput.httpOutput(from:), GetConfiguredTableAnalysisRuleOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CleanRooms") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "GetConfiguredTableAnalysisRule") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `GetConfiguredTableAssociation` operation on the `AWSBastionControlPlaneServiceLambda` service. + /// + /// Retrieves a configured table association. + /// + /// - Parameter GetConfiguredTableAssociationInput : [no documentation found] + /// + /// - Returns: `GetConfiguredTableAssociationOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : Caller does not have sufficient access to perform this action. + /// - `InternalServerException` : Unexpected error during processing of request. + /// - `ResourceNotFoundException` : Request references a resource which does not exist. + /// - `ThrottlingException` : Request was denied due to request throttling. + /// - `ValidationException` : The input fails to satisfy the specified constraints. + public func getConfiguredTableAssociation(input: GetConfiguredTableAssociationInput) async throws -> GetConfiguredTableAssociationOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .get) + .withServiceName(value: serviceName) + .withOperation(value: "getConfiguredTableAssociation") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(GetConfiguredTableAssociationInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(GetConfiguredTableAssociationOutput.httpOutput(from:), GetConfiguredTableAssociationOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) - builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) - builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) - builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) - builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) - builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) var metricsAttributes = Smithy.Attributes() metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CleanRooms") - metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "GetConfiguredAudienceModelAssociation") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "GetConfiguredTableAssociation") let op = builder.attributes(context) .telemetry(ClientRuntime.OrchestratorTelemetry( telemetryProvider: config.telemetryProvider, @@ -2061,13 +2776,13 @@ extension CleanRoomsClient { return try await op.execute(input: input) } - /// Performs the `GetConfiguredTable` operation on the `AWSBastionControlPlaneServiceLambda` service. + /// Performs the `GetConfiguredTableAssociationAnalysisRule` operation on the `AWSBastionControlPlaneServiceLambda` service. /// - /// Retrieves a configured table. + /// Retrieves the analysis rule for a configured table association. /// - /// - Parameter GetConfiguredTableInput : [no documentation found] + /// - Parameter GetConfiguredTableAssociationAnalysisRuleInput : [no documentation found] /// - /// - Returns: `GetConfiguredTableOutput` : [no documentation found] + /// - Returns: `GetConfiguredTableAssociationAnalysisRuleOutput` : [no documentation found] /// /// - Throws: One of the exceptions listed below __Possible Exceptions__. /// @@ -2077,11 +2792,11 @@ extension CleanRoomsClient { /// - `ResourceNotFoundException` : Request references a resource which does not exist. /// - `ThrottlingException` : Request was denied due to request throttling. /// - `ValidationException` : The input fails to satisfy the specified constraints. - public func getConfiguredTable(input: GetConfiguredTableInput) async throws -> GetConfiguredTableOutput { + public func getConfiguredTableAssociationAnalysisRule(input: GetConfiguredTableAssociationAnalysisRuleInput) async throws -> GetConfiguredTableAssociationAnalysisRuleOutput { let context = Smithy.ContextBuilder() .withMethod(value: .get) .withServiceName(value: serviceName) - .withOperation(value: "getConfiguredTable") + .withOperation(value: "getConfiguredTableAssociationAnalysisRule") .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) .withLogger(value: config.logger) .withPartitionID(value: config.partitionID) @@ -2096,29 +2811,29 @@ extension CleanRoomsClient { .withSigningName(value: "cleanrooms") .withSigningRegion(value: config.signingRegion) .build() - let builder = ClientRuntime.OrchestratorBuilder() + let builder = ClientRuntime.OrchestratorBuilder() config.interceptorProviders.forEach { provider in builder.interceptors.add(provider.create()) } config.httpInterceptorProviders.forEach { provider in builder.interceptors.add(provider.create()) } - builder.interceptors.add(ClientRuntime.URLPathMiddleware(GetConfiguredTableInput.urlPathProvider(_:))) - builder.interceptors.add(ClientRuntime.URLHostMiddleware()) - builder.deserialize(ClientRuntime.DeserializeMiddleware(GetConfiguredTableOutput.httpOutput(from:), GetConfiguredTableOutputError.httpError(from:))) - builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.interceptors.add(ClientRuntime.URLPathMiddleware(GetConfiguredTableAssociationAnalysisRuleInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(GetConfiguredTableAssociationAnalysisRuleOutput.httpOutput(from:), GetConfiguredTableAssociationAnalysisRuleOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) - builder.applySigner(ClientRuntime.SignerMiddleware()) + builder.applySigner(ClientRuntime.SignerMiddleware()) let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) - builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) - builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) - builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) - builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) - builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) var metricsAttributes = Smithy.Attributes() metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CleanRooms") - metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "GetConfiguredTable") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "GetConfiguredTableAssociationAnalysisRule") let op = builder.attributes(context) .telemetry(ClientRuntime.OrchestratorTelemetry( telemetryProvider: config.telemetryProvider, @@ -2131,13 +2846,13 @@ extension CleanRoomsClient { return try await op.execute(input: input) } - /// Performs the `GetConfiguredTableAnalysisRule` operation on the `AWSBastionControlPlaneServiceLambda` service. + /// Performs the `GetIdMappingTable` operation on the `AWSBastionControlPlaneServiceLambda` service. /// - /// Retrieves a configured table analysis rule. + /// Retrieves an ID mapping table. /// - /// - Parameter GetConfiguredTableAnalysisRuleInput : [no documentation found] + /// - Parameter GetIdMappingTableInput : [no documentation found] /// - /// - Returns: `GetConfiguredTableAnalysisRuleOutput` : [no documentation found] + /// - Returns: `GetIdMappingTableOutput` : [no documentation found] /// /// - Throws: One of the exceptions listed below __Possible Exceptions__. /// @@ -2147,11 +2862,11 @@ extension CleanRoomsClient { /// - `ResourceNotFoundException` : Request references a resource which does not exist. /// - `ThrottlingException` : Request was denied due to request throttling. /// - `ValidationException` : The input fails to satisfy the specified constraints. - public func getConfiguredTableAnalysisRule(input: GetConfiguredTableAnalysisRuleInput) async throws -> GetConfiguredTableAnalysisRuleOutput { + public func getIdMappingTable(input: GetIdMappingTableInput) async throws -> GetIdMappingTableOutput { let context = Smithy.ContextBuilder() .withMethod(value: .get) .withServiceName(value: serviceName) - .withOperation(value: "getConfiguredTableAnalysisRule") + .withOperation(value: "getIdMappingTable") .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) .withLogger(value: config.logger) .withPartitionID(value: config.partitionID) @@ -2166,29 +2881,29 @@ extension CleanRoomsClient { .withSigningName(value: "cleanrooms") .withSigningRegion(value: config.signingRegion) .build() - let builder = ClientRuntime.OrchestratorBuilder() + let builder = ClientRuntime.OrchestratorBuilder() config.interceptorProviders.forEach { provider in builder.interceptors.add(provider.create()) } config.httpInterceptorProviders.forEach { provider in builder.interceptors.add(provider.create()) } - builder.interceptors.add(ClientRuntime.URLPathMiddleware(GetConfiguredTableAnalysisRuleInput.urlPathProvider(_:))) - builder.interceptors.add(ClientRuntime.URLHostMiddleware()) - builder.deserialize(ClientRuntime.DeserializeMiddleware(GetConfiguredTableAnalysisRuleOutput.httpOutput(from:), GetConfiguredTableAnalysisRuleOutputError.httpError(from:))) - builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.interceptors.add(ClientRuntime.URLPathMiddleware(GetIdMappingTableInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(GetIdMappingTableOutput.httpOutput(from:), GetIdMappingTableOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) - builder.applySigner(ClientRuntime.SignerMiddleware()) + builder.applySigner(ClientRuntime.SignerMiddleware()) let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) - builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) - builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) - builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) - builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) - builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) var metricsAttributes = Smithy.Attributes() metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CleanRooms") - metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "GetConfiguredTableAnalysisRule") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "GetIdMappingTable") let op = builder.attributes(context) .telemetry(ClientRuntime.OrchestratorTelemetry( telemetryProvider: config.telemetryProvider, @@ -2201,13 +2916,13 @@ extension CleanRoomsClient { return try await op.execute(input: input) } - /// Performs the `GetConfiguredTableAssociation` operation on the `AWSBastionControlPlaneServiceLambda` service. + /// Performs the `GetIdNamespaceAssociation` operation on the `AWSBastionControlPlaneServiceLambda` service. /// - /// Retrieves a configured table association. + /// Retrieves an ID namespace association. /// - /// - Parameter GetConfiguredTableAssociationInput : [no documentation found] + /// - Parameter GetIdNamespaceAssociationInput : [no documentation found] /// - /// - Returns: `GetConfiguredTableAssociationOutput` : [no documentation found] + /// - Returns: `GetIdNamespaceAssociationOutput` : [no documentation found] /// /// - Throws: One of the exceptions listed below __Possible Exceptions__. /// @@ -2217,11 +2932,11 @@ extension CleanRoomsClient { /// - `ResourceNotFoundException` : Request references a resource which does not exist. /// - `ThrottlingException` : Request was denied due to request throttling. /// - `ValidationException` : The input fails to satisfy the specified constraints. - public func getConfiguredTableAssociation(input: GetConfiguredTableAssociationInput) async throws -> GetConfiguredTableAssociationOutput { + public func getIdNamespaceAssociation(input: GetIdNamespaceAssociationInput) async throws -> GetIdNamespaceAssociationOutput { let context = Smithy.ContextBuilder() .withMethod(value: .get) .withServiceName(value: serviceName) - .withOperation(value: "getConfiguredTableAssociation") + .withOperation(value: "getIdNamespaceAssociation") .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) .withLogger(value: config.logger) .withPartitionID(value: config.partitionID) @@ -2236,29 +2951,29 @@ extension CleanRoomsClient { .withSigningName(value: "cleanrooms") .withSigningRegion(value: config.signingRegion) .build() - let builder = ClientRuntime.OrchestratorBuilder() + let builder = ClientRuntime.OrchestratorBuilder() config.interceptorProviders.forEach { provider in builder.interceptors.add(provider.create()) } config.httpInterceptorProviders.forEach { provider in builder.interceptors.add(provider.create()) } - builder.interceptors.add(ClientRuntime.URLPathMiddleware(GetConfiguredTableAssociationInput.urlPathProvider(_:))) - builder.interceptors.add(ClientRuntime.URLHostMiddleware()) - builder.deserialize(ClientRuntime.DeserializeMiddleware(GetConfiguredTableAssociationOutput.httpOutput(from:), GetConfiguredTableAssociationOutputError.httpError(from:))) - builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.interceptors.add(ClientRuntime.URLPathMiddleware(GetIdNamespaceAssociationInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(GetIdNamespaceAssociationOutput.httpOutput(from:), GetIdNamespaceAssociationOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) - builder.applySigner(ClientRuntime.SignerMiddleware()) + builder.applySigner(ClientRuntime.SignerMiddleware()) let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) - builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) - builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) - builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) - builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) - builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) var metricsAttributes = Smithy.Attributes() metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CleanRooms") - metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "GetConfiguredTableAssociation") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "GetIdNamespaceAssociation") let op = builder.attributes(context) .telemetry(ClientRuntime.OrchestratorTelemetry( telemetryProvider: config.telemetryProvider, @@ -2834,6 +3549,77 @@ extension CleanRoomsClient { return try await op.execute(input: input) } + /// Performs the `ListCollaborationIdNamespaceAssociations` operation on the `AWSBastionControlPlaneServiceLambda` service. + /// + /// Returns a list of the ID namespace associations in a collaboration. + /// + /// - Parameter ListCollaborationIdNamespaceAssociationsInput : [no documentation found] + /// + /// - Returns: `ListCollaborationIdNamespaceAssociationsOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : Caller does not have sufficient access to perform this action. + /// - `InternalServerException` : Unexpected error during processing of request. + /// - `ResourceNotFoundException` : Request references a resource which does not exist. + /// - `ThrottlingException` : Request was denied due to request throttling. + /// - `ValidationException` : The input fails to satisfy the specified constraints. + public func listCollaborationIdNamespaceAssociations(input: ListCollaborationIdNamespaceAssociationsInput) async throws -> ListCollaborationIdNamespaceAssociationsOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .get) + .withServiceName(value: serviceName) + .withOperation(value: "listCollaborationIdNamespaceAssociations") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(ListCollaborationIdNamespaceAssociationsInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.serialize(ClientRuntime.QueryItemMiddleware(ListCollaborationIdNamespaceAssociationsInput.queryItemProvider(_:))) + builder.deserialize(ClientRuntime.DeserializeMiddleware(ListCollaborationIdNamespaceAssociationsOutput.httpOutput(from:), ListCollaborationIdNamespaceAssociationsOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CleanRooms") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "ListCollaborationIdNamespaceAssociations") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `ListCollaborationPrivacyBudgetTemplates` operation on the `AWSBastionControlPlaneServiceLambda` service. /// /// Returns an array that summarizes each privacy budget template in a specified collaboration. @@ -3104,7 +3890,148 @@ extension CleanRoomsClient { builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) var metricsAttributes = Smithy.Attributes() metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CleanRooms") - metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "ListConfiguredAudienceModelAssociations") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "ListConfiguredAudienceModelAssociations") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `ListConfiguredTableAssociations` operation on the `AWSBastionControlPlaneServiceLambda` service. + /// + /// Lists configured table associations for a membership. + /// + /// - Parameter ListConfiguredTableAssociationsInput : [no documentation found] + /// + /// - Returns: `ListConfiguredTableAssociationsOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : Caller does not have sufficient access to perform this action. + /// - `InternalServerException` : Unexpected error during processing of request. + /// - `ResourceNotFoundException` : Request references a resource which does not exist. + /// - `ThrottlingException` : Request was denied due to request throttling. + /// - `ValidationException` : The input fails to satisfy the specified constraints. + public func listConfiguredTableAssociations(input: ListConfiguredTableAssociationsInput) async throws -> ListConfiguredTableAssociationsOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .get) + .withServiceName(value: serviceName) + .withOperation(value: "listConfiguredTableAssociations") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(ListConfiguredTableAssociationsInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.serialize(ClientRuntime.QueryItemMiddleware(ListConfiguredTableAssociationsInput.queryItemProvider(_:))) + builder.deserialize(ClientRuntime.DeserializeMiddleware(ListConfiguredTableAssociationsOutput.httpOutput(from:), ListConfiguredTableAssociationsOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CleanRooms") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "ListConfiguredTableAssociations") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `ListConfiguredTables` operation on the `AWSBastionControlPlaneServiceLambda` service. + /// + /// Lists configured tables. + /// + /// - Parameter ListConfiguredTablesInput : [no documentation found] + /// + /// - Returns: `ListConfiguredTablesOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : Caller does not have sufficient access to perform this action. + /// - `InternalServerException` : Unexpected error during processing of request. + /// - `ThrottlingException` : Request was denied due to request throttling. + /// - `ValidationException` : The input fails to satisfy the specified constraints. + public func listConfiguredTables(input: ListConfiguredTablesInput) async throws -> ListConfiguredTablesOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .get) + .withServiceName(value: serviceName) + .withOperation(value: "listConfiguredTables") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(ListConfiguredTablesInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.serialize(ClientRuntime.QueryItemMiddleware(ListConfiguredTablesInput.queryItemProvider(_:))) + builder.deserialize(ClientRuntime.DeserializeMiddleware(ListConfiguredTablesOutput.httpOutput(from:), ListConfiguredTablesOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CleanRooms") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "ListConfiguredTables") let op = builder.attributes(context) .telemetry(ClientRuntime.OrchestratorTelemetry( telemetryProvider: config.telemetryProvider, @@ -3117,13 +4044,13 @@ extension CleanRoomsClient { return try await op.execute(input: input) } - /// Performs the `ListConfiguredTableAssociations` operation on the `AWSBastionControlPlaneServiceLambda` service. + /// Performs the `ListIdMappingTables` operation on the `AWSBastionControlPlaneServiceLambda` service. /// - /// Lists configured table associations for a membership. + /// Returns a list of ID mapping tables. /// - /// - Parameter ListConfiguredTableAssociationsInput : [no documentation found] + /// - Parameter ListIdMappingTablesInput : [no documentation found] /// - /// - Returns: `ListConfiguredTableAssociationsOutput` : [no documentation found] + /// - Returns: `ListIdMappingTablesOutput` : [no documentation found] /// /// - Throws: One of the exceptions listed below __Possible Exceptions__. /// @@ -3133,11 +4060,11 @@ extension CleanRoomsClient { /// - `ResourceNotFoundException` : Request references a resource which does not exist. /// - `ThrottlingException` : Request was denied due to request throttling. /// - `ValidationException` : The input fails to satisfy the specified constraints. - public func listConfiguredTableAssociations(input: ListConfiguredTableAssociationsInput) async throws -> ListConfiguredTableAssociationsOutput { + public func listIdMappingTables(input: ListIdMappingTablesInput) async throws -> ListIdMappingTablesOutput { let context = Smithy.ContextBuilder() .withMethod(value: .get) .withServiceName(value: serviceName) - .withOperation(value: "listConfiguredTableAssociations") + .withOperation(value: "listIdMappingTables") .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) .withLogger(value: config.logger) .withPartitionID(value: config.partitionID) @@ -3152,30 +4079,30 @@ extension CleanRoomsClient { .withSigningName(value: "cleanrooms") .withSigningRegion(value: config.signingRegion) .build() - let builder = ClientRuntime.OrchestratorBuilder() + let builder = ClientRuntime.OrchestratorBuilder() config.interceptorProviders.forEach { provider in builder.interceptors.add(provider.create()) } config.httpInterceptorProviders.forEach { provider in builder.interceptors.add(provider.create()) } - builder.interceptors.add(ClientRuntime.URLPathMiddleware(ListConfiguredTableAssociationsInput.urlPathProvider(_:))) - builder.interceptors.add(ClientRuntime.URLHostMiddleware()) - builder.serialize(ClientRuntime.QueryItemMiddleware(ListConfiguredTableAssociationsInput.queryItemProvider(_:))) - builder.deserialize(ClientRuntime.DeserializeMiddleware(ListConfiguredTableAssociationsOutput.httpOutput(from:), ListConfiguredTableAssociationsOutputError.httpError(from:))) - builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.interceptors.add(ClientRuntime.URLPathMiddleware(ListIdMappingTablesInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.serialize(ClientRuntime.QueryItemMiddleware(ListIdMappingTablesInput.queryItemProvider(_:))) + builder.deserialize(ClientRuntime.DeserializeMiddleware(ListIdMappingTablesOutput.httpOutput(from:), ListIdMappingTablesOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) - builder.applySigner(ClientRuntime.SignerMiddleware()) + builder.applySigner(ClientRuntime.SignerMiddleware()) let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) - builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) - builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) - builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) - builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) - builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) var metricsAttributes = Smithy.Attributes() metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CleanRooms") - metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "ListConfiguredTableAssociations") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "ListIdMappingTables") let op = builder.attributes(context) .telemetry(ClientRuntime.OrchestratorTelemetry( telemetryProvider: config.telemetryProvider, @@ -3188,26 +4115,27 @@ extension CleanRoomsClient { return try await op.execute(input: input) } - /// Performs the `ListConfiguredTables` operation on the `AWSBastionControlPlaneServiceLambda` service. + /// Performs the `ListIdNamespaceAssociations` operation on the `AWSBastionControlPlaneServiceLambda` service. /// - /// Lists configured tables. + /// Returns a list of ID namespace associations. /// - /// - Parameter ListConfiguredTablesInput : [no documentation found] + /// - Parameter ListIdNamespaceAssociationsInput : [no documentation found] /// - /// - Returns: `ListConfiguredTablesOutput` : [no documentation found] + /// - Returns: `ListIdNamespaceAssociationsOutput` : [no documentation found] /// /// - Throws: One of the exceptions listed below __Possible Exceptions__. /// /// __Possible Exceptions:__ /// - `AccessDeniedException` : Caller does not have sufficient access to perform this action. /// - `InternalServerException` : Unexpected error during processing of request. + /// - `ResourceNotFoundException` : Request references a resource which does not exist. /// - `ThrottlingException` : Request was denied due to request throttling. /// - `ValidationException` : The input fails to satisfy the specified constraints. - public func listConfiguredTables(input: ListConfiguredTablesInput) async throws -> ListConfiguredTablesOutput { + public func listIdNamespaceAssociations(input: ListIdNamespaceAssociationsInput) async throws -> ListIdNamespaceAssociationsOutput { let context = Smithy.ContextBuilder() .withMethod(value: .get) .withServiceName(value: serviceName) - .withOperation(value: "listConfiguredTables") + .withOperation(value: "listIdNamespaceAssociations") .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) .withLogger(value: config.logger) .withPartitionID(value: config.partitionID) @@ -3222,30 +4150,30 @@ extension CleanRoomsClient { .withSigningName(value: "cleanrooms") .withSigningRegion(value: config.signingRegion) .build() - let builder = ClientRuntime.OrchestratorBuilder() + let builder = ClientRuntime.OrchestratorBuilder() config.interceptorProviders.forEach { provider in builder.interceptors.add(provider.create()) } config.httpInterceptorProviders.forEach { provider in builder.interceptors.add(provider.create()) } - builder.interceptors.add(ClientRuntime.URLPathMiddleware(ListConfiguredTablesInput.urlPathProvider(_:))) - builder.interceptors.add(ClientRuntime.URLHostMiddleware()) - builder.serialize(ClientRuntime.QueryItemMiddleware(ListConfiguredTablesInput.queryItemProvider(_:))) - builder.deserialize(ClientRuntime.DeserializeMiddleware(ListConfiguredTablesOutput.httpOutput(from:), ListConfiguredTablesOutputError.httpError(from:))) - builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.interceptors.add(ClientRuntime.URLPathMiddleware(ListIdNamespaceAssociationsInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.serialize(ClientRuntime.QueryItemMiddleware(ListIdNamespaceAssociationsInput.queryItemProvider(_:))) + builder.deserialize(ClientRuntime.DeserializeMiddleware(ListIdNamespaceAssociationsOutput.httpOutput(from:), ListIdNamespaceAssociationsOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) - builder.applySigner(ClientRuntime.SignerMiddleware()) + builder.applySigner(ClientRuntime.SignerMiddleware()) let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) - builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) - builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) - builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) - builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) - builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) var metricsAttributes = Smithy.Attributes() metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CleanRooms") - metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "ListConfiguredTables") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "ListIdNamespaceAssociations") let op = builder.attributes(context) .telemetry(ClientRuntime.OrchestratorTelemetry( telemetryProvider: config.telemetryProvider, @@ -3750,6 +4678,77 @@ extension CleanRoomsClient { return try await op.execute(input: input) } + /// Performs the `PopulateIdMappingTable` operation on the `AWSBastionControlPlaneServiceLambda` service. + /// + /// Defines the information that's necessary to populate an ID mapping table. + /// + /// - Parameter PopulateIdMappingTableInput : [no documentation found] + /// + /// - Returns: `PopulateIdMappingTableOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : Caller does not have sufficient access to perform this action. + /// - `ConflictException` : Updating or deleting a resource can cause an inconsistent state. + /// - `InternalServerException` : Unexpected error during processing of request. + /// - `ResourceNotFoundException` : Request references a resource which does not exist. + /// - `ThrottlingException` : Request was denied due to request throttling. + /// - `ValidationException` : The input fails to satisfy the specified constraints. + public func populateIdMappingTable(input: PopulateIdMappingTableInput) async throws -> PopulateIdMappingTableOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "populateIdMappingTable") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(PopulateIdMappingTableInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(PopulateIdMappingTableOutput.httpOutput(from:), PopulateIdMappingTableOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CleanRooms") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "PopulateIdMappingTable") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `PreviewPrivacyImpact` operation on the `AWSBastionControlPlaneServiceLambda` service. /// /// An estimate of the number of aggregation functions that the member who can query can run given epsilon and noise parameters. @@ -4475,6 +5474,226 @@ extension CleanRoomsClient { return try await op.execute(input: input) } + /// Performs the `UpdateConfiguredTableAssociationAnalysisRule` operation on the `AWSBastionControlPlaneServiceLambda` service. + /// + /// Updates the analysis rule for a configured table association. + /// + /// - Parameter UpdateConfiguredTableAssociationAnalysisRuleInput : [no documentation found] + /// + /// - Returns: `UpdateConfiguredTableAssociationAnalysisRuleOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : Caller does not have sufficient access to perform this action. + /// - `ConflictException` : Updating or deleting a resource can cause an inconsistent state. + /// - `InternalServerException` : Unexpected error during processing of request. + /// - `ResourceNotFoundException` : Request references a resource which does not exist. + /// - `ThrottlingException` : Request was denied due to request throttling. + /// - `ValidationException` : The input fails to satisfy the specified constraints. + public func updateConfiguredTableAssociationAnalysisRule(input: UpdateConfiguredTableAssociationAnalysisRuleInput) async throws -> UpdateConfiguredTableAssociationAnalysisRuleOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .patch) + .withServiceName(value: serviceName) + .withOperation(value: "updateConfiguredTableAssociationAnalysisRule") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(UpdateConfiguredTableAssociationAnalysisRuleInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: UpdateConfiguredTableAssociationAnalysisRuleInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(UpdateConfiguredTableAssociationAnalysisRuleOutput.httpOutput(from:), UpdateConfiguredTableAssociationAnalysisRuleOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CleanRooms") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "UpdateConfiguredTableAssociationAnalysisRule") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `UpdateIdMappingTable` operation on the `AWSBastionControlPlaneServiceLambda` service. + /// + /// Provides the details that are necessary to update an ID mapping table. + /// + /// - Parameter UpdateIdMappingTableInput : [no documentation found] + /// + /// - Returns: `UpdateIdMappingTableOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : Caller does not have sufficient access to perform this action. + /// - `InternalServerException` : Unexpected error during processing of request. + /// - `ResourceNotFoundException` : Request references a resource which does not exist. + /// - `ThrottlingException` : Request was denied due to request throttling. + /// - `ValidationException` : The input fails to satisfy the specified constraints. + public func updateIdMappingTable(input: UpdateIdMappingTableInput) async throws -> UpdateIdMappingTableOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .patch) + .withServiceName(value: serviceName) + .withOperation(value: "updateIdMappingTable") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(UpdateIdMappingTableInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: UpdateIdMappingTableInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(UpdateIdMappingTableOutput.httpOutput(from:), UpdateIdMappingTableOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CleanRooms") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "UpdateIdMappingTable") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `UpdateIdNamespaceAssociation` operation on the `AWSBastionControlPlaneServiceLambda` service. + /// + /// Provides the details that are necessary to update an ID namespace association. + /// + /// - Parameter UpdateIdNamespaceAssociationInput : [no documentation found] + /// + /// - Returns: `UpdateIdNamespaceAssociationOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : Caller does not have sufficient access to perform this action. + /// - `InternalServerException` : Unexpected error during processing of request. + /// - `ResourceNotFoundException` : Request references a resource which does not exist. + /// - `ThrottlingException` : Request was denied due to request throttling. + /// - `ValidationException` : The input fails to satisfy the specified constraints. + public func updateIdNamespaceAssociation(input: UpdateIdNamespaceAssociationInput) async throws -> UpdateIdNamespaceAssociationOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .patch) + .withServiceName(value: serviceName) + .withOperation(value: "updateIdNamespaceAssociation") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "cleanrooms") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(UpdateIdNamespaceAssociationInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: UpdateIdNamespaceAssociationInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(UpdateIdNamespaceAssociationOutput.httpOutput(from:), UpdateIdNamespaceAssociationOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CleanRooms") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "UpdateIdNamespaceAssociation") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `UpdateMembership` operation on the `AWSBastionControlPlaneServiceLambda` service. /// /// Updates a membership. diff --git a/Sources/Services/AWSCleanRooms/Sources/AWSCleanRooms/Models.swift b/Sources/Services/AWSCleanRooms/Sources/AWSCleanRooms/Models.swift index 27ce9048fa9..dcb2557e80a 100644 --- a/Sources/Services/AWSCleanRooms/Sources/AWSCleanRooms/Models.swift +++ b/Sources/Services/AWSCleanRooms/Sources/AWSCleanRooms/Models.swift @@ -25,6 +25,7 @@ import protocol ClientRuntime.ModeledError @_spi(SmithyReadWrite) import protocol SmithyReadWrite.SmithyWriter @_spi(SmithyReadWrite) import struct AWSClientRuntime.RestJSONError @_spi(UnknownAWSHTTPServiceError) import struct AWSClientRuntime.UnknownAWSHTTPServiceError +import struct Smithy.Document import struct Smithy.URIQueryItem @_spi(SmithyReadWrite) import struct SmithyReadWrite.ReadingClosureBox @_spi(SmithyReadWrite) import struct SmithyReadWrite.WritingClosureBox @@ -84,6 +85,38 @@ public struct AccessDeniedException: ClientRuntime.ModeledError, AWSClientRuntim } } +extension CleanRoomsClientTypes { + + public enum AdditionalAnalyses: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case allowed + case notAllowed + case `required` + case sdkUnknown(Swift.String) + + public static var allCases: [AdditionalAnalyses] { + return [ + .allowed, + .notAllowed, + .required + ] + } + + 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 .allowed: return "ALLOWED" + case .notAllowed: return "NOT_ALLOWED" + case .required: return "REQUIRED" + case let .sdkUnknown(s): return s + } + } + } +} + extension CleanRoomsClientTypes { public enum AggregateFunctionName: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { @@ -503,6 +536,8 @@ extension CleanRoomsClientTypes { /// A type of analysis rule that enables query structure and specified queries that produce aggregate statistics. public struct AnalysisRuleAggregation: Swift.Sendable { + /// An indicator as to whether additional analyses (such as Clean Rooms ML) can be applied to the output of the direct query. The additionalAnalyses parameter is currently supported for the list analysis rule (AnalysisRuleList) and the custom analysis rule (AnalysisRuleCustom). + public var additionalAnalyses: CleanRoomsClientTypes.AdditionalAnalyses? /// The columns that query runners are allowed to use in aggregation queries. /// This member is required. public var aggregateColumns: [CleanRoomsClientTypes.AggregateColumn]? @@ -524,6 +559,7 @@ extension CleanRoomsClientTypes { public var scalarFunctions: [CleanRoomsClientTypes.ScalarFunctions]? public init( + additionalAnalyses: CleanRoomsClientTypes.AdditionalAnalyses? = nil, aggregateColumns: [CleanRoomsClientTypes.AggregateColumn]? = nil, allowedJoinOperators: [CleanRoomsClientTypes.JoinOperator]? = nil, dimensionColumns: [Swift.String]? = nil, @@ -533,6 +569,7 @@ extension CleanRoomsClientTypes { scalarFunctions: [CleanRoomsClientTypes.ScalarFunctions]? = nil ) { + self.additionalAnalyses = additionalAnalyses self.aggregateColumns = aggregateColumns self.allowedJoinOperators = allowedJoinOperators self.dimensionColumns = dimensionColumns @@ -582,6 +619,8 @@ extension CleanRoomsClientTypes { /// A type of analysis rule that enables the table owner to approve custom SQL queries on their configured tables. It supports differential privacy. public struct AnalysisRuleCustom: Swift.Sendable { + /// An indicator as to whether additional analyses (such as Clean Rooms ML) can be applied to the output of the direct query. + public var additionalAnalyses: CleanRoomsClientTypes.AdditionalAnalyses? /// The ARN of the analysis templates that are allowed by the custom analysis rule. /// This member is required. public var allowedAnalyses: [Swift.String]? @@ -589,16 +628,74 @@ extension CleanRoomsClientTypes { public var allowedAnalysisProviders: [Swift.String]? /// The differential privacy configuration. public var differentialPrivacy: CleanRoomsClientTypes.DifferentialPrivacyConfiguration? + /// A list of columns that aren't allowed to be shown in the query output. + public var disallowedOutputColumns: [Swift.String]? public init( + additionalAnalyses: CleanRoomsClientTypes.AdditionalAnalyses? = nil, allowedAnalyses: [Swift.String]? = nil, allowedAnalysisProviders: [Swift.String]? = nil, - differentialPrivacy: CleanRoomsClientTypes.DifferentialPrivacyConfiguration? = nil + differentialPrivacy: CleanRoomsClientTypes.DifferentialPrivacyConfiguration? = nil, + disallowedOutputColumns: [Swift.String]? = nil ) { + self.additionalAnalyses = additionalAnalyses self.allowedAnalyses = allowedAnalyses self.allowedAnalysisProviders = allowedAnalysisProviders self.differentialPrivacy = differentialPrivacy + self.disallowedOutputColumns = disallowedOutputColumns + } + } +} + +extension CleanRoomsClientTypes { + + /// Provides the name of the columns that are required to overlap. + public struct QueryConstraintRequireOverlap: Swift.Sendable { + /// The columns that are required to overlap. + public var columns: [Swift.String]? + + public init( + columns: [Swift.String]? = nil + ) + { + self.columns = columns + } + } +} + +extension CleanRoomsClientTypes { + + /// Provides any necessary query constraint information. + public enum QueryConstraint: Swift.Sendable { + /// An array of column names that specifies which columns are required in the JOIN statement. + case requireoverlap(CleanRoomsClientTypes.QueryConstraintRequireOverlap) + case sdkUnknown(Swift.String) + } +} + +extension CleanRoomsClientTypes { + + /// Defines details for the analysis rule ID mapping table. + public struct AnalysisRuleIdMappingTable: Swift.Sendable { + /// The columns that query runners are allowed to select, group by, or filter by. + public var dimensionColumns: [Swift.String]? + /// The columns that query runners are allowed to use in an INNER JOIN statement. + /// This member is required. + public var joinColumns: [Swift.String]? + /// The query constraints of the analysis rule ID mapping table. + /// This member is required. + public var queryConstraints: [CleanRoomsClientTypes.QueryConstraint]? + + public init( + dimensionColumns: [Swift.String]? = nil, + joinColumns: [Swift.String]? = nil, + queryConstraints: [CleanRoomsClientTypes.QueryConstraint]? = nil + ) + { + self.dimensionColumns = dimensionColumns + self.joinColumns = joinColumns + self.queryConstraints = queryConstraints } } } @@ -607,6 +704,8 @@ extension CleanRoomsClientTypes { /// A type of analysis rule that enables row-level analysis. public struct AnalysisRuleList: Swift.Sendable { + /// An indicator as to whether additional analyses (such as Clean Rooms ML) can be applied to the output of the direct query. + public var additionalAnalyses: CleanRoomsClientTypes.AdditionalAnalyses? /// The logical operators (if any) that are to be used in an INNER JOIN match condition. Default is AND. public var allowedJoinOperators: [CleanRoomsClientTypes.JoinOperator]? /// Columns that can be used to join a configured table with the table of the member who can query and other members' configured tables. @@ -617,11 +716,13 @@ extension CleanRoomsClientTypes { public var listColumns: [Swift.String]? public init( + additionalAnalyses: CleanRoomsClientTypes.AdditionalAnalyses? = nil, allowedJoinOperators: [CleanRoomsClientTypes.JoinOperator]? = nil, joinColumns: [Swift.String]? = nil, listColumns: [Swift.String]? = nil ) { + self.additionalAnalyses = additionalAnalyses self.allowedJoinOperators = allowedJoinOperators self.joinColumns = joinColumns self.listColumns = listColumns @@ -639,6 +740,8 @@ extension CleanRoomsClientTypes { case aggregation(CleanRoomsClientTypes.AnalysisRuleAggregation) /// Analysis rule type that enables custom SQL queries on a configured table. case custom(CleanRoomsClientTypes.AnalysisRuleCustom) + /// The ID mapping table. + case idmappingtable(CleanRoomsClientTypes.AnalysisRuleIdMappingTable) case sdkUnknown(Swift.String) } } @@ -658,6 +761,7 @@ extension CleanRoomsClientTypes { public enum AnalysisRuleType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { case aggregation case custom + case idMappingTable case list case sdkUnknown(Swift.String) @@ -665,6 +769,7 @@ extension CleanRoomsClientTypes { return [ .aggregation, .custom, + .idMappingTable, .list ] } @@ -678,6 +783,7 @@ extension CleanRoomsClientTypes { switch self { case .aggregation: return "AGGREGATION" case .custom: return "CUSTOM" + case .idMappingTable: return "ID_MAPPING_TABLE" case .list: return "LIST" case let .sdkUnknown(s): return s } @@ -1499,6 +1605,35 @@ public struct UpdateAnalysisTemplateOutput: Swift.Sendable { } } +extension CleanRoomsClientTypes { + + public enum AnalysisType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case additionalAnalysis + case directAnalysis + case sdkUnknown(Swift.String) + + public static var allCases: [AnalysisType] { + return [ + .additionalAnalysis, + .directAnalysis + ] + } + + 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 .additionalAnalysis: return "ADDITIONAL_ANALYSIS" + case .directAnalysis: return "DIRECT_ANALYSIS" + case let .sdkUnknown(s): return s + } + } + } +} + public struct BatchGetCollaborationAnalysisTemplateInput: Swift.Sendable { /// The Amazon Resource Name (ARN) associated with the analysis template within a collaboration. /// This member is required. @@ -1742,18 +1877,32 @@ extension CleanRoomsClientTypes { extension CleanRoomsClientTypes { public enum SchemaStatusReasonCode: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case additionalAnalysesNotAllowed + case additionalAnalysesNotConfigured case analysisProvidersNotConfigured case analysisRuleMissing + case analysisRuleTypesNotCompatible case analysisTemplatesNotConfigured + case collaborationAnalysisRuleNotConfigured case differentialPrivacyPolicyNotConfigured + case idMappingTableNotPopulated + case resultReceiversNotAllowed + case resultReceiversNotConfigured case sdkUnknown(Swift.String) public static var allCases: [SchemaStatusReasonCode] { return [ + .additionalAnalysesNotAllowed, + .additionalAnalysesNotConfigured, .analysisProvidersNotConfigured, .analysisRuleMissing, + .analysisRuleTypesNotCompatible, .analysisTemplatesNotConfigured, - .differentialPrivacyPolicyNotConfigured + .collaborationAnalysisRuleNotConfigured, + .differentialPrivacyPolicyNotConfigured, + .idMappingTableNotPopulated, + .resultReceiversNotAllowed, + .resultReceiversNotConfigured ] } @@ -1764,10 +1913,17 @@ extension CleanRoomsClientTypes { public var rawValue: Swift.String { switch self { + case .additionalAnalysesNotAllowed: return "ADDITIONAL_ANALYSES_NOT_ALLOWED" + case .additionalAnalysesNotConfigured: return "ADDITIONAL_ANALYSES_NOT_CONFIGURED" case .analysisProvidersNotConfigured: return "ANALYSIS_PROVIDERS_NOT_CONFIGURED" case .analysisRuleMissing: return "ANALYSIS_RULE_MISSING" + case .analysisRuleTypesNotCompatible: return "ANALYSIS_RULE_TYPES_NOT_COMPATIBLE" case .analysisTemplatesNotConfigured: return "ANALYSIS_TEMPLATES_NOT_CONFIGURED" + case .collaborationAnalysisRuleNotConfigured: return "COLLABORATION_ANALYSIS_RULE_NOT_CONFIGURED" case .differentialPrivacyPolicyNotConfigured: return "DIFFERENTIAL_PRIVACY_POLICY_NOT_CONFIGURED" + case .idMappingTableNotPopulated: return "ID_MAPPING_TABLE_NOT_POPULATED" + case .resultReceiversNotAllowed: return "RESULT_RECEIVERS_NOT_ALLOWED" + case .resultReceiversNotConfigured: return "RESULT_RECEIVERS_NOT_CONFIGURED" case let .sdkUnknown(s): return s } } @@ -1831,22 +1987,27 @@ extension CleanRoomsClientTypes { public struct SchemaStatusDetail: Swift.Sendable { /// The analysis rule type for which the schema status has been evaluated. public var analysisRuleType: CleanRoomsClientTypes.AnalysisRuleType? + /// The type of analysis that can be performed on the schema. A schema can have an analysisType of DIRECT_ANALYSIS, ADDITIONAL_ANALYSIS_FOR_AUDIENCE_GENERATION, or both. + /// This member is required. + public var analysisType: CleanRoomsClientTypes.AnalysisType? /// The configuration details of the schema analysis rule for the given type. public var configurations: [CleanRoomsClientTypes.SchemaConfiguration]? /// The reasons why the schema status is set to its current state. public var reasons: [CleanRoomsClientTypes.SchemaStatusReason]? - /// The status of the schema. + /// The status of the schema, indicating if it is ready to query. /// This member is required. public var status: CleanRoomsClientTypes.SchemaStatus? public init( analysisRuleType: CleanRoomsClientTypes.AnalysisRuleType? = nil, + analysisType: CleanRoomsClientTypes.AnalysisType? = nil, configurations: [CleanRoomsClientTypes.SchemaConfiguration]? = nil, reasons: [CleanRoomsClientTypes.SchemaStatusReason]? = nil, status: CleanRoomsClientTypes.SchemaStatus? = nil ) { self.analysisRuleType = analysisRuleType + self.analysisType = analysisType self.configurations = configurations self.reasons = reasons self.status = status @@ -1854,14 +2015,94 @@ extension CleanRoomsClientTypes { } } +extension CleanRoomsClientTypes { + + public enum IdNamespaceType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case source + case target + case sdkUnknown(Swift.String) + + public static var allCases: [IdNamespaceType] { + return [ + .source, + .target + ] + } + + 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 .source: return "SOURCE" + case .target: return "TARGET" + case let .sdkUnknown(s): return s + } + } + } +} + +extension CleanRoomsClientTypes { + + /// The input source of the ID mapping table. + public struct IdMappingTableInputSource: Swift.Sendable { + /// The unique identifier of the ID namespace association. + /// This member is required. + public var idNamespaceAssociationId: Swift.String? + /// The type of the input source of the ID mapping table. + /// This member is required. + public var type: CleanRoomsClientTypes.IdNamespaceType? + + public init( + idNamespaceAssociationId: Swift.String? = nil, + type: CleanRoomsClientTypes.IdNamespaceType? = nil + ) + { + self.idNamespaceAssociationId = idNamespaceAssociationId + self.type = type + } + } +} + +extension CleanRoomsClientTypes { + + /// Additional properties that are specific to the type of the associated schema. + public struct IdMappingTableSchemaTypeProperties: Swift.Sendable { + /// Defines which ID namespace associations are used to create the ID mapping table. + /// This member is required. + public var idMappingTableInputSource: [CleanRoomsClientTypes.IdMappingTableInputSource]? + + public init( + idMappingTableInputSource: [CleanRoomsClientTypes.IdMappingTableInputSource]? = nil + ) + { + self.idMappingTableInputSource = idMappingTableInputSource + } + } +} + +extension CleanRoomsClientTypes { + + /// Information about the schema type properties. + public enum SchemaTypeProperties: Swift.Sendable { + /// The ID mapping table for the schema type properties. + case idmappingtable(CleanRoomsClientTypes.IdMappingTableSchemaTypeProperties) + case sdkUnknown(Swift.String) + } +} + extension CleanRoomsClientTypes { public enum SchemaType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case idMappingTable case table case sdkUnknown(Swift.String) public static var allCases: [SchemaType] { return [ + .idMappingTable, .table ] } @@ -1873,6 +2114,7 @@ extension CleanRoomsClientTypes { public var rawValue: Swift.String { switch self { + case .idMappingTable: return "ID_MAPPING_TABLE" case .table: return "TABLE" case let .sdkUnknown(s): return s } @@ -1916,6 +2158,8 @@ extension CleanRoomsClientTypes { /// Details about the status of the schema. Currently, only one entry is present. /// This member is required. public var schemaStatusDetails: [CleanRoomsClientTypes.SchemaStatusDetail]? + /// The schema type properties. + public var schemaTypeProperties: CleanRoomsClientTypes.SchemaTypeProperties? /// The type of schema. The only valid value is currently `TABLE`. /// This member is required. public var type: CleanRoomsClientTypes.SchemaType? @@ -1935,6 +2179,7 @@ extension CleanRoomsClientTypes { name: Swift.String? = nil, partitionKeys: [CleanRoomsClientTypes.Column]? = nil, schemaStatusDetails: [CleanRoomsClientTypes.SchemaStatusDetail]? = [], + schemaTypeProperties: CleanRoomsClientTypes.SchemaTypeProperties? = nil, type: CleanRoomsClientTypes.SchemaType? = nil, updateTime: Foundation.Date? = nil ) @@ -1950,6 +2195,7 @@ extension CleanRoomsClientTypes { self.name = name self.partitionKeys = partitionKeys self.schemaStatusDetails = schemaStatusDetails + self.schemaTypeProperties = schemaTypeProperties self.type = type self.updateTime = updateTime } @@ -2378,7 +2624,7 @@ extension CleanRoomsClientTypes { } public struct CreateCollaborationOutput: Swift.Sendable { - /// The entire created collaboration object. + /// The collaboration. /// This member is required. public var collaboration: CleanRoomsClientTypes.Collaboration? @@ -2580,6 +2826,168 @@ public struct GetCollaborationConfiguredAudienceModelAssociationOutput: Swift.Se } } +public struct GetCollaborationIdNamespaceAssociationInput: Swift.Sendable { + /// The unique identifier of the collaboration that contains the ID namespace association that you want to retrieve. + /// This member is required. + public var collaborationIdentifier: Swift.String? + /// The unique identifier of the ID namespace association that you want to retrieve. + /// This member is required. + public var idNamespaceAssociationIdentifier: Swift.String? + + public init( + collaborationIdentifier: Swift.String? = nil, + idNamespaceAssociationIdentifier: Swift.String? = nil + ) + { + self.collaborationIdentifier = collaborationIdentifier + self.idNamespaceAssociationIdentifier = idNamespaceAssociationIdentifier + } +} + +extension CleanRoomsClientTypes { + + /// The configuration settings for the ID mapping table. + public struct IdMappingConfig: Swift.Sendable { + /// An indicator as to whether you can use your column as a dimension column in the ID mapping table (TRUE) or not (FALSE). Default is FALSE. + /// This member is required. + public var allowUseAsDimensionColumn: Swift.Bool + + public init( + allowUseAsDimensionColumn: Swift.Bool = false + ) + { + self.allowUseAsDimensionColumn = allowUseAsDimensionColumn + } + } +} + +extension CleanRoomsClientTypes { + + /// Provides the information for the ID namespace association input reference configuration. + public struct IdNamespaceAssociationInputReferenceConfig: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the Entity Resolution resource that is being associated to the collaboration. Valid resource ARNs are from the ID namespaces that you own. + /// This member is required. + public var inputReferenceArn: Swift.String? + /// When TRUE, Clean Rooms manages permissions for the ID namespace association resource. When FALSE, the resource owner manages permissions for the ID namespace association resource. + /// This member is required. + public var manageResourcePolicies: Swift.Bool? + + public init( + inputReferenceArn: Swift.String? = nil, + manageResourcePolicies: Swift.Bool? = nil + ) + { + self.inputReferenceArn = inputReferenceArn + self.manageResourcePolicies = manageResourcePolicies + } + } +} + +extension CleanRoomsClientTypes { + + /// Provides the information for the ID namespace association input reference properties. + public struct IdNamespaceAssociationInputReferenceProperties: Swift.Sendable { + /// Defines how ID mapping workflows are supported for this ID namespace association. + /// This member is required. + public var idMappingWorkflowsSupported: [Smithy.Document]? + /// The ID namespace type for this ID namespace association. + /// This member is required. + public var idNamespaceType: CleanRoomsClientTypes.IdNamespaceType? + + public init( + idMappingWorkflowsSupported: [Smithy.Document]? = nil, + idNamespaceType: CleanRoomsClientTypes.IdNamespaceType? = nil + ) + { + self.idMappingWorkflowsSupported = idMappingWorkflowsSupported + self.idNamespaceType = idNamespaceType + } + } +} + +extension CleanRoomsClientTypes { + + /// Defines details for the collaboration ID namespace association. + public struct CollaborationIdNamespaceAssociation: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the collaboration ID namespace association. + /// This member is required. + public var arn: Swift.String? + /// The Amazon Resource Name (ARN) of the collaboration that contains the collaboration ID namespace association. + /// This member is required. + public var collaborationArn: Swift.String? + /// The unique identifier of the collaboration that contains the collaboration ID namespace association. + /// This member is required. + public var collaborationId: Swift.String? + /// The time at which the collaboration ID namespace association was created. + /// This member is required. + public var createTime: Foundation.Date? + /// The unique identifier of the Amazon Web Services account that created the collaboration ID namespace association. + /// This member is required. + public var creatorAccountId: Swift.String? + /// The description of the collaboration ID namespace association. + public var description: Swift.String? + /// The unique identifier of the collaboration ID namespace association. + /// This member is required. + public var id: Swift.String? + /// The configuration settings for the ID mapping table. + public var idMappingConfig: CleanRoomsClientTypes.IdMappingConfig? + /// The input reference configuration that's necessary to create the collaboration ID namespace association. + /// This member is required. + public var inputReferenceConfig: CleanRoomsClientTypes.IdNamespaceAssociationInputReferenceConfig? + /// The input reference properties that are needed to create the collaboration ID namespace association. + /// This member is required. + public var inputReferenceProperties: CleanRoomsClientTypes.IdNamespaceAssociationInputReferenceProperties? + /// The name of the collaboration ID namespace association. + /// This member is required. + public var name: Swift.String? + /// The most recent time at which the collaboration ID namespace was updated. + /// This member is required. + public var updateTime: Foundation.Date? + + public init( + arn: Swift.String? = nil, + collaborationArn: Swift.String? = nil, + collaborationId: Swift.String? = nil, + createTime: Foundation.Date? = nil, + creatorAccountId: Swift.String? = nil, + description: Swift.String? = nil, + id: Swift.String? = nil, + idMappingConfig: CleanRoomsClientTypes.IdMappingConfig? = nil, + inputReferenceConfig: CleanRoomsClientTypes.IdNamespaceAssociationInputReferenceConfig? = nil, + inputReferenceProperties: CleanRoomsClientTypes.IdNamespaceAssociationInputReferenceProperties? = nil, + name: Swift.String? = nil, + updateTime: Foundation.Date? = nil + ) + { + self.arn = arn + self.collaborationArn = collaborationArn + self.collaborationId = collaborationId + self.createTime = createTime + self.creatorAccountId = creatorAccountId + self.description = description + self.id = id + self.idMappingConfig = idMappingConfig + self.inputReferenceConfig = inputReferenceConfig + self.inputReferenceProperties = inputReferenceProperties + self.name = name + self.updateTime = updateTime + } + } +} + +public struct GetCollaborationIdNamespaceAssociationOutput: Swift.Sendable { + /// The ID namespace association that you requested. + /// This member is required. + public var collaborationIdNamespaceAssociation: CleanRoomsClientTypes.CollaborationIdNamespaceAssociation? + + public init( + collaborationIdNamespaceAssociation: CleanRoomsClientTypes.CollaborationIdNamespaceAssociation? = nil + ) + { + self.collaborationIdNamespaceAssociation = collaborationIdNamespaceAssociation + } +} + public struct GetCollaborationPrivacyBudgetTemplateInput: Swift.Sendable { /// A unique identifier for one of your collaborations. /// This member is required. @@ -3015,45 +3423,166 @@ public struct ListCollaborationConfiguredAudienceModelAssociationsOutput: Swift. } } -public struct ListCollaborationPrivacyBudgetsInput: Swift.Sendable { - /// A unique identifier for one of your collaborations. +public struct ListCollaborationIdNamespaceAssociationsInput: Swift.Sendable { + /// The unique identifier of the collaboration that contains the ID namespace associations that you want to retrieve. /// This member is required. public var collaborationIdentifier: Swift.String? - /// The maximum size of the results that is returned per call. Service chooses a default if it has not been set. Service may return a nextToken even if the maximum results has not been met. + /// The maximum size of the results that is returned per call. Service chooses a default if it has not been set. Service may return a nextToken even if the maximum results has not been met.> public var maxResults: Swift.Int? - /// The token value retrieved from a previous call to access the next page of results. + /// The pagination token that's used to fetch the next set of results. public var nextToken: Swift.String? - /// Specifies the type of the privacy budget. - /// This member is required. - public var privacyBudgetType: CleanRoomsClientTypes.PrivacyBudgetType? public init( collaborationIdentifier: Swift.String? = nil, maxResults: Swift.Int? = nil, - nextToken: Swift.String? = nil, - privacyBudgetType: CleanRoomsClientTypes.PrivacyBudgetType? = nil + nextToken: Swift.String? = nil ) { self.collaborationIdentifier = collaborationIdentifier self.maxResults = maxResults self.nextToken = nextToken - self.privacyBudgetType = privacyBudgetType } } extension CleanRoomsClientTypes { - public enum DifferentialPrivacyAggregationType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { - case avg - case count - case countDistinct - case stddev - case sum - case sdkUnknown(Swift.String) + /// Detailed information about the ID namespace association input reference properties. + public struct IdNamespaceAssociationInputReferencePropertiesSummary: Swift.Sendable { + /// The ID namespace type for this ID namespace association. + /// This member is required. + public var idNamespaceType: CleanRoomsClientTypes.IdNamespaceType? - public static var allCases: [DifferentialPrivacyAggregationType] { - return [ - .avg, + public init( + idNamespaceType: CleanRoomsClientTypes.IdNamespaceType? = nil + ) + { + self.idNamespaceType = idNamespaceType + } + } +} + +extension CleanRoomsClientTypes { + + /// Provides summary information about the collaboration ID namespace association. + public struct CollaborationIdNamespaceAssociationSummary: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the collaboration ID namespace association. + /// This member is required. + public var arn: Swift.String? + /// The Amazon Resource Name (ARN) of the collaboration that contains this collaboration ID namespace association. + /// This member is required. + public var collaborationArn: Swift.String? + /// The unique identifier of the collaboration that contains this collaboration ID namespace association. + /// This member is required. + public var collaborationId: Swift.String? + /// The time at which the collaboration ID namespace association was created. + /// This member is required. + public var createTime: Foundation.Date? + /// The Amazon Web Services account that created this collaboration ID namespace association. + /// This member is required. + public var creatorAccountId: Swift.String? + /// The description of the collaboration ID namepsace association. + public var description: Swift.String? + /// The unique identifier of the collaboration ID namespace association. + /// This member is required. + public var id: Swift.String? + /// The input reference configuration that's used to create the collaboration ID namespace association. + /// This member is required. + public var inputReferenceConfig: CleanRoomsClientTypes.IdNamespaceAssociationInputReferenceConfig? + /// The input reference properties that are used to create the collaboration ID namespace association. + /// This member is required. + public var inputReferenceProperties: CleanRoomsClientTypes.IdNamespaceAssociationInputReferencePropertiesSummary? + /// The name of the collaboration ID namespace association. + /// This member is required. + public var name: Swift.String? + /// The most recent time at which the collaboration ID namespace association was updated. + /// This member is required. + public var updateTime: Foundation.Date? + + public init( + arn: Swift.String? = nil, + collaborationArn: Swift.String? = nil, + collaborationId: Swift.String? = nil, + createTime: Foundation.Date? = nil, + creatorAccountId: Swift.String? = nil, + description: Swift.String? = nil, + id: Swift.String? = nil, + inputReferenceConfig: CleanRoomsClientTypes.IdNamespaceAssociationInputReferenceConfig? = nil, + inputReferenceProperties: CleanRoomsClientTypes.IdNamespaceAssociationInputReferencePropertiesSummary? = nil, + name: Swift.String? = nil, + updateTime: Foundation.Date? = nil + ) + { + self.arn = arn + self.collaborationArn = collaborationArn + self.collaborationId = collaborationId + self.createTime = createTime + self.creatorAccountId = creatorAccountId + self.description = description + self.id = id + self.inputReferenceConfig = inputReferenceConfig + self.inputReferenceProperties = inputReferenceProperties + self.name = name + self.updateTime = updateTime + } + } +} + +public struct ListCollaborationIdNamespaceAssociationsOutput: Swift.Sendable { + /// The summary information of the collaboration ID namespace associations that you requested. + /// This member is required. + public var collaborationIdNamespaceAssociationSummaries: [CleanRoomsClientTypes.CollaborationIdNamespaceAssociationSummary]? + /// The token value provided to access the next page of results. + public var nextToken: Swift.String? + + public init( + collaborationIdNamespaceAssociationSummaries: [CleanRoomsClientTypes.CollaborationIdNamespaceAssociationSummary]? = nil, + nextToken: Swift.String? = nil + ) + { + self.collaborationIdNamespaceAssociationSummaries = collaborationIdNamespaceAssociationSummaries + self.nextToken = nextToken + } +} + +public struct ListCollaborationPrivacyBudgetsInput: Swift.Sendable { + /// A unique identifier for one of your collaborations. + /// This member is required. + public var collaborationIdentifier: Swift.String? + /// The maximum size of the results that is returned per call. Service chooses a default if it has not been set. Service may return a nextToken even if the maximum results has not been met. + public var maxResults: Swift.Int? + /// The token value retrieved from a previous call to access the next page of results. + public var nextToken: Swift.String? + /// Specifies the type of the privacy budget. + /// This member is required. + public var privacyBudgetType: CleanRoomsClientTypes.PrivacyBudgetType? + + public init( + collaborationIdentifier: Swift.String? = nil, + maxResults: Swift.Int? = nil, + nextToken: Swift.String? = nil, + privacyBudgetType: CleanRoomsClientTypes.PrivacyBudgetType? = nil + ) + { + self.collaborationIdentifier = collaborationIdentifier + self.maxResults = maxResults + self.nextToken = nextToken + self.privacyBudgetType = privacyBudgetType + } +} + +extension CleanRoomsClientTypes { + + public enum DifferentialPrivacyAggregationType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case avg + case count + case countDistinct + case stddev + case sum + case sdkUnknown(Swift.String) + + public static var allCases: [DifferentialPrivacyAggregationType] { + return [ + .avg, .count, .countDistinct, .stddev, @@ -4011,10 +4540,44 @@ public struct CreateConfiguredTableAssociationInput: Swift.Sendable { } } +extension CleanRoomsClientTypes { + + public enum ConfiguredTableAssociationAnalysisRuleType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case aggregation + case custom + case list + case sdkUnknown(Swift.String) + + public static var allCases: [ConfiguredTableAssociationAnalysisRuleType] { + return [ + .aggregation, + .custom, + .list + ] + } + + 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 .aggregation: return "AGGREGATION" + case .custom: return "CUSTOM" + case .list: return "LIST" + case let .sdkUnknown(s): return s + } + } + } +} + extension CleanRoomsClientTypes { /// A configured table association links a configured table to a collaboration. public struct ConfiguredTableAssociation: Swift.Sendable { + /// The analysis rule types for the configured table association. + public var analysisRuleTypes: [CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRuleType]? /// The unique ARN for the configured table association. /// This member is required. public var arn: Swift.String? @@ -4049,6 +4612,7 @@ extension CleanRoomsClientTypes { public var updateTime: Foundation.Date? public init( + analysisRuleTypes: [CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRuleType]? = nil, arn: Swift.String? = nil, configuredTableArn: Swift.String? = nil, configuredTableId: Swift.String? = nil, @@ -4062,6 +4626,7 @@ extension CleanRoomsClientTypes { updateTime: Foundation.Date? = nil ) { + self.analysisRuleTypes = analysisRuleTypes self.arn = arn self.configuredTableArn = configuredTableArn self.configuredTableId = configuredTableId @@ -4078,7 +4643,7 @@ extension CleanRoomsClientTypes { } public struct CreateConfiguredTableAssociationOutput: Swift.Sendable { - /// The entire configured table association object. + /// The configured table association. /// This member is required. public var configuredTableAssociation: CleanRoomsClientTypes.ConfiguredTableAssociation? @@ -4090,8 +4655,98 @@ public struct CreateConfiguredTableAssociationOutput: Swift.Sendable { } } -public struct DeleteConfiguredTableAssociationInput: Swift.Sendable { - /// The unique ID for the configured table association to be deleted. Currently accepts the configured table ID. +extension CleanRoomsClientTypes { + + /// The configured table association analysis rule applied to a configured table with the aggregation analysis rule. + public struct ConfiguredTableAssociationAnalysisRuleAggregation: Swift.Sendable { + /// The list of resources or wildcards (ARNs) that are allowed to perform additional analysis on query output. The allowedAdditionalAnalyses parameter is currently supported for the list analysis rule (AnalysisRuleList) and the custom analysis rule (AnalysisRuleCustom). + public var allowedAdditionalAnalyses: [Swift.String]? + /// The list of collaboration members who are allowed to receive results of queries run with this configured table. + public var allowedResultReceivers: [Swift.String]? + + public init( + allowedAdditionalAnalyses: [Swift.String]? = nil, + allowedResultReceivers: [Swift.String]? = nil + ) + { + self.allowedAdditionalAnalyses = allowedAdditionalAnalyses + self.allowedResultReceivers = allowedResultReceivers + } + } +} + +extension CleanRoomsClientTypes { + + /// The configured table association analysis rule applied to a configured table with the custom analysis rule. + public struct ConfiguredTableAssociationAnalysisRuleCustom: Swift.Sendable { + /// The list of resources or wildcards (ARNs) that are allowed to perform additional analysis on query output. + public var allowedAdditionalAnalyses: [Swift.String]? + /// The list of collaboration members who are allowed to receive results of queries run with this configured table. + public var allowedResultReceivers: [Swift.String]? + + public init( + allowedAdditionalAnalyses: [Swift.String]? = nil, + allowedResultReceivers: [Swift.String]? = nil + ) + { + self.allowedAdditionalAnalyses = allowedAdditionalAnalyses + self.allowedResultReceivers = allowedResultReceivers + } + } +} + +extension CleanRoomsClientTypes { + + /// The configured table association analysis rule applied to a configured table with the list analysis rule. + public struct ConfiguredTableAssociationAnalysisRuleList: Swift.Sendable { + /// The list of resources or wildcards (ARNs) that are allowed to perform additional analysis on query output. + public var allowedAdditionalAnalyses: [Swift.String]? + /// The list of collaboration members who are allowed to receive results of queries run with this configured table. + public var allowedResultReceivers: [Swift.String]? + + public init( + allowedAdditionalAnalyses: [Swift.String]? = nil, + allowedResultReceivers: [Swift.String]? = nil + ) + { + self.allowedAdditionalAnalyses = allowedAdditionalAnalyses + self.allowedResultReceivers = allowedResultReceivers + } + } +} + +extension CleanRoomsClientTypes { + + /// Controls on the query specifications that can be run on an associated configured table. + public enum ConfiguredTableAssociationAnalysisRulePolicyV1: Swift.Sendable { + /// Analysis rule type that enables only list queries on a configured table. + case list(CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRuleList) + /// Analysis rule type that enables only aggregation queries on a configured table. + case aggregation(CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRuleAggregation) + /// Analysis rule type that enables the table owner to approve custom SQL queries on their configured tables. It supports differential privacy. + case custom(CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRuleCustom) + case sdkUnknown(Swift.String) + } +} + +extension CleanRoomsClientTypes { + + /// Controls on the query specifications that can be run on an associated configured table. + public enum ConfiguredTableAssociationAnalysisRulePolicy: Swift.Sendable { + /// The policy for the configured table association analysis rule. + case v1(CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRulePolicyV1) + case sdkUnknown(Swift.String) + } +} + +public struct CreateConfiguredTableAssociationAnalysisRuleInput: Swift.Sendable { + /// The analysis rule policy that was created for the configured table association. + /// This member is required. + public var analysisRulePolicy: CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRulePolicy? + /// The type of analysis rule. + /// This member is required. + public var analysisRuleType: CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRuleType? + /// The unique ID for the configured table association. Currently accepts the configured table association ID. /// This member is required. public var configuredTableAssociationIdentifier: Swift.String? /// A unique identifier for the membership that the configured table association belongs to. Currently accepts the membership ID. @@ -4099,22 +4754,81 @@ public struct DeleteConfiguredTableAssociationInput: Swift.Sendable { public var membershipIdentifier: Swift.String? public init( + analysisRulePolicy: CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRulePolicy? = nil, + analysisRuleType: CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRuleType? = nil, configuredTableAssociationIdentifier: Swift.String? = nil, membershipIdentifier: Swift.String? = nil ) { + self.analysisRulePolicy = analysisRulePolicy + self.analysisRuleType = analysisRuleType self.configuredTableAssociationIdentifier = configuredTableAssociationIdentifier self.membershipIdentifier = membershipIdentifier } } -public struct DeleteConfiguredTableAssociationOutput: Swift.Sendable { +extension CleanRoomsClientTypes { - public init() { } + /// An analysis rule for a configured table association. This analysis rule specifies how data from the table can be used within its associated collaboration. In the console, the ConfiguredTableAssociationAnalysisRule is referred to as the collaboration analysis rule. + public struct ConfiguredTableAssociationAnalysisRule: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the configured table association. + /// This member is required. + public var configuredTableAssociationArn: Swift.String? + /// The unique identifier for the configured table association. + /// This member is required. + public var configuredTableAssociationId: Swift.String? + /// The creation time of the configured table association analysis rule. + /// This member is required. + public var createTime: Foundation.Date? + /// The membership identifier for the configured table association analysis rule. + /// This member is required. + public var membershipIdentifier: Swift.String? + /// The policy of the configured table association analysis rule. + /// This member is required. + public var policy: CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRulePolicy? + /// The type of the configured table association analysis rule. + /// This member is required. + public var type: CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRuleType? + /// The update time of the configured table association analysis rule. + /// This member is required. + public var updateTime: Foundation.Date? + + public init( + configuredTableAssociationArn: Swift.String? = nil, + configuredTableAssociationId: Swift.String? = nil, + createTime: Foundation.Date? = nil, + membershipIdentifier: Swift.String? = nil, + policy: CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRulePolicy? = nil, + type: CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRuleType? = nil, + updateTime: Foundation.Date? = nil + ) + { + self.configuredTableAssociationArn = configuredTableAssociationArn + self.configuredTableAssociationId = configuredTableAssociationId + self.createTime = createTime + self.membershipIdentifier = membershipIdentifier + self.policy = policy + self.type = type + self.updateTime = updateTime + } + } } -public struct GetConfiguredTableAssociationInput: Swift.Sendable { - /// The unique ID for the configured table association to retrieve. Currently accepts the configured table ID. +public struct CreateConfiguredTableAssociationAnalysisRuleOutput: Swift.Sendable { + /// The analysis rule for the configured table association. In the console, the ConfiguredTableAssociationAnalysisRule is referred to as the collaboration analysis rule. + /// This member is required. + public var analysisRule: CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRule? + + public init( + analysisRule: CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRule? = nil + ) + { + self.analysisRule = analysisRule + } +} + +public struct DeleteConfiguredTableAssociationInput: Swift.Sendable { + /// The unique ID for the configured table association to be deleted. Currently accepts the configured table ID. /// This member is required. public var configuredTableAssociationIdentifier: Swift.String? /// A unique identifier for the membership that the configured table association belongs to. Currently accepts the membership ID. @@ -4131,37 +4845,124 @@ public struct GetConfiguredTableAssociationInput: Swift.Sendable { } } -public struct GetConfiguredTableAssociationOutput: Swift.Sendable { - /// The entire configured table association object. - /// This member is required. - public var configuredTableAssociation: CleanRoomsClientTypes.ConfiguredTableAssociation? +public struct DeleteConfiguredTableAssociationOutput: Swift.Sendable { - public init( - configuredTableAssociation: CleanRoomsClientTypes.ConfiguredTableAssociation? = nil - ) - { - self.configuredTableAssociation = configuredTableAssociation - } + public init() { } } -public struct ListConfiguredTableAssociationsInput: Swift.Sendable { - /// The maximum size of the results that is returned per call. - public var maxResults: Swift.Int? - /// A unique identifier for the membership to list configured table associations for. Currently accepts the membership ID. +public struct DeleteConfiguredTableAssociationAnalysisRuleInput: Swift.Sendable { + /// The type of the analysis rule that you want to delete. + /// This member is required. + public var analysisRuleType: CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRuleType? + /// The identifier for the configured table association that's related to the analysis rule that you want to delete. + /// This member is required. + public var configuredTableAssociationIdentifier: Swift.String? + /// A unique identifier for the membership that the configured table association belongs to. Currently accepts the membership ID. /// This member is required. public var membershipIdentifier: Swift.String? - /// The token value retrieved from a previous call to access the next page of results. - public var nextToken: Swift.String? public init( - maxResults: Swift.Int? = nil, - membershipIdentifier: Swift.String? = nil, - nextToken: Swift.String? = nil + analysisRuleType: CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRuleType? = nil, + configuredTableAssociationIdentifier: Swift.String? = nil, + membershipIdentifier: Swift.String? = nil ) { - self.maxResults = maxResults + self.analysisRuleType = analysisRuleType + self.configuredTableAssociationIdentifier = configuredTableAssociationIdentifier self.membershipIdentifier = membershipIdentifier - self.nextToken = nextToken + } +} + +public struct DeleteConfiguredTableAssociationAnalysisRuleOutput: Swift.Sendable { + + public init() { } +} + +public struct GetConfiguredTableAssociationInput: Swift.Sendable { + /// The unique ID for the configured table association to retrieve. Currently accepts the configured table ID. + /// This member is required. + public var configuredTableAssociationIdentifier: Swift.String? + /// A unique identifier for the membership that the configured table association belongs to. Currently accepts the membership ID. + /// This member is required. + public var membershipIdentifier: Swift.String? + + public init( + configuredTableAssociationIdentifier: Swift.String? = nil, + membershipIdentifier: Swift.String? = nil + ) + { + self.configuredTableAssociationIdentifier = configuredTableAssociationIdentifier + self.membershipIdentifier = membershipIdentifier + } +} + +public struct GetConfiguredTableAssociationOutput: Swift.Sendable { + /// The entire configured table association object. + /// This member is required. + public var configuredTableAssociation: CleanRoomsClientTypes.ConfiguredTableAssociation? + + public init( + configuredTableAssociation: CleanRoomsClientTypes.ConfiguredTableAssociation? = nil + ) + { + self.configuredTableAssociation = configuredTableAssociation + } +} + +public struct GetConfiguredTableAssociationAnalysisRuleInput: Swift.Sendable { + /// The type of analysis rule that you want to retrieve. + /// This member is required. + public var analysisRuleType: CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRuleType? + /// The identifier for the configured table association that's related to the analysis rule. + /// This member is required. + public var configuredTableAssociationIdentifier: Swift.String? + /// A unique identifier for the membership that the configured table association belongs to. Currently accepts the membership ID. + /// This member is required. + public var membershipIdentifier: Swift.String? + + public init( + analysisRuleType: CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRuleType? = nil, + configuredTableAssociationIdentifier: Swift.String? = nil, + membershipIdentifier: Swift.String? = nil + ) + { + self.analysisRuleType = analysisRuleType + self.configuredTableAssociationIdentifier = configuredTableAssociationIdentifier + self.membershipIdentifier = membershipIdentifier + } +} + +public struct GetConfiguredTableAssociationAnalysisRuleOutput: Swift.Sendable { + /// The analysis rule for the configured table association. In the console, the ConfiguredTableAssociationAnalysisRule is referred to as the collaboration analysis rule. + /// This member is required. + public var analysisRule: CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRule? + + public init( + analysisRule: CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRule? = nil + ) + { + self.analysisRule = analysisRule + } +} + +public struct ListConfiguredTableAssociationsInput: Swift.Sendable { + /// The maximum size of the results that is returned per call. + public var maxResults: Swift.Int? + /// A unique identifier for the membership to list configured table associations for. Currently accepts the membership ID. + /// This member is required. + public var membershipIdentifier: Swift.String? + /// The token value retrieved from a previous call to access the next page of results. + public var nextToken: Swift.String? + + public init( + maxResults: Swift.Int? = nil, + membershipIdentifier: Swift.String? = nil, + nextToken: Swift.String? = nil + ) + { + self.maxResults = maxResults + self.membershipIdentifier = membershipIdentifier + self.nextToken = nextToken } } @@ -4273,6 +5074,47 @@ public struct UpdateConfiguredTableAssociationOutput: Swift.Sendable { } } +public struct UpdateConfiguredTableAssociationAnalysisRuleInput: Swift.Sendable { + /// The updated analysis rule policy for the configured table association. + /// This member is required. + public var analysisRulePolicy: CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRulePolicy? + /// The analysis rule type that you want to update. + /// This member is required. + public var analysisRuleType: CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRuleType? + /// The identifier for the configured table association to update. + /// This member is required. + public var configuredTableAssociationIdentifier: Swift.String? + /// A unique identifier for the membership that the configured table association belongs to. Currently accepts the membership ID. + /// This member is required. + public var membershipIdentifier: Swift.String? + + public init( + analysisRulePolicy: CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRulePolicy? = nil, + analysisRuleType: CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRuleType? = nil, + configuredTableAssociationIdentifier: Swift.String? = nil, + membershipIdentifier: Swift.String? = nil + ) + { + self.analysisRulePolicy = analysisRulePolicy + self.analysisRuleType = analysisRuleType + self.configuredTableAssociationIdentifier = configuredTableAssociationIdentifier + self.membershipIdentifier = membershipIdentifier + } +} + +public struct UpdateConfiguredTableAssociationAnalysisRuleOutput: Swift.Sendable { + /// The updated analysis rule for the configured table association. In the console, the ConfiguredTableAssociationAnalysisRule is referred to as the collaboration analysis rule. + /// This member is required. + public var analysisRule: CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRule? + + public init( + analysisRule: CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRule? = nil + ) + { + self.analysisRule = analysisRule + } +} + extension CleanRoomsClientTypes { /// A reference to a table within an Glue data catalog. @@ -4472,7 +5314,7 @@ extension CleanRoomsClientTypes { } public struct CreateConfiguredTableAnalysisRuleInput: Swift.Sendable { - /// The entire created configured table analysis rule object. + /// The analysis rule policy that was created for the configured table. /// This member is required. public var analysisRulePolicy: CleanRoomsClientTypes.ConfiguredTableAnalysisRulePolicy? /// The type of analysis rule. @@ -4537,7 +5379,7 @@ extension CleanRoomsClientTypes { } public struct CreateConfiguredTableAnalysisRuleOutput: Swift.Sendable { - /// The entire created analysis rule. + /// The analysis rule that was created for the configured table. /// This member is required. public var analysisRule: CleanRoomsClientTypes.ConfiguredTableAnalysisRule? @@ -4799,111 +5641,830 @@ public struct UpdateConfiguredTableAnalysisRuleOutput: Swift.Sendable { } } -public struct ListTagsForResourceInput: Swift.Sendable { - /// The Amazon Resource Name (ARN) associated with the resource you want to list tags on. - /// This member is required. - public var resourceArn: Swift.String? +extension CleanRoomsClientTypes { - public init( - resourceArn: Swift.String? = nil - ) - { - self.resourceArn = resourceArn + /// Provides the input reference configuration for the ID mapping table. + public struct IdMappingTableInputReferenceConfig: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the referenced resource in Entity Resolution. Valid values are ID mapping workflow ARNs. + /// This member is required. + public var inputReferenceArn: Swift.String? + /// When TRUE, Clean Rooms manages permissions for the ID mapping table resource. When FALSE, the resource owner manages permissions for the ID mapping table resource. + /// This member is required. + public var manageResourcePolicies: Swift.Bool? + + public init( + inputReferenceArn: Swift.String? = nil, + manageResourcePolicies: Swift.Bool? = nil + ) + { + self.inputReferenceArn = inputReferenceArn + self.manageResourcePolicies = manageResourcePolicies + } } } -public struct ListTagsForResourceOutput: Swift.Sendable { - /// A map of objects specifying each key name and value. +public struct CreateIdMappingTableInput: Swift.Sendable { + /// A description of the ID mapping table. + public var description: Swift.String? + /// The input reference configuration needed to create the ID mapping table. + /// This member is required. + public var inputReferenceConfig: CleanRoomsClientTypes.IdMappingTableInputReferenceConfig? + /// The Amazon Resource Name (ARN) of the Amazon Web Services KMS key. This value is used to encrypt the mapping table data that is stored by Clean Rooms. + public var kmsKeyArn: Swift.String? + /// The unique identifier of the membership that contains the ID mapping table. + /// This member is required. + public var membershipIdentifier: Swift.String? + /// A name for the ID mapping table. /// This member is required. + public var name: Swift.String? + /// An optional label that you can assign to a resource when you create it. Each tag consists of a key and an optional value, both of which you define. When you use tagging, you can also use tag-based access control in IAM policies to control access to this resource. public var tags: [Swift.String: Swift.String]? public init( + description: Swift.String? = nil, + inputReferenceConfig: CleanRoomsClientTypes.IdMappingTableInputReferenceConfig? = nil, + kmsKeyArn: Swift.String? = nil, + membershipIdentifier: Swift.String? = nil, + name: Swift.String? = nil, tags: [Swift.String: Swift.String]? = nil ) { + self.description = description + self.inputReferenceConfig = inputReferenceConfig + self.kmsKeyArn = kmsKeyArn + self.membershipIdentifier = membershipIdentifier + self.name = name self.tags = tags } } extension CleanRoomsClientTypes { - public enum ResultFormat: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { - case csv - case parquet - case sdkUnknown(Swift.String) - - public static var allCases: [ResultFormat] { - return [ - .csv, - .parquet - ] - } - - public init?(rawValue: Swift.String) { - let value = Self.allCases.first(where: { $0.rawValue == rawValue }) - self = value ?? Self.sdkUnknown(rawValue) - } + /// The input reference properties for the ID mapping table. + public struct IdMappingTableInputReferenceProperties: Swift.Sendable { + /// The input source of the ID mapping table. + /// This member is required. + public var idMappingTableInputSource: [CleanRoomsClientTypes.IdMappingTableInputSource]? - public var rawValue: Swift.String { - switch self { - case .csv: return "CSV" - case .parquet: return "PARQUET" - case let .sdkUnknown(s): return s - } + public init( + idMappingTableInputSource: [CleanRoomsClientTypes.IdMappingTableInputSource]? = nil + ) + { + self.idMappingTableInputSource = idMappingTableInputSource } } } extension CleanRoomsClientTypes { - /// Contains the configuration to write the query results to S3. - public struct ProtectedQueryS3OutputConfiguration: Swift.Sendable { - /// The S3 bucket to unload the protected query results. + /// Describes information about the ID mapping table. + public struct IdMappingTable: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the ID mapping table. /// This member is required. - public var bucket: Swift.String? - /// The S3 prefix to unload the protected query results. - public var keyPrefix: Swift.String? - /// Intended file format of the result. + public var arn: Swift.String? + /// The Amazon Resource Name (ARN) of the collaboration that contains this ID mapping table. /// This member is required. - public var resultFormat: CleanRoomsClientTypes.ResultFormat? + public var collaborationArn: Swift.String? + /// The unique identifier of the collaboration that contains this ID mapping table. + /// This member is required. + public var collaborationId: Swift.String? + /// The time at which the ID mapping table was created. + /// This member is required. + public var createTime: Foundation.Date? + /// The description of the ID mapping table. + public var description: Swift.String? + /// The unique identifier of the ID mapping table. + /// This member is required. + public var id: Swift.String? + /// The input reference configuration for the ID mapping table. + /// This member is required. + public var inputReferenceConfig: CleanRoomsClientTypes.IdMappingTableInputReferenceConfig? + /// The input reference properties for the ID mapping table. + /// This member is required. + public var inputReferenceProperties: CleanRoomsClientTypes.IdMappingTableInputReferenceProperties? + /// The Amazon Resource Name (ARN) of the Amazon Web Services KMS key. + public var kmsKeyArn: Swift.String? + /// The Amazon Resource Name (ARN) of the membership resource for the ID mapping table. + /// This member is required. + public var membershipArn: Swift.String? + /// The unique identifier of the membership resource for the ID mapping table. + /// This member is required. + public var membershipId: Swift.String? + /// The name of the ID mapping table. + /// This member is required. + public var name: Swift.String? + /// The most recent time at which the ID mapping table was updated. + /// This member is required. + public var updateTime: Foundation.Date? public init( - bucket: Swift.String? = nil, - keyPrefix: Swift.String? = nil, - resultFormat: CleanRoomsClientTypes.ResultFormat? = nil + arn: Swift.String? = nil, + collaborationArn: Swift.String? = nil, + collaborationId: Swift.String? = nil, + createTime: Foundation.Date? = nil, + description: Swift.String? = nil, + id: Swift.String? = nil, + inputReferenceConfig: CleanRoomsClientTypes.IdMappingTableInputReferenceConfig? = nil, + inputReferenceProperties: CleanRoomsClientTypes.IdMappingTableInputReferenceProperties? = nil, + kmsKeyArn: Swift.String? = nil, + membershipArn: Swift.String? = nil, + membershipId: Swift.String? = nil, + name: Swift.String? = nil, + updateTime: Foundation.Date? = nil ) { - self.bucket = bucket - self.keyPrefix = keyPrefix - self.resultFormat = resultFormat + self.arn = arn + self.collaborationArn = collaborationArn + self.collaborationId = collaborationId + self.createTime = createTime + self.description = description + self.id = id + self.inputReferenceConfig = inputReferenceConfig + self.inputReferenceProperties = inputReferenceProperties + self.kmsKeyArn = kmsKeyArn + self.membershipArn = membershipArn + self.membershipId = membershipId + self.name = name + self.updateTime = updateTime } } } -extension CleanRoomsClientTypes { +public struct CreateIdMappingTableOutput: Swift.Sendable { + /// The ID mapping table that was created. + /// This member is required. + public var idMappingTable: CleanRoomsClientTypes.IdMappingTable? - /// Contains configurations for protected query results. - public enum MembershipProtectedQueryOutputConfiguration: Swift.Sendable { - /// Contains the configuration to write the query results to S3. - case s3(CleanRoomsClientTypes.ProtectedQueryS3OutputConfiguration) - case sdkUnknown(Swift.String) + public init( + idMappingTable: CleanRoomsClientTypes.IdMappingTable? = nil + ) + { + self.idMappingTable = idMappingTable } } -extension CleanRoomsClientTypes { +public struct DeleteIdMappingTableInput: Swift.Sendable { + /// The unique identifier of the ID mapping table that you want to delete. + /// This member is required. + public var idMappingTableIdentifier: Swift.String? + /// The unique identifier of the membership that contains the ID mapping table that you want to delete. + /// This member is required. + public var membershipIdentifier: Swift.String? - /// Contains configurations for protected query results. - public struct MembershipProtectedQueryResultConfiguration: Swift.Sendable { - /// Configuration for protected query results. - /// This member is required. - public var outputConfiguration: CleanRoomsClientTypes.MembershipProtectedQueryOutputConfiguration? - /// The unique ARN for an IAM role that is used by Clean Rooms to write protected query results to the result location, given by the member who can receive results. - public var roleArn: Swift.String? + public init( + idMappingTableIdentifier: Swift.String? = nil, + membershipIdentifier: Swift.String? = nil + ) + { + self.idMappingTableIdentifier = idMappingTableIdentifier + self.membershipIdentifier = membershipIdentifier + } +} - public init( - outputConfiguration: CleanRoomsClientTypes.MembershipProtectedQueryOutputConfiguration? = nil, - roleArn: Swift.String? = nil - ) +public struct DeleteIdMappingTableOutput: Swift.Sendable { + + public init() { } +} + +public struct GetIdMappingTableInput: Swift.Sendable { + /// The unique identifier of the ID mapping table identifier that you want to retrieve. + /// This member is required. + public var idMappingTableIdentifier: Swift.String? + /// The unique identifier of the membership that contains the ID mapping table that you want to retrieve. + /// This member is required. + public var membershipIdentifier: Swift.String? + + public init( + idMappingTableIdentifier: Swift.String? = nil, + membershipIdentifier: Swift.String? = nil + ) + { + self.idMappingTableIdentifier = idMappingTableIdentifier + self.membershipIdentifier = membershipIdentifier + } +} + +public struct GetIdMappingTableOutput: Swift.Sendable { + /// The ID mapping table that you requested. + /// This member is required. + public var idMappingTable: CleanRoomsClientTypes.IdMappingTable? + + public init( + idMappingTable: CleanRoomsClientTypes.IdMappingTable? = nil + ) + { + self.idMappingTable = idMappingTable + } +} + +public struct ListIdMappingTablesInput: Swift.Sendable { + /// The maximum size of the results that is returned per call. Service chooses a default if it has not been set. Service may return a nextToken even if the maximum results has not been met. + public var maxResults: Swift.Int? + /// The unique identifier of the membership that contains the ID mapping tables that you want to view. + /// This member is required. + public var membershipIdentifier: Swift.String? + /// The pagination token that's used to fetch the next set of results. + public var nextToken: Swift.String? + + public init( + maxResults: Swift.Int? = nil, + membershipIdentifier: Swift.String? = nil, + nextToken: Swift.String? = nil + ) + { + self.maxResults = maxResults + self.membershipIdentifier = membershipIdentifier + self.nextToken = nextToken + } +} + +extension CleanRoomsClientTypes { + + /// Detailed information about the ID mapping table. + public struct IdMappingTableSummary: Swift.Sendable { + /// The Amazon Resource Name (ARN) of this ID mapping table. + /// This member is required. + public var arn: Swift.String? + /// The Amazon Resource Name (ARN) of the collaboration that contains this ID mapping table. + /// This member is required. + public var collaborationArn: Swift.String? + /// The unique identifier of the collaboration that contains this ID mapping table. + /// This member is required. + public var collaborationId: Swift.String? + /// The time at which this ID mapping table was created. + /// This member is required. + public var createTime: Foundation.Date? + /// The description of this ID mapping table. + public var description: Swift.String? + /// The unique identifier of this ID mapping table. + /// This member is required. + public var id: Swift.String? + /// The input reference configuration for the ID mapping table. + /// This member is required. + public var inputReferenceConfig: CleanRoomsClientTypes.IdMappingTableInputReferenceConfig? + /// The Amazon Resource Name (ARN) of the membership resource for this ID mapping table. + /// This member is required. + public var membershipArn: Swift.String? + /// The unique identifier of the membership resource for this ID mapping table. + /// This member is required. + public var membershipId: Swift.String? + /// The name of this ID mapping table. + /// This member is required. + public var name: Swift.String? + /// The most recent time at which this ID mapping table was updated. + /// This member is required. + public var updateTime: Foundation.Date? + + public init( + arn: Swift.String? = nil, + collaborationArn: Swift.String? = nil, + collaborationId: Swift.String? = nil, + createTime: Foundation.Date? = nil, + description: Swift.String? = nil, + id: Swift.String? = nil, + inputReferenceConfig: CleanRoomsClientTypes.IdMappingTableInputReferenceConfig? = nil, + membershipArn: Swift.String? = nil, + membershipId: Swift.String? = nil, + name: Swift.String? = nil, + updateTime: Foundation.Date? = nil + ) + { + self.arn = arn + self.collaborationArn = collaborationArn + self.collaborationId = collaborationId + self.createTime = createTime + self.description = description + self.id = id + self.inputReferenceConfig = inputReferenceConfig + self.membershipArn = membershipArn + self.membershipId = membershipId + self.name = name + self.updateTime = updateTime + } + } +} + +public struct ListIdMappingTablesOutput: Swift.Sendable { + /// The summary information of the ID mapping tables that you requested. + /// This member is required. + public var idMappingTableSummaries: [CleanRoomsClientTypes.IdMappingTableSummary]? + /// The token value provided to access the next page of results. + public var nextToken: Swift.String? + + public init( + idMappingTableSummaries: [CleanRoomsClientTypes.IdMappingTableSummary]? = nil, + nextToken: Swift.String? = nil + ) + { + self.idMappingTableSummaries = idMappingTableSummaries + self.nextToken = nextToken + } +} + +public struct PopulateIdMappingTableInput: Swift.Sendable { + /// The unique identifier of the ID mapping table that you want to populate. + /// This member is required. + public var idMappingTableIdentifier: Swift.String? + /// The unique identifier of the membership that contains the ID mapping table that you want to populate. + /// This member is required. + public var membershipIdentifier: Swift.String? + + public init( + idMappingTableIdentifier: Swift.String? = nil, + membershipIdentifier: Swift.String? = nil + ) + { + self.idMappingTableIdentifier = idMappingTableIdentifier + self.membershipIdentifier = membershipIdentifier + } +} + +public struct PopulateIdMappingTableOutput: Swift.Sendable { + /// The unique identifier of the mapping job that will populate the ID mapping table. + /// This member is required. + public var idMappingJobId: Swift.String? + + public init( + idMappingJobId: Swift.String? = nil + ) + { + self.idMappingJobId = idMappingJobId + } +} + +public struct UpdateIdMappingTableInput: Swift.Sendable { + /// A new description for the ID mapping table. + public var description: Swift.String? + /// The unique identifier of the ID mapping table that you want to update. + /// This member is required. + public var idMappingTableIdentifier: Swift.String? + /// The Amazon Resource Name (ARN) of the Amazon Web Services KMS key. + public var kmsKeyArn: Swift.String? + /// The unique identifier of the membership that contains the ID mapping table that you want to update. + /// This member is required. + public var membershipIdentifier: Swift.String? + + public init( + description: Swift.String? = nil, + idMappingTableIdentifier: Swift.String? = nil, + kmsKeyArn: Swift.String? = nil, + membershipIdentifier: Swift.String? = nil + ) + { + self.description = description + self.idMappingTableIdentifier = idMappingTableIdentifier + self.kmsKeyArn = kmsKeyArn + self.membershipIdentifier = membershipIdentifier + } +} + +public struct UpdateIdMappingTableOutput: Swift.Sendable { + /// The updated ID mapping table. + /// This member is required. + public var idMappingTable: CleanRoomsClientTypes.IdMappingTable? + + public init( + idMappingTable: CleanRoomsClientTypes.IdMappingTable? = nil + ) + { + self.idMappingTable = idMappingTable + } +} + +public struct CreateIdNamespaceAssociationInput: Swift.Sendable { + /// The description of the ID namespace association. + public var description: Swift.String? + /// The configuration settings for the ID mapping table. + public var idMappingConfig: CleanRoomsClientTypes.IdMappingConfig? + /// The input reference configuration needed to create the ID namespace association. + /// This member is required. + public var inputReferenceConfig: CleanRoomsClientTypes.IdNamespaceAssociationInputReferenceConfig? + /// The unique identifier of the membership that contains the ID namespace association. + /// This member is required. + public var membershipIdentifier: Swift.String? + /// The name for the ID namespace association. + /// This member is required. + public var name: Swift.String? + /// An optional label that you can assign to a resource when you create it. Each tag consists of a key and an optional value, both of which you define. When you use tagging, you can also use tag-based access control in IAM policies to control access to this resource. + public var tags: [Swift.String: Swift.String]? + + public init( + description: Swift.String? = nil, + idMappingConfig: CleanRoomsClientTypes.IdMappingConfig? = nil, + inputReferenceConfig: CleanRoomsClientTypes.IdNamespaceAssociationInputReferenceConfig? = nil, + membershipIdentifier: Swift.String? = nil, + name: Swift.String? = nil, + tags: [Swift.String: Swift.String]? = nil + ) + { + self.description = description + self.idMappingConfig = idMappingConfig + self.inputReferenceConfig = inputReferenceConfig + self.membershipIdentifier = membershipIdentifier + self.name = name + self.tags = tags + } +} + +extension CleanRoomsClientTypes { + + /// Provides information to create the ID namespace association. + public struct IdNamespaceAssociation: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the ID namespace association. + /// This member is required. + public var arn: Swift.String? + /// The Amazon Resource Name (ARN) of the collaboration that contains this ID namespace association. + /// This member is required. + public var collaborationArn: Swift.String? + /// The unique identifier of the collaboration that contains this ID namespace association. + /// This member is required. + public var collaborationId: Swift.String? + /// The time at which the ID namespace association was created. + /// This member is required. + public var createTime: Foundation.Date? + /// The description of the ID namespace association. + public var description: Swift.String? + /// The unique identifier for this ID namespace association. + /// This member is required. + public var id: Swift.String? + /// The configuration settings for the ID mapping table. + public var idMappingConfig: CleanRoomsClientTypes.IdMappingConfig? + /// The input reference configuration for the ID namespace association. + /// This member is required. + public var inputReferenceConfig: CleanRoomsClientTypes.IdNamespaceAssociationInputReferenceConfig? + /// The input reference properties for the ID namespace association. + /// This member is required. + public var inputReferenceProperties: CleanRoomsClientTypes.IdNamespaceAssociationInputReferenceProperties? + /// The Amazon Resource Name (ARN) of the membership resource for this ID namespace association. + /// This member is required. + public var membershipArn: Swift.String? + /// The unique identifier of the membership resource for this ID namespace association. + /// This member is required. + public var membershipId: Swift.String? + /// The name of this ID namespace association. + /// This member is required. + public var name: Swift.String? + /// The most recent time at which the ID namespace association was updated. + /// This member is required. + public var updateTime: Foundation.Date? + + public init( + arn: Swift.String? = nil, + collaborationArn: Swift.String? = nil, + collaborationId: Swift.String? = nil, + createTime: Foundation.Date? = nil, + description: Swift.String? = nil, + id: Swift.String? = nil, + idMappingConfig: CleanRoomsClientTypes.IdMappingConfig? = nil, + inputReferenceConfig: CleanRoomsClientTypes.IdNamespaceAssociationInputReferenceConfig? = nil, + inputReferenceProperties: CleanRoomsClientTypes.IdNamespaceAssociationInputReferenceProperties? = nil, + membershipArn: Swift.String? = nil, + membershipId: Swift.String? = nil, + name: Swift.String? = nil, + updateTime: Foundation.Date? = nil + ) + { + self.arn = arn + self.collaborationArn = collaborationArn + self.collaborationId = collaborationId + self.createTime = createTime + self.description = description + self.id = id + self.idMappingConfig = idMappingConfig + self.inputReferenceConfig = inputReferenceConfig + self.inputReferenceProperties = inputReferenceProperties + self.membershipArn = membershipArn + self.membershipId = membershipId + self.name = name + self.updateTime = updateTime + } + } +} + +public struct CreateIdNamespaceAssociationOutput: Swift.Sendable { + /// The ID namespace association that was created. + /// This member is required. + public var idNamespaceAssociation: CleanRoomsClientTypes.IdNamespaceAssociation? + + public init( + idNamespaceAssociation: CleanRoomsClientTypes.IdNamespaceAssociation? = nil + ) + { + self.idNamespaceAssociation = idNamespaceAssociation + } +} + +public struct DeleteIdNamespaceAssociationInput: Swift.Sendable { + /// The unique identifier of the ID namespace association that you want to delete. + /// This member is required. + public var idNamespaceAssociationIdentifier: Swift.String? + /// The unique identifier of the membership that contains the ID namespace association that you want to delete. + /// This member is required. + public var membershipIdentifier: Swift.String? + + public init( + idNamespaceAssociationIdentifier: Swift.String? = nil, + membershipIdentifier: Swift.String? = nil + ) + { + self.idNamespaceAssociationIdentifier = idNamespaceAssociationIdentifier + self.membershipIdentifier = membershipIdentifier + } +} + +public struct DeleteIdNamespaceAssociationOutput: Swift.Sendable { + + public init() { } +} + +public struct GetIdNamespaceAssociationInput: Swift.Sendable { + /// The unique identifier of the ID namespace association that you want to retrieve. + /// This member is required. + public var idNamespaceAssociationIdentifier: Swift.String? + /// The unique identifier of the membership that contains the ID namespace association that you want to retrieve. + /// This member is required. + public var membershipIdentifier: Swift.String? + + public init( + idNamespaceAssociationIdentifier: Swift.String? = nil, + membershipIdentifier: Swift.String? = nil + ) + { + self.idNamespaceAssociationIdentifier = idNamespaceAssociationIdentifier + self.membershipIdentifier = membershipIdentifier + } +} + +public struct GetIdNamespaceAssociationOutput: Swift.Sendable { + /// The ID namespace association that you requested. + /// This member is required. + public var idNamespaceAssociation: CleanRoomsClientTypes.IdNamespaceAssociation? + + public init( + idNamespaceAssociation: CleanRoomsClientTypes.IdNamespaceAssociation? = nil + ) + { + self.idNamespaceAssociation = idNamespaceAssociation + } +} + +public struct ListIdNamespaceAssociationsInput: Swift.Sendable { + /// The maximum size of the results that is returned per call. Service chooses a default if it has not been set. Service may return a nextToken even if the maximum results has not been met. + public var maxResults: Swift.Int? + /// The unique identifier of the membership that contains the ID namespace association that you want to view. + /// This member is required. + public var membershipIdentifier: Swift.String? + /// The pagination token that's used to fetch the next set of results. + public var nextToken: Swift.String? + + public init( + maxResults: Swift.Int? = nil, + membershipIdentifier: Swift.String? = nil, + nextToken: Swift.String? = nil + ) + { + self.maxResults = maxResults + self.membershipIdentifier = membershipIdentifier + self.nextToken = nextToken + } +} + +extension CleanRoomsClientTypes { + + /// Detailed information about the ID namespace association. + public struct IdNamespaceAssociationSummary: Swift.Sendable { + /// The Amazon Resource Name (ARN) of this ID namespace association. + /// This member is required. + public var arn: Swift.String? + /// The Amazon Resource Name (ARN) of the collaboration that contains this ID namespace association. + /// This member is required. + public var collaborationArn: Swift.String? + /// The unique identifier of the collaboration that contains this ID namespace association. + /// This member is required. + public var collaborationId: Swift.String? + /// The time at which this ID namespace association was created. + /// This member is required. + public var createTime: Foundation.Date? + /// The description of the ID namespace association. + public var description: Swift.String? + /// The unique identifier of this ID namespace association. + /// This member is required. + public var id: Swift.String? + /// The input reference configuration details for this ID namespace association. + /// This member is required. + public var inputReferenceConfig: CleanRoomsClientTypes.IdNamespaceAssociationInputReferenceConfig? + /// The input reference properties for this ID namespace association. + /// This member is required. + public var inputReferenceProperties: CleanRoomsClientTypes.IdNamespaceAssociationInputReferencePropertiesSummary? + /// The Amazon Resource Name (ARN) of the membership resource for this ID namespace association. + /// This member is required. + public var membershipArn: Swift.String? + /// The unique identifier of the membership resource for this ID namespace association. + /// This member is required. + public var membershipId: Swift.String? + /// The name of the ID namespace association. + /// This member is required. + public var name: Swift.String? + /// The most recent time at which this ID namespace association has been updated. + /// This member is required. + public var updateTime: Foundation.Date? + + public init( + arn: Swift.String? = nil, + collaborationArn: Swift.String? = nil, + collaborationId: Swift.String? = nil, + createTime: Foundation.Date? = nil, + description: Swift.String? = nil, + id: Swift.String? = nil, + inputReferenceConfig: CleanRoomsClientTypes.IdNamespaceAssociationInputReferenceConfig? = nil, + inputReferenceProperties: CleanRoomsClientTypes.IdNamespaceAssociationInputReferencePropertiesSummary? = nil, + membershipArn: Swift.String? = nil, + membershipId: Swift.String? = nil, + name: Swift.String? = nil, + updateTime: Foundation.Date? = nil + ) + { + self.arn = arn + self.collaborationArn = collaborationArn + self.collaborationId = collaborationId + self.createTime = createTime + self.description = description + self.id = id + self.inputReferenceConfig = inputReferenceConfig + self.inputReferenceProperties = inputReferenceProperties + self.membershipArn = membershipArn + self.membershipId = membershipId + self.name = name + self.updateTime = updateTime + } + } +} + +public struct ListIdNamespaceAssociationsOutput: Swift.Sendable { + /// The summary information of the ID namespace associations that you requested. + /// This member is required. + public var idNamespaceAssociationSummaries: [CleanRoomsClientTypes.IdNamespaceAssociationSummary]? + /// The token value provided to access the next page of results. + public var nextToken: Swift.String? + + public init( + idNamespaceAssociationSummaries: [CleanRoomsClientTypes.IdNamespaceAssociationSummary]? = nil, + nextToken: Swift.String? = nil + ) + { + self.idNamespaceAssociationSummaries = idNamespaceAssociationSummaries + self.nextToken = nextToken + } +} + +public struct UpdateIdNamespaceAssociationInput: Swift.Sendable { + /// A new description for the ID namespace association. + public var description: Swift.String? + /// The configuration settings for the ID mapping table. + public var idMappingConfig: CleanRoomsClientTypes.IdMappingConfig? + /// The unique identifier of the ID namespace association that you want to update. + /// This member is required. + public var idNamespaceAssociationIdentifier: Swift.String? + /// The unique identifier of the membership that contains the ID namespace association that you want to update. + /// This member is required. + public var membershipIdentifier: Swift.String? + /// A new name for the ID namespace association. + public var name: Swift.String? + + public init( + description: Swift.String? = nil, + idMappingConfig: CleanRoomsClientTypes.IdMappingConfig? = nil, + idNamespaceAssociationIdentifier: Swift.String? = nil, + membershipIdentifier: Swift.String? = nil, + name: Swift.String? = nil + ) + { + self.description = description + self.idMappingConfig = idMappingConfig + self.idNamespaceAssociationIdentifier = idNamespaceAssociationIdentifier + self.membershipIdentifier = membershipIdentifier + self.name = name + } +} + +public struct UpdateIdNamespaceAssociationOutput: Swift.Sendable { + /// The updated ID namespace association. + /// This member is required. + public var idNamespaceAssociation: CleanRoomsClientTypes.IdNamespaceAssociation? + + public init( + idNamespaceAssociation: CleanRoomsClientTypes.IdNamespaceAssociation? = nil + ) + { + self.idNamespaceAssociation = idNamespaceAssociation + } +} + +public struct ListTagsForResourceInput: Swift.Sendable { + /// The Amazon Resource Name (ARN) associated with the resource you want to list tags on. + /// This member is required. + public var resourceArn: Swift.String? + + public init( + resourceArn: Swift.String? = nil + ) + { + self.resourceArn = resourceArn + } +} + +public struct ListTagsForResourceOutput: Swift.Sendable { + /// A map of objects specifying each key name and value. + /// This member is required. + public var tags: [Swift.String: Swift.String]? + + public init( + tags: [Swift.String: Swift.String]? = nil + ) + { + self.tags = tags + } +} + +extension CleanRoomsClientTypes { + + public enum ResultFormat: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case csv + case parquet + case sdkUnknown(Swift.String) + + public static var allCases: [ResultFormat] { + return [ + .csv, + .parquet + ] + } + + 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 .csv: return "CSV" + case .parquet: return "PARQUET" + case let .sdkUnknown(s): return s + } + } + } +} + +extension CleanRoomsClientTypes { + + /// Contains the configuration to write the query results to S3. + public struct ProtectedQueryS3OutputConfiguration: Swift.Sendable { + /// The S3 bucket to unload the protected query results. + /// This member is required. + public var bucket: Swift.String? + /// The S3 prefix to unload the protected query results. + public var keyPrefix: Swift.String? + /// Intended file format of the result. + /// This member is required. + public var resultFormat: CleanRoomsClientTypes.ResultFormat? + + public init( + bucket: Swift.String? = nil, + keyPrefix: Swift.String? = nil, + resultFormat: CleanRoomsClientTypes.ResultFormat? = nil + ) + { + self.bucket = bucket + self.keyPrefix = keyPrefix + self.resultFormat = resultFormat + } + } +} + +extension CleanRoomsClientTypes { + + /// Contains configurations for protected query results. + public enum MembershipProtectedQueryOutputConfiguration: Swift.Sendable { + /// Contains the configuration to write the query results to S3. + case s3(CleanRoomsClientTypes.ProtectedQueryS3OutputConfiguration) + case sdkUnknown(Swift.String) + } +} + +extension CleanRoomsClientTypes { + + /// Contains configurations for protected query results. + public struct MembershipProtectedQueryResultConfiguration: Swift.Sendable { + /// Configuration for protected query results. + /// This member is required. + public var outputConfiguration: CleanRoomsClientTypes.MembershipProtectedQueryOutputConfiguration? + /// The unique ARN for an IAM role that is used by Clean Rooms to write protected query results to the result location, given by the member who can receive results. + public var roleArn: Swift.String? + + public init( + outputConfiguration: CleanRoomsClientTypes.MembershipProtectedQueryOutputConfiguration? = nil, + roleArn: Swift.String? = nil + ) { self.outputConfiguration = outputConfiguration self.roleArn = roleArn @@ -5333,12 +6894,31 @@ extension CleanRoomsClientTypes { } } +extension CleanRoomsClientTypes { + + /// Contains configuration details for the protected query member output. + public struct ProtectedQueryMemberOutputConfiguration: Swift.Sendable { + /// The unique identifier for the account. + /// This member is required. + public var accountId: Swift.String? + + public init( + accountId: Swift.String? = nil + ) + { + self.accountId = accountId + } + } +} + extension CleanRoomsClientTypes { /// Contains configuration details for protected query output. public enum ProtectedQueryOutputConfiguration: Swift.Sendable { - /// Required configuration for a protected query with an `S3` output type. + /// Required configuration for a protected query with an s3 output type. case s3(CleanRoomsClientTypes.ProtectedQueryS3OutputConfiguration) + /// Required configuration for a protected query with a member output type. + case member(CleanRoomsClientTypes.ProtectedQueryMemberOutputConfiguration) case sdkUnknown(Swift.String) } } @@ -5394,7 +6974,7 @@ extension CleanRoomsClientTypes { /// Contains statistics about the execution of the protected query. public struct ProtectedQueryStatistics: Swift.Sendable { - /// The duration of the Protected Query, from creation until query completion. + /// The duration of the protected query, from creation until query completion. public var totalDurationInMillis: Swift.Int? public init( @@ -5773,6 +7353,53 @@ public struct ListProtectedQueriesInput: Swift.Sendable { } } +extension CleanRoomsClientTypes { + + /// The direct analysis configuration details. + public struct DirectAnalysisConfigurationDetails: Swift.Sendable { + /// The account IDs for the member who received the results of a protected query. + public var receiverAccountIds: [Swift.String]? + + public init( + receiverAccountIds: [Swift.String]? = nil + ) + { + self.receiverAccountIds = receiverAccountIds + } + } +} + +extension CleanRoomsClientTypes { + + /// The configuration details. + public enum ConfigurationDetails: Swift.Sendable { + /// The direct analysis configuration details. + case directanalysisconfigurationdetails(CleanRoomsClientTypes.DirectAnalysisConfigurationDetails) + case sdkUnknown(Swift.String) + } +} + +extension CleanRoomsClientTypes { + + /// The receiver configuration for a protected query. + public struct ReceiverConfiguration: Swift.Sendable { + /// The type of analysis for the protected query. The results of the query can be analyzed directly (DIRECT_ANALYSIS) or used as input into additional analyses (ADDITIONAL_ANALYSIS), such as a query that is a seed for a lookalike ML model. + /// This member is required. + public var analysisType: CleanRoomsClientTypes.AnalysisType? + /// The configuration details of the receiver configuration. + public var configurationDetails: CleanRoomsClientTypes.ConfigurationDetails? + + public init( + analysisType: CleanRoomsClientTypes.AnalysisType? = nil, + configurationDetails: CleanRoomsClientTypes.ConfigurationDetails? = nil + ) + { + self.analysisType = analysisType + self.configurationDetails = configurationDetails + } + } +} + extension CleanRoomsClientTypes { /// The protected query summary for the objects listed by the request. @@ -5789,6 +7416,9 @@ extension CleanRoomsClientTypes { /// The unique ID for the membership that initiated the protected query. /// This member is required. public var membershipId: Swift.String? + /// The receiver configuration. + /// This member is required. + public var receiverConfigurations: [CleanRoomsClientTypes.ReceiverConfiguration]? /// The status of the protected query. Value values are `SUBMITTED`, `STARTED`, `CANCELLED`, `CANCELLING`, `FAILED`, `SUCCESS`, `TIMED_OUT`. /// This member is required. public var status: CleanRoomsClientTypes.ProtectedQueryStatus? @@ -5798,6 +7428,7 @@ extension CleanRoomsClientTypes { id: Swift.String? = nil, membershipArn: Swift.String? = nil, membershipId: Swift.String? = nil, + receiverConfigurations: [CleanRoomsClientTypes.ReceiverConfiguration]? = [], status: CleanRoomsClientTypes.ProtectedQueryStatus? = nil ) { @@ -5805,6 +7436,7 @@ extension CleanRoomsClientTypes { self.id = id self.membershipArn = membershipArn self.membershipId = membershipId + self.receiverConfigurations = receiverConfigurations self.status = status } } @@ -6198,7 +7830,7 @@ extension CleanRoomsClientTypes { /// The identifier for a membership resource. /// This member is required. public var membershipId: Swift.String? - /// Specifies the epislon and noise parameters for the privacy budget template. + /// Specifies the epsilon and noise parameters for the privacy budget template. /// This member is required. public var parameters: CleanRoomsClientTypes.PrivacyBudgetTemplateParametersOutput? /// Specifies the type of the privacy budget template. @@ -6599,6 +8231,39 @@ extension CreateConfiguredTableAssociationInput { } } +extension CreateConfiguredTableAssociationAnalysisRuleInput { + + static func urlPathProvider(_ value: CreateConfiguredTableAssociationAnalysisRuleInput) -> Swift.String? { + guard let membershipIdentifier = value.membershipIdentifier else { + return nil + } + guard let configuredTableAssociationIdentifier = value.configuredTableAssociationIdentifier else { + return nil + } + return "/memberships/\(membershipIdentifier.urlPercentEncoding())/configuredTableAssociations/\(configuredTableAssociationIdentifier.urlPercentEncoding())/analysisRule" + } +} + +extension CreateIdMappingTableInput { + + static func urlPathProvider(_ value: CreateIdMappingTableInput) -> Swift.String? { + guard let membershipIdentifier = value.membershipIdentifier else { + return nil + } + return "/memberships/\(membershipIdentifier.urlPercentEncoding())/idmappingtables" + } +} + +extension CreateIdNamespaceAssociationInput { + + static func urlPathProvider(_ value: CreateIdNamespaceAssociationInput) -> Swift.String? { + guard let membershipIdentifier = value.membershipIdentifier else { + return nil + } + return "/memberships/\(membershipIdentifier.urlPercentEncoding())/idnamespaceassociations" + } +} + extension CreateMembershipInput { static func urlPathProvider(_ value: CreateMembershipInput) -> Swift.String? { @@ -6688,6 +8353,48 @@ extension DeleteConfiguredTableAssociationInput { } } +extension DeleteConfiguredTableAssociationAnalysisRuleInput { + + static func urlPathProvider(_ value: DeleteConfiguredTableAssociationAnalysisRuleInput) -> Swift.String? { + guard let membershipIdentifier = value.membershipIdentifier else { + return nil + } + guard let configuredTableAssociationIdentifier = value.configuredTableAssociationIdentifier else { + return nil + } + guard let analysisRuleType = value.analysisRuleType else { + return nil + } + return "/memberships/\(membershipIdentifier.urlPercentEncoding())/configuredTableAssociations/\(configuredTableAssociationIdentifier.urlPercentEncoding())/analysisRule/\(analysisRuleType.rawValue.urlPercentEncoding())" + } +} + +extension DeleteIdMappingTableInput { + + static func urlPathProvider(_ value: DeleteIdMappingTableInput) -> Swift.String? { + guard let membershipIdentifier = value.membershipIdentifier else { + return nil + } + guard let idMappingTableIdentifier = value.idMappingTableIdentifier else { + return nil + } + return "/memberships/\(membershipIdentifier.urlPercentEncoding())/idmappingtables/\(idMappingTableIdentifier.urlPercentEncoding())" + } +} + +extension DeleteIdNamespaceAssociationInput { + + static func urlPathProvider(_ value: DeleteIdNamespaceAssociationInput) -> Swift.String? { + guard let membershipIdentifier = value.membershipIdentifier else { + return nil + } + guard let idNamespaceAssociationIdentifier = value.idNamespaceAssociationIdentifier else { + return nil + } + return "/memberships/\(membershipIdentifier.urlPercentEncoding())/idnamespaceassociations/\(idNamespaceAssociationIdentifier.urlPercentEncoding())" + } +} + extension DeleteMemberInput { static func urlPathProvider(_ value: DeleteMemberInput) -> Swift.String? { @@ -6760,16 +8467,29 @@ extension GetCollaborationAnalysisTemplateInput { } } -extension GetCollaborationConfiguredAudienceModelAssociationInput { +extension GetCollaborationConfiguredAudienceModelAssociationInput { + + static func urlPathProvider(_ value: GetCollaborationConfiguredAudienceModelAssociationInput) -> Swift.String? { + guard let collaborationIdentifier = value.collaborationIdentifier else { + return nil + } + guard let configuredAudienceModelAssociationIdentifier = value.configuredAudienceModelAssociationIdentifier else { + return nil + } + return "/collaborations/\(collaborationIdentifier.urlPercentEncoding())/configuredaudiencemodelassociations/\(configuredAudienceModelAssociationIdentifier.urlPercentEncoding())" + } +} + +extension GetCollaborationIdNamespaceAssociationInput { - static func urlPathProvider(_ value: GetCollaborationConfiguredAudienceModelAssociationInput) -> Swift.String? { + static func urlPathProvider(_ value: GetCollaborationIdNamespaceAssociationInput) -> Swift.String? { guard let collaborationIdentifier = value.collaborationIdentifier else { return nil } - guard let configuredAudienceModelAssociationIdentifier = value.configuredAudienceModelAssociationIdentifier else { + guard let idNamespaceAssociationIdentifier = value.idNamespaceAssociationIdentifier else { return nil } - return "/collaborations/\(collaborationIdentifier.urlPercentEncoding())/configuredaudiencemodelassociations/\(configuredAudienceModelAssociationIdentifier.urlPercentEncoding())" + return "/collaborations/\(collaborationIdentifier.urlPercentEncoding())/idnamespaceassociations/\(idNamespaceAssociationIdentifier.urlPercentEncoding())" } } @@ -6835,6 +8555,48 @@ extension GetConfiguredTableAssociationInput { } } +extension GetConfiguredTableAssociationAnalysisRuleInput { + + static func urlPathProvider(_ value: GetConfiguredTableAssociationAnalysisRuleInput) -> Swift.String? { + guard let membershipIdentifier = value.membershipIdentifier else { + return nil + } + guard let configuredTableAssociationIdentifier = value.configuredTableAssociationIdentifier else { + return nil + } + guard let analysisRuleType = value.analysisRuleType else { + return nil + } + return "/memberships/\(membershipIdentifier.urlPercentEncoding())/configuredTableAssociations/\(configuredTableAssociationIdentifier.urlPercentEncoding())/analysisRule/\(analysisRuleType.rawValue.urlPercentEncoding())" + } +} + +extension GetIdMappingTableInput { + + static func urlPathProvider(_ value: GetIdMappingTableInput) -> Swift.String? { + guard let membershipIdentifier = value.membershipIdentifier else { + return nil + } + guard let idMappingTableIdentifier = value.idMappingTableIdentifier else { + return nil + } + return "/memberships/\(membershipIdentifier.urlPercentEncoding())/idmappingtables/\(idMappingTableIdentifier.urlPercentEncoding())" + } +} + +extension GetIdNamespaceAssociationInput { + + static func urlPathProvider(_ value: GetIdNamespaceAssociationInput) -> Swift.String? { + guard let membershipIdentifier = value.membershipIdentifier else { + return nil + } + guard let idNamespaceAssociationIdentifier = value.idNamespaceAssociationIdentifier else { + return nil + } + return "/memberships/\(membershipIdentifier.urlPercentEncoding())/idnamespaceassociations/\(idNamespaceAssociationIdentifier.urlPercentEncoding())" + } +} + extension GetMembershipInput { static func urlPathProvider(_ value: GetMembershipInput) -> Swift.String? { @@ -6978,6 +8740,32 @@ extension ListCollaborationConfiguredAudienceModelAssociationsInput { } } +extension ListCollaborationIdNamespaceAssociationsInput { + + static func urlPathProvider(_ value: ListCollaborationIdNamespaceAssociationsInput) -> Swift.String? { + guard let collaborationIdentifier = value.collaborationIdentifier else { + return nil + } + return "/collaborations/\(collaborationIdentifier.urlPercentEncoding())/idnamespaceassociations" + } +} + +extension ListCollaborationIdNamespaceAssociationsInput { + + static func queryItemProvider(_ value: ListCollaborationIdNamespaceAssociationsInput) throws -> [Smithy.URIQueryItem] { + var items = [Smithy.URIQueryItem]() + if let nextToken = value.nextToken { + let nextTokenQueryItem = Smithy.URIQueryItem(name: "nextToken".urlPercentEncoding(), value: Swift.String(nextToken).urlPercentEncoding()) + items.append(nextTokenQueryItem) + } + if let maxResults = value.maxResults { + let maxResultsQueryItem = Smithy.URIQueryItem(name: "maxResults".urlPercentEncoding(), value: Swift.String(maxResults).urlPercentEncoding()) + items.append(maxResultsQueryItem) + } + return items + } +} + extension ListCollaborationPrivacyBudgetsInput { static func urlPathProvider(_ value: ListCollaborationPrivacyBudgetsInput) -> Swift.String? { @@ -7138,6 +8926,58 @@ extension ListConfiguredTablesInput { } } +extension ListIdMappingTablesInput { + + static func urlPathProvider(_ value: ListIdMappingTablesInput) -> Swift.String? { + guard let membershipIdentifier = value.membershipIdentifier else { + return nil + } + return "/memberships/\(membershipIdentifier.urlPercentEncoding())/idmappingtables" + } +} + +extension ListIdMappingTablesInput { + + static func queryItemProvider(_ value: ListIdMappingTablesInput) throws -> [Smithy.URIQueryItem] { + var items = [Smithy.URIQueryItem]() + if let nextToken = value.nextToken { + let nextTokenQueryItem = Smithy.URIQueryItem(name: "nextToken".urlPercentEncoding(), value: Swift.String(nextToken).urlPercentEncoding()) + items.append(nextTokenQueryItem) + } + if let maxResults = value.maxResults { + let maxResultsQueryItem = Smithy.URIQueryItem(name: "maxResults".urlPercentEncoding(), value: Swift.String(maxResults).urlPercentEncoding()) + items.append(maxResultsQueryItem) + } + return items + } +} + +extension ListIdNamespaceAssociationsInput { + + static func urlPathProvider(_ value: ListIdNamespaceAssociationsInput) -> Swift.String? { + guard let membershipIdentifier = value.membershipIdentifier else { + return nil + } + return "/memberships/\(membershipIdentifier.urlPercentEncoding())/idnamespaceassociations" + } +} + +extension ListIdNamespaceAssociationsInput { + + static func queryItemProvider(_ value: ListIdNamespaceAssociationsInput) throws -> [Smithy.URIQueryItem] { + var items = [Smithy.URIQueryItem]() + if let nextToken = value.nextToken { + let nextTokenQueryItem = Smithy.URIQueryItem(name: "nextToken".urlPercentEncoding(), value: Swift.String(nextToken).urlPercentEncoding()) + items.append(nextTokenQueryItem) + } + if let maxResults = value.maxResults { + let maxResultsQueryItem = Smithy.URIQueryItem(name: "maxResults".urlPercentEncoding(), value: Swift.String(maxResults).urlPercentEncoding()) + items.append(maxResultsQueryItem) + } + return items + } +} + extension ListMembersInput { static func urlPathProvider(_ value: ListMembersInput) -> Swift.String? { @@ -7319,6 +9159,19 @@ extension ListTagsForResourceInput { } } +extension PopulateIdMappingTableInput { + + static func urlPathProvider(_ value: PopulateIdMappingTableInput) -> Swift.String? { + guard let membershipIdentifier = value.membershipIdentifier else { + return nil + } + guard let idMappingTableIdentifier = value.idMappingTableIdentifier else { + return nil + } + return "/memberships/\(membershipIdentifier.urlPercentEncoding())/idmappingtables/\(idMappingTableIdentifier.urlPercentEncoding())/populate" + } +} + extension PreviewPrivacyImpactInput { static func urlPathProvider(_ value: PreviewPrivacyImpactInput) -> Swift.String? { @@ -7447,6 +9300,48 @@ extension UpdateConfiguredTableAssociationInput { } } +extension UpdateConfiguredTableAssociationAnalysisRuleInput { + + static func urlPathProvider(_ value: UpdateConfiguredTableAssociationAnalysisRuleInput) -> Swift.String? { + guard let membershipIdentifier = value.membershipIdentifier else { + return nil + } + guard let configuredTableAssociationIdentifier = value.configuredTableAssociationIdentifier else { + return nil + } + guard let analysisRuleType = value.analysisRuleType else { + return nil + } + return "/memberships/\(membershipIdentifier.urlPercentEncoding())/configuredTableAssociations/\(configuredTableAssociationIdentifier.urlPercentEncoding())/analysisRule/\(analysisRuleType.rawValue.urlPercentEncoding())" + } +} + +extension UpdateIdMappingTableInput { + + static func urlPathProvider(_ value: UpdateIdMappingTableInput) -> Swift.String? { + guard let membershipIdentifier = value.membershipIdentifier else { + return nil + } + guard let idMappingTableIdentifier = value.idMappingTableIdentifier else { + return nil + } + return "/memberships/\(membershipIdentifier.urlPercentEncoding())/idmappingtables/\(idMappingTableIdentifier.urlPercentEncoding())" + } +} + +extension UpdateIdNamespaceAssociationInput { + + static func urlPathProvider(_ value: UpdateIdNamespaceAssociationInput) -> Swift.String? { + guard let membershipIdentifier = value.membershipIdentifier else { + return nil + } + guard let idNamespaceAssociationIdentifier = value.idNamespaceAssociationIdentifier else { + return nil + } + return "/memberships/\(membershipIdentifier.urlPercentEncoding())/idnamespaceassociations/\(idNamespaceAssociationIdentifier.urlPercentEncoding())" + } +} + extension UpdateMembershipInput { static func urlPathProvider(_ value: UpdateMembershipInput) -> Swift.String? { @@ -7582,6 +9477,39 @@ extension CreateConfiguredTableAssociationInput { } } +extension CreateConfiguredTableAssociationAnalysisRuleInput { + + static func write(value: CreateConfiguredTableAssociationAnalysisRuleInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["analysisRulePolicy"].write(value.analysisRulePolicy, with: CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRulePolicy.write(value:to:)) + try writer["analysisRuleType"].write(value.analysisRuleType) + } +} + +extension CreateIdMappingTableInput { + + static func write(value: CreateIdMappingTableInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["description"].write(value.description) + try writer["inputReferenceConfig"].write(value.inputReferenceConfig, with: CleanRoomsClientTypes.IdMappingTableInputReferenceConfig.write(value:to:)) + try writer["kmsKeyArn"].write(value.kmsKeyArn) + try writer["name"].write(value.name) + try writer["tags"].writeMap(value.tags, valueWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + } +} + +extension CreateIdNamespaceAssociationInput { + + static func write(value: CreateIdNamespaceAssociationInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["description"].write(value.description) + try writer["idMappingConfig"].write(value.idMappingConfig, with: CleanRoomsClientTypes.IdMappingConfig.write(value:to:)) + try writer["inputReferenceConfig"].write(value.inputReferenceConfig, with: CleanRoomsClientTypes.IdNamespaceAssociationInputReferenceConfig.write(value:to:)) + try writer["name"].write(value.name) + try writer["tags"].writeMap(value.tags, valueWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + } +} + extension CreateMembershipInput { static func write(value: CreateMembershipInput?, to writer: SmithyJSON.Writer) throws { @@ -7683,6 +9611,33 @@ extension UpdateConfiguredTableAssociationInput { } } +extension UpdateConfiguredTableAssociationAnalysisRuleInput { + + static func write(value: UpdateConfiguredTableAssociationAnalysisRuleInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["analysisRulePolicy"].write(value.analysisRulePolicy, with: CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRulePolicy.write(value:to:)) + } +} + +extension UpdateIdMappingTableInput { + + static func write(value: UpdateIdMappingTableInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["description"].write(value.description) + try writer["kmsKeyArn"].write(value.kmsKeyArn) + } +} + +extension UpdateIdNamespaceAssociationInput { + + static func write(value: UpdateIdNamespaceAssociationInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["description"].write(value.description) + try writer["idMappingConfig"].write(value.idMappingConfig, with: CleanRoomsClientTypes.IdMappingConfig.write(value:to:)) + try writer["name"].write(value.name) + } +} + extension UpdateMembershipInput { static func write(value: UpdateMembershipInput?, to writer: SmithyJSON.Writer) throws { @@ -7820,6 +9775,42 @@ extension CreateConfiguredTableAssociationOutput { } } +extension CreateConfiguredTableAssociationAnalysisRuleOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> CreateConfiguredTableAssociationAnalysisRuleOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = CreateConfiguredTableAssociationAnalysisRuleOutput() + value.analysisRule = try reader["analysisRule"].readIfPresent(with: CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRule.read(from:)) + return value + } +} + +extension CreateIdMappingTableOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> CreateIdMappingTableOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = CreateIdMappingTableOutput() + value.idMappingTable = try reader["idMappingTable"].readIfPresent(with: CleanRoomsClientTypes.IdMappingTable.read(from:)) + return value + } +} + +extension CreateIdNamespaceAssociationOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> CreateIdNamespaceAssociationOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = CreateIdNamespaceAssociationOutput() + value.idNamespaceAssociation = try reader["idNamespaceAssociation"].readIfPresent(with: CleanRoomsClientTypes.IdNamespaceAssociation.read(from:)) + return value + } +} + extension CreateMembershipOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> CreateMembershipOutput { @@ -7886,6 +9877,27 @@ extension DeleteConfiguredTableAssociationOutput { } } +extension DeleteConfiguredTableAssociationAnalysisRuleOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteConfiguredTableAssociationAnalysisRuleOutput { + return DeleteConfiguredTableAssociationAnalysisRuleOutput() + } +} + +extension DeleteIdMappingTableOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteIdMappingTableOutput { + return DeleteIdMappingTableOutput() + } +} + +extension DeleteIdNamespaceAssociationOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteIdNamespaceAssociationOutput { + return DeleteIdNamespaceAssociationOutput() + } +} + extension DeleteMemberOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteMemberOutput { @@ -7955,6 +9967,18 @@ extension GetCollaborationConfiguredAudienceModelAssociationOutput { } } +extension GetCollaborationIdNamespaceAssociationOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetCollaborationIdNamespaceAssociationOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = GetCollaborationIdNamespaceAssociationOutput() + value.collaborationIdNamespaceAssociation = try reader["collaborationIdNamespaceAssociation"].readIfPresent(with: CleanRoomsClientTypes.CollaborationIdNamespaceAssociation.read(from:)) + return value + } +} + extension GetCollaborationPrivacyBudgetTemplateOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetCollaborationPrivacyBudgetTemplateOutput { @@ -7979,38 +10003,74 @@ extension GetConfiguredAudienceModelAssociationOutput { } } -extension GetConfiguredTableOutput { +extension GetConfiguredTableOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetConfiguredTableOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = GetConfiguredTableOutput() + value.configuredTable = try reader["configuredTable"].readIfPresent(with: CleanRoomsClientTypes.ConfiguredTable.read(from:)) + return value + } +} + +extension GetConfiguredTableAnalysisRuleOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetConfiguredTableAnalysisRuleOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = GetConfiguredTableAnalysisRuleOutput() + value.analysisRule = try reader["analysisRule"].readIfPresent(with: CleanRoomsClientTypes.ConfiguredTableAnalysisRule.read(from:)) + return value + } +} + +extension GetConfiguredTableAssociationOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetConfiguredTableAssociationOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = GetConfiguredTableAssociationOutput() + value.configuredTableAssociation = try reader["configuredTableAssociation"].readIfPresent(with: CleanRoomsClientTypes.ConfiguredTableAssociation.read(from:)) + return value + } +} + +extension GetConfiguredTableAssociationAnalysisRuleOutput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetConfiguredTableOutput { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetConfiguredTableAssociationAnalysisRuleOutput { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) let reader = responseReader - var value = GetConfiguredTableOutput() - value.configuredTable = try reader["configuredTable"].readIfPresent(with: CleanRoomsClientTypes.ConfiguredTable.read(from:)) + var value = GetConfiguredTableAssociationAnalysisRuleOutput() + value.analysisRule = try reader["analysisRule"].readIfPresent(with: CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRule.read(from:)) return value } } -extension GetConfiguredTableAnalysisRuleOutput { +extension GetIdMappingTableOutput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetConfiguredTableAnalysisRuleOutput { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetIdMappingTableOutput { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) let reader = responseReader - var value = GetConfiguredTableAnalysisRuleOutput() - value.analysisRule = try reader["analysisRule"].readIfPresent(with: CleanRoomsClientTypes.ConfiguredTableAnalysisRule.read(from:)) + var value = GetIdMappingTableOutput() + value.idMappingTable = try reader["idMappingTable"].readIfPresent(with: CleanRoomsClientTypes.IdMappingTable.read(from:)) return value } } -extension GetConfiguredTableAssociationOutput { +extension GetIdNamespaceAssociationOutput { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetConfiguredTableAssociationOutput { + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetIdNamespaceAssociationOutput { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) let reader = responseReader - var value = GetConfiguredTableAssociationOutput() - value.configuredTableAssociation = try reader["configuredTableAssociation"].readIfPresent(with: CleanRoomsClientTypes.ConfiguredTableAssociation.read(from:)) + var value = GetIdNamespaceAssociationOutput() + value.idNamespaceAssociation = try reader["idNamespaceAssociation"].readIfPresent(with: CleanRoomsClientTypes.IdNamespaceAssociation.read(from:)) return value } } @@ -8114,6 +10174,19 @@ extension ListCollaborationConfiguredAudienceModelAssociationsOutput { } } +extension ListCollaborationIdNamespaceAssociationsOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListCollaborationIdNamespaceAssociationsOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = ListCollaborationIdNamespaceAssociationsOutput() + value.collaborationIdNamespaceAssociationSummaries = try reader["collaborationIdNamespaceAssociationSummaries"].readListIfPresent(memberReadingClosure: CleanRoomsClientTypes.CollaborationIdNamespaceAssociationSummary.read(from:), memberNodeInfo: "member", isFlattened: false) ?? [] + value.nextToken = try reader["nextToken"].readIfPresent() + return value + } +} + extension ListCollaborationPrivacyBudgetsOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListCollaborationPrivacyBudgetsOutput { @@ -8192,6 +10265,32 @@ extension ListConfiguredTablesOutput { } } +extension ListIdMappingTablesOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListIdMappingTablesOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = ListIdMappingTablesOutput() + value.idMappingTableSummaries = try reader["idMappingTableSummaries"].readListIfPresent(memberReadingClosure: CleanRoomsClientTypes.IdMappingTableSummary.read(from:), memberNodeInfo: "member", isFlattened: false) ?? [] + value.nextToken = try reader["nextToken"].readIfPresent() + return value + } +} + +extension ListIdNamespaceAssociationsOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListIdNamespaceAssociationsOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = ListIdNamespaceAssociationsOutput() + value.idNamespaceAssociationSummaries = try reader["idNamespaceAssociationSummaries"].readListIfPresent(memberReadingClosure: CleanRoomsClientTypes.IdNamespaceAssociationSummary.read(from:), memberNodeInfo: "member", isFlattened: false) ?? [] + value.nextToken = try reader["nextToken"].readIfPresent() + return value + } +} + extension ListMembersOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListMembersOutput { @@ -8282,6 +10381,18 @@ extension ListTagsForResourceOutput { } } +extension PopulateIdMappingTableOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> PopulateIdMappingTableOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = PopulateIdMappingTableOutput() + value.idMappingJobId = try reader["idMappingJobId"].readIfPresent() ?? "" + return value + } +} + extension PreviewPrivacyImpactOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> PreviewPrivacyImpactOutput { @@ -8392,6 +10503,42 @@ extension UpdateConfiguredTableAssociationOutput { } } +extension UpdateConfiguredTableAssociationAnalysisRuleOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> UpdateConfiguredTableAssociationAnalysisRuleOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = UpdateConfiguredTableAssociationAnalysisRuleOutput() + value.analysisRule = try reader["analysisRule"].readIfPresent(with: CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRule.read(from:)) + return value + } +} + +extension UpdateIdMappingTableOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> UpdateIdMappingTableOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = UpdateIdMappingTableOutput() + value.idMappingTable = try reader["idMappingTable"].readIfPresent(with: CleanRoomsClientTypes.IdMappingTable.read(from:)) + return value + } +} + +extension UpdateIdNamespaceAssociationOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> UpdateIdNamespaceAssociationOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = UpdateIdNamespaceAssociationOutput() + value.idNamespaceAssociation = try reader["idNamespaceAssociation"].readIfPresent(with: CleanRoomsClientTypes.IdNamespaceAssociation.read(from:)) + return value + } +} + extension UpdateMembershipOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> UpdateMembershipOutput { @@ -8416,19 +10563,209 @@ extension UpdatePrivacyBudgetTemplateOutput { } } -extension UpdateProtectedQueryOutput { +extension UpdateProtectedQueryOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> UpdateProtectedQueryOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = UpdateProtectedQueryOutput() + value.protectedQuery = try reader["protectedQuery"].readIfPresent(with: CleanRoomsClientTypes.ProtectedQuery.read(from:)) + return value + } +} + +enum BatchGetCollaborationAnalysisTemplateOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum BatchGetSchemaOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum BatchGetSchemaAnalysisRuleOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum CreateAnalysisTemplateOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "ConflictException": return try ConflictException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceQuotaExceededException": return try ServiceQuotaExceededException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum CreateCollaborationOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ServiceQuotaExceededException": return try ServiceQuotaExceededException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum CreateConfiguredAudienceModelAssociationOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "ConflictException": return try ConflictException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceQuotaExceededException": return try ServiceQuotaExceededException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum CreateConfiguredTableOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "ConflictException": return try ConflictException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceQuotaExceededException": return try ServiceQuotaExceededException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum CreateConfiguredTableAnalysisRuleOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "ConflictException": return try ConflictException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum CreateConfiguredTableAssociationOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "ConflictException": return try ConflictException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceQuotaExceededException": return try ServiceQuotaExceededException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum CreateConfiguredTableAssociationAnalysisRuleOutputError { - static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> UpdateProtectedQueryOutput { + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { let data = try await httpResponse.data() let responseReader = try SmithyJSON.Reader.from(data: data) - let reader = responseReader - var value = UpdateProtectedQueryOutput() - value.protectedQuery = try reader["protectedQuery"].readIfPresent(with: CleanRoomsClientTypes.ProtectedQuery.read(from:)) - return value + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "ConflictException": return try ConflictException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } } } -enum BatchGetCollaborationAnalysisTemplateOutputError { +enum CreateIdMappingTableOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { let data = try await httpResponse.data() @@ -8437,8 +10774,10 @@ enum BatchGetCollaborationAnalysisTemplateOutputError { if let error = baseError.customError() { return error } switch baseError.code { case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "ConflictException": return try ConflictException.makeError(baseError: baseError) case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceQuotaExceededException": return try ServiceQuotaExceededException.makeError(baseError: baseError) case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) case "ValidationException": return try ValidationException.makeError(baseError: baseError) default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) @@ -8446,7 +10785,7 @@ enum BatchGetCollaborationAnalysisTemplateOutputError { } } -enum BatchGetSchemaOutputError { +enum CreateIdNamespaceAssociationOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { let data = try await httpResponse.data() @@ -8455,8 +10794,10 @@ enum BatchGetSchemaOutputError { if let error = baseError.customError() { return error } switch baseError.code { case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "ConflictException": return try ConflictException.makeError(baseError: baseError) case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceQuotaExceededException": return try ServiceQuotaExceededException.makeError(baseError: baseError) case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) case "ValidationException": return try ValidationException.makeError(baseError: baseError) default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) @@ -8464,7 +10805,7 @@ enum BatchGetSchemaOutputError { } } -enum BatchGetSchemaAnalysisRuleOutputError { +enum CreateMembershipOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { let data = try await httpResponse.data() @@ -8473,8 +10814,10 @@ enum BatchGetSchemaAnalysisRuleOutputError { if let error = baseError.customError() { return error } switch baseError.code { case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "ConflictException": return try ConflictException.makeError(baseError: baseError) case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ServiceQuotaExceededException": return try ServiceQuotaExceededException.makeError(baseError: baseError) case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) case "ValidationException": return try ValidationException.makeError(baseError: baseError) default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) @@ -8482,7 +10825,7 @@ enum BatchGetSchemaAnalysisRuleOutputError { } } -enum CreateAnalysisTemplateOutputError { +enum CreatePrivacyBudgetTemplateOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { let data = try await httpResponse.data() @@ -8494,7 +10837,6 @@ enum CreateAnalysisTemplateOutputError { case "ConflictException": return try ConflictException.makeError(baseError: baseError) case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceQuotaExceededException": return try ServiceQuotaExceededException.makeError(baseError: baseError) case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) case "ValidationException": return try ValidationException.makeError(baseError: baseError) default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) @@ -8502,7 +10844,7 @@ enum CreateAnalysisTemplateOutputError { } } -enum CreateCollaborationOutputError { +enum DeleteAnalysisTemplateOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { let data = try await httpResponse.data() @@ -8512,7 +10854,7 @@ enum CreateCollaborationOutputError { switch baseError.code { case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) - case "ServiceQuotaExceededException": return try ServiceQuotaExceededException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) case "ValidationException": return try ValidationException.makeError(baseError: baseError) default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) @@ -8520,7 +10862,7 @@ enum CreateCollaborationOutputError { } } -enum CreateConfiguredAudienceModelAssociationOutputError { +enum DeleteCollaborationOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { let data = try await httpResponse.data() @@ -8529,10 +10871,7 @@ enum CreateConfiguredAudienceModelAssociationOutputError { if let error = baseError.customError() { return error } switch baseError.code { case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) - case "ConflictException": return try ConflictException.makeError(baseError: baseError) case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceQuotaExceededException": return try ServiceQuotaExceededException.makeError(baseError: baseError) case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) case "ValidationException": return try ValidationException.makeError(baseError: baseError) default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) @@ -8540,7 +10879,7 @@ enum CreateConfiguredAudienceModelAssociationOutputError { } } -enum CreateConfiguredTableOutputError { +enum DeleteConfiguredAudienceModelAssociationOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { let data = try await httpResponse.data() @@ -8549,10 +10888,8 @@ enum CreateConfiguredTableOutputError { if let error = baseError.customError() { return error } switch baseError.code { case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) - case "ConflictException": return try ConflictException.makeError(baseError: baseError) case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceQuotaExceededException": return try ServiceQuotaExceededException.makeError(baseError: baseError) case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) case "ValidationException": return try ValidationException.makeError(baseError: baseError) default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) @@ -8560,7 +10897,7 @@ enum CreateConfiguredTableOutputError { } } -enum CreateConfiguredTableAnalysisRuleOutputError { +enum DeleteConfiguredTableOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { let data = try await httpResponse.data() @@ -8579,7 +10916,7 @@ enum CreateConfiguredTableAnalysisRuleOutputError { } } -enum CreateConfiguredTableAssociationOutputError { +enum DeleteConfiguredTableAnalysisRuleOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { let data = try await httpResponse.data() @@ -8591,7 +10928,6 @@ enum CreateConfiguredTableAssociationOutputError { case "ConflictException": return try ConflictException.makeError(baseError: baseError) case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceQuotaExceededException": return try ServiceQuotaExceededException.makeError(baseError: baseError) case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) case "ValidationException": return try ValidationException.makeError(baseError: baseError) default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) @@ -8599,7 +10935,7 @@ enum CreateConfiguredTableAssociationOutputError { } } -enum CreateMembershipOutputError { +enum DeleteConfiguredTableAssociationOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { let data = try await httpResponse.data() @@ -8611,7 +10947,6 @@ enum CreateMembershipOutputError { case "ConflictException": return try ConflictException.makeError(baseError: baseError) case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) - case "ServiceQuotaExceededException": return try ServiceQuotaExceededException.makeError(baseError: baseError) case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) case "ValidationException": return try ValidationException.makeError(baseError: baseError) default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) @@ -8619,7 +10954,7 @@ enum CreateMembershipOutputError { } } -enum CreatePrivacyBudgetTemplateOutputError { +enum DeleteConfiguredTableAssociationAnalysisRuleOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { let data = try await httpResponse.data() @@ -8638,7 +10973,7 @@ enum CreatePrivacyBudgetTemplateOutputError { } } -enum DeleteAnalysisTemplateOutputError { +enum DeleteIdMappingTableOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { let data = try await httpResponse.data() @@ -8656,7 +10991,7 @@ enum DeleteAnalysisTemplateOutputError { } } -enum DeleteCollaborationOutputError { +enum DeleteIdNamespaceAssociationOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { let data = try await httpResponse.data() @@ -8666,6 +11001,7 @@ enum DeleteCollaborationOutputError { switch baseError.code { case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) case "ValidationException": return try ValidationException.makeError(baseError: baseError) default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) @@ -8673,7 +11009,7 @@ enum DeleteCollaborationOutputError { } } -enum DeleteConfiguredAudienceModelAssociationOutputError { +enum DeleteMemberOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { let data = try await httpResponse.data() @@ -8682,6 +11018,7 @@ enum DeleteConfiguredAudienceModelAssociationOutputError { if let error = baseError.customError() { return error } switch baseError.code { case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "ConflictException": return try ConflictException.makeError(baseError: baseError) case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) @@ -8691,7 +11028,7 @@ enum DeleteConfiguredAudienceModelAssociationOutputError { } } -enum DeleteConfiguredTableOutputError { +enum DeleteMembershipOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { let data = try await httpResponse.data() @@ -8710,7 +11047,7 @@ enum DeleteConfiguredTableOutputError { } } -enum DeleteConfiguredTableAnalysisRuleOutputError { +enum DeletePrivacyBudgetTemplateOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { let data = try await httpResponse.data() @@ -8719,7 +11056,6 @@ enum DeleteConfiguredTableAnalysisRuleOutputError { if let error = baseError.customError() { return error } switch baseError.code { case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) - case "ConflictException": return try ConflictException.makeError(baseError: baseError) case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) @@ -8729,7 +11065,7 @@ enum DeleteConfiguredTableAnalysisRuleOutputError { } } -enum DeleteConfiguredTableAssociationOutputError { +enum GetAnalysisTemplateOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { let data = try await httpResponse.data() @@ -8738,7 +11074,6 @@ enum DeleteConfiguredTableAssociationOutputError { if let error = baseError.customError() { return error } switch baseError.code { case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) - case "ConflictException": return try ConflictException.makeError(baseError: baseError) case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) @@ -8748,7 +11083,7 @@ enum DeleteConfiguredTableAssociationOutputError { } } -enum DeleteMemberOutputError { +enum GetCollaborationOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { let data = try await httpResponse.data() @@ -8757,9 +11092,7 @@ enum DeleteMemberOutputError { if let error = baseError.customError() { return error } switch baseError.code { case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) - case "ConflictException": return try ConflictException.makeError(baseError: baseError) case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) - case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) case "ValidationException": return try ValidationException.makeError(baseError: baseError) default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) @@ -8767,7 +11100,7 @@ enum DeleteMemberOutputError { } } -enum DeleteMembershipOutputError { +enum GetCollaborationAnalysisTemplateOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { let data = try await httpResponse.data() @@ -8776,7 +11109,6 @@ enum DeleteMembershipOutputError { if let error = baseError.customError() { return error } switch baseError.code { case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) - case "ConflictException": return try ConflictException.makeError(baseError: baseError) case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) @@ -8786,7 +11118,7 @@ enum DeleteMembershipOutputError { } } -enum DeletePrivacyBudgetTemplateOutputError { +enum GetCollaborationConfiguredAudienceModelAssociationOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { let data = try await httpResponse.data() @@ -8804,7 +11136,7 @@ enum DeletePrivacyBudgetTemplateOutputError { } } -enum GetAnalysisTemplateOutputError { +enum GetCollaborationIdNamespaceAssociationOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { let data = try await httpResponse.data() @@ -8822,7 +11154,7 @@ enum GetAnalysisTemplateOutputError { } } -enum GetCollaborationOutputError { +enum GetCollaborationPrivacyBudgetTemplateOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { let data = try await httpResponse.data() @@ -8832,6 +11164,7 @@ enum GetCollaborationOutputError { switch baseError.code { case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) case "ValidationException": return try ValidationException.makeError(baseError: baseError) default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) @@ -8839,7 +11172,7 @@ enum GetCollaborationOutputError { } } -enum GetCollaborationAnalysisTemplateOutputError { +enum GetConfiguredAudienceModelAssociationOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { let data = try await httpResponse.data() @@ -8857,7 +11190,7 @@ enum GetCollaborationAnalysisTemplateOutputError { } } -enum GetCollaborationConfiguredAudienceModelAssociationOutputError { +enum GetConfiguredTableOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { let data = try await httpResponse.data() @@ -8875,7 +11208,7 @@ enum GetCollaborationConfiguredAudienceModelAssociationOutputError { } } -enum GetCollaborationPrivacyBudgetTemplateOutputError { +enum GetConfiguredTableAnalysisRuleOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { let data = try await httpResponse.data() @@ -8893,7 +11226,7 @@ enum GetCollaborationPrivacyBudgetTemplateOutputError { } } -enum GetConfiguredAudienceModelAssociationOutputError { +enum GetConfiguredTableAssociationOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { let data = try await httpResponse.data() @@ -8911,7 +11244,7 @@ enum GetConfiguredAudienceModelAssociationOutputError { } } -enum GetConfiguredTableOutputError { +enum GetConfiguredTableAssociationAnalysisRuleOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { let data = try await httpResponse.data() @@ -8929,7 +11262,7 @@ enum GetConfiguredTableOutputError { } } -enum GetConfiguredTableAnalysisRuleOutputError { +enum GetIdMappingTableOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { let data = try await httpResponse.data() @@ -8947,7 +11280,7 @@ enum GetConfiguredTableAnalysisRuleOutputError { } } -enum GetConfiguredTableAssociationOutputError { +enum GetIdNamespaceAssociationOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { let data = try await httpResponse.data() @@ -9109,6 +11442,24 @@ enum ListCollaborationConfiguredAudienceModelAssociationsOutputError { } } +enum ListCollaborationIdNamespaceAssociationsOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum ListCollaborationPrivacyBudgetsOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -9215,6 +11566,42 @@ enum ListConfiguredTablesOutputError { } } +enum ListIdMappingTablesOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum ListIdNamespaceAssociationsOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum ListMembersOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -9337,6 +11724,25 @@ enum ListTagsForResourceOutputError { } } +enum PopulateIdMappingTableOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "ConflictException": return try ConflictException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum PreviewPrivacyImpactOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -9514,6 +11920,61 @@ enum UpdateConfiguredTableAssociationOutputError { } } +enum UpdateConfiguredTableAssociationAnalysisRuleOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "ConflictException": return try ConflictException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum UpdateIdMappingTableOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum UpdateIdNamespaceAssociationOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum UpdateMembershipOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -9800,6 +12261,42 @@ extension CleanRoomsClientTypes.Schema { value.updateTime = try reader["updateTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") value.type = try reader["type"].readIfPresent() ?? .sdkUnknown("") value.schemaStatusDetails = try reader["schemaStatusDetails"].readListIfPresent(memberReadingClosure: CleanRoomsClientTypes.SchemaStatusDetail.read(from:), memberNodeInfo: "member", isFlattened: false) ?? [] + value.schemaTypeProperties = try reader["schemaTypeProperties"].readIfPresent(with: CleanRoomsClientTypes.SchemaTypeProperties.read(from:)) + return value + } +} + +extension CleanRoomsClientTypes.SchemaTypeProperties { + + static func read(from reader: SmithyJSON.Reader) throws -> CleanRoomsClientTypes.SchemaTypeProperties { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + let name = reader.children.filter { $0.hasContent && $0.nodeInfo.name != "__type" }.first?.nodeInfo.name + switch name { + case "idMappingTable": + return .idmappingtable(try reader["idMappingTable"].read(with: CleanRoomsClientTypes.IdMappingTableSchemaTypeProperties.read(from:))) + default: + return .sdkUnknown(name ?? "") + } + } +} + +extension CleanRoomsClientTypes.IdMappingTableSchemaTypeProperties { + + static func read(from reader: SmithyJSON.Reader) throws -> CleanRoomsClientTypes.IdMappingTableSchemaTypeProperties { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CleanRoomsClientTypes.IdMappingTableSchemaTypeProperties() + value.idMappingTableInputSource = try reader["idMappingTableInputSource"].readListIfPresent(memberReadingClosure: CleanRoomsClientTypes.IdMappingTableInputSource.read(from:), memberNodeInfo: "member", isFlattened: false) ?? [] + return value + } +} + +extension CleanRoomsClientTypes.IdMappingTableInputSource { + + static func read(from reader: SmithyJSON.Reader) throws -> CleanRoomsClientTypes.IdMappingTableInputSource { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CleanRoomsClientTypes.IdMappingTableInputSource() + value.idNamespaceAssociationId = try reader["idNamespaceAssociationId"].readIfPresent() ?? "" + value.type = try reader["type"].readIfPresent() ?? .sdkUnknown("") return value } } @@ -9813,6 +12310,7 @@ extension CleanRoomsClientTypes.SchemaStatusDetail { value.reasons = try reader["reasons"].readListIfPresent(memberReadingClosure: CleanRoomsClientTypes.SchemaStatusReason.read(from:), memberNodeInfo: "member", isFlattened: false) value.analysisRuleType = try reader["analysisRuleType"].readIfPresent() value.configurations = try reader["configurations"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosureBox().read(from:), memberNodeInfo: "member", isFlattened: false) + value.analysisType = try reader["analysisType"].readIfPresent() return value } } @@ -9892,19 +12390,59 @@ extension CleanRoomsClientTypes.AnalysisRulePolicyV1 { return .aggregation(try reader["aggregation"].read(with: CleanRoomsClientTypes.AnalysisRuleAggregation.read(from:))) case "custom": return .custom(try reader["custom"].read(with: CleanRoomsClientTypes.AnalysisRuleCustom.read(from:))) + case "idMappingTable": + return .idmappingtable(try reader["idMappingTable"].read(with: CleanRoomsClientTypes.AnalysisRuleIdMappingTable.read(from:))) + default: + return .sdkUnknown(name ?? "") + } + } +} + +extension CleanRoomsClientTypes.AnalysisRuleIdMappingTable { + + static func read(from reader: SmithyJSON.Reader) throws -> CleanRoomsClientTypes.AnalysisRuleIdMappingTable { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CleanRoomsClientTypes.AnalysisRuleIdMappingTable() + value.joinColumns = try reader["joinColumns"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) ?? [] + value.queryConstraints = try reader["queryConstraints"].readListIfPresent(memberReadingClosure: CleanRoomsClientTypes.QueryConstraint.read(from:), memberNodeInfo: "member", isFlattened: false) ?? [] + value.dimensionColumns = try reader["dimensionColumns"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) + return value + } +} + +extension CleanRoomsClientTypes.QueryConstraint { + + static func read(from reader: SmithyJSON.Reader) throws -> CleanRoomsClientTypes.QueryConstraint { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + let name = reader.children.filter { $0.hasContent && $0.nodeInfo.name != "__type" }.first?.nodeInfo.name + switch name { + case "requireOverlap": + return .requireoverlap(try reader["requireOverlap"].read(with: CleanRoomsClientTypes.QueryConstraintRequireOverlap.read(from:))) default: return .sdkUnknown(name ?? "") } } } +extension CleanRoomsClientTypes.QueryConstraintRequireOverlap { + + static func read(from reader: SmithyJSON.Reader) throws -> CleanRoomsClientTypes.QueryConstraintRequireOverlap { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CleanRoomsClientTypes.QueryConstraintRequireOverlap() + value.columns = try reader["columns"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) + return value + } +} + extension CleanRoomsClientTypes.AnalysisRuleCustom { static func write(value: CleanRoomsClientTypes.AnalysisRuleCustom?, to writer: SmithyJSON.Writer) throws { guard let value else { return } + try writer["additionalAnalyses"].write(value.additionalAnalyses) try writer["allowedAnalyses"].writeList(value.allowedAnalyses, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) try writer["allowedAnalysisProviders"].writeList(value.allowedAnalysisProviders, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) try writer["differentialPrivacy"].write(value.differentialPrivacy, with: CleanRoomsClientTypes.DifferentialPrivacyConfiguration.write(value:to:)) + try writer["disallowedOutputColumns"].writeList(value.disallowedOutputColumns, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) } static func read(from reader: SmithyJSON.Reader) throws -> CleanRoomsClientTypes.AnalysisRuleCustom { @@ -9912,6 +12450,8 @@ extension CleanRoomsClientTypes.AnalysisRuleCustom { var value = CleanRoomsClientTypes.AnalysisRuleCustom() value.allowedAnalyses = try reader["allowedAnalyses"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) ?? [] value.allowedAnalysisProviders = try reader["allowedAnalysisProviders"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) + value.additionalAnalyses = try reader["additionalAnalyses"].readIfPresent() + value.disallowedOutputColumns = try reader["disallowedOutputColumns"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) value.differentialPrivacy = try reader["differentialPrivacy"].readIfPresent(with: CleanRoomsClientTypes.DifferentialPrivacyConfiguration.read(from:)) return value } @@ -9951,6 +12491,7 @@ extension CleanRoomsClientTypes.AnalysisRuleAggregation { static func write(value: CleanRoomsClientTypes.AnalysisRuleAggregation?, to writer: SmithyJSON.Writer) throws { guard let value else { return } + try writer["additionalAnalyses"].write(value.additionalAnalyses) try writer["aggregateColumns"].writeList(value.aggregateColumns, memberWritingClosure: CleanRoomsClientTypes.AggregateColumn.write(value:to:), memberNodeInfo: "member", isFlattened: false) try writer["allowedJoinOperators"].writeList(value.allowedJoinOperators, memberWritingClosure: SmithyReadWrite.WritingClosureBox().write(value:to:), memberNodeInfo: "member", isFlattened: false) try writer["dimensionColumns"].writeList(value.dimensionColumns, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) @@ -9970,6 +12511,7 @@ extension CleanRoomsClientTypes.AnalysisRuleAggregation { value.dimensionColumns = try reader["dimensionColumns"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) ?? [] value.scalarFunctions = try reader["scalarFunctions"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosureBox().read(from:), memberNodeInfo: "member", isFlattened: false) ?? [] value.outputConstraints = try reader["outputConstraints"].readListIfPresent(memberReadingClosure: CleanRoomsClientTypes.AggregationConstraint.read(from:), memberNodeInfo: "member", isFlattened: false) ?? [] + value.additionalAnalyses = try reader["additionalAnalyses"].readIfPresent() return value } } @@ -10014,6 +12556,7 @@ extension CleanRoomsClientTypes.AnalysisRuleList { static func write(value: CleanRoomsClientTypes.AnalysisRuleList?, to writer: SmithyJSON.Writer) throws { guard let value else { return } + try writer["additionalAnalyses"].write(value.additionalAnalyses) try writer["allowedJoinOperators"].writeList(value.allowedJoinOperators, memberWritingClosure: SmithyReadWrite.WritingClosureBox().write(value:to:), memberNodeInfo: "member", isFlattened: false) try writer["joinColumns"].writeList(value.joinColumns, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) try writer["listColumns"].writeList(value.listColumns, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) @@ -10025,6 +12568,7 @@ extension CleanRoomsClientTypes.AnalysisRuleList { value.joinColumns = try reader["joinColumns"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) ?? [] value.allowedJoinOperators = try reader["allowedJoinOperators"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosureBox().read(from:), memberNodeInfo: "member", isFlattened: false) value.listColumns = try reader["listColumns"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) ?? [] + value.additionalAnalyses = try reader["additionalAnalyses"].readIfPresent() return value } } @@ -10275,8 +12819,246 @@ extension CleanRoomsClientTypes.ConfiguredTableAssociation { value.roleArn = try reader["roleArn"].readIfPresent() ?? "" value.name = try reader["name"].readIfPresent() ?? "" value.description = try reader["description"].readIfPresent() + value.analysisRuleTypes = try reader["analysisRuleTypes"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosureBox().read(from:), memberNodeInfo: "member", isFlattened: false) + value.createTime = try reader["createTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") + value.updateTime = try reader["updateTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") + return value + } +} + +extension CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRule { + + static func read(from reader: SmithyJSON.Reader) throws -> CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRule { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRule() + value.membershipIdentifier = try reader["membershipIdentifier"].readIfPresent() ?? "" + value.configuredTableAssociationId = try reader["configuredTableAssociationId"].readIfPresent() ?? "" + value.configuredTableAssociationArn = try reader["configuredTableAssociationArn"].readIfPresent() ?? "" + value.policy = try reader["policy"].readIfPresent(with: CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRulePolicy.read(from:)) + value.type = try reader["type"].readIfPresent() ?? .sdkUnknown("") + value.createTime = try reader["createTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") + value.updateTime = try reader["updateTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") + return value + } +} + +extension CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRulePolicy { + + static func write(value: CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRulePolicy?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + switch value { + case let .v1(v1): + try writer["v1"].write(v1, with: CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRulePolicyV1.write(value:to:)) + case let .sdkUnknown(sdkUnknown): + try writer["sdkUnknown"].write(sdkUnknown) + } + } + + static func read(from reader: SmithyJSON.Reader) throws -> CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRulePolicy { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + let name = reader.children.filter { $0.hasContent && $0.nodeInfo.name != "__type" }.first?.nodeInfo.name + switch name { + case "v1": + return .v1(try reader["v1"].read(with: CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRulePolicyV1.read(from:))) + default: + return .sdkUnknown(name ?? "") + } + } +} + +extension CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRulePolicyV1 { + + static func write(value: CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRulePolicyV1?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + switch value { + case let .aggregation(aggregation): + try writer["aggregation"].write(aggregation, with: CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRuleAggregation.write(value:to:)) + case let .custom(custom): + try writer["custom"].write(custom, with: CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRuleCustom.write(value:to:)) + case let .list(list): + try writer["list"].write(list, with: CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRuleList.write(value:to:)) + case let .sdkUnknown(sdkUnknown): + try writer["sdkUnknown"].write(sdkUnknown) + } + } + + static func read(from reader: SmithyJSON.Reader) throws -> CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRulePolicyV1 { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + let name = reader.children.filter { $0.hasContent && $0.nodeInfo.name != "__type" }.first?.nodeInfo.name + switch name { + case "list": + return .list(try reader["list"].read(with: CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRuleList.read(from:))) + case "aggregation": + return .aggregation(try reader["aggregation"].read(with: CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRuleAggregation.read(from:))) + case "custom": + return .custom(try reader["custom"].read(with: CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRuleCustom.read(from:))) + default: + return .sdkUnknown(name ?? "") + } + } +} + +extension CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRuleCustom { + + static func write(value: CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRuleCustom?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["allowedAdditionalAnalyses"].writeList(value.allowedAdditionalAnalyses, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["allowedResultReceivers"].writeList(value.allowedResultReceivers, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + } + + static func read(from reader: SmithyJSON.Reader) throws -> CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRuleCustom { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRuleCustom() + value.allowedResultReceivers = try reader["allowedResultReceivers"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) + value.allowedAdditionalAnalyses = try reader["allowedAdditionalAnalyses"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) + return value + } +} + +extension CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRuleAggregation { + + static func write(value: CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRuleAggregation?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["allowedAdditionalAnalyses"].writeList(value.allowedAdditionalAnalyses, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["allowedResultReceivers"].writeList(value.allowedResultReceivers, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + } + + static func read(from reader: SmithyJSON.Reader) throws -> CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRuleAggregation { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRuleAggregation() + value.allowedResultReceivers = try reader["allowedResultReceivers"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) + value.allowedAdditionalAnalyses = try reader["allowedAdditionalAnalyses"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) + return value + } +} + +extension CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRuleList { + + static func write(value: CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRuleList?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["allowedAdditionalAnalyses"].writeList(value.allowedAdditionalAnalyses, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["allowedResultReceivers"].writeList(value.allowedResultReceivers, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + } + + static func read(from reader: SmithyJSON.Reader) throws -> CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRuleList { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CleanRoomsClientTypes.ConfiguredTableAssociationAnalysisRuleList() + value.allowedResultReceivers = try reader["allowedResultReceivers"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) + value.allowedAdditionalAnalyses = try reader["allowedAdditionalAnalyses"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) + return value + } +} + +extension CleanRoomsClientTypes.IdMappingTable { + + static func read(from reader: SmithyJSON.Reader) throws -> CleanRoomsClientTypes.IdMappingTable { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CleanRoomsClientTypes.IdMappingTable() + value.id = try reader["id"].readIfPresent() ?? "" + value.arn = try reader["arn"].readIfPresent() ?? "" + value.inputReferenceConfig = try reader["inputReferenceConfig"].readIfPresent(with: CleanRoomsClientTypes.IdMappingTableInputReferenceConfig.read(from:)) + value.membershipId = try reader["membershipId"].readIfPresent() ?? "" + value.membershipArn = try reader["membershipArn"].readIfPresent() ?? "" + value.collaborationId = try reader["collaborationId"].readIfPresent() ?? "" + value.collaborationArn = try reader["collaborationArn"].readIfPresent() ?? "" + value.description = try reader["description"].readIfPresent() + value.name = try reader["name"].readIfPresent() ?? "" + value.createTime = try reader["createTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") + value.updateTime = try reader["updateTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") + value.inputReferenceProperties = try reader["inputReferenceProperties"].readIfPresent(with: CleanRoomsClientTypes.IdMappingTableInputReferenceProperties.read(from:)) + value.kmsKeyArn = try reader["kmsKeyArn"].readIfPresent() + return value + } +} + +extension CleanRoomsClientTypes.IdMappingTableInputReferenceProperties { + + static func read(from reader: SmithyJSON.Reader) throws -> CleanRoomsClientTypes.IdMappingTableInputReferenceProperties { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CleanRoomsClientTypes.IdMappingTableInputReferenceProperties() + value.idMappingTableInputSource = try reader["idMappingTableInputSource"].readListIfPresent(memberReadingClosure: CleanRoomsClientTypes.IdMappingTableInputSource.read(from:), memberNodeInfo: "member", isFlattened: false) ?? [] + return value + } +} + +extension CleanRoomsClientTypes.IdMappingTableInputReferenceConfig { + + static func write(value: CleanRoomsClientTypes.IdMappingTableInputReferenceConfig?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["inputReferenceArn"].write(value.inputReferenceArn) + try writer["manageResourcePolicies"].write(value.manageResourcePolicies) + } + + static func read(from reader: SmithyJSON.Reader) throws -> CleanRoomsClientTypes.IdMappingTableInputReferenceConfig { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CleanRoomsClientTypes.IdMappingTableInputReferenceConfig() + value.inputReferenceArn = try reader["inputReferenceArn"].readIfPresent() ?? "" + value.manageResourcePolicies = try reader["manageResourcePolicies"].readIfPresent() ?? false + return value + } +} + +extension CleanRoomsClientTypes.IdNamespaceAssociation { + + static func read(from reader: SmithyJSON.Reader) throws -> CleanRoomsClientTypes.IdNamespaceAssociation { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CleanRoomsClientTypes.IdNamespaceAssociation() + value.id = try reader["id"].readIfPresent() ?? "" + value.arn = try reader["arn"].readIfPresent() ?? "" + value.membershipId = try reader["membershipId"].readIfPresent() ?? "" + value.membershipArn = try reader["membershipArn"].readIfPresent() ?? "" + value.collaborationId = try reader["collaborationId"].readIfPresent() ?? "" + value.collaborationArn = try reader["collaborationArn"].readIfPresent() ?? "" + value.name = try reader["name"].readIfPresent() ?? "" + value.description = try reader["description"].readIfPresent() value.createTime = try reader["createTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") value.updateTime = try reader["updateTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") + value.inputReferenceConfig = try reader["inputReferenceConfig"].readIfPresent(with: CleanRoomsClientTypes.IdNamespaceAssociationInputReferenceConfig.read(from:)) + value.inputReferenceProperties = try reader["inputReferenceProperties"].readIfPresent(with: CleanRoomsClientTypes.IdNamespaceAssociationInputReferenceProperties.read(from:)) + value.idMappingConfig = try reader["idMappingConfig"].readIfPresent(with: CleanRoomsClientTypes.IdMappingConfig.read(from:)) + return value + } +} + +extension CleanRoomsClientTypes.IdMappingConfig { + + static func write(value: CleanRoomsClientTypes.IdMappingConfig?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["allowUseAsDimensionColumn"].write(value.allowUseAsDimensionColumn) + } + + static func read(from reader: SmithyJSON.Reader) throws -> CleanRoomsClientTypes.IdMappingConfig { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CleanRoomsClientTypes.IdMappingConfig() + value.allowUseAsDimensionColumn = try reader["allowUseAsDimensionColumn"].readIfPresent() ?? false + return value + } +} + +extension CleanRoomsClientTypes.IdNamespaceAssociationInputReferenceProperties { + + static func read(from reader: SmithyJSON.Reader) throws -> CleanRoomsClientTypes.IdNamespaceAssociationInputReferenceProperties { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CleanRoomsClientTypes.IdNamespaceAssociationInputReferenceProperties() + value.idNamespaceType = try reader["idNamespaceType"].readIfPresent() ?? .sdkUnknown("") + value.idMappingWorkflowsSupported = try reader["idMappingWorkflowsSupported"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readDocument(from:), memberNodeInfo: "member", isFlattened: false) ?? [] + return value + } +} + +extension CleanRoomsClientTypes.IdNamespaceAssociationInputReferenceConfig { + + static func write(value: CleanRoomsClientTypes.IdNamespaceAssociationInputReferenceConfig?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["inputReferenceArn"].write(value.inputReferenceArn) + try writer["manageResourcePolicies"].write(value.manageResourcePolicies) + } + + static func read(from reader: SmithyJSON.Reader) throws -> CleanRoomsClientTypes.IdNamespaceAssociationInputReferenceConfig { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CleanRoomsClientTypes.IdNamespaceAssociationInputReferenceConfig() + value.inputReferenceArn = try reader["inputReferenceArn"].readIfPresent() ?? "" + value.manageResourcePolicies = try reader["manageResourcePolicies"].readIfPresent() ?? false return value } } @@ -10458,6 +13240,27 @@ extension CleanRoomsClientTypes.CollaborationConfiguredAudienceModelAssociation } } +extension CleanRoomsClientTypes.CollaborationIdNamespaceAssociation { + + static func read(from reader: SmithyJSON.Reader) throws -> CleanRoomsClientTypes.CollaborationIdNamespaceAssociation { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CleanRoomsClientTypes.CollaborationIdNamespaceAssociation() + value.id = try reader["id"].readIfPresent() ?? "" + value.arn = try reader["arn"].readIfPresent() ?? "" + value.collaborationId = try reader["collaborationId"].readIfPresent() ?? "" + value.collaborationArn = try reader["collaborationArn"].readIfPresent() ?? "" + value.name = try reader["name"].readIfPresent() ?? "" + value.description = try reader["description"].readIfPresent() + value.creatorAccountId = try reader["creatorAccountId"].readIfPresent() ?? "" + value.createTime = try reader["createTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") + value.updateTime = try reader["updateTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") + value.inputReferenceConfig = try reader["inputReferenceConfig"].readIfPresent(with: CleanRoomsClientTypes.IdNamespaceAssociationInputReferenceConfig.read(from:)) + value.inputReferenceProperties = try reader["inputReferenceProperties"].readIfPresent(with: CleanRoomsClientTypes.IdNamespaceAssociationInputReferenceProperties.read(from:)) + value.idMappingConfig = try reader["idMappingConfig"].readIfPresent(with: CleanRoomsClientTypes.IdMappingConfig.read(from:)) + return value + } +} + extension CleanRoomsClientTypes.CollaborationPrivacyBudgetTemplate { static func read(from reader: SmithyJSON.Reader) throws -> CleanRoomsClientTypes.CollaborationPrivacyBudgetTemplate { @@ -10608,6 +13411,8 @@ extension CleanRoomsClientTypes.ProtectedQueryOutputConfiguration { static func write(value: CleanRoomsClientTypes.ProtectedQueryOutputConfiguration?, to writer: SmithyJSON.Writer) throws { guard let value else { return } switch value { + case let .member(member): + try writer["member"].write(member, with: CleanRoomsClientTypes.ProtectedQueryMemberOutputConfiguration.write(value:to:)) case let .s3(s3): try writer["s3"].write(s3, with: CleanRoomsClientTypes.ProtectedQueryS3OutputConfiguration.write(value:to:)) case let .sdkUnknown(sdkUnknown): @@ -10621,12 +13426,29 @@ extension CleanRoomsClientTypes.ProtectedQueryOutputConfiguration { switch name { case "s3": return .s3(try reader["s3"].read(with: CleanRoomsClientTypes.ProtectedQueryS3OutputConfiguration.read(from:))) + case "member": + return .member(try reader["member"].read(with: CleanRoomsClientTypes.ProtectedQueryMemberOutputConfiguration.read(from:))) default: return .sdkUnknown(name ?? "") } } } +extension CleanRoomsClientTypes.ProtectedQueryMemberOutputConfiguration { + + static func write(value: CleanRoomsClientTypes.ProtectedQueryMemberOutputConfiguration?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["accountId"].write(value.accountId) + } + + static func read(from reader: SmithyJSON.Reader) throws -> CleanRoomsClientTypes.ProtectedQueryMemberOutputConfiguration { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CleanRoomsClientTypes.ProtectedQueryMemberOutputConfiguration() + value.accountId = try reader["accountId"].readIfPresent() ?? "" + return value + } +} + extension CleanRoomsClientTypes.ProtectedQuerySQLParameters { static func write(value: CleanRoomsClientTypes.ProtectedQuerySQLParameters?, to writer: SmithyJSON.Writer) throws { @@ -10701,6 +13523,36 @@ extension CleanRoomsClientTypes.CollaborationConfiguredAudienceModelAssociationS } } +extension CleanRoomsClientTypes.CollaborationIdNamespaceAssociationSummary { + + static func read(from reader: SmithyJSON.Reader) throws -> CleanRoomsClientTypes.CollaborationIdNamespaceAssociationSummary { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CleanRoomsClientTypes.CollaborationIdNamespaceAssociationSummary() + value.arn = try reader["arn"].readIfPresent() ?? "" + value.createTime = try reader["createTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") + value.id = try reader["id"].readIfPresent() ?? "" + value.updateTime = try reader["updateTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") + value.collaborationArn = try reader["collaborationArn"].readIfPresent() ?? "" + value.collaborationId = try reader["collaborationId"].readIfPresent() ?? "" + value.creatorAccountId = try reader["creatorAccountId"].readIfPresent() ?? "" + value.inputReferenceConfig = try reader["inputReferenceConfig"].readIfPresent(with: CleanRoomsClientTypes.IdNamespaceAssociationInputReferenceConfig.read(from:)) + value.name = try reader["name"].readIfPresent() ?? "" + value.description = try reader["description"].readIfPresent() + value.inputReferenceProperties = try reader["inputReferenceProperties"].readIfPresent(with: CleanRoomsClientTypes.IdNamespaceAssociationInputReferencePropertiesSummary.read(from:)) + return value + } +} + +extension CleanRoomsClientTypes.IdNamespaceAssociationInputReferencePropertiesSummary { + + static func read(from reader: SmithyJSON.Reader) throws -> CleanRoomsClientTypes.IdNamespaceAssociationInputReferencePropertiesSummary { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CleanRoomsClientTypes.IdNamespaceAssociationInputReferencePropertiesSummary() + value.idNamespaceType = try reader["idNamespaceType"].readIfPresent() ?? .sdkUnknown("") + return value + } +} + extension CleanRoomsClientTypes.CollaborationPrivacyBudgetSummary { static func read(from reader: SmithyJSON.Reader) throws -> CleanRoomsClientTypes.CollaborationPrivacyBudgetSummary { @@ -10846,6 +13698,47 @@ extension CleanRoomsClientTypes.ConfiguredTableSummary { } } +extension CleanRoomsClientTypes.IdMappingTableSummary { + + static func read(from reader: SmithyJSON.Reader) throws -> CleanRoomsClientTypes.IdMappingTableSummary { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CleanRoomsClientTypes.IdMappingTableSummary() + value.collaborationArn = try reader["collaborationArn"].readIfPresent() ?? "" + value.collaborationId = try reader["collaborationId"].readIfPresent() ?? "" + value.membershipId = try reader["membershipId"].readIfPresent() ?? "" + value.membershipArn = try reader["membershipArn"].readIfPresent() ?? "" + value.createTime = try reader["createTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") + value.updateTime = try reader["updateTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") + value.id = try reader["id"].readIfPresent() ?? "" + value.arn = try reader["arn"].readIfPresent() ?? "" + value.description = try reader["description"].readIfPresent() + value.inputReferenceConfig = try reader["inputReferenceConfig"].readIfPresent(with: CleanRoomsClientTypes.IdMappingTableInputReferenceConfig.read(from:)) + value.name = try reader["name"].readIfPresent() ?? "" + return value + } +} + +extension CleanRoomsClientTypes.IdNamespaceAssociationSummary { + + static func read(from reader: SmithyJSON.Reader) throws -> CleanRoomsClientTypes.IdNamespaceAssociationSummary { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CleanRoomsClientTypes.IdNamespaceAssociationSummary() + value.membershipId = try reader["membershipId"].readIfPresent() ?? "" + value.membershipArn = try reader["membershipArn"].readIfPresent() ?? "" + value.collaborationArn = try reader["collaborationArn"].readIfPresent() ?? "" + value.collaborationId = try reader["collaborationId"].readIfPresent() ?? "" + value.createTime = try reader["createTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") + value.updateTime = try reader["updateTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") + value.id = try reader["id"].readIfPresent() ?? "" + value.arn = try reader["arn"].readIfPresent() ?? "" + value.inputReferenceConfig = try reader["inputReferenceConfig"].readIfPresent(with: CleanRoomsClientTypes.IdNamespaceAssociationInputReferenceConfig.read(from:)) + value.name = try reader["name"].readIfPresent() ?? "" + value.description = try reader["description"].readIfPresent() + value.inputReferenceProperties = try reader["inputReferenceProperties"].readIfPresent(with: CleanRoomsClientTypes.IdNamespaceAssociationInputReferencePropertiesSummary.read(from:)) + return value + } +} + extension CleanRoomsClientTypes.MemberSummary { static func read(from reader: SmithyJSON.Reader) throws -> CleanRoomsClientTypes.MemberSummary { @@ -10963,6 +13856,42 @@ extension CleanRoomsClientTypes.ProtectedQuerySummary { value.membershipArn = try reader["membershipArn"].readIfPresent() ?? "" value.createTime = try reader["createTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") value.status = try reader["status"].readIfPresent() ?? .sdkUnknown("") + value.receiverConfigurations = try reader["receiverConfigurations"].readListIfPresent(memberReadingClosure: CleanRoomsClientTypes.ReceiverConfiguration.read(from:), memberNodeInfo: "member", isFlattened: false) ?? [] + return value + } +} + +extension CleanRoomsClientTypes.ReceiverConfiguration { + + static func read(from reader: SmithyJSON.Reader) throws -> CleanRoomsClientTypes.ReceiverConfiguration { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CleanRoomsClientTypes.ReceiverConfiguration() + value.analysisType = try reader["analysisType"].readIfPresent() ?? .sdkUnknown("") + value.configurationDetails = try reader["configurationDetails"].readIfPresent(with: CleanRoomsClientTypes.ConfigurationDetails.read(from:)) + return value + } +} + +extension CleanRoomsClientTypes.ConfigurationDetails { + + static func read(from reader: SmithyJSON.Reader) throws -> CleanRoomsClientTypes.ConfigurationDetails { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + let name = reader.children.filter { $0.hasContent && $0.nodeInfo.name != "__type" }.first?.nodeInfo.name + switch name { + case "directAnalysisConfigurationDetails": + return .directanalysisconfigurationdetails(try reader["directAnalysisConfigurationDetails"].read(with: CleanRoomsClientTypes.DirectAnalysisConfigurationDetails.read(from:))) + default: + return .sdkUnknown(name ?? "") + } + } +} + +extension CleanRoomsClientTypes.DirectAnalysisConfigurationDetails { + + static func read(from reader: SmithyJSON.Reader) throws -> CleanRoomsClientTypes.DirectAnalysisConfigurationDetails { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CleanRoomsClientTypes.DirectAnalysisConfigurationDetails() + value.receiverAccountIds = try reader["receiverAccountIds"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) return value } } diff --git a/Sources/Services/AWSCleanRoomsML/Sources/AWSCleanRoomsML/Models.swift b/Sources/Services/AWSCleanRoomsML/Sources/AWSCleanRoomsML/Models.swift index ee52411680f..08bd7108ed4 100644 --- a/Sources/Services/AWSCleanRoomsML/Sources/AWSCleanRoomsML/Models.swift +++ b/Sources/Services/AWSCleanRoomsML/Sources/AWSCleanRoomsML/Models.swift @@ -512,6 +512,36 @@ extension CleanRoomsMLClientTypes { } } +extension CleanRoomsMLClientTypes { + + /// The parameters for the SQL type Protected Query. + public struct ProtectedQuerySQLParameters: Swift.Sendable { + /// The Amazon Resource Name (ARN) associated with the analysis template within a collaboration. + public var analysisTemplateArn: Swift.String? + /// The protected query SQL parameters. + public var parameters: [Swift.String: Swift.String]? + /// The query string to be submitted. + public var queryString: Swift.String? + + public init( + analysisTemplateArn: Swift.String? = nil, + parameters: [Swift.String: Swift.String]? = nil, + queryString: Swift.String? = nil + ) + { + self.analysisTemplateArn = analysisTemplateArn + self.parameters = parameters + self.queryString = queryString + } + } +} + +extension CleanRoomsMLClientTypes.ProtectedQuerySQLParameters: Swift.CustomDebugStringConvertible { + public var debugDescription: Swift.String { + "CONTENT_REDACTED" + } +} + extension CleanRoomsMLClientTypes { /// Defines the Amazon S3 bucket where the seed audience for the generating audience is stored. @@ -521,23 +551,31 @@ extension CleanRoomsMLClientTypes { /// /// /// ... - /// This member is required. public var dataSource: CleanRoomsMLClientTypes.S3ConfigMap? - /// The ARN of the IAM role that can read the Amazon S3 bucket where the training data is stored. + /// The ARN of the IAM role that can read the Amazon S3 bucket where the seed audience is stored. /// This member is required. public var roleArn: Swift.String? + /// The protected SQL query parameters. + public var sqlParameters: CleanRoomsMLClientTypes.ProtectedQuerySQLParameters? public init( dataSource: CleanRoomsMLClientTypes.S3ConfigMap? = nil, - roleArn: Swift.String? = nil + roleArn: Swift.String? = nil, + sqlParameters: CleanRoomsMLClientTypes.ProtectedQuerySQLParameters? = nil ) { self.dataSource = dataSource self.roleArn = roleArn + self.sqlParameters = sqlParameters } } } +extension CleanRoomsMLClientTypes.AudienceGenerationJobDataSource: Swift.CustomDebugStringConvertible { + public var debugDescription: Swift.String { + "AudienceGenerationJobDataSource(dataSource: \(Swift.String(describing: dataSource)), roleArn: \(Swift.String(describing: roleArn)), sqlParameters: \"CONTENT_REDACTED\")"} +} + extension CleanRoomsMLClientTypes { public enum AudienceGenerationJobStatus: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { @@ -603,6 +641,8 @@ public struct GetAudienceGenerationJobOutput: Swift.Sendable { /// The name of the audience generation job. /// This member is required. public var name: Swift.String? + /// The unique identifier of the protected query for this audience generation job. + public var protectedQueryIdentifier: Swift.String? /// The seed audience that was used for this audience generation job. This field will be null if the account calling the API is the account that started this audience generation job. public var seedAudience: CleanRoomsMLClientTypes.AudienceGenerationJobDataSource? /// The AWS account that started this audience generation job. @@ -627,6 +667,7 @@ public struct GetAudienceGenerationJobOutput: Swift.Sendable { includeSeedInOutput: Swift.Bool? = nil, metrics: CleanRoomsMLClientTypes.AudienceQualityMetrics? = nil, name: Swift.String? = nil, + protectedQueryIdentifier: Swift.String? = nil, seedAudience: CleanRoomsMLClientTypes.AudienceGenerationJobDataSource? = nil, startedBy: Swift.String? = nil, status: CleanRoomsMLClientTypes.AudienceGenerationJobStatus? = nil, @@ -643,6 +684,7 @@ public struct GetAudienceGenerationJobOutput: Swift.Sendable { self.includeSeedInOutput = includeSeedInOutput self.metrics = metrics self.name = name + self.protectedQueryIdentifier = protectedQueryIdentifier self.seedAudience = seedAudience self.startedBy = startedBy self.status = status @@ -1091,7 +1133,7 @@ public struct ListAudienceModelsOutput: Swift.Sendable { extension CleanRoomsMLClientTypes { - /// Configure the list of audience output sizes that can be created. A request to [StartAudienceGenerationJob] that uses this configured audience model must have an audienceSize selected from this list. You can use the ABSOLUTE[AudienceSize] to configure out audience sizes using the count of identifiers in the output. You can use the Percentage[AudienceSize] to configure sizes in the range 1-100 percent. + /// Returns the relevance scores at these audience sizes when used in the [GetAudienceGenerationJob] for a specified audience generation job and configured audience model. Specifies the list of allowed audienceSize values when used in the [StartAudienceExportJob] for an audience generation job. You can use the ABSOLUTE[AudienceSize] to configure out audience sizes using the count of identifiers in the output. You can use the Percentage[AudienceSize] to configure sizes in the range 1-100 percent. public struct AudienceSizeConfig: Swift.Sendable { /// An array of the different audience output sizes. /// This member is required. @@ -2648,6 +2690,7 @@ extension GetAudienceGenerationJobOutput { value.includeSeedInOutput = try reader["includeSeedInOutput"].readIfPresent() value.metrics = try reader["metrics"].readIfPresent(with: CleanRoomsMLClientTypes.AudienceQualityMetrics.read(from:)) value.name = try reader["name"].readIfPresent() ?? "" + value.protectedQueryIdentifier = try reader["protectedQueryIdentifier"].readIfPresent() value.seedAudience = try reader["seedAudience"].readIfPresent(with: CleanRoomsMLClientTypes.AudienceGenerationJobDataSource.read(from:)) value.startedBy = try reader["startedBy"].readIfPresent() value.status = try reader["status"].readIfPresent() ?? .sdkUnknown("") @@ -3364,6 +3407,7 @@ extension CleanRoomsMLClientTypes.AudienceGenerationJobDataSource { guard let value else { return } try writer["dataSource"].write(value.dataSource, with: CleanRoomsMLClientTypes.S3ConfigMap.write(value:to:)) try writer["roleArn"].write(value.roleArn) + try writer["sqlParameters"].write(value.sqlParameters, with: CleanRoomsMLClientTypes.ProtectedQuerySQLParameters.write(value:to:)) } static func read(from reader: SmithyJSON.Reader) throws -> CleanRoomsMLClientTypes.AudienceGenerationJobDataSource { @@ -3371,6 +3415,26 @@ extension CleanRoomsMLClientTypes.AudienceGenerationJobDataSource { var value = CleanRoomsMLClientTypes.AudienceGenerationJobDataSource() value.dataSource = try reader["dataSource"].readIfPresent(with: CleanRoomsMLClientTypes.S3ConfigMap.read(from:)) value.roleArn = try reader["roleArn"].readIfPresent() ?? "" + value.sqlParameters = try reader["sqlParameters"].readIfPresent(with: CleanRoomsMLClientTypes.ProtectedQuerySQLParameters.read(from:)) + return value + } +} + +extension CleanRoomsMLClientTypes.ProtectedQuerySQLParameters { + + static func write(value: CleanRoomsMLClientTypes.ProtectedQuerySQLParameters?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["analysisTemplateArn"].write(value.analysisTemplateArn) + try writer["parameters"].writeMap(value.parameters, valueWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + try writer["queryString"].write(value.queryString) + } + + static func read(from reader: SmithyJSON.Reader) throws -> CleanRoomsMLClientTypes.ProtectedQuerySQLParameters { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CleanRoomsMLClientTypes.ProtectedQuerySQLParameters() + value.queryString = try reader["queryString"].readIfPresent() + value.analysisTemplateArn = try reader["analysisTemplateArn"].readIfPresent() + value.parameters = try reader["parameters"].readMapIfPresent(valueReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) return value } } diff --git a/Sources/Services/AWSCloudFormation/Sources/AWSCloudFormation/CloudFormationClient.swift b/Sources/Services/AWSCloudFormation/Sources/AWSCloudFormation/CloudFormationClient.swift index d5f1b917b7a..4688a3440b4 100644 --- a/Sources/Services/AWSCloudFormation/Sources/AWSCloudFormation/CloudFormationClient.swift +++ b/Sources/Services/AWSCloudFormation/Sources/AWSCloudFormation/CloudFormationClient.swift @@ -266,7 +266,7 @@ extension CloudFormationClient { /// Performs the `ActivateType` operation on the `CloudFormation` service. /// - /// Activates a public third-party extension, making it available for use in stack templates. For more information, see [Using public extensions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html) in the CloudFormation User Guide. Once you have activated a public third-party extension in your account and Region, use [SetTypeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_SetTypeConfiguration.html) to specify configuration properties for the extension. For more information, see [Configuring extensions at the account level](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-private.html#registry-set-configuration) in the CloudFormation User Guide. + /// Activates a public third-party extension, making it available for use in stack templates. Once you have activated a public third-party extension in your account and Region, use [SetTypeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_SetTypeConfiguration.html) to specify configuration properties for the extension. For more information, see [Using public extensions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html) in the CloudFormation User Guide. /// /// - Parameter ActivateTypeInput : [no documentation found] /// @@ -336,7 +336,7 @@ extension CloudFormationClient { /// Performs the `BatchDescribeTypeConfigurations` operation on the `CloudFormation` service. /// - /// Returns configuration data for the specified CloudFormation extensions, from the CloudFormation registry for the account and Region. For more information, see [Configuring extensions at the account level](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-private.html#registry-set-configuration) in the CloudFormation User Guide. + /// Returns configuration data for the specified CloudFormation extensions, from the CloudFormation registry for the account and Region. For more information, see [Edit configuration data for extensions in your account](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-set-configuration.html) in the CloudFormation User Guide. /// /// - Parameter BatchDescribeTypeConfigurationsInput : [no documentation found] /// @@ -475,7 +475,7 @@ extension CloudFormationClient { /// Performs the `ContinueUpdateRollback` operation on the `CloudFormation` service. /// - /// For a specified stack that's in the UPDATE_ROLLBACK_FAILED state, continues rolling it back to the UPDATE_ROLLBACK_COMPLETE state. Depending on the cause of the failure, you can manually [ fix the error](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html#troubleshooting-errors-update-rollback-failed) and continue the rollback. By continuing the rollback, you can return your stack to a working state (the UPDATE_ROLLBACK_COMPLETE state), and then try to update the stack again. A stack goes into the UPDATE_ROLLBACK_FAILED state when CloudFormation can't roll back all changes after a failed stack update. For example, you might have a stack that's rolling back to an old database instance that was deleted outside of CloudFormation. Because CloudFormation doesn't know the database was deleted, it assumes that the database instance still exists and attempts to roll back to it, causing the update rollback to fail. + /// For a specified stack that's in the UPDATE_ROLLBACK_FAILED state, continues rolling it back to the UPDATE_ROLLBACK_COMPLETE state. Depending on the cause of the failure, you can manually [fix the error](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html#troubleshooting-errors-update-rollback-failed) and continue the rollback. By continuing the rollback, you can return your stack to a working state (the UPDATE_ROLLBACK_COMPLETE state), and then try to update the stack again. A stack goes into the UPDATE_ROLLBACK_FAILED state when CloudFormation can't roll back all changes after a failed stack update. For example, you might have a stack that's rolling back to an old database instance that was deleted outside of CloudFormation. Because CloudFormation doesn't know the database was deleted, it assumes that the database instance still exists and attempts to roll back to it, causing the update rollback to fail. /// /// - Parameter ContinueUpdateRollbackInput : The input for the [ContinueUpdateRollback] action. /// @@ -686,7 +686,7 @@ extension CloudFormationClient { /// Performs the `CreateStack` operation on the `CloudFormation` service. /// - /// Creates a stack as specified in the template. After the call completes successfully, the stack creation starts. You can check the status of the stack through the [DescribeStacks] operation. + /// Creates a stack as specified in the template. After the call completes successfully, the stack creation starts. You can check the status of the stack through the [DescribeStacks] operation. For more information about creating a stack and monitoring stack progress, see [Managing Amazon Web Services resources as a single unit with CloudFormation stacks](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacks.html) in the CloudFormation User Guide. /// /// - Parameter CreateStackInput : The input for [CreateStack] action. /// @@ -1184,7 +1184,7 @@ extension CloudFormationClient { /// Performs the `DeleteStack` operation on the `CloudFormation` service. /// - /// Deletes a specified stack. Once the call completes successfully, stack deletion starts. Deleted stacks don't show up in the [DescribeStacks] operation if the deletion has been completed successfully. + /// Deletes a specified stack. Once the call completes successfully, stack deletion starts. Deleted stacks don't show up in the [DescribeStacks] operation if the deletion has been completed successfully. For more information about deleting a stack, see [Delete a stack from the CloudFormation console](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html) in the CloudFormation User Guide. /// /// - Parameter DeleteStackInput : The input for [DeleteStack] action. /// @@ -1467,7 +1467,7 @@ extension CloudFormationClient { /// Performs the `DescribeAccountLimits` operation on the `CloudFormation` service. /// - /// Retrieves your account's CloudFormation limits, such as the maximum number of stacks that you can create in your account. For more information about account limits, see [CloudFormation Quotas](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html) in the CloudFormation User Guide. + /// Retrieves your account's CloudFormation limits, such as the maximum number of stacks that you can create in your account. For more information about account limits, see [Understand CloudFormation quotas](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html) in the CloudFormation User Guide. /// /// - Parameter DescribeAccountLimitsInput : The input for the [DescribeAccountLimits] action. /// @@ -1531,7 +1531,7 @@ extension CloudFormationClient { /// Performs the `DescribeChangeSet` operation on the `CloudFormation` service. /// - /// Returns the inputs for the change set and a list of changes that CloudFormation will make if you execute the change set. For more information, see [Updating Stacks Using Change Sets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-changesets.html) in the CloudFormation User Guide. + /// Returns the inputs for the change set and a list of changes that CloudFormation will make if you execute the change set. For more information, see [Update CloudFormation stacks using change sets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-changesets.html) in the CloudFormation User Guide. /// /// - Parameter DescribeChangeSetInput : The input for the [DescribeChangeSet] action. /// @@ -1812,7 +1812,7 @@ extension CloudFormationClient { /// /// * [RegisterPublisher](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterPublisher.html) /// - /// * [Publishing extensions to make them available for public use](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html) in the CloudFormation CLI User Guide + /// * [Publishing extensions to make them available for public use](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html) in the CloudFormation Command Line Interface (CLI) User Guide /// /// - Parameter DescribePublisherInput : [no documentation found] /// @@ -1950,7 +1950,7 @@ extension CloudFormationClient { /// Performs the `DescribeStackDriftDetectionStatus` operation on the `CloudFormation` service. /// - /// Returns information about a stack drift detection operation. A stack drift detection operation detects whether a stack's actual configuration differs, or has drifted, from its expected configuration, as defined in the stack template and any values specified as template parameters. A stack is considered to have drifted if one or more of its resources have drifted. For more information about stack and resource drift, see [Detecting Unregulated Configuration Changes to Stacks and Resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html). Use [DetectStackDrift] to initiate a stack drift detection operation. DetectStackDrift returns a StackDriftDetectionId you can use to monitor the progress of the operation using DescribeStackDriftDetectionStatus. Once the drift detection operation has completed, use [DescribeStackResourceDrifts] to return drift information about the stack and its resources. + /// Returns information about a stack drift detection operation. A stack drift detection operation detects whether a stack's actual configuration differs, or has drifted, from its expected configuration, as defined in the stack template and any values specified as template parameters. A stack is considered to have drifted if one or more of its resources have drifted. For more information about stack and resource drift, see [Detect unmanaged configuration changes to stacks and resources with drift detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html). Use [DetectStackDrift] to initiate a stack drift detection operation. DetectStackDrift returns a StackDriftDetectionId you can use to monitor the progress of the operation using DescribeStackDriftDetectionStatus. Once the drift detection operation has completed, use [DescribeStackResourceDrifts] to return drift information about the stack and its resources. /// /// - Parameter DescribeStackDriftDetectionStatusInput : [no documentation found] /// @@ -2014,7 +2014,7 @@ extension CloudFormationClient { /// Performs the `DescribeStackEvents` operation on the `CloudFormation` service. /// - /// Returns all stack related events for a specified stack in reverse chronological order. For more information about a stack's event history, see [CloudFormation stack creation events](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stack-resource-configuration-complete.html) in the CloudFormation User Guide. You can list events for stacks that have failed to create or have been deleted by specifying the unique stack identifier (stack ID). + /// Returns all stack related events for a specified stack in reverse chronological order. For more information about a stack's event history, see [Understand CloudFormation stack creation events](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stack-resource-configuration-complete.html) in the CloudFormation User Guide. You can list events for stacks that have failed to create or have been deleted by specifying the unique stack identifier (stack ID). /// /// - Parameter DescribeStackEventsInput : The input for [DescribeStackEvents] action. /// @@ -2212,7 +2212,7 @@ extension CloudFormationClient { /// Performs the `DescribeStackResourceDrifts` operation on the `CloudFormation` service. /// - /// Returns drift information for the resources that have been checked for drift in the specified stack. This includes actual and expected configuration values for resources where CloudFormation detects configuration drift. For a given stack, there will be one StackResourceDrift for each stack resource that has been checked for drift. Resources that haven't yet been checked for drift aren't included. Resources that don't currently support drift detection aren't checked, and so not included. For a list of resources that support drift detection, see [Resources that Support Drift Detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html). Use [DetectStackResourceDrift] to detect drift on individual resources, or [DetectStackDrift] to detect drift on all supported resources for a given stack. + /// Returns drift information for the resources that have been checked for drift in the specified stack. This includes actual and expected configuration values for resources where CloudFormation detects configuration drift. For a given stack, there will be one StackResourceDrift for each stack resource that has been checked for drift. Resources that haven't yet been checked for drift aren't included. Resources that don't currently support drift detection aren't checked, and so not included. For a list of resources that support drift detection, see [Resource type support for imports and drift detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html). Use [DetectStackResourceDrift] to detect drift on individual resources, or [DetectStackDrift] to detect drift on all supported resources for a given stack. /// /// - Parameter DescribeStackResourceDriftsInput : [no documentation found] /// @@ -2276,7 +2276,7 @@ extension CloudFormationClient { /// Performs the `DescribeStackResources` operation on the `CloudFormation` service. /// - /// Returns Amazon Web Services resource descriptions for running and deleted stacks. If StackName is specified, all the associated resources that are part of the stack are returned. If PhysicalResourceId is specified, the associated resources of the stack that the resource belongs to are returned. Only the first 100 resources will be returned. If your stack has more resources than this, you should use ListStackResources instead. For deleted stacks, DescribeStackResources returns resource information for up to 90 days after the stack has been deleted. You must specify either StackName or PhysicalResourceId, but not both. In addition, you can specify LogicalResourceId to filter the returned result. For more information about resources, the LogicalResourceId and PhysicalResourceId, go to the [CloudFormation User Guide](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/). A ValidationError is returned if you specify both StackName and PhysicalResourceId in the same request. + /// Returns Amazon Web Services resource descriptions for running and deleted stacks. If StackName is specified, all the associated resources that are part of the stack are returned. If PhysicalResourceId is specified, the associated resources of the stack that the resource belongs to are returned. Only the first 100 resources will be returned. If your stack has more resources than this, you should use ListStackResources instead. For deleted stacks, DescribeStackResources returns resource information for up to 90 days after the stack has been deleted. You must specify either StackName or PhysicalResourceId, but not both. In addition, you can specify LogicalResourceId to filter the returned result. For more information about resources, the LogicalResourceId and PhysicalResourceId, see the [CloudFormation User Guide](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/). A ValidationError is returned if you specify both StackName and PhysicalResourceId in the same request. /// /// - Parameter DescribeStackResourcesInput : The input for [DescribeStackResources] action. /// @@ -2479,7 +2479,7 @@ extension CloudFormationClient { /// Performs the `DescribeStacks` operation on the `CloudFormation` service. /// - /// Returns the description for the specified stack; if no stack name was specified, then it returns the description for all the stacks created. For more information about a stack's event history, see [CloudFormation stack creation events](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stack-resource-configuration-complete.html) in the CloudFormation User Guide. If the stack doesn't exist, a ValidationError is returned. + /// Returns the description for the specified stack; if no stack name was specified, then it returns the description for all the stacks created. For more information about a stack's event history, see [Understand CloudFormation stack creation events](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stack-resource-configuration-complete.html) in the CloudFormation User Guide. If the stack doesn't exist, a ValidationError is returned. /// /// - Parameter DescribeStacksInput : The input for [DescribeStacks] action. /// @@ -2682,7 +2682,7 @@ extension CloudFormationClient { /// Performs the `DetectStackDrift` operation on the `CloudFormation` service. /// - /// Detects whether a stack's actual configuration differs, or has drifted, from its expected configuration, as defined in the stack template and any values specified as template parameters. For each resource in the stack that supports drift detection, CloudFormation compares the actual configuration of the resource with its expected template configuration. Only resource properties explicitly defined in the stack template are checked for drift. A stack is considered to have drifted if one or more of its resources differ from their expected template configurations. For more information, see [Detecting Unregulated Configuration Changes to Stacks and Resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html). Use DetectStackDrift to detect drift on all supported resources for a given stack, or [DetectStackResourceDrift] to detect drift on individual resources. For a list of stack resources that currently support drift detection, see [Resources that Support Drift Detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html). DetectStackDrift can take up to several minutes, depending on the number of resources contained within the stack. Use [DescribeStackDriftDetectionStatus] to monitor the progress of a detect stack drift operation. Once the drift detection operation has completed, use [DescribeStackResourceDrifts] to return drift information about the stack and its resources. When detecting drift on a stack, CloudFormation doesn't detect drift on any nested stacks belonging to that stack. Perform DetectStackDrift directly on the nested stack itself. + /// Detects whether a stack's actual configuration differs, or has drifted, from its expected configuration, as defined in the stack template and any values specified as template parameters. For each resource in the stack that supports drift detection, CloudFormation compares the actual configuration of the resource with its expected template configuration. Only resource properties explicitly defined in the stack template are checked for drift. A stack is considered to have drifted if one or more of its resources differ from their expected template configurations. For more information, see [Detect unmanaged configuration changes to stacks and resources with drift detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html). Use DetectStackDrift to detect drift on all supported resources for a given stack, or [DetectStackResourceDrift] to detect drift on individual resources. For a list of stack resources that currently support drift detection, see [Resource type support for imports and drift detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html). DetectStackDrift can take up to several minutes, depending on the number of resources contained within the stack. Use [DescribeStackDriftDetectionStatus] to monitor the progress of a detect stack drift operation. Once the drift detection operation has completed, use [DescribeStackResourceDrifts] to return drift information about the stack and its resources. When detecting drift on a stack, CloudFormation doesn't detect drift on any nested stacks belonging to that stack. Perform DetectStackDrift directly on the nested stack itself. /// /// - Parameter DetectStackDriftInput : [no documentation found] /// @@ -2746,7 +2746,7 @@ extension CloudFormationClient { /// Performs the `DetectStackResourceDrift` operation on the `CloudFormation` service. /// - /// Returns information about whether a resource's actual configuration differs, or has drifted, from its expected configuration, as defined in the stack template and any values specified as template parameters. This information includes actual and expected property values for resources in which CloudFormation detects drift. Only resource properties explicitly defined in the stack template are checked for drift. For more information about stack and resource drift, see [Detecting Unregulated Configuration Changes to Stacks and Resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html). Use DetectStackResourceDrift to detect drift on individual resources, or [DetectStackDrift] to detect drift on all resources in a given stack that support drift detection. Resources that don't currently support drift detection can't be checked. For a list of resources that support drift detection, see [Resources that Support Drift Detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html). + /// Returns information about whether a resource's actual configuration differs, or has drifted, from its expected configuration, as defined in the stack template and any values specified as template parameters. This information includes actual and expected property values for resources in which CloudFormation detects drift. Only resource properties explicitly defined in the stack template are checked for drift. For more information about stack and resource drift, see [Detect unmanaged configuration changes to stacks and resources with drift detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html). Use DetectStackResourceDrift to detect drift on individual resources, or [DetectStackDrift] to detect drift on all resources in a given stack that support drift detection. Resources that don't currently support drift detection can't be checked. For a list of resources that support drift detection, see [Resource type support for imports and drift detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html). /// /// - Parameter DetectStackResourceDriftInput : [no documentation found] /// @@ -3438,7 +3438,7 @@ extension CloudFormationClient { /// Performs the `ListExports` operation on the `CloudFormation` service. /// - /// Lists all exported output values in the account and Region in which you call this action. Use this action to see the exported output values that you can import into other stacks. To import values, use the [ Fn::ImportValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-importvalue.html) function. For more information, see [ CloudFormation export stack output values](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-exports.html). + /// Lists all exported output values in the account and Region in which you call this action. Use this action to see the exported output values that you can import into other stacks. To import values, use the [ Fn::ImportValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-importvalue.html) function. For more information, see [Get exported outputs from a deployed CloudFormation stack](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-exports.html). /// /// - Parameter ListExportsInput : [no documentation found] /// @@ -4587,7 +4587,7 @@ extension CloudFormationClient { /// Performs the `PublishType` operation on the `CloudFormation` service. /// - /// Publishes the specified extension to the CloudFormation registry as a public extension in this Region. Public extensions are available for use by all CloudFormation users. For more information about publishing extensions, see [Publishing extensions to make them available for public use](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html) in the CloudFormation CLI User Guide. To publish an extension, you must be registered as a publisher with CloudFormation. For more information, see [RegisterPublisher](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterPublisher.html). + /// Publishes the specified extension to the CloudFormation registry as a public extension in this Region. Public extensions are available for use by all CloudFormation users. For more information about publishing extensions, see [Publishing extensions to make them available for public use](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html) in the CloudFormation Command Line Interface (CLI) User Guide. To publish an extension, you must be registered as a publisher with CloudFormation. For more information, see [RegisterPublisher](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterPublisher.html). /// /// - Parameter PublishTypeInput : [no documentation found] /// @@ -4727,7 +4727,7 @@ extension CloudFormationClient { /// Performs the `RegisterPublisher` operation on the `CloudFormation` service. /// - /// Registers your account as a publisher of public extensions in the CloudFormation registry. Public extensions are available for use by all CloudFormation users. This publisher ID applies to your account in all Amazon Web Services Regions. For information about requirements for registering as a public extension publisher, see [Registering your account to publish CloudFormation extensions](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html#publish-extension-prereqs) in the CloudFormation CLI User Guide. + /// Registers your account as a publisher of public extensions in the CloudFormation registry. Public extensions are available for use by all CloudFormation users. This publisher ID applies to your account in all Amazon Web Services Regions. For information about requirements for registering as a public extension publisher, see [Prerequisite: Registering your account to publish CloudFormation extensions](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html#publish-extension-prereqs) in the CloudFormation Command Line Interface (CLI) User Guide. /// /// - Parameter RegisterPublisherInput : [no documentation found] /// @@ -4805,7 +4805,7 @@ extension CloudFormationClient { /// * Making the extension available for use in your account. /// /// - /// For more information about how to develop extensions and ready them for registration, see [Creating Resource Providers](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-types.html) in the CloudFormation CLI User Guide. You can have a maximum of 50 resource extension versions registered at a time. This maximum is per account and per Region. Use [DeregisterType](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeregisterType.html) to deregister specific extension versions if necessary. Once you have initiated a registration request using [RegisterType], you can use [DescribeTypeRegistration] to monitor the progress of the registration request. Once you have registered a private extension in your account and Region, use [SetTypeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_SetTypeConfiguration.html) to specify configuration properties for the extension. For more information, see [Configuring extensions at the account level](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-private.html#registry-set-configuration) in the CloudFormation User Guide. + /// For more information about how to develop extensions and ready them for registration, see [Creating resource types using the CloudFormation CLI](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-types.html) in the CloudFormation Command Line Interface (CLI) User Guide. You can have a maximum of 50 resource extension versions registered at a time. This maximum is per account and per Region. Use [DeregisterType](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeregisterType.html) to deregister specific extension versions if necessary. Once you have initiated a registration request using [RegisterType], you can use [DescribeTypeRegistration] to monitor the progress of the registration request. Once you have registered a private extension in your account and Region, use [SetTypeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_SetTypeConfiguration.html) to specify configuration properties for the extension. For more information, see [Edit configuration data for extensions in your account](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-set-configuration.html) in the CloudFormation User Guide. /// /// - Parameter RegisterTypeInput : [no documentation found] /// @@ -5017,7 +5017,7 @@ extension CloudFormationClient { /// Performs the `SetTypeConfiguration` operation on the `CloudFormation` service. /// - /// Specifies the configuration data for a registered CloudFormation extension, in the given account and Region. To view the current configuration data for an extension, refer to the ConfigurationSchema element of [DescribeType](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DescribeType.html). For more information, see [Configuring extensions at the account level](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-private.html#registry-set-configuration) in the CloudFormation User Guide. It's strongly recommended that you use dynamic references to restrict sensitive configuration definitions, such as third-party credentials. For more details on dynamic references, see [Using dynamic references to specify template values](https://docs.aws.amazon.com/) in the CloudFormation User Guide. + /// Specifies the configuration data for a registered CloudFormation extension, in the given account and Region. To view the current configuration data for an extension, refer to the ConfigurationSchema element of [DescribeType](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DescribeType.html). For more information, see [Edit configuration data for extensions in your account](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-set-configuration.html) in the CloudFormation User Guide. It's strongly recommended that you use dynamic references to restrict sensitive configuration definitions, such as third-party credentials. For more details on dynamic references, see [Specify values stored in other services using dynamic references](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) in the CloudFormation User Guide. /// /// - Parameter SetTypeConfigurationInput : [no documentation found] /// @@ -5375,7 +5375,7 @@ extension CloudFormationClient { /// * For modules, this includes determining if the module's model meets all necessary requirements. /// /// - /// For more information, see [Testing your public extension prior to publishing](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html#publish-extension-testing) in the CloudFormation CLI User Guide. If you don't specify a version, CloudFormation uses the default version of the extension in your account and Region for testing. To perform testing, CloudFormation assumes the execution role specified when the type was registered. For more information, see [RegisterType](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html). Once you've initiated testing on an extension using TestType, you can pass the returned TypeVersionArn into [DescribeType](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DescribeType.html) to monitor the current test status and test status description for the extension. An extension must have a test status of PASSED before it can be published. For more information, see [Publishing extensions to make them available for public use](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-publish.html) in the CloudFormation CLI User Guide. + /// For more information, see [Testing your public extension before publishing](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html#publish-extension-testing) in the CloudFormation Command Line Interface (CLI) User Guide. If you don't specify a version, CloudFormation uses the default version of the extension in your account and Region for testing. To perform testing, CloudFormation assumes the execution role specified when the type was registered. For more information, see [RegisterType](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html). Once you've initiated testing on an extension using TestType, you can pass the returned TypeVersionArn into [DescribeType](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DescribeType.html) to monitor the current test status and test status description for the extension. An extension must have a test status of PASSED before it can be published. For more information, see [Publishing extensions to make them available for public use](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-publish.html) in the CloudFormation Command Line Interface (CLI) User Guide. /// /// - Parameter TestTypeInput : [no documentation found] /// @@ -5516,7 +5516,7 @@ extension CloudFormationClient { /// Performs the `UpdateStack` operation on the `CloudFormation` service. /// - /// Updates a stack as specified in the template. After the call completes successfully, the stack update starts. You can check the status of the stack through the [DescribeStacks] action. To get a copy of the template for an existing stack, you can use the [GetTemplate] action. For more information about creating an update template, updating a stack, and monitoring the progress of the update, see [Updating a Stack](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks.html). + /// Updates a stack as specified in the template. After the call completes successfully, the stack update starts. You can check the status of the stack through the [DescribeStacks] action. To get a copy of the template for an existing stack, you can use the [GetTemplate] action. For more information about updating a stack and monitoring the progress of the update, see [Managing Amazon Web Services resources as a single unit with CloudFormation stacks](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacks.html) in the CloudFormation User Guide. /// /// - Parameter UpdateStackInput : The input for an [UpdateStack] action. /// @@ -5736,7 +5736,7 @@ extension CloudFormationClient { /// Performs the `UpdateTerminationProtection` operation on the `CloudFormation` service. /// - /// Updates termination protection for the specified stack. If a user attempts to delete a stack with termination protection enabled, the operation fails and the stack remains unchanged. For more information, see [Protecting a Stack From Being Deleted](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html) in the CloudFormation User Guide. For [nested stacks](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html), termination protection is set on the root stack and can't be changed directly on the nested stack. + /// Updates termination protection for the specified stack. If a user attempts to delete a stack with termination protection enabled, the operation fails and the stack remains unchanged. For more information, see [Protect a CloudFormation stack from being deleted](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html) in the CloudFormation User Guide. For [nested stacks](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html), termination protection is set on the root stack and can't be changed directly on the nested stack. /// /// - Parameter UpdateTerminationProtectionInput : [no documentation found] /// diff --git a/Sources/Services/AWSCloudFormation/Sources/AWSCloudFormation/Models.swift b/Sources/Services/AWSCloudFormation/Sources/AWSCloudFormation/Models.swift index 4c3832e6250..0ddcd056ea7 100644 --- a/Sources/Services/AWSCloudFormation/Sources/AWSCloudFormation/Models.swift +++ b/Sources/Services/AWSCloudFormation/Sources/AWSCloudFormation/Models.swift @@ -164,7 +164,7 @@ extension CloudFormationClientTypes { /// * Number of stack outputs /// /// - /// For more information about these account limits, and other CloudFormation limits, see [CloudFormation quotas](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html) in the CloudFormation User Guide. + /// For more information about these account limits, and other CloudFormation limits, see [Understand CloudFormation quotas](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html) in the CloudFormation User Guide. public struct AccountLimit: Swift.Sendable { /// The name of the account limit. Values: ConcurrentResourcesLimit | StackLimit | StackOutputsLimit public var name: Swift.String? @@ -244,7 +244,7 @@ public struct ActivateOrganizationsAccessOutput: Swift.Sendable { public struct CFNRegistryException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { public struct Properties { - /// An message with details about the error that occurred. + /// A message with details about the error that occurred. public internal(set) var message: Swift.String? = nil } @@ -269,7 +269,7 @@ public struct CFNRegistryException: ClientRuntime.ModeledError, AWSClientRuntime public struct TypeNotFoundException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { public struct Properties { - /// An message with details about the error that occurred. + /// A message with details about the error that occurred. public internal(set) var message: Swift.String? = nil } @@ -517,7 +517,7 @@ extension CloudFormationClientTypes { public struct TypeConfigurationNotFoundException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { public struct Properties { - /// An message with details about the error that occurred. + /// A message with details about the error that occurred. public internal(set) var message: Swift.String? = nil } @@ -609,7 +609,7 @@ extension CloudFormationClientTypes { extension CloudFormationClientTypes { - /// Detailed information concerning the specification of a CloudFormation extension in a given account and Region. For more information, see [Configuring extensions at the account level](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-private.html#registry-set-configuration) in the CloudFormation User Guide. + /// Detailed information concerning the specification of a CloudFormation extension in a given account and Region. For more information, see [Edit configuration data for extensions in your account](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-set-configuration.html) in the CloudFormation User Guide. public struct TypeConfigurationDetails: Swift.Sendable { /// The alias specified for this configuration, if one was specified when the configuration was set. public var alias: Swift.String? @@ -1008,7 +1008,7 @@ extension CloudFormationClientTypes { public var name: Swift.String? /// The property path of the property. public var path: Swift.String? - /// If the Attribute value is Properties, indicates whether a change to this property causes the resource to be recreated. The value can be Never, Always, or Conditionally. To determine the conditions for a Conditionally recreation, see the update behavior for that [property](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html) in the CloudFormation User Guide. + /// If the Attribute value is Properties, indicates whether a change to this property causes the resource to be recreated. The value can be Never, Always, or Conditionally. To determine the conditions for a Conditionally recreation, see the update behavior for that property in the [Amazon Web Services resource and property types reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html) in the CloudFormation User Guide. public var requiresRecreation: CloudFormationClientTypes.RequiresRecreation? public init( @@ -1072,9 +1072,9 @@ extension CloudFormationClientTypes { extension CloudFormationClientTypes { - /// Contains information about the module from which the resource was created, if the resource was created from a module included in the stack template. For more information about modules, see [Using modules to encapsulate and reuse resource configurations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/modules.html) in the CloudFormation User Guide. + /// Contains information about the module from which the resource was created, if the resource was created from a module included in the stack template. For more information about modules, see [Create reusable resource configurations that can be included across templates with CloudFormation modules](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/modules.html) in the CloudFormation User Guide. public struct ModuleInfo: Swift.Sendable { - /// A concatenated list of the logical IDs of the module or modules containing the resource. Modules are listed starting with the inner-most nested module, and separated by /. In the following example, the resource was created from a module, moduleA, that's nested inside a parent module, moduleB. moduleA/moduleB For more information, see [Referencing resources in a module](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/modules.html#module-ref-resources) in the CloudFormation User Guide. + /// A concatenated list of the logical IDs of the module or modules containing the resource. Modules are listed starting with the inner-most nested module, and separated by /. In the following example, the resource was created from a module, moduleA, that's nested inside a parent module, moduleB. moduleA/moduleB For more information, see [Reference module resources in CloudFormation templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/module-ref-resources.html) in the CloudFormation User Guide. public var logicalIdHierarchy: Swift.String? /// A concatenated list of the module type or types containing the resource. Module types are listed starting with the inner-most nested module, and separated by /. In the following example, the resource was created from a module of type AWS::First::Example::MODULE, that's nested inside a parent module of type AWS::Second::Example::MODULE. AWS::First::Example::MODULE/AWS::Second::Example::MODULE public var typeHierarchy: Swift.String? @@ -1197,7 +1197,7 @@ extension CloudFormationClientTypes { /// /// * ReplaceAndSnapshot The resource will be replaced and then have a snapshot taken. public var policyAction: CloudFormationClientTypes.PolicyAction? - /// For the Modify action, indicates whether CloudFormation will replace the resource by creating a new one and deleting the old one. This value depends on the value of the RequiresRecreation property in the ResourceTargetDefinition structure. For example, if the RequiresRecreation field is Always and the Evaluation field is Static, Replacement is True. If the RequiresRecreation field is Always and the Evaluation field is Dynamic, Replacement is Conditionally. If you have multiple changes with different RequiresRecreation values, the Replacement value depends on the change with the most impact. A RequiresRecreation value of Always has the most impact, followed by Conditionally, and then Never. + /// For the Modify action, indicates whether CloudFormation will replace the resource by creating a new one and deleting the old one. This value depends on the value of the RequiresRecreation property in the ResourceTargetDefinition structure. For example, if the RequiresRecreation field is Always and the Evaluation field is Static, Replacement is True. If the RequiresRecreation field is Always and the Evaluation field is Dynamic, Replacement is Conditional. If you have multiple changes with different RequiresRecreation values, the Replacement value depends on the change with the most impact. A RequiresRecreation value of Always has the most impact, followed by Conditional, and then Never. public var replacement: CloudFormationClientTypes.Replacement? /// The type of CloudFormation resource, such as AWS::S3::Bucket. public var resourceType: Swift.String? @@ -1710,9 +1710,9 @@ extension CloudFormationClientTypes { public struct ContinueUpdateRollbackInput: Swift.Sendable { /// A unique identifier for this ContinueUpdateRollback request. Specify this token if you plan to retry requests so that CloudFormation knows that you're not attempting to continue the rollback to a stack with the same name. You might retry ContinueUpdateRollback requests to ensure that CloudFormation successfully received them. public var clientRequestToken: Swift.String? - /// A list of the logical IDs of the resources that CloudFormation skips during the continue update rollback operation. You can specify only resources that are in the UPDATE_FAILED state because a rollback failed. You can't specify resources that are in the UPDATE_FAILED state for other reasons, for example, because an update was canceled. To check why a resource update failed, use the [DescribeStackResources] action, and view the resource status reason. Specify this property to skip rolling back resources that CloudFormation can't successfully roll back. We recommend that you [ troubleshoot](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html#troubleshooting-errors-update-rollback-failed) resources before skipping them. CloudFormation sets the status of the specified resources to UPDATE_COMPLETE and continues to roll back the stack. After the rollback is complete, the state of the skipped resources will be inconsistent with the state of the resources in the stack template. Before performing another stack update, you must update the stack or resources to be consistent with each other. If you don't, subsequent stack updates might fail, and the stack will become unrecoverable. Specify the minimum number of resources required to successfully roll back your stack. For example, a failed resource update might cause dependent resources to fail. In this case, it might not be necessary to skip the dependent resources. To skip resources that are part of nested stacks, use the following format: NestedStackName.ResourceLogicalID. If you want to specify the logical ID of a stack resource (Type: AWS::CloudFormation::Stack) in the ResourcesToSkip list, then its corresponding embedded stack must be in one of the following states: DELETE_IN_PROGRESS, DELETE_COMPLETE, or DELETE_FAILED. Don't confuse a child stack's name with its corresponding logical ID defined in the parent stack. For an example of a continue update rollback operation with nested stacks, see [Using ResourcesToSkip to recover a nested stacks hierarchy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-continueupdaterollback.html#nested-stacks). + /// A list of the logical IDs of the resources that CloudFormation skips during the continue update rollback operation. You can specify only resources that are in the UPDATE_FAILED state because a rollback failed. You can't specify resources that are in the UPDATE_FAILED state for other reasons, for example, because an update was canceled. To check why a resource update failed, use the [DescribeStackResources] action, and view the resource status reason. Specify this property to skip rolling back resources that CloudFormation can't successfully roll back. We recommend that you [ troubleshoot](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html#troubleshooting-errors-update-rollback-failed) resources before skipping them. CloudFormation sets the status of the specified resources to UPDATE_COMPLETE and continues to roll back the stack. After the rollback is complete, the state of the skipped resources will be inconsistent with the state of the resources in the stack template. Before performing another stack update, you must update the stack or resources to be consistent with each other. If you don't, subsequent stack updates might fail, and the stack will become unrecoverable. Specify the minimum number of resources required to successfully roll back your stack. For example, a failed resource update might cause dependent resources to fail. In this case, it might not be necessary to skip the dependent resources. To skip resources that are part of nested stacks, use the following format: NestedStackName.ResourceLogicalID. If you want to specify the logical ID of a stack resource (Type: AWS::CloudFormation::Stack) in the ResourcesToSkip list, then its corresponding embedded stack must be in one of the following states: DELETE_IN_PROGRESS, DELETE_COMPLETE, or DELETE_FAILED. Don't confuse a child stack's name with its corresponding logical ID defined in the parent stack. For an example of a continue update rollback operation with nested stacks, see [Continue rolling back from failed nested stack updates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-continueupdaterollback.html#nested-stacks). public var resourcesToSkip: [Swift.String]? - /// The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) role that CloudFormation assumes to roll back the stack. CloudFormation uses the role's credentials to make calls on your behalf. CloudFormation always uses this role for all future operations on the stack. Provided that users have permission to operate on the stack, CloudFormation uses this role even if the users don't have permission to pass it. Ensure that the role grants least permission. If you don't specify a value, CloudFormation uses the role that was previously associated with the stack. If no role is available, CloudFormation uses a temporary session that's generated from your user credentials. + /// The Amazon Resource Name (ARN) of an IAM role that CloudFormation assumes to roll back the stack. CloudFormation uses the role's credentials to make calls on your behalf. CloudFormation always uses this role for all future operations on the stack. Provided that users have permission to operate on the stack, CloudFormation uses this role even if the users don't have permission to pass it. Ensure that the role grants least permission. If you don't specify a value, CloudFormation uses the role that was previously associated with the stack. If no role is available, CloudFormation uses a temporary session that's generated from your user credentials. public var roleARN: Swift.String? /// The name or the unique ID of the stack that you want to continue rolling back. Don't specify the name of a nested stack (a stack that was created by using the AWS::CloudFormation::Stack resource). Instead, use this operation on the parent stack (the stack that contains the AWS::CloudFormation::Stack resource). /// This member is required. @@ -1826,7 +1826,7 @@ extension CloudFormationClientTypes { public var parameterKey: Swift.String? /// The input value associated with the parameter. public var parameterValue: Swift.String? - /// Read-only. The value that corresponds to a SSM parameter key. This field is returned only for [ SSM](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html#aws-ssm-parameter-types) parameter types in the template. + /// Read-only. The value that corresponds to a Systems Manager parameter key. This field is returned only for Systems Manager parameter types in the template. For more information, see [Use CloudFormation-supplied parameter types](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-supplied-parameter-types.html) in the CloudFormation User Guide. public var resolvedValue: Swift.String? /// During a stack update, use the existing parameter value that the stack is using for a given parameter key. If you specify true, do not specify a parameter value. public var usePreviousValue: Swift.Bool? @@ -1856,7 +1856,7 @@ extension CloudFormationClientTypes { /// A key-value pair that identifies the target resource. The key is an identifier property (for example, BucketName for AWS::S3::Bucket resources) and the value is the actual property value (for example, MyS3Bucket). /// This member is required. public var resourceIdentifier: [Swift.String: Swift.String]? - /// The type of resource to import into your stack, such as AWS::S3::Bucket. For a list of supported resource types, see [Resources that support import operations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html) in the CloudFormation User Guide. + /// The type of resource to import into your stack, such as AWS::S3::Bucket. For a list of supported resource types, see [Resource type support for imports and drift detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html) in the CloudFormation User Guide. /// This member is required. public var resourceType: Swift.String? @@ -1880,7 +1880,7 @@ extension CloudFormationClientTypes { /// The Amazon Resource Name (ARN) of the rollback trigger. If a specified trigger is missing, the entire stack operation fails and is rolled back. /// This member is required. public var arn: Swift.String? - /// The resource type of the rollback trigger. Specify either [AWS::CloudWatch::Alarm](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html) or [AWS::CloudWatch::CompositeAlarm](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-compositealarm.html) resource types. + /// The resource type of the rollback trigger. Specify either [AWS::CloudWatch::Alarm](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-alarm.html) or [AWS::CloudWatch::CompositeAlarm](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-compositealarm.html) resource types. /// This member is required. public var type: Swift.String? @@ -1897,7 +1897,7 @@ extension CloudFormationClientTypes { extension CloudFormationClientTypes { - /// Structure containing the rollback triggers for CloudFormation to monitor during stack creation and updating operations, and for the specified monitoring period afterwards. Rollback triggers enable you to have CloudFormation monitor the state of your application during stack creation and updating, and to roll back that operation if the application breaches the threshold of any of the alarms you've specified. For more information, see [Monitor and Roll Back Stack Operations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-rollback-triggers.html). + /// Structure containing the rollback triggers for CloudFormation to monitor during stack creation and updating operations, and for the specified monitoring period afterwards. Rollback triggers enable you to have CloudFormation monitor the state of your application during stack creation and updating, and to roll back that operation if the application breaches the threshold of any of the alarms you've specified. For more information, see [Roll back your CloudFormation stack on alarm breach with rollback triggers](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-rollback-triggers.html). public struct RollbackConfiguration: Swift.Sendable { /// The amount of time, in minutes, during which CloudFormation should monitor all the rollback triggers after the stack creation or update operation deploys all necessary resources. The default is 0 minutes. If you specify a monitoring period but don't specify any rollback triggers, CloudFormation still waits the specified period of time before cleaning up old resources after update operations. You can use this monitoring period to perform any manual stack validation desired, and manually cancel the stack creation or update (using [CancelUpdateStack](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CancelUpdateStack.html), for example) as necessary. If you specify 0 for this parameter, CloudFormation still monitors the specified rollback triggers during stack creation and update operations. Then, for update operations, it begins disposing of old resources immediately once the operation completes. public var monitoringTimeInMinutes: Swift.Int? @@ -1928,7 +1928,7 @@ extension CloudFormationClientTypes { /// The Tag type enables you to specify a key-value pair that can be used to store information about an CloudFormation stack. public struct Tag: Swift.Sendable { - /// Required. A string used to identify this tag. You can specify a maximum of 128 characters for a tag key. Tags owned by Amazon Web Services (Amazon Web Services) have the reserved prefix: aws:. + /// Required. A string used to identify this tag. You can specify a maximum of 128 characters for a tag key. Tags owned by Amazon Web Services have the reserved prefix: aws:. /// This member is required. public var key: Swift.String? /// Required. A string containing the value for this tag. You can specify a maximum of 256 characters for a tag value. @@ -1950,7 +1950,7 @@ extension CloudFormationClientTypes { public struct CreateChangeSetInput: Swift.Sendable { /// In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order for CloudFormation to create the stack. /// - /// * CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include resources that can affect permissions in your Amazon Web Services account; for example, by creating new Identity and Access Management (IAM) users. For those stacks, you must explicitly acknowledge this by specifying one of these capabilities. The following IAM resources require you to specify either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability. + /// * CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include resources that can affect permissions in your Amazon Web Services account; for example, by creating new IAM users. For those stacks, you must explicitly acknowledge this by specifying one of these capabilities. The following IAM resources require you to specify either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability. /// /// * If you have IAM resources, you can specify either capability. /// @@ -1961,24 +1961,24 @@ public struct CreateChangeSetInput: Swift.Sendable { /// /// If your stack template contains these resources, we suggest that you review all permissions associated with them and edit their permissions if necessary. /// - /// * [AWS::IAM::AccessKey](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html) + /// * [AWS::IAM::AccessKey](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-accesskey.html) /// - /// * [ AWS::IAM::Group](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html) + /// * [ AWS::IAM::Group](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-group.html) /// /// * [AWS::IAM::InstanceProfile](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html) /// - /// * [ AWS::IAM::Policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html) + /// * [ AWS::IAM::Policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html) /// /// * [ AWS::IAM::Role](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html) /// - /// * [ AWS::IAM::User](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html) + /// * [ AWS::IAM::User](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-user.html) /// - /// * [AWS::IAM::UserToGroupAddition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html) + /// * [AWS::IAM::UserToGroupAddition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-usertogroupaddition.html) /// /// - /// For more information, see [Acknowledging IAM resources in CloudFormation templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities). + /// For more information, see [Acknowledging IAM resources in CloudFormation templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities). /// - /// * CAPABILITY_AUTO_EXPAND Some template contain macros. Macros perform custom processing on templates; this can include simple actions like find-and-replace operations, all the way to extensive transformations of entire templates. Because of this, users typically create a change set from the processed template, so that they can review the changes resulting from the macros before actually creating the stack. If your stack template contains one or more macros, and you choose to create a stack directly from the processed template, without first reviewing the resulting changes in a change set, you must acknowledge this capability. This includes the [AWS::Include](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html) and [AWS::Serverless](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html) transforms, which are macros hosted by CloudFormation. This capacity doesn't apply to creating change sets, and specifying it when creating change sets has no effect. If you want to create a stack from a stack template that contains macros and nested stacks, you must create or update the stack directly from the template using the [CreateStack] or [UpdateStack] action, and specifying this capability. For more information about macros, see [Using CloudFormation macros to perform custom processing on templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html). + /// * CAPABILITY_AUTO_EXPAND Some template contain macros. Macros perform custom processing on templates; this can include simple actions like find-and-replace operations, all the way to extensive transformations of entire templates. Because of this, users typically create a change set from the processed template, so that they can review the changes resulting from the macros before actually creating the stack. If your stack template contains one or more macros, and you choose to create a stack directly from the processed template, without first reviewing the resulting changes in a change set, you must acknowledge this capability. This includes the [AWS::Include](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html) and [AWS::Serverless](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html) transforms, which are macros hosted by CloudFormation. This capacity doesn't apply to creating change sets, and specifying it when creating change sets has no effect. If you want to create a stack from a stack template that contains macros and nested stacks, you must create or update the stack directly from the template using the [CreateStack] or [UpdateStack] action, and specifying this capability. For more information about macros, see [Perform custom processing on CloudFormation templates with template macros](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html). /// /// /// Only one of the Capabilities and ResourceType parameters can be specified. @@ -1986,17 +1986,17 @@ public struct CreateChangeSetInput: Swift.Sendable { /// The name of the change set. The name must be unique among all change sets that are associated with the specified stack. A change set name can contain only alphanumeric, case sensitive characters, and hyphens. It must start with an alphabetical character and can't exceed 128 characters. /// This member is required. public var changeSetName: Swift.String? - /// The type of change set operation. To create a change set for a new stack, specify CREATE. To create a change set for an existing stack, specify UPDATE. To create a change set for an import operation, specify IMPORT. If you create a change set for a new stack, CloudFormation creates a stack with a unique stack ID, but no template or resources. The stack will be in the [REVIEW_IN_PROGRESS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-describing-stacks.html#d0e11995) state until you execute the change set. By default, CloudFormation specifies UPDATE. You can't use the UPDATE type to create a change set for a new stack or the CREATE type to create a change set for an existing stack. + /// The type of change set operation. To create a change set for a new stack, specify CREATE. To create a change set for an existing stack, specify UPDATE. To create a change set for an import operation, specify IMPORT. If you create a change set for a new stack, CloudFormation creates a stack with a unique stack ID, but no template or resources. The stack will be in the REVIEW_IN_PROGRESS state until you execute the change set. By default, CloudFormation specifies UPDATE. You can't use the UPDATE type to create a change set for a new stack or the CREATE type to create a change set for an existing stack. public var changeSetType: CloudFormationClientTypes.ChangeSetType? /// A unique identifier for this CreateChangeSet request. Specify this token if you plan to retry requests so that CloudFormation knows that you're not attempting to create another change set with the same name. You might retry CreateChangeSet requests to ensure that CloudFormation successfully received them. public var clientToken: Swift.String? /// A description to help you identify this change set. public var description: Swift.String? - /// Indicates if the change set imports resources that already exist. This parameter can only import resources that have custom names in templates. For more information, see [name type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html) in the CloudFormation User Guide. To import resources that do not accept custom names, such as EC2 instances, use the resource import feature instead. For more information, see [Bringing existing resources into CloudFormation management](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import.html) in the CloudFormation User Guide. + /// Indicates if the change set imports resources that already exist. This parameter can only import resources that have custom names in templates. For more information, see [name type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html) in the CloudFormation User Guide. To import resources that do not accept custom names, such as EC2 instances, use the resource import feature instead. For more information, see [Import Amazon Web Services resources into a CloudFormation stack with a resource import](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import.html) in the CloudFormation User Guide. public var importExistingResources: Swift.Bool? /// Creates a change set for the all nested stacks specified in the template. The default behavior of this action is set to False. To include nested sets in a change set, specify True. public var includeNestedStacks: Swift.Bool? - /// The Amazon Resource Names (ARNs) of Amazon Simple Notification Service (Amazon SNS) topics that CloudFormation associates with the stack. To remove all associated notification topics, specify an empty list. + /// The Amazon Resource Names (ARNs) of Amazon SNS topics that CloudFormation associates with the stack. To remove all associated notification topics, specify an empty list. public var notificationARNs: [Swift.String]? /// Determines what action will be taken if stack creation fails. If this parameter is specified, the DisableRollback parameter to the [ExecuteChangeSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ExecuteChangeSet.html) API operation must not be specified. This must be one of these values: /// @@ -2011,11 +2011,11 @@ public struct CreateChangeSetInput: Swift.Sendable { public var onStackFailure: CloudFormationClientTypes.OnStackFailure? /// A list of Parameter structures that specify input parameters for the change set. For more information, see the [Parameter] data type. public var parameters: [CloudFormationClientTypes.Parameter]? - /// The template resource types that you have permissions to work with if you execute this change set, such as AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance. If the list of resource types doesn't include a resource type that you're updating, the stack update fails. By default, CloudFormation grants permissions to all resource types. Identity and Access Management (IAM) uses this parameter for condition keys in IAM policies for CloudFormation. For more information, see [Controlling access with Identity and Access Management](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html) in the CloudFormation User Guide. Only one of the Capabilities and ResourceType parameters can be specified. + /// The template resource types that you have permissions to work with if you execute this change set, such as AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance. If the list of resource types doesn't include a resource type that you're updating, the stack update fails. By default, CloudFormation grants permissions to all resource types. IAM uses this parameter for condition keys in IAM policies for CloudFormation. For more information, see [Control access with Identity and Access Management](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html) in the CloudFormation User Guide. Only one of the Capabilities and ResourceType parameters can be specified. public var resourceTypes: [Swift.String]? /// The resources to import into your stack. public var resourcesToImport: [CloudFormationClientTypes.ResourceToImport]? - /// The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) role that CloudFormation assumes when executing the change set. CloudFormation uses the role's credentials to make calls on your behalf. CloudFormation uses this role for all future operations on the stack. Provided that users have permission to operate on the stack, CloudFormation uses this role even if the users don't have permission to pass it. Ensure that the role grants least permission. If you don't specify a value, CloudFormation uses the role that was previously associated with the stack. If no role is available, CloudFormation uses a temporary session that is generated from your user credentials. + /// The Amazon Resource Name (ARN) of an IAM role that CloudFormation assumes when executing the change set. CloudFormation uses the role's credentials to make calls on your behalf. CloudFormation uses this role for all future operations on the stack. Provided that users have permission to operate on the stack, CloudFormation uses this role even if the users don't have permission to pass it. Ensure that the role grants least permission. If you don't specify a value, CloudFormation uses the role that was previously associated with the stack. If no role is available, CloudFormation uses a temporary session that is generated from your user credentials. public var roleARN: Swift.String? /// The rollback triggers for CloudFormation to monitor during stack creation and updating operations, and for the specified monitoring period afterwards. public var rollbackConfiguration: CloudFormationClientTypes.RollbackConfiguration? @@ -2122,10 +2122,10 @@ extension CloudFormationClientTypes { public struct ResourceDefinition: Swift.Sendable { /// The logical resource id for this resource in the generated template. public var logicalResourceId: Swift.String? - /// A list of up to 256 key-value pairs that identifies the scanned resource. The key is the name of one of the primary identifiers for the resource. (Primary identifiers are specified in the primaryIdentifier list in the resource schema.) The value is the value of that primary identifier. For example, for a AWS::DynamoDB::Table resource, the primary identifiers is TableName so the key-value pair could be "TableName": "MyDDBTable". For more information, see [primaryIdentifier](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html#schema-properties-primaryidentifier) in the CloudFormation Command Line Interface User guide for extension development. + /// A list of up to 256 key-value pairs that identifies the scanned resource. The key is the name of one of the primary identifiers for the resource. (Primary identifiers are specified in the primaryIdentifier list in the resource schema.) The value is the value of that primary identifier. For example, for a AWS::DynamoDB::Table resource, the primary identifiers is TableName so the key-value pair could be "TableName": "MyDDBTable". For more information, see [primaryIdentifier](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html#schema-properties-primaryidentifier) in the CloudFormation Command Line Interface (CLI) User Guide. /// This member is required. public var resourceIdentifier: [Swift.String: Swift.String]? - /// The type of the resource, such as AWS::DynamoDB::Table. For the list of supported resources, see [IaC generator supported resource types](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html) in the CloudFormation User Guide + /// The type of the resource, such as AWS::DynamoDB::Table. For the list of supported resources, see [Resource type support for imports and drift detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html) in the CloudFormation User Guide /// This member is required. public var resourceType: Swift.String? @@ -2307,7 +2307,7 @@ extension CloudFormationClientTypes { public struct CreateStackInput: Swift.Sendable { /// In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order for CloudFormation to create the stack. /// - /// * CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include resources that can affect permissions in your Amazon Web Services account; for example, by creating new Identity and Access Management (IAM) users. For those stacks, you must explicitly acknowledge this by specifying one of these capabilities. The following IAM resources require you to specify either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability. + /// * CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include resources that can affect permissions in your Amazon Web Services account; for example, by creating new IAM users. For those stacks, you must explicitly acknowledge this by specifying one of these capabilities. The following IAM resources require you to specify either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability. /// /// * If you have IAM resources, you can specify either capability. /// @@ -2318,24 +2318,24 @@ public struct CreateStackInput: Swift.Sendable { /// /// If your stack template contains these resources, we recommend that you review all permissions associated with them and edit their permissions if necessary. /// - /// * [AWS::IAM::AccessKey](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html) + /// * [AWS::IAM::AccessKey](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-accesskey.html) /// - /// * [AWS::IAM::Group](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html) + /// * [AWS::IAM::Group](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-group.html) /// /// * [AWS::IAM::InstanceProfile](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html) /// - /// * [AWS::IAM::Policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html) + /// * [AWS::IAM::Policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html) /// /// * [AWS::IAM::Role](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html) /// - /// * [AWS::IAM::User](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html) + /// * [AWS::IAM::User](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-user.html) /// - /// * [AWS::IAM::UserToGroupAddition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html) + /// * [AWS::IAM::UserToGroupAddition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-usertogroupaddition.html) /// /// - /// For more information, see [Acknowledging IAM Resources in CloudFormation Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities). + /// For more information, see [Acknowledging IAM resources in CloudFormation templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities). /// - /// * CAPABILITY_AUTO_EXPAND Some template contain macros. Macros perform custom processing on templates; this can include simple actions like find-and-replace operations, all the way to extensive transformations of entire templates. Because of this, users typically create a change set from the processed template, so that they can review the changes resulting from the macros before actually creating the stack. If your stack template contains one or more macros, and you choose to create a stack directly from the processed template, without first reviewing the resulting changes in a change set, you must acknowledge this capability. This includes the [AWS::Include](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html) and [AWS::Serverless](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html) transforms, which are macros hosted by CloudFormation. If you want to create a stack from a stack template that contains macros and nested stacks, you must create the stack directly from the template using this capability. You should only create stacks directly from a stack template that contains macros if you know what processing the macro performs. Each macro relies on an underlying Lambda service function for processing stack templates. Be aware that the Lambda function owner can update the function operation without CloudFormation being notified. For more information, see [Using CloudFormation macros to perform custom processing on templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html). + /// * CAPABILITY_AUTO_EXPAND Some template contain macros. Macros perform custom processing on templates; this can include simple actions like find-and-replace operations, all the way to extensive transformations of entire templates. Because of this, users typically create a change set from the processed template, so that they can review the changes resulting from the macros before actually creating the stack. If your stack template contains one or more macros, and you choose to create a stack directly from the processed template, without first reviewing the resulting changes in a change set, you must acknowledge this capability. This includes the [AWS::Include](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html) and [AWS::Serverless](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html) transforms, which are macros hosted by CloudFormation. If you want to create a stack from a stack template that contains macros and nested stacks, you must create the stack directly from the template using this capability. You should only create stacks directly from a stack template that contains macros if you know what processing the macro performs. Each macro relies on an underlying Lambda service function for processing stack templates. Be aware that the Lambda function owner can update the function operation without CloudFormation being notified. For more information, see [Perform custom processing on CloudFormation templates with template macros](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html). /// /// /// Only one of the Capabilities and ResourceType parameters can be specified. @@ -2344,34 +2344,34 @@ public struct CreateStackInput: Swift.Sendable { public var clientRequestToken: Swift.String? /// Set to true to disable rollback of the stack if stack creation failed. You can specify either DisableRollback or OnFailure, but not both. Default: false public var disableRollback: Swift.Bool? - /// Whether to enable termination protection on the specified stack. If a user attempts to delete a stack with termination protection enabled, the operation fails and the stack remains unchanged. For more information, see [Protecting a Stack From Being Deleted](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html) in the CloudFormation User Guide. Termination protection is deactivated on stacks by default. For [nested stacks](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html), termination protection is set on the root stack and can't be changed directly on the nested stack. + /// Whether to enable termination protection on the specified stack. If a user attempts to delete a stack with termination protection enabled, the operation fails and the stack remains unchanged. For more information, see [Protect CloudFormation stacks from being deleted](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html) in the CloudFormation User Guide. Termination protection is deactivated on stacks by default. For [nested stacks](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html), termination protection is set on the root stack and can't be changed directly on the nested stack. public var enableTerminationProtection: Swift.Bool? - /// The Amazon Simple Notification Service (Amazon SNS) topic ARNs to publish stack related events. You can find your Amazon SNS topic ARNs using the Amazon SNS console or your Command Line Interface (CLI). + /// The Amazon SNS topic ARNs to publish stack related events. You can find your Amazon SNS topic ARNs using the Amazon SNS console or your Command Line Interface (CLI). public var notificationARNs: [Swift.String]? /// Determines what action will be taken if stack creation fails. This must be one of: DO_NOTHING, ROLLBACK, or DELETE. You can specify either OnFailure or DisableRollback, but not both. Default: ROLLBACK public var onFailure: CloudFormationClientTypes.OnFailure? /// A list of Parameter structures that specify input parameters for the stack. For more information, see the [Parameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html) data type. public var parameters: [CloudFormationClientTypes.Parameter]? - /// The template resource types that you have permissions to work with for this create stack action, such as AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance. Use the following syntax to describe template resource types: AWS::* (for all Amazon Web Services resources), Custom::* (for all custom resources), Custom::logical_ID (for a specific custom resource), AWS::service_name::* (for all resources of a particular Amazon Web Services service), and AWS::service_name::resource_logical_ID (for a specific Amazon Web Services resource). If the list of resource types doesn't include a resource that you're creating, the stack creation fails. By default, CloudFormation grants permissions to all resource types. Identity and Access Management (IAM) uses this parameter for CloudFormation-specific condition keys in IAM policies. For more information, see [Controlling Access with Identity and Access Management](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html). Only one of the Capabilities and ResourceType parameters can be specified. + /// The template resource types that you have permissions to work with for this create stack action, such as AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance. Use the following syntax to describe template resource types: AWS::* (for all Amazon Web Services resources), Custom::* (for all custom resources), Custom::logical_ID (for a specific custom resource), AWS::service_name::* (for all resources of a particular Amazon Web Services service), and AWS::service_name::resource_logical_ID (for a specific Amazon Web Services resource). If the list of resource types doesn't include a resource that you're creating, the stack creation fails. By default, CloudFormation grants permissions to all resource types. IAM uses this parameter for CloudFormation-specific condition keys in IAM policies. For more information, see [Control access with Identity and Access Management](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html). Only one of the Capabilities and ResourceType parameters can be specified. public var resourceTypes: [Swift.String]? /// When set to true, newly created resources are deleted when the operation rolls back. This includes newly created resources marked with a deletion policy of Retain. Default: false public var retainExceptOnCreate: Swift.Bool? - /// The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) role that CloudFormation assumes to create the stack. CloudFormation uses the role's credentials to make calls on your behalf. CloudFormation always uses this role for all future operations on the stack. Provided that users have permission to operate on the stack, CloudFormation uses this role even if the users don't have permission to pass it. Ensure that the role grants least privilege. If you don't specify a value, CloudFormation uses the role that was previously associated with the stack. If no role is available, CloudFormation uses a temporary session that's generated from your user credentials. + /// The Amazon Resource Name (ARN) of an IAM role that CloudFormation assumes to create the stack. CloudFormation uses the role's credentials to make calls on your behalf. CloudFormation always uses this role for all future operations on the stack. Provided that users have permission to operate on the stack, CloudFormation uses this role even if the users don't have permission to pass it. Ensure that the role grants least privilege. If you don't specify a value, CloudFormation uses the role that was previously associated with the stack. If no role is available, CloudFormation uses a temporary session that's generated from your user credentials. public var roleARN: Swift.String? /// The rollback triggers for CloudFormation to monitor during stack creation and updating operations, and for the specified monitoring period afterwards. public var rollbackConfiguration: CloudFormationClientTypes.RollbackConfiguration? /// The name that's associated with the stack. The name must be unique in the Region in which you are creating the stack. A stack name can contain only alphanumeric characters (case sensitive) and hyphens. It must start with an alphabetical character and can't be longer than 128 characters. /// This member is required. public var stackName: Swift.String? - /// Structure containing the stack policy body. For more information, go to [ Prevent Updates to Stack Resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html) in the CloudFormation User Guide. You can specify either the StackPolicyBody or the StackPolicyURL parameter, but not both. + /// Structure containing the stack policy body. For more information, see [Prevent updates to stack resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html) in the CloudFormation User Guide. You can specify either the StackPolicyBody or the StackPolicyURL parameter, but not both. public var stackPolicyBody: Swift.String? /// Location of a file containing the stack policy. The URL must point to a policy (maximum size: 16 KB) located in an S3 bucket in the same Region as the stack. The location for an Amazon S3 bucket must start with https://. You can specify either the StackPolicyBody or the StackPolicyURL parameter, but not both. public var stackPolicyURL: Swift.String? /// Key-value pairs to associate with this stack. CloudFormation also propagates these tags to the resources created in the stack. A maximum number of 50 tags can be specified. public var tags: [CloudFormationClientTypes.Tag]? - /// Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. For more information, go to [Template anatomy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html) in the CloudFormation User Guide. Conditional: You must specify either the TemplateBody or the TemplateURL parameter, but not both. + /// Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. Conditional: You must specify either the TemplateBody or the TemplateURL parameter, but not both. public var templateBody: Swift.String? - /// Location of file containing the template body. The URL must point to a template (max size: 460,800 bytes) that's located in an Amazon S3 bucket or a Systems Manager document. For more information, go to the [Template anatomy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html) in the CloudFormation User Guide. The location for an Amazon S3 bucket must start with https://. Conditional: You must specify either the TemplateBody or the TemplateURL parameter, but not both. + /// Location of file containing the template body. The URL must point to a template (max size: 460,800 bytes) that's located in an Amazon S3 bucket or a Systems Manager document. The location for an Amazon S3 bucket must start with https://. Conditional: You must specify either the TemplateBody or the TemplateURL parameter, but not both. public var templateURL: Swift.String? /// The amount of time that can pass before the stack status becomes CREATE_FAILED; if DisableRollback is not set or is set to false, the stack will be rolled back. public var timeoutInMinutes: Swift.Int? @@ -2623,7 +2623,7 @@ extension CloudFormationClientTypes { extension CloudFormationClientTypes { - /// The user-specified preferences for how CloudFormation performs a stack set operation. For more information about maximum concurrent accounts and failure tolerance, see [Stack set operation options](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options). + /// The user-specified preferences for how CloudFormation performs a stack set operation. For more information about maximum concurrent accounts and failure tolerance, see [Stack set operation options](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html#stackset-ops-options). public struct StackSetOperationPreferences: Swift.Sendable { /// Specifies how the concurrency level behaves during the operation execution. /// @@ -2843,7 +2843,7 @@ public struct CreateStackSetInput: Swift.Sendable { public var callAs: CloudFormationClientTypes.CallAs? /// In some cases, you must explicitly acknowledge that your stack set template contains certain capabilities in order for CloudFormation to create the stack set and related stack instances. /// - /// * CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include resources that can affect permissions in your Amazon Web Services account; for example, by creating new Identity and Access Management (IAM) users. For those stack sets, you must explicitly acknowledge this by specifying one of these capabilities. The following IAM resources require you to specify either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability. + /// * CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include resources that can affect permissions in your Amazon Web Services account; for example, by creating new IAM users. For those stack sets, you must explicitly acknowledge this by specifying one of these capabilities. The following IAM resources require you to specify either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability. /// /// * If you have IAM resources, you can specify either capability. /// @@ -2854,22 +2854,22 @@ public struct CreateStackSetInput: Swift.Sendable { /// /// If your stack template contains these resources, we recommend that you review all permissions associated with them and edit their permissions if necessary. /// - /// * [AWS::IAM::AccessKey](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html) + /// * [AWS::IAM::AccessKey](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-accesskey.html) /// - /// * [AWS::IAM::Group](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html) + /// * [AWS::IAM::Group](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-group.html) /// /// * [AWS::IAM::InstanceProfile](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html) /// - /// * [AWS::IAM::Policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html) + /// * [AWS::IAM::Policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html) /// /// * [AWS::IAM::Role](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html) /// - /// * [AWS::IAM::User](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html) + /// * [AWS::IAM::User](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-user.html) /// - /// * [AWS::IAM::UserToGroupAddition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html) + /// * [AWS::IAM::UserToGroupAddition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-usertogroupaddition.html) /// /// - /// For more information, see [Acknowledging IAM Resources in CloudFormation Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities). + /// For more information, see [Acknowledging IAM resources in CloudFormation templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities). /// /// * CAPABILITY_AUTO_EXPAND Some templates reference macros. If your stack set template references one or more macros, you must create the stack set directly from the processed template, without first reviewing the resulting changes in a change set. To create the stack set directly, you must acknowledge this capability. For more information, see [Using CloudFormation Macros to Perform Custom Processing on Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html). Stack sets with service-managed permissions don't currently support the use of macros in templates. (This includes the [AWS::Include](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html) and [AWS::Serverless](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html) transforms, which are macros hosted by CloudFormation.) Even if you specify this capability for a stack set with service-managed permissions, if you reference a macro in your template the stack set operation will fail. public var capabilities: [CloudFormationClientTypes.Capability]? @@ -2896,9 +2896,9 @@ public struct CreateStackSetInput: Swift.Sendable { public var stackSetName: Swift.String? /// The key-value pairs to associate with this stack set and the stacks created from it. CloudFormation also propagates these tags to supported resources that are created in the stacks. A maximum number of 50 tags can be specified. If you specify tags as part of a CreateStackSet action, CloudFormation checks to see if you have the required IAM permission to tag resources. If you don't, the entire CreateStackSet action fails with an access denied error, and the stack set is not created. public var tags: [CloudFormationClientTypes.Tag]? - /// The structure that contains the template body, with a minimum length of 1 byte and a maximum length of 51,200 bytes. For more information, see [Template Anatomy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html) in the CloudFormation User Guide. Conditional: You must specify either the TemplateBody or the TemplateURL parameter, but not both. + /// The structure that contains the template body, with a minimum length of 1 byte and a maximum length of 51,200 bytes. Conditional: You must specify either the TemplateBody or the TemplateURL parameter, but not both. public var templateBody: Swift.String? - /// The location of the file that contains the template body. The URL must point to a template (maximum size: 460,800 bytes) that's located in an Amazon S3 bucket or a Systems Manager document. For more information, see [Template Anatomy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html) in the CloudFormation User Guide. Conditional: You must specify either the TemplateBody or the TemplateURL parameter, but not both. + /// The location of the file that contains the template body. The URL must point to a template (maximum size: 460,800 bytes) that's located in an Amazon S3 bucket or a Systems Manager document. Conditional: You must specify either the TemplateBody or the TemplateURL parameter, but not both. public var templateURL: Swift.String? public init( @@ -3110,7 +3110,7 @@ public struct DeleteStackInput: Swift.Sendable { public var deletionMode: CloudFormationClientTypes.DeletionMode? /// For stacks in the DELETE_FAILED state, a list of resource logical IDs that are associated with the resources you want to retain. During deletion, CloudFormation deletes the stack but doesn't delete the retained resources. Retaining resources is useful when you can't delete a resource, such as a non-empty S3 bucket, but you want to delete the stack. public var retainResources: [Swift.String]? - /// The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) role that CloudFormation assumes to delete the stack. CloudFormation uses the role's credentials to make calls on your behalf. If you don't specify a value, CloudFormation uses the role that was previously associated with the stack. If no role is available, CloudFormation uses a temporary session that's generated from your user credentials. + /// The Amazon Resource Name (ARN) of an IAM role that CloudFormation assumes to delete the stack. CloudFormation uses the role's credentials to make calls on your behalf. If you don't specify a value, CloudFormation uses the role that was previously associated with the stack. If no role is available, CloudFormation uses a temporary session that's generated from your user credentials. public var roleARN: Swift.String? /// The name or the unique stack ID that's associated with the stack. /// This member is required. @@ -3150,7 +3150,7 @@ public struct DeleteStackInstancesInput: Swift.Sendable { /// The Amazon Web Services Regions where you want to delete stack set instances. /// This member is required. public var regions: [Swift.String]? - /// Removes the stack instances from the specified stack set, but doesn't delete the stacks. You can't reassociate a retained stack or add an existing, saved stack to a new stack set. For more information, see [Stack set operation options](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options). + /// Removes the stack instances from the specified stack set, but doesn't delete the stacks. You can't reassociate a retained stack or add an existing, saved stack to a new stack set. For more information, see [Stack set operation options](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html#stackset-ops-options). /// This member is required. public var retainStacks: Swift.Bool? /// The name or unique ID of the stack set that you want to delete stack instances for. @@ -3380,7 +3380,7 @@ public struct DescribeChangeSetOutput: Swift.Sendable { public var includeNestedStacks: Swift.Bool? /// If the output exceeds 1 MB, a string that identifies the next page of changes. If there is no additional page, this value is null. public var nextToken: Swift.String? - /// The ARNs of the Amazon Simple Notification Service (Amazon SNS) topics that will be associated with the stack if you execute the change set. + /// The ARNs of the Amazon SNS topics that will be associated with the stack if you execute the change set. public var notificationARNs: [Swift.String]? /// Determines what action will be taken if stack creation fails. When this parameter is specified, the DisableRollback parameter to the [ExecuteChangeSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ExecuteChangeSet.html) API operation must not be specified. This must be one of these values: /// @@ -3656,7 +3656,7 @@ extension CloudFormationClientTypes { public struct WarningDetail: Swift.Sendable { /// The properties of the resource that are impacted by this warning. public var properties: [CloudFormationClientTypes.WarningProperty]? - /// The type of this warning. For more information, see [IaC generator and write-only properties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/generate-IaC-write-only-properties.html) in the CloudFormation User Guide. + /// The type of this warning. For more information, see [Resolve write-only properties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/generate-IaC-write-only-properties.html) in the CloudFormation User Guide. /// /// * MUTUALLY_EXCLUSIVE_PROPERTIES - The resource requires mutually-exclusive write-only properties. The IaC generator selects one set of mutually exclusive properties and converts the included properties into parameters. The parameter names have a suffix OneOf and the parameter descriptions indicate that the corresponding property can be replaced with other exclusive properties. /// @@ -3685,13 +3685,13 @@ extension CloudFormationClientTypes { public struct ResourceDetail: Swift.Sendable { /// The logical id for this resource in the final generated template. public var logicalResourceId: Swift.String? - /// A list of up to 256 key-value pairs that identifies the resource in the generated template. The key is the name of one of the primary identifiers for the resource. (Primary identifiers are specified in the primaryIdentifier list in the resource schema.) The value is the value of that primary identifier. For example, for a AWS::DynamoDB::Table resource, the primary identifiers is TableName so the key-value pair could be "TableName": "MyDDBTable". For more information, see [primaryIdentifier](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html#schema-properties-primaryidentifier) in the CloudFormation Command Line Interface User guide for extension development. + /// A list of up to 256 key-value pairs that identifies the resource in the generated template. The key is the name of one of the primary identifiers for the resource. (Primary identifiers are specified in the primaryIdentifier list in the resource schema.) The value is the value of that primary identifier. For example, for a AWS::DynamoDB::Table resource, the primary identifiers is TableName so the key-value pair could be "TableName": "MyDDBTable". For more information, see [primaryIdentifier](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html#schema-properties-primaryidentifier) in the CloudFormation Command Line Interface (CLI) User Guide. public var resourceIdentifier: [Swift.String: Swift.String]? /// Status of the processing of a resource in a generated template. InProgress The resource processing is still in progress. Complete The resource processing is complete. Pending The resource processing is pending. Failed The resource processing has failed. public var resourceStatus: CloudFormationClientTypes.GeneratedTemplateResourceStatus? /// The reason for the resource detail, providing more information if a failure happened. public var resourceStatusReason: Swift.String? - /// The type of the resource, such as AWS::DynamoDB::Table. For the list of supported resources, see [IaC generator supported resource types](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html) In the CloudFormation User Guide + /// The type of the resource, such as AWS::DynamoDB::Table. For the list of supported resources, see [Resource type support for imports and drift detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html) In the CloudFormation User Guide public var resourceType: Swift.String? /// The warnings generated for this resource. public var warnings: [CloudFormationClientTypes.WarningDetail]? @@ -4422,7 +4422,7 @@ extension CloudFormationClientTypes { public var clientRequestToken: Swift.String? /// An optional field containing information about the detailed status of the stack event. /// - /// * CONFIGURATION_COMPLETE - all of the resources in the stack have reached that event. For more information, see [CloudFormation stack deployment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stack-resource-configuration-complete.html) in the CloudFormation User Guide. + /// * CONFIGURATION_COMPLETE - all of the resources in the stack have reached that event. For more information, see [Understand CloudFormation stack creation events](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stack-resource-configuration-complete.html) in the CloudFormation User Guide. /// /// /// @@ -4456,7 +4456,7 @@ extension CloudFormationClientTypes { public var resourceStatus: CloudFormationClientTypes.ResourceStatus? /// Success/failure message associated with the resource. public var resourceStatusReason: Swift.String? - /// Type of resource. (For more information, go to [Amazon Web Services Resource Types Reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html) in the CloudFormation User Guide.) + /// Type of resource. For more information, see [Amazon Web Services resource and property types reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html) in the CloudFormation User Guide. public var resourceType: Swift.String? /// The unique ID name of the instance of the stack. /// This member is required. @@ -4692,7 +4692,7 @@ extension CloudFormationClientTypes { extension CloudFormationClientTypes { - /// An CloudFormation stack, in a specific account and Region, that's part of a stack set operation. A stack instance is a reference to an attempted or actual stack in a given account within a given Region. A stack instance can exist without a stack—for example, if the stack couldn't be created for some reason. A stack instance is associated with only one stack set. Each stack instance contains the ID of its associated stack set, in addition to the ID of the actual stack and the stack status. + /// A CloudFormation stack, in a specific account and Region, that's part of a stack set operation. A stack instance is a reference to an attempted or actual stack in a given account within a given Region. A stack instance can exist without a stack—for example, if the stack couldn't be created for some reason. A stack instance is associated with only one stack set. Each stack instance contains the ID of its associated stack set, in addition to the ID of the actual stack and the stack status. public struct StackInstance: Swift.Sendable { /// [Self-managed permissions] The name of the Amazon Web Services account that the stack instance is associated with. public var account: Swift.String? @@ -4856,7 +4856,7 @@ extension CloudFormationClientTypes { /// /// * MODIFIED: The resource differs from its expected configuration. /// - /// * NOT_CHECKED: CloudFormation has not checked if the resource differs from its expected configuration. Any resources that do not currently support drift detection have a status of NOT_CHECKED. For more information, see [Resources that Support Drift Detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html). + /// * NOT_CHECKED: CloudFormation has not checked if the resource differs from its expected configuration. Any resources that do not currently support drift detection have a status of NOT_CHECKED. For more information, see [Resource type support for imports and drift detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html). /// /// * IN_SYNC: The resource's actual configuration matches its expected configuration. /// This member is required. @@ -4879,7 +4879,7 @@ extension CloudFormationClientTypes { public struct StackResourceDetail: Swift.Sendable { /// User defined description associated with the resource. public var description: Swift.String? - /// Information about whether the resource's actual configuration differs, or has drifted, from its expected configuration, as defined in the stack template and any values specified as template parameters. For more information, see [Detecting Unregulated Configuration Changes to Stacks and Resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html). + /// Information about whether the resource's actual configuration differs, or has drifted, from its expected configuration, as defined in the stack template and any values specified as template parameters. For more information, see [Detect unmanaged configuration changes to stacks and resources with drift detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html). public var driftInformation: CloudFormationClientTypes.StackResourceDriftInformation? /// Time the status was updated. /// This member is required. @@ -4887,7 +4887,7 @@ extension CloudFormationClientTypes { /// The logical name of the resource specified in the template. /// This member is required. public var logicalResourceId: Swift.String? - /// The content of the Metadata attribute declared for the resource. For more information, see [Metadata Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html) in the CloudFormation User Guide. + /// The content of the Metadata attribute declared for the resource. For more information, see [Metadata attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html) in the CloudFormation User Guide. public var metadata: Swift.String? /// Contains information about the module from which the resource was created, if the resource was created from a module included in the stack template. public var moduleInfo: CloudFormationClientTypes.ModuleInfo? @@ -4898,7 +4898,7 @@ extension CloudFormationClientTypes { public var resourceStatus: CloudFormationClientTypes.ResourceStatus? /// Success/failure message associated with the resource. public var resourceStatusReason: Swift.String? - /// Type of resource. For more information, go to [Amazon Web Services Resource Types Reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html) in the CloudFormation User Guide. + /// Type of resource. For more information, see [Amazon Web Services resource and property types reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html) in the CloudFormation User Guide. /// This member is required. public var resourceType: Swift.String? /// Unique identifier of the stack. @@ -5039,7 +5039,7 @@ extension CloudFormationClientTypes { extension CloudFormationClientTypes { - /// Information about a resource property whose actual value differs from its expected value, as defined in the stack template and any values specified as template parameters. These will be present only for resources whose StackResourceDriftStatus is MODIFIED. For more information, see [Detecting Unregulated Configuration Changes to Stacks and Resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html). + /// Information about a resource property whose actual value differs from its expected value, as defined in the stack template and any values specified as template parameters. These will be present only for resources whose StackResourceDriftStatus is MODIFIED. For more information, see [Detect unmanaged configuration changes to stacks and resources with drift detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html). public struct PropertyDifference: Swift.Sendable { /// The actual property value of the resource property. /// This member is required. @@ -5077,7 +5077,7 @@ extension CloudFormationClientTypes { extension CloudFormationClientTypes { - /// Contains the drift information for a resource that has been checked for drift. This includes actual and expected property values for resources in which CloudFormation has detected drift. Only resource properties explicitly defined in the stack template are checked for drift. For more information, see [Detecting Unregulated Configuration Changes to Stacks and Resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html). Resources that don't currently support drift detection can't be checked. For a list of resources that support drift detection, see [Resources that Support Drift Detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html). Use [DetectStackResourceDrift] to detect drift on individual resources, or [DetectStackDrift] to detect drift on all resources in a given stack that support drift detection. + /// Contains the drift information for a resource that has been checked for drift. This includes actual and expected property values for resources in which CloudFormation has detected drift. Only resource properties explicitly defined in the stack template are checked for drift. For more information, see [Detect unmanaged configuration changes to stacks and resources with drift detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html). Resources that don't currently support drift detection can't be checked. For a list of resources that support drift detection, see [Resource type support for imports and drift detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html). Use [DetectStackResourceDrift] to detect drift on individual resources, or [DetectStackDrift] to detect drift on all resources in a given stack that support drift detection. public struct StackResourceDrift: Swift.Sendable { /// A JSON structure containing the actual property values of the stack resource. For resources whose StackResourceDriftStatus is DELETED, this structure will not be present. public var actualProperties: Swift.String? @@ -5147,7 +5147,7 @@ extension CloudFormationClientTypes { public struct DescribeStackResourceDriftsOutput: Swift.Sendable { /// If the request doesn't return all the remaining results, NextToken is set to a token. To retrieve the next set of results, call DescribeStackResourceDrifts again and assign that token to the request object's NextToken parameter. If the request returns all results, NextToken is set to null. public var nextToken: Swift.String? - /// Drift information for the resources that have been checked for drift in the specified stack. This includes actual and expected configuration values for resources where CloudFormation detects drift. For a given stack, there will be one StackResourceDrift for each stack resource that has been checked for drift. Resources that haven't yet been checked for drift aren't included. Resources that do not currently support drift detection aren't checked, and so not included. For a list of resources that support drift detection, see [Resources that Support Drift Detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html). + /// Drift information for the resources that have been checked for drift in the specified stack. This includes actual and expected configuration values for resources where CloudFormation detects drift. For a given stack, there will be one StackResourceDrift for each stack resource that has been checked for drift. Resources that haven't yet been checked for drift aren't included. Resources that do not currently support drift detection aren't checked, and so not included. For a list of resources that support drift detection, see [Resource type support for imports and drift detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html). /// This member is required. public var stackResourceDrifts: [CloudFormationClientTypes.StackResourceDrift]? @@ -5195,7 +5195,7 @@ extension CloudFormationClientTypes { public struct StackResource: Swift.Sendable { /// User defined description associated with the resource. public var description: Swift.String? - /// Information about whether the resource's actual configuration differs, or has drifted, from its expected configuration, as defined in the stack template and any values specified as template parameters. For more information, see [Detecting Unregulated Configuration Changes to Stacks and Resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html). + /// Information about whether the resource's actual configuration differs, or has drifted, from its expected configuration, as defined in the stack template and any values specified as template parameters. For more information, see [Detect unmanaged configuration changes to stacks and resources with drift detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html). public var driftInformation: CloudFormationClientTypes.StackResourceDriftInformation? /// The logical name of the resource specified in the template. /// This member is required. @@ -5209,7 +5209,7 @@ extension CloudFormationClientTypes { public var resourceStatus: CloudFormationClientTypes.ResourceStatus? /// Success/failure message associated with the resource. public var resourceStatusReason: Swift.String? - /// Type of resource. For more information, go to [Amazon Web Services Resource Types Reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html) in the CloudFormation User Guide. + /// Type of resource. For more information, see [Amazon Web Services resource and property types reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html) in the CloudFormation User Guide. /// This member is required. public var resourceType: Swift.String? /// Unique identifier of the stack. @@ -5456,7 +5456,7 @@ extension CloudFormationClientTypes { public var deletionTime: Foundation.Date? /// A user-defined description associated with the stack. public var description: Swift.String? - /// The detailed status of the resource or stack. If CONFIGURATION_COMPLETE is present, the resource or resource configuration phase has completed and the stabilization of the resources is in progress. The stack sets CONFIGURATION_COMPLETE when all of the resources in the stack have reached that event. For more information, see [CloudFormation stack deployment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stack-resource-configuration-complete.html) in the CloudFormation User Guide. + /// The detailed status of the resource or stack. If CONFIGURATION_COMPLETE is present, the resource or resource configuration phase has completed and the stabilization of the resources is in progress. The stack sets CONFIGURATION_COMPLETE when all of the resources in the stack have reached that event. For more information, see [Understand CloudFormation stack creation events](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stack-resource-configuration-complete.html) in the CloudFormation User Guide. public var detailedStatus: CloudFormationClientTypes.DetailedStatus? /// Boolean to enable or disable rollback on stack creation failures: /// @@ -5464,9 +5464,9 @@ extension CloudFormationClientTypes { /// /// * false: enable rollback. public var disableRollback: Swift.Bool? - /// Information about whether a stack's actual configuration differs, or has drifted, from its expected configuration, as defined in the stack template and any values specified as template parameters. For more information, see [Detecting Unregulated Configuration Changes to Stacks and Resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html). + /// Information about whether a stack's actual configuration differs, or has drifted, from its expected configuration, as defined in the stack template and any values specified as template parameters. For more information, see [Detect unmanaged configuration changes to stacks and resources with drift detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html). public var driftInformation: CloudFormationClientTypes.StackDriftInformation? - /// Whether termination protection is enabled for the stack. For [nested stacks](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html), termination protection is set on the root stack and can't be changed directly on the nested stack. For more information, see [Protecting a Stack From Being Deleted](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html) in the CloudFormation User Guide. + /// Whether termination protection is enabled for the stack. For [nested stacks](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html), termination protection is set on the root stack and can't be changed directly on the nested stack. For more information, see [Protect a CloudFormation stack from being deleted](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html) in the CloudFormation User Guide. public var enableTerminationProtection: Swift.Bool? /// The time the stack was last updated. This field will only be returned if the stack has been updated at least once. public var lastUpdatedTime: Foundation.Date? @@ -5476,15 +5476,15 @@ extension CloudFormationClientTypes { public var outputs: [CloudFormationClientTypes.Output]? /// A list of Parameter structures. public var parameters: [CloudFormationClientTypes.Parameter]? - /// For nested stacks--stacks created as resources for another stack--the stack ID of the direct parent of this stack. For the first level of nested stacks, the root stack is also the parent stack. For more information, see [Working with Nested Stacks](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html) in the CloudFormation User Guide. + /// For nested stacks--stacks created as resources for another stack--the stack ID of the direct parent of this stack. For the first level of nested stacks, the root stack is also the parent stack. For more information, see [Embed stacks within other stacks using nested stacks](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html) in the CloudFormation User Guide. public var parentId: Swift.String? /// When set to true, newly created resources are deleted when the operation rolls back. This includes newly created resources marked with a deletion policy of Retain. Default: false public var retainExceptOnCreate: Swift.Bool? - /// The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) role that's associated with the stack. During a stack operation, CloudFormation uses this role's credentials to make calls on your behalf. + /// The Amazon Resource Name (ARN) of an IAM role that's associated with the stack. During a stack operation, CloudFormation uses this role's credentials to make calls on your behalf. public var roleARN: Swift.String? /// The rollback triggers for CloudFormation to monitor during stack creation and updating operations, and for the specified monitoring period afterwards. public var rollbackConfiguration: CloudFormationClientTypes.RollbackConfiguration? - /// For nested stacks--stacks created as resources for another stack--the stack ID of the top-level stack to which the nested stack ultimately belongs. For more information, see [Working with Nested Stacks](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html) in the CloudFormation User Guide. + /// For nested stacks--stacks created as resources for another stack--the stack ID of the top-level stack to which the nested stack ultimately belongs. For more information, see [Embed stacks within other stacks using nested stacks](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html) in the CloudFormation User Guide. public var rootId: Swift.String? /// Unique identifier of the stack. public var stackId: Swift.String? @@ -5771,7 +5771,7 @@ extension CloudFormationClientTypes { public var administrationRoleARN: Swift.String? /// [Service-managed permissions] Describes whether StackSets automatically deploys to Organizations accounts that are added to a target organization or organizational unit (OU). public var autoDeployment: CloudFormationClientTypes.AutoDeployment? - /// The capabilities that are allowed in the stack set. Some stack set templates might include resources that can affect permissions in your Amazon Web Services account—for example, by creating new Identity and Access Management (IAM) users. For more information, see [Acknowledging IAM Resources in CloudFormation Templates.](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities) + /// The capabilities that are allowed in the stack set. Some stack set templates might include resources that can affect permissions in your Amazon Web Services account—for example, by creating new Identity and Access Management (IAM) users. For more information, see [Acknowledging IAM resources in CloudFormation templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities). public var capabilities: [CloudFormationClientTypes.Capability]? /// A description of the stack set that you specify when the stack set is created or updated. public var description: Swift.String? @@ -5999,7 +5999,7 @@ extension CloudFormationClientTypes { public var operationPreferences: CloudFormationClientTypes.StackSetOperationPreferences? /// For stack set operations of action type DELETE, specifies whether to remove the stack instances from the specified stack set, but doesn't delete the stacks. You can't re-associate a retained stack, or add an existing, saved stack to a new stack set. public var retainStacks: Swift.Bool? - /// Detailed information about the drift status of the stack set. This includes information about drift operations currently being performed on the stack set. This information will only be present for stack set operations whose Action type is DETECT_DRIFT. For more information, see [Detecting Unmanaged Changes in Stack Sets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html) in the CloudFormation User Guide. + /// Detailed information about the drift status of the stack set. This includes information about drift operations currently being performed on the stack set. This information will only be present for stack set operations whose Action type is DETECT_DRIFT. For more information, see [Detect stack set drift](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html) in the CloudFormation User Guide. public var stackSetDriftDetectionDetails: CloudFormationClientTypes.StackSetDriftDetectionDetails? /// The ID of the stack set. public var stackSetId: Swift.String? @@ -6007,7 +6007,7 @@ extension CloudFormationClientTypes { /// /// * FAILED: The operation exceeded the specified failure tolerance. The failure tolerance value that you've set for an operation is applied for each Region during stack create and update operations. If the number of failed stacks within a Region exceeds the failure tolerance, the status of the operation in the Region is set to FAILED. This in turn sets the status of the operation as a whole to FAILED, and CloudFormation cancels the operation in any remaining Regions. /// - /// * QUEUED: [Service-managed permissions] For automatic deployments that require a sequence of operations, the operation is queued to be performed. For more information, see the [stack set operation status codes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-status-codes) in the CloudFormation User Guide. + /// * QUEUED: [Service-managed permissions] For automatic deployments that require a sequence of operations, the operation is queued to be performed. For more information, see the [stack set operation status codes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html#stackset-status-codes) in the CloudFormation User Guide. /// /// * RUNNING: The operation is currently being performed. /// @@ -6164,9 +6164,9 @@ extension CloudFormationClientTypes { extension CloudFormationClientTypes { - /// For extensions that are modules, a public third-party extension that must be activated in your account in order for the module itself to be activated. For more information, see [Activating public modules for use in your account](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/modules.html#module-enabling) in the CloudFormation User Guide. + /// For extensions that are modules, a public third-party extension that must be activated in your account in order for the module itself to be activated. For more information, see [Requirements for activating third-party public modules](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/module-versioning.html#requirements-for-modules) in the CloudFormation User Guide. public struct RequiredActivatedType: Swift.Sendable { - /// The type name of the public extension. If you specified a TypeNameAlias when enabling the extension in this account and Region, CloudFormation treats that alias as the extension's type name within the account and Region, not the type name of the public extension. For more information, see [Specifying aliases to refer to extensions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-alias) in the CloudFormation User Guide. + /// The type name of the public extension. If you specified a TypeNameAlias when enabling the extension in this account and Region, CloudFormation treats that alias as the extension's type name within the account and Region, not the type name of the public extension. For more information, see [Use aliases to refer to extensions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-alias) in the CloudFormation User Guide. public var originalTypeName: Swift.String? /// The publisher ID of the extension publisher. public var publisherId: Swift.String? @@ -6257,9 +6257,9 @@ extension CloudFormationClientTypes { public struct DescribeTypeOutput: Swift.Sendable { /// The Amazon Resource Name (ARN) of the extension. public var arn: Swift.String? - /// Whether CloudFormation automatically updates the extension in this account and Region when a new minor version is published by the extension publisher. Major versions released by the publisher must be manually updated. For more information, see [Activating public extensions for use in your account](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable) in the CloudFormation User Guide. + /// Whether CloudFormation automatically updates the extension in this account and Region when a new minor version is published by the extension publisher. Major versions released by the publisher must be manually updated. For more information, see [Automatically use new versions of extensions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-auto) in the CloudFormation User Guide. public var autoUpdate: Swift.Bool? - /// A JSON string that represent the current configuration data for the extension in this account and Region. To set the configuration data for an extension, use [SetTypeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_SetTypeConfiguration.html). For more information, see [Configuring extensions at the account level](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-private.html#registry-set-configuration) in the CloudFormation User Guide. + /// A JSON string that represent the current configuration data for the extension in this account and Region. To set the configuration data for an extension, use [SetTypeConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_SetTypeConfiguration.html). For more information, see [Edit configuration data for extensions in your account](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-set-configuration.html) in the CloudFormation User Guide. public var configurationSchema: Swift.String? /// The ID of the default version of the extension. The default version is used when the extension version isn't specified. This applies only to private extensions you have registered in your account. For public extensions, both those provided by Amazon Web Services and published by third parties, CloudFormation returns null. For more information, see [RegisterType](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html). To set the default version of an extension, use [SetTypeDefaultVersion]. public var defaultVersionId: Swift.String? @@ -6294,7 +6294,7 @@ public struct DescribeTypeOutput: Swift.Sendable { public var loggingConfig: CloudFormationClientTypes.LoggingConfig? /// For public extensions that have been activated for this account and Region, the Amazon Resource Name (ARN) of the public extension. public var originalTypeArn: Swift.String? - /// For public extensions that have been activated for this account and Region, the type name of the public extension. If you specified a TypeNameAlias when enabling the extension in this account and Region, CloudFormation treats that alias as the extension's type name within the account and Region, not the type name of the public extension. For more information, see [Specifying aliases to refer to extensions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-alias) in the CloudFormation User Guide. + /// For public extensions that have been activated for this account and Region, the type name of the public extension. If you specified a TypeNameAlias when enabling the extension in this account and Region, CloudFormation treats that alias as the extension's type name within the account and Region, not the type name of the public extension. For more information, see [Use aliases to refer to extensions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-alias) in the CloudFormation User Guide. public var originalTypeName: Swift.String? /// For resource type extensions, the provisioning behavior of the resource type. CloudFormation determines the provisioning type during registration, based on the types of handlers in the schema handler package submitted. Valid values include: /// @@ -6316,7 +6316,7 @@ public struct DescribeTypeOutput: Swift.Sendable { public var publisherId: Swift.String? /// For extensions that are modules, the public third-party extensions that must be activated in your account in order for the module itself to be activated. public var requiredActivatedTypes: [CloudFormationClientTypes.RequiredActivatedType]? - /// The schema that defines the extension. For more information about extension schemas, see [Resource Provider Schema](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html) in the CloudFormation CLI User Guide. + /// The schema that defines the extension. For more information about extension schemas, see [Resource type schema](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html) in the CloudFormation Command Line Interface (CLI) User Guide. public var schema: Swift.String? /// The URL of the source code for the extension. public var sourceUrl: Swift.String? @@ -6328,7 +6328,7 @@ public struct DescribeTypeOutput: Swift.Sendable { public var typeName: Swift.String? /// The contract test status of the registered extension version. To return the extension test status of a specific extension version, you must specify VersionId. This applies only to registered private extension versions. CloudFormation doesn't return this information for public extensions, whether they are activated in your account. /// - /// * PASSED: The extension has passed all its contract tests. An extension must have a test status of PASSED before it can be published. For more information, see [Publishing extensions to make them available for public use](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-publish.html) in the CloudFormation Command Line Interface User Guide. + /// * PASSED: The extension has passed all its contract tests. An extension must have a test status of PASSED before it can be published. For more information, see [Publishing extensions to make them available for public use](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-publish.html) in the CloudFormation Command Line Interface (CLI) User Guide. /// /// * FAILED: The extension has failed one or more contract tests. /// @@ -6544,7 +6544,7 @@ public struct DetectStackSetDriftInput: Swift.Sendable { public var callAs: CloudFormationClientTypes.CallAs? /// The ID of the stack set operation. public var operationId: Swift.String? - /// The user-specified preferences for how CloudFormation performs a stack set operation. For more information about maximum concurrent accounts and failure tolerance, see [Stack set operation options](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options). + /// The user-specified preferences for how CloudFormation performs a stack set operation. For more information about maximum concurrent accounts and failure tolerance, see [Stack set operation options](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html#stackset-ops-options). public var operationPreferences: CloudFormationClientTypes.StackSetOperationPreferences? /// The name of the stack set on which to perform the drift detection operation. /// This member is required. @@ -6580,9 +6580,9 @@ public struct DetectStackSetDriftOutput: Swift.Sendable { public struct EstimateTemplateCostInput: Swift.Sendable { /// A list of Parameter structures that specify input parameters. public var parameters: [CloudFormationClientTypes.Parameter]? - /// Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. (For more information, go to [Template Anatomy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html) in the CloudFormation User Guide.) Conditional: You must pass TemplateBody or TemplateURL. If both are passed, only TemplateBody is used. + /// Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. Conditional: You must pass TemplateBody or TemplateURL. If both are passed, only TemplateBody is used. public var templateBody: Swift.String? - /// Location of file containing the template body. The URL must point to a template that's located in an Amazon S3 bucket or a Systems Manager document. For more information, go to [Template Anatomy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html) in the CloudFormation User Guide. The location for an Amazon S3 bucket must start with https://. Conditional: You must pass TemplateURL or TemplateBody. If both are passed, only TemplateBody is used. + /// Location of file containing the template body. The URL must point to a template that's located in an Amazon S3 bucket or a Systems Manager document. The location for an Amazon S3 bucket must start with https://. Conditional: You must pass TemplateURL or TemplateBody. If both are passed, only TemplateBody is used. public var templateURL: Swift.String? public init( @@ -6751,7 +6751,7 @@ public struct GetStackPolicyInput: Swift.Sendable { /// The output for the [GetStackPolicy] action. public struct GetStackPolicyOutput: Swift.Sendable { - /// Structure containing the stack policy body. (For more information, go to [ Prevent Updates to Stack Resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html) in the CloudFormation User Guide.) + /// Structure containing the stack policy body. (For more information, see [Prevent updates to stack resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html) in the CloudFormation User Guide.) public var stackPolicyBody: Swift.String? public init( @@ -6823,7 +6823,7 @@ public struct GetTemplateInput: Swift.Sendable { public struct GetTemplateOutput: Swift.Sendable { /// The stage of the template that you can retrieve. For stacks, the Original and Processed templates are always available. For change sets, the Original template is always available. After CloudFormation finishes creating the change set, the Processed template becomes available. public var stagesAvailable: [CloudFormationClientTypes.TemplateStage]? - /// Structure containing the template body. (For more information, go to [Template Anatomy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html) in the CloudFormation User Guide.) CloudFormation returns the same template that was used when the stack was created. + /// Structure containing the template body. CloudFormation returns the same template that was used when the stack was created. public var templateBody: Swift.String? public init( @@ -6864,11 +6864,11 @@ public struct GetTemplateSummaryInput: Swift.Sendable { public var stackName: Swift.String? /// The name or unique ID of the stack set from which the stack was created. Conditional: You must specify only one of the following parameters: StackName, StackSetName, TemplateBody, or TemplateURL. public var stackSetName: Swift.String? - /// Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. For more information about templates, see [Template anatomy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html) in the CloudFormation User Guide. Conditional: You must specify only one of the following parameters: StackName, StackSetName, TemplateBody, or TemplateURL. + /// Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. Conditional: You must specify only one of the following parameters: StackName, StackSetName, TemplateBody, or TemplateURL. public var templateBody: Swift.String? /// Specifies options for the GetTemplateSummary API action. public var templateSummaryConfig: CloudFormationClientTypes.TemplateSummaryConfig? - /// Location of file containing the template body. The URL must point to a template (max size: 460,800 bytes) that's located in an Amazon S3 bucket or a Systems Manager document. For more information about templates, see [Template anatomy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html) in the CloudFormation User Guide. The location for an Amazon S3 bucket must start with https://. Conditional: You must specify only one of the following parameters: StackName, StackSetName, TemplateBody, or TemplateURL. + /// Location of file containing the template body. The URL must point to a template (max size: 460,800 bytes) that's located in an Amazon S3 bucket or a Systems Manager document. The location for an Amazon S3 bucket must start with https://. Conditional: You must specify only one of the following parameters: StackName, StackSetName, TemplateBody, or TemplateURL. public var templateURL: Swift.String? public init( @@ -6983,7 +6983,7 @@ extension CloudFormationClientTypes { /// The output for the [GetTemplateSummary] action. public struct GetTemplateSummaryOutput: Swift.Sendable { - /// The capabilities found within the template. If your template contains IAM resources, you must specify the CAPABILITY_IAM or CAPABILITY_NAMED_IAM value for this parameter when you use the [CreateStack] or [UpdateStack] actions with your template; otherwise, those actions return an InsufficientCapabilities error. For more information, see [Acknowledging IAM Resources in CloudFormation Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities). + /// The capabilities found within the template. If your template contains IAM resources, you must specify the CAPABILITY_IAM or CAPABILITY_NAMED_IAM value for this parameter when you use the [CreateStack] or [UpdateStack] actions with your template; otherwise, those actions return an InsufficientCapabilities error. For more information, see [Acknowledging IAM resources in CloudFormation templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities). public var capabilities: [CloudFormationClientTypes.Capability]? /// The list of resources that generated the values in the Capabilities response element. public var capabilitiesReason: Swift.String? @@ -7063,7 +7063,7 @@ public struct ImportStacksToStackSetInput: Swift.Sendable { public var callAs: CloudFormationClientTypes.CallAs? /// A unique, user defined, identifier for the stack set operation. public var operationId: Swift.String? - /// The user-specified preferences for how CloudFormation performs a stack set operation. For more information about maximum concurrent accounts and failure tolerance, see [Stack set operation options](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options). + /// The user-specified preferences for how CloudFormation performs a stack set operation. For more information about maximum concurrent accounts and failure tolerance, see [Stack set operation options](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html#stackset-ops-options). public var operationPreferences: CloudFormationClientTypes.StackSetOperationPreferences? /// The list of OU ID's to which the stacks being imported has to be mapped as deployment target. public var organizationalUnitIds: [Swift.String]? @@ -7343,10 +7343,10 @@ extension CloudFormationClientTypes { /// Identifies a scanned resource. This is used with the ListResourceScanRelatedResources API action. public struct ScannedResourceIdentifier: Swift.Sendable { - /// A list of up to 256 key-value pairs that identifies the scanned resource. The key is the name of one of the primary identifiers for the resource. (Primary identifiers are specified in the primaryIdentifier list in the resource schema.) The value is the value of that primary identifier. For example, for a AWS::DynamoDB::Table resource, the primary identifiers is TableName so the key-value pair could be "TableName": "MyDDBTable". For more information, see [primaryIdentifier](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html#schema-properties-primaryidentifier) in the CloudFormation Command Line Interface User guide for extension development. + /// A list of up to 256 key-value pairs that identifies the scanned resource. The key is the name of one of the primary identifiers for the resource. (Primary identifiers are specified in the primaryIdentifier list in the resource schema.) The value is the value of that primary identifier. For example, for a AWS::DynamoDB::Table resource, the primary identifiers is TableName so the key-value pair could be "TableName": "MyDDBTable". For more information, see [primaryIdentifier](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html#schema-properties-primaryidentifier) in the CloudFormation Command Line Interface (CLI) User Guide. /// This member is required. public var resourceIdentifier: [Swift.String: Swift.String]? - /// The type of the resource, such as AWS::DynamoDB::Table. For the list of supported resources, see [IaC generator supported resource types](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html) In the CloudFormation User Guide. + /// The type of the resource, such as AWS::DynamoDB::Table. For the list of supported resources, see [Resource type support for imports and drift detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html) In the CloudFormation User Guide. /// This member is required. public var resourceType: Swift.String? @@ -7393,9 +7393,9 @@ extension CloudFormationClientTypes { public struct ScannedResource: Swift.Sendable { /// If true, the resource is managed by a CloudFormation stack. public var managedByStack: Swift.Bool? - /// A list of up to 256 key-value pairs that identifies for the scanned resource. The key is the name of one of the primary identifiers for the resource. (Primary identifiers are specified in the primaryIdentifier list in the resource schema.) The value is the value of that primary identifier. For example, for a AWS::DynamoDB::Table resource, the primary identifiers is TableName so the key-value pair could be "TableName": "MyDDBTable". For more information, see [primaryIdentifier](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html#schema-properties-primaryidentifier) in the CloudFormation Command Line Interface User guide for extension development. + /// A list of up to 256 key-value pairs that identifies for the scanned resource. The key is the name of one of the primary identifiers for the resource. (Primary identifiers are specified in the primaryIdentifier list in the resource schema.) The value is the value of that primary identifier. For example, for a AWS::DynamoDB::Table resource, the primary identifiers is TableName so the key-value pair could be "TableName": "MyDDBTable". For more information, see [primaryIdentifier](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html#schema-properties-primaryidentifier) in the CloudFormation Command Line Interface (CLI) User Guide. public var resourceIdentifier: [Swift.String: Swift.String]? - /// The type of the resource, such as AWS::DynamoDB::Table. For the list of supported resources, see [Resource type support](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html) In the CloudFormation User Guide + /// The type of the resource, such as AWS::DynamoDB::Table. For the list of supported resources, see [Resource type support for imports and drift detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html) In the CloudFormation User Guide public var resourceType: Swift.String? public init( @@ -7617,7 +7617,7 @@ extension CloudFormationClientTypes { public var physicalResourceIdContext: [CloudFormationClientTypes.PhysicalResourceIdContextKeyValuePair]? /// Status of the actual configuration of the resource compared to its expected configuration. These will be present only for resources whose StackInstanceResourceDriftStatus is MODIFIED. public var propertyDifferences: [CloudFormationClientTypes.PropertyDifference]? - /// Type of resource. For more information, go to [Amazon Web Services Resource Types Reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html) in the CloudFormation User Guide. + /// Type of resource. For more information, see [Amazon Web Services resource and property types reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html) in the CloudFormation User Guide. /// This member is required. public var resourceType: Swift.String? /// The ID of the stack instance. @@ -7900,7 +7900,7 @@ extension CloudFormationClientTypes { /// /// * MODIFIED: The resource differs from its expected configuration. /// - /// * NOT_CHECKED: CloudFormation hasn't checked if the resource differs from its expected configuration. Any resources that don't currently support drift detection have a status of NOT_CHECKED. For more information, see [Resources that Support Drift Detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html). If you performed an [ContinueUpdateRollback] operation on a stack, any resources included in ResourcesToSkip will also have a status of NOT_CHECKED. For more information about skipping resources during rollback operations, see [Continue Rolling Back an Update](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-continueupdaterollback.html) in the CloudFormation User Guide. + /// * NOT_CHECKED: CloudFormation hasn't checked if the resource differs from its expected configuration. Any resources that don't currently support drift detection have a status of NOT_CHECKED. For more information, see [Resource type support for imports and drift detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html). If you performed an [ContinueUpdateRollback] operation on a stack, any resources included in ResourcesToSkip will also have a status of NOT_CHECKED. For more information about skipping resources during rollback operations, see [Continue rolling back an update](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-continueupdaterollback.html) in the CloudFormation User Guide. /// /// * IN_SYNC: The resource's actual configuration matches its expected configuration. /// This member is required. @@ -7921,7 +7921,7 @@ extension CloudFormationClientTypes { /// Contains high-level information about the specified stack resource. public struct StackResourceSummary: Swift.Sendable { - /// Information about whether the resource's actual configuration differs, or has drifted, from its expected configuration, as defined in the stack template and any values specified as template parameters. For more information, see [Detecting Unregulated Configuration Changes to Stacks and Resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html). + /// Information about whether the resource's actual configuration differs, or has drifted, from its expected configuration, as defined in the stack template and any values specified as template parameters. For more information, see [Detect unmanaged configuration changes to stacks and resources with drift detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html). public var driftInformation: CloudFormationClientTypes.StackResourceDriftInformationSummary? /// Time the status was updated. /// This member is required. @@ -7938,7 +7938,7 @@ extension CloudFormationClientTypes { public var resourceStatus: CloudFormationClientTypes.ResourceStatus? /// Success/failure message associated with the resource. public var resourceStatusReason: Swift.String? - /// Type of resource. (For more information, go to [Amazon Web Services Resource Types Reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html) in the CloudFormation User Guide.) + /// Type of resource. (For more information, see [Amazon Web Services resource and property types reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html) in the CloudFormation User Guide.) /// This member is required. public var resourceType: Swift.String? @@ -8037,13 +8037,13 @@ extension CloudFormationClientTypes { public var creationTime: Foundation.Date? /// The time the stack was deleted. public var deletionTime: Foundation.Date? - /// Summarizes information about whether a stack's actual configuration differs, or has drifted, from its expected configuration, as defined in the stack template and any values specified as template parameters. For more information, see [Detecting Unregulated Configuration Changes to Stacks and Resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html). + /// Summarizes information about whether a stack's actual configuration differs, or has drifted, from its expected configuration, as defined in the stack template and any values specified as template parameters. For more information, see [Detect unmanaged configuration changes to stacks and resources with drift detection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html). public var driftInformation: CloudFormationClientTypes.StackDriftInformationSummary? /// The time the stack was last updated. This field will only be returned if the stack has been updated at least once. public var lastUpdatedTime: Foundation.Date? - /// For nested stacks--stacks created as resources for another stack--the stack ID of the direct parent of this stack. For the first level of nested stacks, the root stack is also the parent stack. For more information, see [Working with Nested Stacks](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html) in the CloudFormation User Guide. + /// For nested stacks--stacks created as resources for another stack--the stack ID of the direct parent of this stack. For the first level of nested stacks, the root stack is also the parent stack. For more information, see [Embed stacks within other stacks using nested stacks](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html) in the CloudFormation User Guide. public var parentId: Swift.String? - /// For nested stacks--stacks created as resources for another stack--the stack ID of the top-level stack to which the nested stack ultimately belongs. For more information, see [Working with Nested Stacks](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html) in the CloudFormation User Guide. + /// For nested stacks--stacks created as resources for another stack--the stack ID of the top-level stack to which the nested stack ultimately belongs. For more information, see [Embed stacks within other stacks using nested stacks](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html) in the CloudFormation User Guide. public var rootId: Swift.String? /// Unique stack identifier. public var stackId: Swift.String? @@ -8394,13 +8394,13 @@ extension CloudFormationClientTypes { public var endTimestamp: Foundation.Date? /// The unique ID of the stack set operation. public var operationId: Swift.String? - /// The user-specified preferences for how CloudFormation performs a stack set operation. For more information about maximum concurrent accounts and failure tolerance, see [Stack set operation options](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options). + /// The user-specified preferences for how CloudFormation performs a stack set operation. For more information about maximum concurrent accounts and failure tolerance, see [Stack set operation options](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html#stackset-ops-options). public var operationPreferences: CloudFormationClientTypes.StackSetOperationPreferences? /// The overall status of the operation. /// /// * FAILED: The operation exceeded the specified failure tolerance. The failure tolerance value that you've set for an operation is applied for each Region during stack create and update operations. If the number of failed stacks within a Region exceeds the failure tolerance, the status of the operation in the Region is set to FAILED. This in turn sets the status of the operation as a whole to FAILED, and CloudFormation cancels the operation in any remaining Regions. /// - /// * QUEUED: [Service-managed permissions] For automatic deployments that require a sequence of operations, the operation is queued to be performed. For more information, see the [stack set operation status codes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-status-codes) in the CloudFormation User Guide. + /// * QUEUED: [Service-managed permissions] For automatic deployments that require a sequence of operations, the operation is queued to be performed. For more information, see the [stack set operation status codes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html#stackset-status-codes) in the CloudFormation User Guide. /// /// * RUNNING: The operation is currently being performed. /// @@ -8727,15 +8727,15 @@ extension CloudFormationClientTypes { /// /// For all other extension types, CloudFormation returns null. public var lastUpdated: Foundation.Date? - /// For public extensions that have been activated for this account and Region, the latest version of the public extension that is available. For any extensions other than activated third-arty extensions, CloudFormation returns null. How you specified AutoUpdate when enabling the extension affects whether CloudFormation automatically updates the extension in this account and Region when a new version is released. For more information, see [Setting CloudFormation to automatically use new versions of extensions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-auto) in the CloudFormation User Guide. + /// For public extensions that have been activated for this account and Region, the latest version of the public extension that is available. For any extensions other than activated third-party extensions, CloudFormation returns null. How you specified AutoUpdate when enabling the extension affects whether CloudFormation automatically updates the extension in this account and Region when a new version is released. For more information, see [Automatically use new versions of extensions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-auto) in the CloudFormation User Guide. public var latestPublicVersion: Swift.String? - /// For public extensions that have been activated for this account and Region, the type name of the public extension. If you specified a TypeNameAlias when enabling the extension in this account and Region, CloudFormation treats that alias as the extension's type name within the account and Region, not the type name of the public extension. For more information, see [Specifying aliases to refer to extensions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-alias) in the CloudFormation User Guide. + /// For public extensions that have been activated for this account and Region, the type name of the public extension. If you specified a TypeNameAlias when enabling the extension in this account and Region, CloudFormation treats that alias as the extension's type name within the account and Region, not the type name of the public extension. For more information, see [Use aliases to refer to extensions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-alias) in the CloudFormation User Guide. public var originalTypeName: Swift.String? - /// For public extensions that have been activated for this account and Region, the version of the public extension to be used for CloudFormation operations in this account and Region. How you specified AutoUpdate when enabling the extension affects whether CloudFormation automatically updates the extension in this account and Region when a new version is released. For more information, see [Setting CloudFormation to automatically use new versions of extensions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-auto) in the CloudFormation User Guide. + /// For public extensions that have been activated for this account and Region, the version of the public extension to be used for CloudFormation operations in this account and Region. How you specified AutoUpdate when enabling the extension affects whether CloudFormation automatically updates the extension in this account and Region when a new version is released. For more information, see [Automatically use new versions of extensions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-auto) in the CloudFormation User Guide. public var publicVersionNumber: Swift.String? /// The ID of the extension publisher, if the extension is published by a third party. Extensions published by Amazon don't return a publisher ID. public var publisherId: Swift.String? - /// The service used to verify the publisher identity. For more information, see [Registering your account to publish CloudFormation extensions](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html) in the CFN-CLI User Guide for Extension Development. + /// The service used to verify the publisher identity. For more information, see [Publishing extensions to make them available for public use](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html) in the CloudFormation Command Line Interface (CLI) User Guide. public var publisherIdentity: CloudFormationClientTypes.IdentityProvider? /// The publisher name, as defined in the public profile for that publisher in the service used to verify the publisher identity. public var publisherName: Swift.String? @@ -8848,7 +8848,7 @@ extension CloudFormationClientTypes { public var description: Swift.String? /// Whether the specified extension version is set as the default version. This applies only to private extensions you have registered in your account, and extensions published by Amazon. For public third-party extensions, CloudFormation returns null. public var isDefaultVersion: Swift.Bool? - /// For public extensions that have been activated for this account and Region, the version of the public extension to be used for CloudFormation operations in this account and Region. For any extensions other than activated third-arty extensions, CloudFormation returns null. How you specified AutoUpdate when enabling the extension affects whether CloudFormation automatically updates the extension in this account and Region when a new version is released. For more information, see [Setting CloudFormation to automatically use new versions of extensions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-auto) in the CloudFormation User Guide. + /// For public extensions that have been activated for this account and Region, the version of the public extension to be used for CloudFormation operations in this account and Region. For any extensions other than activated third-party extensions, CloudFormation returns null. How you specified AutoUpdate when enabling the extension affects whether CloudFormation automatically updates the extension in this account and Region when a new version is released. For more information, see [Automatically use new versions of extensions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-auto) in the CloudFormation User Guide. public var publicVersionNumber: Swift.String? /// When the version was registered. public var timeCreated: Foundation.Date? @@ -9143,7 +9143,7 @@ public struct RecordHandlerProgressOutput: Swift.Sendable { public struct RegisterPublisherInput: Swift.Sendable { /// Whether you accept the [Terms and Conditions](https://cloudformation-registry-documents.s3.amazonaws.com/Terms_and_Conditions_for_AWS_CloudFormation_Registry_Publishers.pdf) for publishing extensions in the CloudFormation registry. You must accept the terms and conditions in order to register to publish public extensions to the CloudFormation registry. The default is false. public var acceptTermsAndConditions: Swift.Bool? - /// If you are using a Bitbucket or GitHub account for identity verification, the Amazon Resource Name (ARN) for your connection to that account. For more information, see [Registering your account to publish CloudFormation extensions](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html#publish-extension-prereqs) in the CloudFormation CLI User Guide. + /// If you are using a Bitbucket or GitHub account for identity verification, the Amazon Resource Name (ARN) for your connection to that account. For more information, see [Prerequisite: Registering your account to publish CloudFormation extensions](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html#publish-extension-prereqs) in the CloudFormation Command Line Interface (CLI) User Guide. public var connectionArn: Swift.String? public init( @@ -9175,7 +9175,7 @@ public struct RegisterTypeInput: Swift.Sendable { public var executionRoleArn: Swift.String? /// Specifies logging configuration information for an extension. public var loggingConfig: CloudFormationClientTypes.LoggingConfig? - /// A URL to the S3 bucket containing the extension project package that contains the necessary files for the extension you want to register. For information about generating a schema handler package for the extension you want to register, see [submit](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-cli-submit.html) in the CloudFormation CLI User Guide. The user registering the extension must be able to access the package in the S3 bucket. That's, the user needs to have [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) permissions for the schema handler package. For more information, see [Actions, Resources, and Condition Keys for Amazon S3](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazons3.html) in the Identity and Access Management User Guide. + /// A URL to the S3 bucket containing the extension project package that contains the necessary files for the extension you want to register. For information about generating a schema handler package for the extension you want to register, see [submit](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-cli-submit.html) in the CloudFormation Command Line Interface (CLI) User Guide. The user registering the extension must be able to access the package in the S3 bucket. That's, the user needs to have [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) permissions for the schema handler package. For more information, see [Actions, Resources, and Condition Keys for Amazon S3](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazons3.html) in the Identity and Access Management User Guide. /// This member is required. public var schemaHandlerPackage: Swift.String? /// The kind of extension. @@ -9240,7 +9240,7 @@ public struct RollbackStackInput: Swift.Sendable { public var clientRequestToken: Swift.String? /// When set to true, newly created resources are deleted when the operation rolls back. This includes newly created resources marked with a deletion policy of Retain. Default: false public var retainExceptOnCreate: Swift.Bool? - /// The Amazon Resource Name (ARN) of an Identity and Access Management role that CloudFormation assumes to rollback the stack. + /// The Amazon Resource Name (ARN) of an IAM role that CloudFormation assumes to rollback the stack. public var roleARN: Swift.String? /// The name that's associated with the stack. /// This member is required. @@ -9277,7 +9277,7 @@ public struct SetStackPolicyInput: Swift.Sendable { /// The name or unique stack ID that you want to associate a policy with. /// This member is required. public var stackName: Swift.String? - /// Structure containing the stack policy body. For more information, go to [ Prevent updates to stack resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html) in the CloudFormation User Guide. You can specify either the StackPolicyBody or the StackPolicyURL parameter, but not both. + /// Structure containing the stack policy body. For more information, see [Prevent updates to stack resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html) in the CloudFormation User Guide. You can specify either the StackPolicyBody or the StackPolicyURL parameter, but not both. public var stackPolicyBody: Swift.String? /// Location of a file containing the stack policy. The URL must point to a policy (maximum size: 16 KB) located in an Amazon S3 bucket in the same Amazon Web Services Region as the stack. The location for an Amazon S3 bucket must start with https://. You can specify either the StackPolicyBody or the StackPolicyURL parameter, but not both. public var stackPolicyURL: Swift.String? @@ -9295,7 +9295,7 @@ public struct SetStackPolicyInput: Swift.Sendable { } public struct SetTypeConfigurationInput: Swift.Sendable { - /// The configuration data for the extension, in this account and Region. The configuration data must be formatted as JSON, and validate against the schema returned in the ConfigurationSchema response element of [DescribeType](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DescribeType.html). For more information, see [Defining account-level configuration data for an extension](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-model.html#resource-type-howto-configuration) in the CloudFormation CLI User Guide. + /// The configuration data for the extension, in this account and Region. The configuration data must be formatted as JSON, and validate against the schema returned in the ConfigurationSchema response element of [DescribeType](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DescribeType.html). For more information, see [Defining the account-level configuration of an extension](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-model.html#resource-type-howto-configuration) in the CloudFormation Command Line Interface (CLI) User Guide. /// This member is required. public var configuration: Swift.String? /// An alias by which to refer to this extension configuration data. Conditional: Specifying a configuration alias is required when setting a configuration for a resource type extension. @@ -9517,7 +9517,7 @@ public struct TestTypeInput: Swift.Sendable { /// * PutObject /// /// - /// For more information, see [Actions, Resources, and Condition Keys for Amazon S3](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html) in the Amazon Web Services Identity and Access Management User Guide. + /// For more information, see [Actions, Resources, and Condition Keys for Amazon S3](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html) in the Identity and Access Management User Guide. public var logDeliveryBucket: Swift.String? /// The type of the extension to test. Conditional: You must specify Arn, or TypeName and Type. public var type: CloudFormationClientTypes.ThirdPartyType? @@ -9603,7 +9603,7 @@ public struct UpdateGeneratedTemplateOutput: Swift.Sendable { public struct UpdateStackInput: Swift.Sendable { /// In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order for CloudFormation to update the stack. /// - /// * CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include resources that can affect permissions in your Amazon Web Services account; for example, by creating new Identity and Access Management (IAM) users. For those stacks, you must explicitly acknowledge this by specifying one of these capabilities. The following IAM resources require you to specify either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability. + /// * CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include resources that can affect permissions in your Amazon Web Services account, for example, by creating new IAM users. For those stacks, you must explicitly acknowledge this by specifying one of these capabilities. The following IAM resources require you to specify either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability. /// /// * If you have IAM resources, you can specify either capability. /// @@ -9614,24 +9614,24 @@ public struct UpdateStackInput: Swift.Sendable { /// /// If your stack template contains these resources, we suggest that you review all permissions associated with them and edit their permissions if necessary. /// - /// * [AWS::IAM::AccessKey](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html) + /// * [AWS::IAM::AccessKey](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-accesskey.html) /// - /// * [ AWS::IAM::Group](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html) + /// * [ AWS::IAM::Group](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-group.html) /// /// * [AWS::IAM::InstanceProfile](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html) /// - /// * [AWS::IAM::Policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html) + /// * [AWS::IAM::Policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html) /// /// * [ AWS::IAM::Role](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html) /// - /// * [ AWS::IAM::User](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html) + /// * [ AWS::IAM::User](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-user.html) /// - /// * [AWS::IAM::UserToGroupAddition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html) + /// * [AWS::IAM::UserToGroupAddition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-usertogroupaddition.html) /// /// - /// For more information, see [Acknowledging IAM Resources in CloudFormation Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities). + /// For more information, see [Acknowledging IAM resources in CloudFormation templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities). /// - /// * CAPABILITY_AUTO_EXPAND Some template contain macros. Macros perform custom processing on templates; this can include simple actions like find-and-replace operations, all the way to extensive transformations of entire templates. Because of this, users typically create a change set from the processed template, so that they can review the changes resulting from the macros before actually updating the stack. If your stack template contains one or more macros, and you choose to update a stack directly from the processed template, without first reviewing the resulting changes in a change set, you must acknowledge this capability. This includes the [AWS::Include](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html) and [AWS::Serverless](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html) transforms, which are macros hosted by CloudFormation. If you want to update a stack from a stack template that contains macros and nested stacks, you must update the stack directly from the template using this capability. You should only update stacks directly from a stack template that contains macros if you know what processing the macro performs. Each macro relies on an underlying Lambda service function for processing stack templates. Be aware that the Lambda function owner can update the function operation without CloudFormation being notified. For more information, see [Using CloudFormation Macros to Perform Custom Processing on Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html). + /// * CAPABILITY_AUTO_EXPAND Some template contain macros. Macros perform custom processing on templates; this can include simple actions like find-and-replace operations, all the way to extensive transformations of entire templates. Because of this, users typically create a change set from the processed template, so that they can review the changes resulting from the macros before actually updating the stack. If your stack template contains one or more macros, and you choose to update a stack directly from the processed template, without first reviewing the resulting changes in a change set, you must acknowledge this capability. This includes the [AWS::Include](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html) and [AWS::Serverless](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html) transforms, which are macros hosted by CloudFormation. If you want to update a stack from a stack template that contains macros and nested stacks, you must update the stack directly from the template using this capability. You should only update stacks directly from a stack template that contains macros if you know what processing the macro performs. Each macro relies on an underlying Lambda service function for processing stack templates. Be aware that the Lambda function owner can update the function operation without CloudFormation being notified. For more information, see [Perform custom processing on CloudFormation templates with template macros](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html). /// /// /// Only one of the Capabilities and ResourceType parameters can be specified. @@ -9644,11 +9644,11 @@ public struct UpdateStackInput: Swift.Sendable { public var notificationARNs: [Swift.String]? /// A list of Parameter structures that specify input parameters for the stack. For more information, see the [Parameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html) data type. public var parameters: [CloudFormationClientTypes.Parameter]? - /// The template resource types that you have permissions to work with for this update stack action, such as AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance. If the list of resource types doesn't include a resource that you're updating, the stack update fails. By default, CloudFormation grants permissions to all resource types. Identity and Access Management (IAM) uses this parameter for CloudFormation-specific condition keys in IAM policies. For more information, see [Controlling Access with Identity and Access Management](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html). Only one of the Capabilities and ResourceType parameters can be specified. + /// The template resource types that you have permissions to work with for this update stack action, such as AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance. If the list of resource types doesn't include a resource that you're updating, the stack update fails. By default, CloudFormation grants permissions to all resource types. IAM uses this parameter for CloudFormation-specific condition keys in IAM policies. For more information, see [Control access with Identity and Access Management](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html). Only one of the Capabilities and ResourceType parameters can be specified. public var resourceTypes: [Swift.String]? /// When set to true, newly created resources are deleted when the operation rolls back. This includes newly created resources marked with a deletion policy of Retain. Default: false public var retainExceptOnCreate: Swift.Bool? - /// The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) role that CloudFormation assumes to update the stack. CloudFormation uses the role's credentials to make calls on your behalf. CloudFormation always uses this role for all future operations on the stack. Provided that users have permission to operate on the stack, CloudFormation uses this role even if the users don't have permission to pass it. Ensure that the role grants least privilege. If you don't specify a value, CloudFormation uses the role that was previously associated with the stack. If no role is available, CloudFormation uses a temporary session that is generated from your user credentials. + /// The Amazon Resource Name (ARN) of an IAM role that CloudFormation assumes to update the stack. CloudFormation uses the role's credentials to make calls on your behalf. CloudFormation always uses this role for all future operations on the stack. Provided that users have permission to operate on the stack, CloudFormation uses this role even if the users don't have permission to pass it. Ensure that the role grants least privilege. If you don't specify a value, CloudFormation uses the role that was previously associated with the stack. If no role is available, CloudFormation uses a temporary session that is generated from your user credentials. public var roleARN: Swift.String? /// The rollback triggers for CloudFormation to monitor during stack creation and updating operations, and for the specified monitoring period afterwards. public var rollbackConfiguration: CloudFormationClientTypes.RollbackConfiguration? @@ -9665,9 +9665,9 @@ public struct UpdateStackInput: Swift.Sendable { public var stackPolicyURL: Swift.String? /// Key-value pairs to associate with this stack. CloudFormation also propagates these tags to supported resources in the stack. You can specify a maximum number of 50 tags. If you don't specify this parameter, CloudFormation doesn't modify the stack's tags. If you specify an empty value, CloudFormation removes all associated tags. public var tags: [CloudFormationClientTypes.Tag]? - /// Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. (For more information, go to [Template Anatomy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html) in the CloudFormation User Guide.) Conditional: You must specify only one of the following parameters: TemplateBody, TemplateURL, or set the UsePreviousTemplate to true. + /// Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. Conditional: You must specify only one of the following parameters: TemplateBody, TemplateURL, or set the UsePreviousTemplate to true. public var templateBody: Swift.String? - /// Location of file containing the template body. The URL must point to a template that's located in an Amazon S3 bucket or a Systems Manager document. For more information, go to [Template Anatomy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html) in the CloudFormation User Guide. The location for an Amazon S3 bucket must start with https://. Conditional: You must specify only one of the following parameters: TemplateBody, TemplateURL, or set the UsePreviousTemplate to true. + /// Location of file containing the template body. The URL must point to a template that's located in an Amazon S3 bucket or a Systems Manager document. The location for an Amazon S3 bucket must start with https://. Conditional: You must specify only one of the following parameters: TemplateBody, TemplateURL, or set the UsePreviousTemplate to true. public var templateURL: Swift.String? /// Reuse the existing template that is associated with the stack that you are updating. Conditional: You must specify only one of the following parameters: TemplateBody, TemplateURL, or set the UsePreviousTemplate to true. public var usePreviousTemplate: Swift.Bool? @@ -9811,7 +9811,7 @@ public struct UpdateStackSetInput: Swift.Sendable { public var callAs: CloudFormationClientTypes.CallAs? /// In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order for CloudFormation to update the stack set and its associated stack instances. /// - /// * CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include resources that can affect permissions in your Amazon Web Services account; for example, by creating new Identity and Access Management (IAM) users. For those stacks sets, you must explicitly acknowledge this by specifying one of these capabilities. The following IAM resources require you to specify either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability. + /// * CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include resources that can affect permissions in your Amazon Web Services account, for example, by creating new IAM users. For those stacks sets, you must explicitly acknowledge this by specifying one of these capabilities. The following IAM resources require you to specify either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability. /// /// * If you have IAM resources, you can specify either capability. /// @@ -9822,22 +9822,22 @@ public struct UpdateStackSetInput: Swift.Sendable { /// /// If your stack template contains these resources, we recommend that you review all permissions associated with them and edit their permissions if necessary. /// - /// * [AWS::IAM::AccessKey](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html) + /// * [AWS::IAM::AccessKey](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-accesskey.html) /// - /// * [AWS::IAM::Group](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html) + /// * [AWS::IAM::Group](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-group.html) /// /// * [AWS::IAM::InstanceProfile](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html) /// - /// * [AWS::IAM::Policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html) + /// * [AWS::IAM::Policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html) /// /// * [AWS::IAM::Role](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html) /// - /// * [AWS::IAM::User](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html) + /// * [AWS::IAM::User](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-user.html) /// - /// * [AWS::IAM::UserToGroupAddition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html) + /// * [AWS::IAM::UserToGroupAddition](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-usertogroupaddition.html) /// /// - /// For more information, see [Acknowledging IAM Resources in CloudFormation Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities). + /// For more information, see [Acknowledging IAM resources in CloudFormation templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities). /// /// * CAPABILITY_AUTO_EXPAND Some templates reference macros. If your stack set template references one or more macros, you must update the stack set directly from the processed template, without first reviewing the resulting changes in a change set. To update the stack set directly, you must acknowledge this capability. For more information, see [Using CloudFormation Macros to Perform Custom Processing on Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html). Stack sets with service-managed permissions do not currently support the use of macros in templates. (This includes the [AWS::Include](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html) and [AWS::Serverless](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html) transforms, which are macros hosted by CloudFormation.) Even if you specify this capability for a stack set with service-managed permissions, if you reference a macro in your template the stack set operation will fail. public var capabilities: [CloudFormationClientTypes.Capability]? @@ -9877,9 +9877,9 @@ public struct UpdateStackSetInput: Swift.Sendable { /// /// If you specify new tags as part of an UpdateStackSet action, CloudFormation checks to see if you have the required IAM permission to tag resources. If you omit tags that are currently associated with the stack set from the list of tags you specify, CloudFormation assumes that you want to remove those tags from the stack set, and checks to see if you have permission to untag resources. If you don't have the necessary permission(s), the entire UpdateStackSet action fails with an access denied error, and the stack set is not updated. public var tags: [CloudFormationClientTypes.Tag]? - /// The structure that contains the template body, with a minimum length of 1 byte and a maximum length of 51,200 bytes. For more information, see [Template Anatomy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html) in the CloudFormation User Guide. Conditional: You must specify only one of the following parameters: TemplateBody or TemplateURL—or set UsePreviousTemplate to true. + /// The structure that contains the template body, with a minimum length of 1 byte and a maximum length of 51,200 bytes. Conditional: You must specify only one of the following parameters: TemplateBody or TemplateURL—or set UsePreviousTemplate to true. public var templateBody: Swift.String? - /// The location of the file that contains the template body. The URL must point to a template (maximum size: 460,800 bytes) that is located in an Amazon S3 bucket or a Systems Manager document. For more information, see [Template Anatomy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html) in the CloudFormation User Guide. Conditional: You must specify only one of the following parameters: TemplateBody or TemplateURL—or set UsePreviousTemplate to true. + /// The location of the file that contains the template body. The URL must point to a template (maximum size: 460,800 bytes) that is located in an Amazon S3 bucket or a Systems Manager document. Conditional: You must specify only one of the following parameters: TemplateBody or TemplateURL—or set UsePreviousTemplate to true. public var templateURL: Swift.String? /// Use the existing template that's associated with the stack set that you're updating. Conditional: You must specify only one of the following parameters: TemplateBody or TemplateURL—or set UsePreviousTemplate to true. public var usePreviousTemplate: Swift.Bool? @@ -9972,9 +9972,9 @@ public struct UpdateTerminationProtectionOutput: Swift.Sendable { /// The input for [ValidateTemplate] action. public struct ValidateTemplateInput: Swift.Sendable { - /// Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. For more information, go to [Template Anatomy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html) in the CloudFormation User Guide. Conditional: You must pass TemplateURL or TemplateBody. If both are passed, only TemplateBody is used. + /// Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. Conditional: You must pass TemplateURL or TemplateBody. If both are passed, only TemplateBody is used. public var templateBody: Swift.String? - /// Location of file containing the template body. The URL must point to a template (max size: 460,800 bytes) that is located in an Amazon S3 bucket or a Systems Manager document. For more information, go to [Template Anatomy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html) in the CloudFormation User Guide. The location for an Amazon S3 bucket must start with https://. Conditional: You must pass TemplateURL or TemplateBody. If both are passed, only TemplateBody is used. + /// Location of file containing the template body. The URL must point to a template (max size: 460,800 bytes) that is located in an Amazon S3 bucket or a Systems Manager document. The location for an Amazon S3 bucket must start with https://. Conditional: You must pass TemplateURL or TemplateBody. If both are passed, only TemplateBody is used. public var templateURL: Swift.String? public init( @@ -10017,7 +10017,7 @@ extension CloudFormationClientTypes { /// The output for [ValidateTemplate] action. public struct ValidateTemplateOutput: Swift.Sendable { - /// The capabilities found within the template. If your template contains IAM resources, you must specify the CAPABILITY_IAM or CAPABILITY_NAMED_IAM value for this parameter when you use the [CreateStack] or [UpdateStack] actions with your template; otherwise, those actions return an InsufficientCapabilities error. For more information, see [Acknowledging IAM Resources in CloudFormation Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities). + /// The capabilities found within the template. If your template contains IAM resources, you must specify the CAPABILITY_IAM or CAPABILITY_NAMED_IAM value for this parameter when you use the [CreateStack] or [UpdateStack] actions with your template; otherwise, those actions return an InsufficientCapabilities error. For more information, see [Acknowledging IAM resources in CloudFormation templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities). public var capabilities: [CloudFormationClientTypes.Capability]? /// The list of resources that generated the values in the Capabilities response element. public var capabilitiesReason: Swift.String? diff --git a/Sources/Services/AWSCodeBuild/Sources/AWSCodeBuild/Models.swift b/Sources/Services/AWSCodeBuild/Sources/AWSCodeBuild/Models.swift index cbf737d81b0..27c26b6352f 100644 --- a/Sources/Services/AWSCodeBuild/Sources/AWSCodeBuild/Models.swift +++ b/Sources/Services/AWSCodeBuild/Sources/AWSCodeBuild/Models.swift @@ -2243,6 +2243,140 @@ extension CodeBuildClientTypes { } } +extension CodeBuildClientTypes { + + public enum FleetProxyRuleBehavior: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case allowAll + case denyAll + case sdkUnknown(Swift.String) + + public static var allCases: [FleetProxyRuleBehavior] { + return [ + .allowAll, + .denyAll + ] + } + + 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 .allowAll: return "ALLOW_ALL" + case .denyAll: return "DENY_ALL" + case let .sdkUnknown(s): return s + } + } + } +} + +extension CodeBuildClientTypes { + + public enum FleetProxyRuleEffectType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case allow + case deny + case sdkUnknown(Swift.String) + + public static var allCases: [FleetProxyRuleEffectType] { + return [ + .allow, + .deny + ] + } + + 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 .allow: return "ALLOW" + case .deny: return "DENY" + case let .sdkUnknown(s): return s + } + } + } +} + +extension CodeBuildClientTypes { + + public enum FleetProxyRuleType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case domain + case ip + case sdkUnknown(Swift.String) + + public static var allCases: [FleetProxyRuleType] { + return [ + .domain, + .ip + ] + } + + 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 .domain: return "DOMAIN" + case .ip: return "IP" + case let .sdkUnknown(s): return s + } + } + } +} + +extension CodeBuildClientTypes { + + /// Information about the proxy rule for your reserved capacity instances. + public struct FleetProxyRule: Swift.Sendable { + /// The behavior of the proxy rule. + /// This member is required. + public var effect: CodeBuildClientTypes.FleetProxyRuleEffectType? + /// The destination of the proxy rule. + /// This member is required. + public var entities: [Swift.String]? + /// The type of proxy rule. + /// This member is required. + public var type: CodeBuildClientTypes.FleetProxyRuleType? + + public init( + effect: CodeBuildClientTypes.FleetProxyRuleEffectType? = nil, + entities: [Swift.String]? = nil, + type: CodeBuildClientTypes.FleetProxyRuleType? = nil + ) + { + self.effect = effect + self.entities = entities + self.type = type + } + } +} + +extension CodeBuildClientTypes { + + /// Information about the proxy configurations that apply network access control to your reserved capacity instances. + public struct ProxyConfiguration: Swift.Sendable { + /// The default behavior of outgoing traffic. + public var defaultBehavior: CodeBuildClientTypes.FleetProxyRuleBehavior? + /// An array of FleetProxyRule objects that represent the specified destination domains or IPs to allow or deny network access control to. + public var orderedProxyRules: [CodeBuildClientTypes.FleetProxyRule]? + + public init( + defaultBehavior: CodeBuildClientTypes.FleetProxyRuleBehavior? = nil, + orderedProxyRules: [CodeBuildClientTypes.FleetProxyRule]? = nil + ) + { + self.defaultBehavior = defaultBehavior + self.orderedProxyRules = orderedProxyRules + } + } +} + extension CodeBuildClientTypes { public enum FleetScalingType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { @@ -2570,6 +2704,8 @@ extension CodeBuildClientTypes { /// /// * For overflow behavior ON_DEMAND, your overflow builds run on CodeBuild on-demand. If you choose to set your overflow behavior to on-demand while creating a VPC-connected fleet, make sure that you add the required VPC permissions to your project service role. For more information, see [Example policy statement to allow CodeBuild access to Amazon Web Services services required to create a VPC network interface](https://docs.aws.amazon.com/codebuild/latest/userguide/auth-and-access-control-iam-identity-based-access-control.html#customer-managed-policies-example-create-vpc-network-interface). public var overflowBehavior: CodeBuildClientTypes.FleetOverflowBehavior? + /// The proxy configuration of the compute fleet. + public var proxyConfiguration: CodeBuildClientTypes.ProxyConfiguration? /// The scaling configuration of the compute fleet. public var scalingConfiguration: CodeBuildClientTypes.ScalingConfigurationOutput? /// The status of the compute fleet. @@ -2591,6 +2727,7 @@ extension CodeBuildClientTypes { lastModified: Foundation.Date? = nil, name: Swift.String? = nil, overflowBehavior: CodeBuildClientTypes.FleetOverflowBehavior? = nil, + proxyConfiguration: CodeBuildClientTypes.ProxyConfiguration? = nil, scalingConfiguration: CodeBuildClientTypes.ScalingConfigurationOutput? = nil, status: CodeBuildClientTypes.FleetStatus? = nil, tags: [CodeBuildClientTypes.Tag]? = nil, @@ -2608,6 +2745,7 @@ extension CodeBuildClientTypes { self.lastModified = lastModified self.name = name self.overflowBehavior = overflowBehavior + self.proxyConfiguration = proxyConfiguration self.scalingConfiguration = scalingConfiguration self.status = status self.tags = tags @@ -2856,6 +2994,7 @@ extension CodeBuildClientTypes { case filePath case headRef case releaseName + case repositoryName case tagName case workflowName case sdkUnknown(Swift.String) @@ -2869,6 +3008,7 @@ extension CodeBuildClientTypes { .filePath, .headRef, .releaseName, + .repositoryName, .tagName, .workflowName ] @@ -2888,6 +3028,7 @@ extension CodeBuildClientTypes { case .filePath: return "FILE_PATH" case .headRef: return "HEAD_REF" case .releaseName: return "RELEASE_NAME" + case .repositoryName: return "REPOSITORY_NAME" case .tagName: return "TAG_NAME" case .workflowName: return "WORKFLOW_NAME" case let .sdkUnknown(s): return s @@ -3826,6 +3967,8 @@ public struct CreateFleetInput: Swift.Sendable { /// /// * For overflow behavior ON_DEMAND, your overflow builds run on CodeBuild on-demand. If you choose to set your overflow behavior to on-demand while creating a VPC-connected fleet, make sure that you add the required VPC permissions to your project service role. For more information, see [Example policy statement to allow CodeBuild access to Amazon Web Services services required to create a VPC network interface](https://docs.aws.amazon.com/codebuild/latest/userguide/auth-and-access-control-iam-identity-based-access-control.html#customer-managed-policies-example-create-vpc-network-interface). public var overflowBehavior: CodeBuildClientTypes.FleetOverflowBehavior? + /// The proxy configuration of the compute fleet. + public var proxyConfiguration: CodeBuildClientTypes.ProxyConfiguration? /// The scaling configuration of the compute fleet. public var scalingConfiguration: CodeBuildClientTypes.ScalingConfigurationInput? /// A list of tag key and value pairs associated with this compute fleet. These tags are available for use by Amazon Web Services services that support CodeBuild build project tags. @@ -3841,6 +3984,7 @@ public struct CreateFleetInput: Swift.Sendable { imageId: Swift.String? = nil, name: Swift.String? = nil, overflowBehavior: CodeBuildClientTypes.FleetOverflowBehavior? = nil, + proxyConfiguration: CodeBuildClientTypes.ProxyConfiguration? = nil, scalingConfiguration: CodeBuildClientTypes.ScalingConfigurationInput? = nil, tags: [CodeBuildClientTypes.Tag]? = nil, vpcConfig: CodeBuildClientTypes.VpcConfig? = nil @@ -3853,6 +3997,7 @@ public struct CreateFleetInput: Swift.Sendable { self.imageId = imageId self.name = name self.overflowBehavior = overflowBehavior + self.proxyConfiguration = proxyConfiguration self.scalingConfiguration = scalingConfiguration self.tags = tags self.vpcConfig = vpcConfig @@ -6236,6 +6381,8 @@ public struct UpdateFleetInput: Swift.Sendable { /// /// * For overflow behavior ON_DEMAND, your overflow builds run on CodeBuild on-demand. If you choose to set your overflow behavior to on-demand while creating a VPC-connected fleet, make sure that you add the required VPC permissions to your project service role. For more information, see [Example policy statement to allow CodeBuild access to Amazon Web Services services required to create a VPC network interface](https://docs.aws.amazon.com/codebuild/latest/userguide/auth-and-access-control-iam-identity-based-access-control.html#customer-managed-policies-example-create-vpc-network-interface). public var overflowBehavior: CodeBuildClientTypes.FleetOverflowBehavior? + /// The proxy configuration of the compute fleet. + public var proxyConfiguration: CodeBuildClientTypes.ProxyConfiguration? /// The scaling configuration of the compute fleet. public var scalingConfiguration: CodeBuildClientTypes.ScalingConfigurationInput? /// A list of tag key and value pairs associated with this compute fleet. These tags are available for use by Amazon Web Services services that support CodeBuild build project tags. @@ -6251,6 +6398,7 @@ public struct UpdateFleetInput: Swift.Sendable { fleetServiceRole: Swift.String? = nil, imageId: Swift.String? = nil, overflowBehavior: CodeBuildClientTypes.FleetOverflowBehavior? = nil, + proxyConfiguration: CodeBuildClientTypes.ProxyConfiguration? = nil, scalingConfiguration: CodeBuildClientTypes.ScalingConfigurationInput? = nil, tags: [CodeBuildClientTypes.Tag]? = nil, vpcConfig: CodeBuildClientTypes.VpcConfig? = nil @@ -6263,6 +6411,7 @@ public struct UpdateFleetInput: Swift.Sendable { self.fleetServiceRole = fleetServiceRole self.imageId = imageId self.overflowBehavior = overflowBehavior + self.proxyConfiguration = proxyConfiguration self.scalingConfiguration = scalingConfiguration self.tags = tags self.vpcConfig = vpcConfig @@ -6936,6 +7085,7 @@ extension CreateFleetInput { try writer["imageId"].write(value.imageId) try writer["name"].write(value.name) try writer["overflowBehavior"].write(value.overflowBehavior) + try writer["proxyConfiguration"].write(value.proxyConfiguration, with: CodeBuildClientTypes.ProxyConfiguration.write(value:to:)) try writer["scalingConfiguration"].write(value.scalingConfiguration, with: CodeBuildClientTypes.ScalingConfigurationInput.write(value:to:)) try writer["tags"].writeList(value.tags, memberWritingClosure: CodeBuildClientTypes.Tag.write(value:to:), memberNodeInfo: "member", isFlattened: false) try writer["vpcConfig"].write(value.vpcConfig, with: CodeBuildClientTypes.VpcConfig.write(value:to:)) @@ -7389,6 +7539,7 @@ extension UpdateFleetInput { try writer["fleetServiceRole"].write(value.fleetServiceRole) try writer["imageId"].write(value.imageId) try writer["overflowBehavior"].write(value.overflowBehavior) + try writer["proxyConfiguration"].write(value.proxyConfiguration, with: CodeBuildClientTypes.ProxyConfiguration.write(value:to:)) try writer["scalingConfiguration"].write(value.scalingConfiguration, with: CodeBuildClientTypes.ScalingConfigurationInput.write(value:to:)) try writer["tags"].writeList(value.tags, memberWritingClosure: CodeBuildClientTypes.Tag.write(value:to:), memberNodeInfo: "member", isFlattened: false) try writer["vpcConfig"].write(value.vpcConfig, with: CodeBuildClientTypes.VpcConfig.write(value:to:)) @@ -9440,6 +9591,7 @@ extension CodeBuildClientTypes.Fleet { value.scalingConfiguration = try reader["scalingConfiguration"].readIfPresent(with: CodeBuildClientTypes.ScalingConfigurationOutput.read(from:)) value.overflowBehavior = try reader["overflowBehavior"].readIfPresent() value.vpcConfig = try reader["vpcConfig"].readIfPresent(with: CodeBuildClientTypes.VpcConfig.read(from:)) + value.proxyConfiguration = try reader["proxyConfiguration"].readIfPresent(with: CodeBuildClientTypes.ProxyConfiguration.read(from:)) value.imageId = try reader["imageId"].readIfPresent() value.fleetServiceRole = try reader["fleetServiceRole"].readIfPresent() value.tags = try reader["tags"].readListIfPresent(memberReadingClosure: CodeBuildClientTypes.Tag.read(from:), memberNodeInfo: "member", isFlattened: false) @@ -9464,6 +9616,42 @@ extension CodeBuildClientTypes.Tag { } } +extension CodeBuildClientTypes.ProxyConfiguration { + + static func write(value: CodeBuildClientTypes.ProxyConfiguration?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["defaultBehavior"].write(value.defaultBehavior) + try writer["orderedProxyRules"].writeList(value.orderedProxyRules, memberWritingClosure: CodeBuildClientTypes.FleetProxyRule.write(value:to:), memberNodeInfo: "member", isFlattened: false) + } + + static func read(from reader: SmithyJSON.Reader) throws -> CodeBuildClientTypes.ProxyConfiguration { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CodeBuildClientTypes.ProxyConfiguration() + value.defaultBehavior = try reader["defaultBehavior"].readIfPresent() + value.orderedProxyRules = try reader["orderedProxyRules"].readListIfPresent(memberReadingClosure: CodeBuildClientTypes.FleetProxyRule.read(from:), memberNodeInfo: "member", isFlattened: false) + return value + } +} + +extension CodeBuildClientTypes.FleetProxyRule { + + static func write(value: CodeBuildClientTypes.FleetProxyRule?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["effect"].write(value.effect) + try writer["entities"].writeList(value.entities, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["type"].write(value.type) + } + + static func read(from reader: SmithyJSON.Reader) throws -> CodeBuildClientTypes.FleetProxyRule { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CodeBuildClientTypes.FleetProxyRule() + value.type = try reader["type"].readIfPresent() ?? .sdkUnknown("") + value.effect = try reader["effect"].readIfPresent() ?? .sdkUnknown("") + value.entities = try reader["entities"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) ?? [] + return value + } +} + extension CodeBuildClientTypes.ScalingConfigurationOutput { static func read(from reader: SmithyJSON.Reader) throws -> CodeBuildClientTypes.ScalingConfigurationOutput { diff --git a/Sources/Services/AWSCodeCommit/Sources/AWSCodeCommit/CodeCommitClient.swift b/Sources/Services/AWSCodeCommit/Sources/AWSCodeCommit/CodeCommitClient.swift index c0406f47b69..bc7464d41e7 100644 --- a/Sources/Services/AWSCodeCommit/Sources/AWSCodeCommit/CodeCommitClient.swift +++ b/Sources/Services/AWSCodeCommit/Sources/AWSCodeCommit/CodeCommitClient.swift @@ -1147,6 +1147,7 @@ extension CodeCommitClient { /// - `InvalidRepositoryNameException` : A specified repository name is not valid. This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist. /// - `InvalidSystemTagUsageException` : The specified tag is not valid. Key names cannot be prefixed with aws:. /// - `InvalidTagsMapException` : The map of tags is not valid. + /// - `OperationNotAllowedException` : The requested action is not allowed. /// - `RepositoryLimitExceededException` : A repository resource limit was exceeded. /// - `RepositoryNameExistsException` : The specified repository name already exists. /// - `RepositoryNameRequiredException` : A repository name is required, but was not specified. diff --git a/Sources/Services/AWSCodeCommit/Sources/AWSCodeCommit/Models.swift b/Sources/Services/AWSCodeCommit/Sources/AWSCodeCommit/Models.swift index e77611f4d57..2b44a9c71e1 100644 --- a/Sources/Services/AWSCodeCommit/Sources/AWSCodeCommit/Models.swift +++ b/Sources/Services/AWSCodeCommit/Sources/AWSCodeCommit/Models.swift @@ -4611,6 +4611,31 @@ public struct InvalidTagsMapException: ClientRuntime.ModeledError, AWSClientRunt } } +/// The requested action is not allowed. +public struct OperationNotAllowedException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { + + public struct Properties { + /// Any message associated with the exception. + public internal(set) var message: Swift.String? = nil + } + + public internal(set) var properties = Properties() + public static var typeName: Swift.String { "OperationNotAllowedException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.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 + } +} + /// A repository resource limit was exceeded. public struct RepositoryLimitExceededException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { @@ -4713,7 +4738,7 @@ public struct TooManyTagsException: ClientRuntime.ModeledError, AWSClientRuntime /// Represents the input of a create repository operation. public struct CreateRepositoryInput: Swift.Sendable { - /// The ID of the encryption key. You can view the ID of an encryption key in the KMS console, or use the KMS APIs to programmatically retrieve a key ID. For more information about acceptable values for kmsKeyID, see [KeyId](https://docs.aws.amazon.com/APIReference/API_Decrypt.html#KMS-Decrypt-request-KeyId) in the Decrypt API description in the Key Management Service API Reference. If no key is specified, the default aws/codecommit Amazon Web Services managed key is used. + /// The ID of the encryption key. You can view the ID of an encryption key in the KMS console, or use the KMS APIs to programmatically retrieve a key ID. For more information about acceptable values for kmsKeyID, see [KeyId](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html#KMS-Decrypt-request-KeyId) in the Decrypt API description in the Key Management Service API Reference. If no key is specified, the default aws/codecommit Amazon Web Services managed key is used. public var kmsKeyId: Swift.String? /// A comment or description about the new repository. The description field for a repository accepts all HTML characters and all valid Unicode characters. Applications that do not HTML-encode the description and display it in a webpage can expose users to potentially malicious code. Make sure that you HTML-encode the description field in any application that uses this API to display the repository description on a webpage. public var repositoryDescription: Swift.String? @@ -10155,7 +10180,7 @@ public struct EncryptionKeyRequiredException: ClientRuntime.ModeledError, AWSCli } public struct UpdateRepositoryEncryptionKeyInput: Swift.Sendable { - /// The ID of the encryption key. You can view the ID of an encryption key in the KMS console, or use the KMS APIs to programmatically retrieve a key ID. For more information about acceptable values for keyID, see [KeyId](https://docs.aws.amazon.com/APIReference/API_Decrypt.html#KMS-Decrypt-request-KeyId) in the Decrypt API description in the Key Management Service API Reference. + /// The ID of the encryption key. You can view the ID of an encryption key in the KMS console, or use the KMS APIs to programmatically retrieve a key ID. For more information about acceptable values for keyID, see [KeyId](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html#KMS-Decrypt-request-KeyId) in the Decrypt API description in the Key Management Service API Reference. /// This member is required. public var kmsKeyId: Swift.String? /// The name of the repository for which you want to update the KMS encryption key used to encrypt and decrypt the repository. @@ -12916,6 +12941,7 @@ enum CreateRepositoryOutputError { case "InvalidRepositoryNameException": return try InvalidRepositoryNameException.makeError(baseError: baseError) case "InvalidSystemTagUsageException": return try InvalidSystemTagUsageException.makeError(baseError: baseError) case "InvalidTagsMapException": return try InvalidTagsMapException.makeError(baseError: baseError) + case "OperationNotAllowedException": return try OperationNotAllowedException.makeError(baseError: baseError) case "RepositoryLimitExceededException": return try RepositoryLimitExceededException.makeError(baseError: baseError) case "RepositoryNameExistsException": return try RepositoryNameExistsException.makeError(baseError: baseError) case "RepositoryNameRequiredException": return try RepositoryNameRequiredException.makeError(baseError: baseError) @@ -15943,6 +15969,19 @@ extension InvalidSystemTagUsageException { } } +extension OperationNotAllowedException { + + static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> OperationNotAllowedException { + let reader = baseError.errorBodyReader + var value = OperationNotAllowedException() + value.properties.message = try reader["message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + extension TagPolicyException { static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> TagPolicyException { diff --git a/Sources/Services/AWSCodeStarconnections/Package.swift.txt b/Sources/Services/AWSCodeStarconnections/Package.swift.txt new file mode 100644 index 00000000000..d660eebbaab --- /dev/null +++ b/Sources/Services/AWSCodeStarconnections/Package.swift.txt @@ -0,0 +1,99 @@ +// swift-tools-version: 5.9.0 + +import PackageDescription + +let package = Package( + name: "AWSCodeStarconnections", + platforms: [ + .macOS(.v10_15), .iOS(.v13) + ], + products: [ + .library(name: "AWSCodeStarconnections", targets: ["AWSCodeStarconnections"]) + ], + dependencies: [ + .package( + id: "aws-sdk-swift.smithy-swift", + exact: "0.0.1" + ), + .package( + id: "aws-sdk-swift.AWSClientRuntime", + exact: "0.0.1" + ), + .package( + id: "aws-sdk-swift.AWSSDKHTTPAuth", + exact: "0.0.1" + ), + ], + targets: [ + .target( + name: "AWSCodeStarconnections", + dependencies: [ + .product( + name: "SmithyHTTPAuthAPI", + package: "aws-sdk-swift.smithy-swift" + ), + .product( + name: "Smithy", + package: "aws-sdk-swift.smithy-swift" + ), + .product( + name: "ClientRuntime", + package: "aws-sdk-swift.smithy-swift" + ), + .product( + name: "AWSClientRuntime", + package: "aws-sdk-swift.AWSClientRuntime" + ), + .product( + name: "SmithyIdentity", + package: "aws-sdk-swift.smithy-swift" + ), + .product( + name: "SmithyRetriesAPI", + package: "aws-sdk-swift.smithy-swift" + ), + .product( + name: "SmithyHTTPAPI", + package: "aws-sdk-swift.smithy-swift" + ), + .product( + name: "AWSSDKHTTPAuth", + package: "aws-sdk-swift.AWSSDKHTTPAuth" + ), + .product( + name: "SmithyRetries", + package: "aws-sdk-swift.smithy-swift" + ), + .product( + name: "SmithyJSON", + package: "aws-sdk-swift.smithy-swift" + ), + .product( + name: "SmithyReadWrite", + package: "aws-sdk-swift.smithy-swift" + ), + .product( + name: "SmithyTimestamps", + package: "aws-sdk-swift.smithy-swift" + ), + .product( + name: "SmithyTestUtil", + package: "aws-sdk-swift.smithy-swift" + ), + ], + resources: [ + .process("Resources") + ] + ), + .testTarget( + name: "AWSCodeStarconnectionsTests", + dependencies: [ + "AWSCodeStarconnections", + .product( + name: "SmithyTestUtil", + package: "aws-sdk-swift.smithy-swift" + ), + ] + ) + ] +) diff --git a/Sources/Services/AWSCodeStarconnections/Sources/AWSCodeStarconnections/AuthSchemeResolver.swift b/Sources/Services/AWSCodeStarconnections/Sources/AWSCodeStarconnections/AuthSchemeResolver.swift new file mode 100644 index 00000000000..59290b0bbf4 --- /dev/null +++ b/Sources/Services/AWSCodeStarconnections/Sources/AWSCodeStarconnections/AuthSchemeResolver.swift @@ -0,0 +1,56 @@ +// +// Copyright Amazon.com Inc. or its affiliates. +// All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 +// + +// Code generated by smithy-swift-codegen. DO NOT EDIT! + +import class Smithy.Context +import enum Smithy.ClientError +import enum SmithyHTTPAuthAPI.SigningPropertyKeys +import protocol SmithyHTTPAuthAPI.AuthSchemeResolver +import protocol SmithyHTTPAuthAPI.AuthSchemeResolverParameters +import struct SmithyHTTPAuthAPI.AuthOption + +public struct CodeStarconnectionsAuthSchemeResolverParameters: SmithyHTTPAuthAPI.AuthSchemeResolverParameters { + public let operation: Swift.String + // Region is used for SigV4 auth scheme + public let region: Swift.String? +} + +public protocol CodeStarconnectionsAuthSchemeResolver: SmithyHTTPAuthAPI.AuthSchemeResolver { + // Intentionally empty. + // This is the parent protocol that all auth scheme resolver implementations of + // the service CodeStarconnections must conform to. +} + +public struct DefaultCodeStarconnectionsAuthSchemeResolver: CodeStarconnectionsAuthSchemeResolver { + + public func resolveAuthScheme(params: SmithyHTTPAuthAPI.AuthSchemeResolverParameters) throws -> [SmithyHTTPAuthAPI.AuthOption] { + var validAuthOptions = [SmithyHTTPAuthAPI.AuthOption]() + guard let serviceParams = params as? CodeStarconnectionsAuthSchemeResolverParameters else { + throw Smithy.ClientError.authError("Service specific auth scheme parameters type must be passed to auth scheme resolver.") + } + switch serviceParams.operation { + default: + var sigV4Option = SmithyHTTPAuthAPI.AuthOption(schemeID: "aws.auth#sigv4") + sigV4Option.signingProperties.set(key: SmithyHTTPAuthAPI.SigningPropertyKeys.signingName, value: "codestar-connections") + guard let region = serviceParams.region else { + throw Smithy.ClientError.authError("Missing region in auth scheme parameters for SigV4 auth scheme.") + } + sigV4Option.signingProperties.set(key: SmithyHTTPAuthAPI.SigningPropertyKeys.signingRegion, value: region) + validAuthOptions.append(sigV4Option) + } + return validAuthOptions + } + + public func constructParameters(context: Smithy.Context) throws -> SmithyHTTPAuthAPI.AuthSchemeResolverParameters { + guard let opName = context.getOperation() else { + throw Smithy.ClientError.dataNotFound("Operation name not configured in middleware context for auth scheme resolver params construction.") + } + let opRegion = context.getRegion() + return CodeStarconnectionsAuthSchemeResolverParameters(operation: opName, region: opRegion) + } +} diff --git a/Sources/Services/AWSCodeStarconnections/Sources/AWSCodeStarconnections/CodeStarconnectionsClient.swift b/Sources/Services/AWSCodeStarconnections/Sources/AWSCodeStarconnections/CodeStarconnectionsClient.swift new file mode 100644 index 00000000000..f28cb7cc322 --- /dev/null +++ b/Sources/Services/AWSCodeStarconnections/Sources/AWSCodeStarconnections/CodeStarconnectionsClient.swift @@ -0,0 +1,2166 @@ +// +// Copyright Amazon.com Inc. or its affiliates. +// All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 +// + +// Code generated by smithy-swift-codegen. DO NOT EDIT! + +import class AWSClientRuntime.AWSClientConfigDefaultsProvider +import class AWSClientRuntime.AmzSdkRequestMiddleware +import class AWSClientRuntime.DefaultAWSClientPlugin +import class ClientRuntime.ClientBuilder +import class ClientRuntime.DefaultClientPlugin +import class ClientRuntime.HttpClientConfiguration +import class ClientRuntime.OrchestratorBuilder +import class ClientRuntime.OrchestratorTelemetry +import class ClientRuntime.SdkHttpClient +import class Smithy.ContextBuilder +import class SmithyHTTPAPI.HTTPRequest +import class SmithyHTTPAPI.HTTPResponse +@_spi(SmithyReadWrite) import class SmithyJSON.Writer +import enum AWSClientRuntime.AWSRetryErrorInfoProvider +import enum AWSClientRuntime.AWSRetryMode +import enum ClientRuntime.ClientLogMode +import enum ClientRuntime.DefaultTelemetry +import enum ClientRuntime.OrchestratorMetricsAttributesKeys +import protocol AWSClientRuntime.AWSDefaultClientConfiguration +import protocol AWSClientRuntime.AWSRegionClientConfiguration +import protocol ClientRuntime.Client +import protocol ClientRuntime.DefaultClientConfiguration +import protocol ClientRuntime.DefaultHttpClientConfiguration +import protocol ClientRuntime.HttpInterceptorProvider +import protocol ClientRuntime.IdempotencyTokenGenerator +import protocol ClientRuntime.InterceptorProvider +import protocol ClientRuntime.TelemetryProvider +import protocol Smithy.LogAgent +import protocol SmithyHTTPAPI.HTTPClient +import protocol SmithyHTTPAuthAPI.AuthSchemeResolver +import protocol SmithyIdentity.AWSCredentialIdentityResolver +import protocol SmithyIdentity.BearerTokenIdentityResolver +@_spi(SmithyReadWrite) import protocol SmithyReadWrite.SmithyWriter +import struct AWSClientRuntime.AmzSdkInvocationIdMiddleware +import struct AWSClientRuntime.EndpointResolverMiddleware +import struct AWSClientRuntime.UserAgentMiddleware +import struct AWSClientRuntime.XAmzTargetMiddleware +import struct AWSSDKHTTPAuth.SigV4AuthScheme +import struct ClientRuntime.AuthSchemeMiddleware +@_spi(SmithyReadWrite) import struct ClientRuntime.BodyMiddleware +import struct ClientRuntime.ContentLengthMiddleware +import struct ClientRuntime.ContentTypeMiddleware +@_spi(SmithyReadWrite) import struct ClientRuntime.DeserializeMiddleware +import struct ClientRuntime.LoggerMiddleware +import struct ClientRuntime.SignerMiddleware +import struct ClientRuntime.URLHostMiddleware +import struct ClientRuntime.URLPathMiddleware +import struct Smithy.Attributes +import struct SmithyIdentity.BearerTokenIdentity +import struct SmithyIdentity.StaticBearerTokenIdentityResolver +import struct SmithyRetries.DefaultRetryStrategy +import struct SmithyRetriesAPI.RetryStrategyOptions +import typealias SmithyHTTPAuthAPI.AuthSchemes + +public class CodeStarconnectionsClient: ClientRuntime.Client { + public static let clientName = "CodeStarconnectionsClient" + let client: ClientRuntime.SdkHttpClient + let config: CodeStarconnectionsClient.CodeStarconnectionsClientConfiguration + let serviceName = "CodeStar connections" + + public required init(config: CodeStarconnectionsClient.CodeStarconnectionsClientConfiguration) { + client = ClientRuntime.SdkHttpClient(engine: config.httpClientEngine, config: config.httpClientConfiguration) + self.config = config + } + + public convenience init(region: Swift.String) throws { + let config = try CodeStarconnectionsClient.CodeStarconnectionsClientConfiguration(region: region) + self.init(config: config) + } + + public convenience required init() async throws { + let config = try await CodeStarconnectionsClient.CodeStarconnectionsClientConfiguration() + self.init(config: config) + } +} + +extension CodeStarconnectionsClient { + public class CodeStarconnectionsClientConfiguration: AWSClientRuntime.AWSDefaultClientConfiguration & AWSClientRuntime.AWSRegionClientConfiguration & ClientRuntime.DefaultClientConfiguration & ClientRuntime.DefaultHttpClientConfiguration { + public var useFIPS: Swift.Bool? + + public var useDualStack: Swift.Bool? + + public var appID: Swift.String? + + public var awsCredentialIdentityResolver: any SmithyIdentity.AWSCredentialIdentityResolver + + public var awsRetryMode: AWSClientRuntime.AWSRetryMode + + public var maxAttempts: Swift.Int? + + public var region: Swift.String? + + public var signingRegion: Swift.String? + + public var endpointResolver: EndpointResolver + + public var telemetryProvider: ClientRuntime.TelemetryProvider + + public var retryStrategyOptions: SmithyRetriesAPI.RetryStrategyOptions + + public var clientLogMode: ClientRuntime.ClientLogMode + + public var endpoint: Swift.String? + + public var idempotencyTokenGenerator: ClientRuntime.IdempotencyTokenGenerator + + public var httpClientEngine: SmithyHTTPAPI.HTTPClient + + public var httpClientConfiguration: ClientRuntime.HttpClientConfiguration + + public var authSchemes: SmithyHTTPAuthAPI.AuthSchemes? + + public var authSchemeResolver: SmithyHTTPAuthAPI.AuthSchemeResolver + + public var bearerTokenIdentityResolver: any SmithyIdentity.BearerTokenIdentityResolver + + public private(set) var interceptorProviders: [ClientRuntime.InterceptorProvider] + + public private(set) var httpInterceptorProviders: [ClientRuntime.HttpInterceptorProvider] + + internal let logger: Smithy.LogAgent + + private init(_ useFIPS: Swift.Bool?, _ useDualStack: Swift.Bool?, _ appID: Swift.String?, _ awsCredentialIdentityResolver: any SmithyIdentity.AWSCredentialIdentityResolver, _ awsRetryMode: AWSClientRuntime.AWSRetryMode, _ maxAttempts: Swift.Int?, _ region: Swift.String?, _ signingRegion: Swift.String?, _ endpointResolver: EndpointResolver, _ telemetryProvider: ClientRuntime.TelemetryProvider, _ retryStrategyOptions: SmithyRetriesAPI.RetryStrategyOptions, _ clientLogMode: ClientRuntime.ClientLogMode, _ endpoint: Swift.String?, _ idempotencyTokenGenerator: ClientRuntime.IdempotencyTokenGenerator, _ httpClientEngine: SmithyHTTPAPI.HTTPClient, _ httpClientConfiguration: ClientRuntime.HttpClientConfiguration, _ authSchemes: SmithyHTTPAuthAPI.AuthSchemes?, _ authSchemeResolver: SmithyHTTPAuthAPI.AuthSchemeResolver, _ bearerTokenIdentityResolver: any SmithyIdentity.BearerTokenIdentityResolver, _ interceptorProviders: [ClientRuntime.InterceptorProvider], _ httpInterceptorProviders: [ClientRuntime.HttpInterceptorProvider]) { + self.useFIPS = useFIPS + self.useDualStack = useDualStack + self.appID = appID + self.awsCredentialIdentityResolver = awsCredentialIdentityResolver + self.awsRetryMode = awsRetryMode + self.maxAttempts = maxAttempts + self.region = region + self.signingRegion = signingRegion + self.endpointResolver = endpointResolver + self.telemetryProvider = telemetryProvider + self.retryStrategyOptions = retryStrategyOptions + self.clientLogMode = clientLogMode + self.endpoint = endpoint + self.idempotencyTokenGenerator = idempotencyTokenGenerator + self.httpClientEngine = httpClientEngine + self.httpClientConfiguration = httpClientConfiguration + self.authSchemes = authSchemes + self.authSchemeResolver = authSchemeResolver + self.bearerTokenIdentityResolver = bearerTokenIdentityResolver + self.interceptorProviders = interceptorProviders + self.httpInterceptorProviders = httpInterceptorProviders + self.logger = telemetryProvider.loggerProvider.getLogger(name: CodeStarconnectionsClient.clientName) + } + + public convenience init(useFIPS: Swift.Bool? = nil, useDualStack: Swift.Bool? = nil, appID: Swift.String? = nil, awsCredentialIdentityResolver: (any SmithyIdentity.AWSCredentialIdentityResolver)? = nil, awsRetryMode: AWSClientRuntime.AWSRetryMode? = nil, maxAttempts: Swift.Int? = nil, region: Swift.String? = nil, signingRegion: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, telemetryProvider: ClientRuntime.TelemetryProvider? = nil, retryStrategyOptions: SmithyRetriesAPI.RetryStrategyOptions? = nil, clientLogMode: ClientRuntime.ClientLogMode? = nil, endpoint: Swift.String? = nil, idempotencyTokenGenerator: ClientRuntime.IdempotencyTokenGenerator? = nil, httpClientEngine: SmithyHTTPAPI.HTTPClient? = nil, httpClientConfiguration: ClientRuntime.HttpClientConfiguration? = nil, authSchemes: SmithyHTTPAuthAPI.AuthSchemes? = nil, authSchemeResolver: SmithyHTTPAuthAPI.AuthSchemeResolver? = nil, bearerTokenIdentityResolver: (any SmithyIdentity.BearerTokenIdentityResolver)? = nil, interceptorProviders: [ClientRuntime.InterceptorProvider]? = nil, httpInterceptorProviders: [ClientRuntime.HttpInterceptorProvider]? = nil) throws { + self.init(useFIPS, useDualStack, try appID ?? AWSClientRuntime.AWSClientConfigDefaultsProvider.appID(), try awsCredentialIdentityResolver ?? AWSClientRuntime.AWSClientConfigDefaultsProvider.awsCredentialIdentityResolver(awsCredentialIdentityResolver), try awsRetryMode ?? AWSClientRuntime.AWSClientConfigDefaultsProvider.retryMode(), maxAttempts, region, signingRegion, try endpointResolver ?? DefaultEndpointResolver(), telemetryProvider ?? ClientRuntime.DefaultTelemetry.provider, try retryStrategyOptions ?? AWSClientConfigDefaultsProvider.retryStrategyOptions(awsRetryMode, maxAttempts), clientLogMode ?? AWSClientConfigDefaultsProvider.clientLogMode(), endpoint, idempotencyTokenGenerator ?? AWSClientConfigDefaultsProvider.idempotencyTokenGenerator(), httpClientEngine ?? AWSClientConfigDefaultsProvider.httpClientEngine(), httpClientConfiguration ?? AWSClientConfigDefaultsProvider.httpClientConfiguration(), authSchemes ?? [AWSSDKHTTPAuth.SigV4AuthScheme()], authSchemeResolver ?? DefaultCodeStarconnectionsAuthSchemeResolver(), bearerTokenIdentityResolver ?? SmithyIdentity.StaticBearerTokenIdentityResolver(token: SmithyIdentity.BearerTokenIdentity(token: "")), interceptorProviders ?? [], httpInterceptorProviders ?? []) + } + + public convenience init(useFIPS: Swift.Bool? = nil, useDualStack: Swift.Bool? = nil, appID: Swift.String? = nil, awsCredentialIdentityResolver: (any SmithyIdentity.AWSCredentialIdentityResolver)? = nil, awsRetryMode: AWSClientRuntime.AWSRetryMode? = nil, maxAttempts: Swift.Int? = nil, region: Swift.String? = nil, signingRegion: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, telemetryProvider: ClientRuntime.TelemetryProvider? = nil, retryStrategyOptions: SmithyRetriesAPI.RetryStrategyOptions? = nil, clientLogMode: ClientRuntime.ClientLogMode? = nil, endpoint: Swift.String? = nil, idempotencyTokenGenerator: ClientRuntime.IdempotencyTokenGenerator? = nil, httpClientEngine: SmithyHTTPAPI.HTTPClient? = nil, httpClientConfiguration: ClientRuntime.HttpClientConfiguration? = nil, authSchemes: SmithyHTTPAuthAPI.AuthSchemes? = nil, authSchemeResolver: SmithyHTTPAuthAPI.AuthSchemeResolver? = nil, bearerTokenIdentityResolver: (any SmithyIdentity.BearerTokenIdentityResolver)? = nil, interceptorProviders: [ClientRuntime.InterceptorProvider]? = nil, httpInterceptorProviders: [ClientRuntime.HttpInterceptorProvider]? = nil) async throws { + self.init(useFIPS, useDualStack, try appID ?? AWSClientRuntime.AWSClientConfigDefaultsProvider.appID(), try awsCredentialIdentityResolver ?? AWSClientRuntime.AWSClientConfigDefaultsProvider.awsCredentialIdentityResolver(awsCredentialIdentityResolver), try awsRetryMode ?? AWSClientRuntime.AWSClientConfigDefaultsProvider.retryMode(), maxAttempts, try await AWSClientRuntime.AWSClientConfigDefaultsProvider.region(region), try await AWSClientRuntime.AWSClientConfigDefaultsProvider.region(region), try endpointResolver ?? DefaultEndpointResolver(), telemetryProvider ?? ClientRuntime.DefaultTelemetry.provider, try retryStrategyOptions ?? AWSClientConfigDefaultsProvider.retryStrategyOptions(awsRetryMode, maxAttempts), clientLogMode ?? AWSClientConfigDefaultsProvider.clientLogMode(), endpoint, idempotencyTokenGenerator ?? AWSClientConfigDefaultsProvider.idempotencyTokenGenerator(), httpClientEngine ?? AWSClientConfigDefaultsProvider.httpClientEngine(), httpClientConfiguration ?? AWSClientConfigDefaultsProvider.httpClientConfiguration(), authSchemes ?? [AWSSDKHTTPAuth.SigV4AuthScheme()], authSchemeResolver ?? DefaultCodeStarconnectionsAuthSchemeResolver(), bearerTokenIdentityResolver ?? SmithyIdentity.StaticBearerTokenIdentityResolver(token: SmithyIdentity.BearerTokenIdentity(token: "")), interceptorProviders ?? [], httpInterceptorProviders ?? []) + } + + public convenience required init() async throws { + try await self.init(useFIPS: nil, useDualStack: nil, appID: nil, awsCredentialIdentityResolver: nil, awsRetryMode: nil, maxAttempts: nil, region: nil, signingRegion: nil, endpointResolver: nil, telemetryProvider: nil, retryStrategyOptions: nil, clientLogMode: nil, endpoint: nil, idempotencyTokenGenerator: nil, httpClientEngine: nil, httpClientConfiguration: nil, authSchemes: nil, authSchemeResolver: nil, bearerTokenIdentityResolver: nil, interceptorProviders: nil, httpInterceptorProviders: nil) + } + + public convenience init(region: String) throws { + self.init(nil, nil, try AWSClientRuntime.AWSClientConfigDefaultsProvider.appID(), try AWSClientConfigDefaultsProvider.awsCredentialIdentityResolver(), try AWSClientRuntime.AWSClientConfigDefaultsProvider.retryMode(), nil, region, region, try DefaultEndpointResolver(), ClientRuntime.DefaultTelemetry.provider, try AWSClientConfigDefaultsProvider.retryStrategyOptions(), AWSClientConfigDefaultsProvider.clientLogMode(), nil, AWSClientConfigDefaultsProvider.idempotencyTokenGenerator(), AWSClientConfigDefaultsProvider.httpClientEngine(), AWSClientConfigDefaultsProvider.httpClientConfiguration(), [AWSSDKHTTPAuth.SigV4AuthScheme()], DefaultCodeStarconnectionsAuthSchemeResolver(), SmithyIdentity.StaticBearerTokenIdentityResolver(token: SmithyIdentity.BearerTokenIdentity(token: "")), [], []) + } + + public var partitionID: String? { + return "\(CodeStarconnectionsClient.clientName) - \(region ?? "")" + } + public func addInterceptorProvider(_ provider: ClientRuntime.InterceptorProvider) { + self.interceptorProviders.append(provider) + } + + public func addInterceptorProvider(_ provider: ClientRuntime.HttpInterceptorProvider) { + self.httpInterceptorProviders.append(provider) + } + + } + + public static func builder() -> ClientRuntime.ClientBuilder { + return ClientRuntime.ClientBuilder(defaultPlugins: [ + ClientRuntime.DefaultClientPlugin(), + AWSClientRuntime.DefaultAWSClientPlugin(clientName: self.clientName), + DefaultAWSAuthSchemePlugin() + ]) + } +} + +extension CodeStarconnectionsClient { + /// Performs the `CreateConnection` operation on the `CodeStar_connections_20191201` service. + /// + /// Creates a connection that can then be given to other Amazon Web Services services like CodePipeline so that it can access third-party code repositories. The connection is in pending status until the third-party connection handshake is completed from the console. + /// + /// - Parameter CreateConnectionInput : [no documentation found] + /// + /// - Returns: `CreateConnectionOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `LimitExceededException` : Exceeded the maximum limit for connections. + /// - `ResourceNotFoundException` : Resource not found. Verify the connection resource ARN and try again. + /// - `ResourceUnavailableException` : Resource not found. Verify the ARN for the host resource and try again. + public func createConnection(input: CreateConnectionInput) async throws -> CreateConnectionOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "createConnection") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "codestar-connections") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(CreateConnectionInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(CreateConnectionOutput.httpOutput(from:), CreateConnectionOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "CodeStar_connections_20191201.CreateConnection")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: CreateConnectionInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.0")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CodeStarconnections") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "CreateConnection") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `CreateHost` operation on the `CodeStar_connections_20191201` service. + /// + /// Creates a resource that represents the infrastructure where a third-party provider is installed. The host is used when you create connections to an installed third-party provider type, such as GitHub Enterprise Server. You create one host for all connections to that provider. A host created through the CLI or the SDK is in `PENDING` status by default. You can make its status `AVAILABLE` by setting up the host in the console. + /// + /// - Parameter CreateHostInput : [no documentation found] + /// + /// - Returns: `CreateHostOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `LimitExceededException` : Exceeded the maximum limit for connections. + public func createHost(input: CreateHostInput) async throws -> CreateHostOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "createHost") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "codestar-connections") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(CreateHostInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(CreateHostOutput.httpOutput(from:), CreateHostOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "CodeStar_connections_20191201.CreateHost")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: CreateHostInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.0")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CodeStarconnections") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "CreateHost") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `CreateRepositoryLink` operation on the `CodeStar_connections_20191201` service. + /// + /// Creates a link to a specified external Git repository. A repository link allows Git sync to monitor and sync changes to files in a specified Git repository. + /// + /// - Parameter CreateRepositoryLinkInput : [no documentation found] + /// + /// - Returns: `CreateRepositoryLinkOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : You do not have sufficient access to perform this action. + /// - `ConcurrentModificationException` : Exception thrown as a result of concurrent modification to an application. For example, two individuals attempting to edit the same application at the same time. + /// - `InternalServerException` : Received an internal server exception. Try again later. + /// - `InvalidInputException` : The input is not valid. Verify that the action is typed correctly. + /// - `LimitExceededException` : Exceeded the maximum limit for connections. + /// - `ResourceAlreadyExistsException` : Unable to create resource. Resource already exists. + /// - `ThrottlingException` : The request was denied due to request throttling. + public func createRepositoryLink(input: CreateRepositoryLinkInput) async throws -> CreateRepositoryLinkOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "createRepositoryLink") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "codestar-connections") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(CreateRepositoryLinkInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(CreateRepositoryLinkOutput.httpOutput(from:), CreateRepositoryLinkOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "CodeStar_connections_20191201.CreateRepositoryLink")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: CreateRepositoryLinkInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.0")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CodeStarconnections") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "CreateRepositoryLink") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `CreateSyncConfiguration` operation on the `CodeStar_connections_20191201` service. + /// + /// Creates a sync configuration which allows Amazon Web Services to sync content from a Git repository to update a specified Amazon Web Services resource. Parameters for the sync configuration are determined by the sync type. + /// + /// - Parameter CreateSyncConfigurationInput : [no documentation found] + /// + /// - Returns: `CreateSyncConfigurationOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : You do not have sufficient access to perform this action. + /// - `ConcurrentModificationException` : Exception thrown as a result of concurrent modification to an application. For example, two individuals attempting to edit the same application at the same time. + /// - `InternalServerException` : Received an internal server exception. Try again later. + /// - `InvalidInputException` : The input is not valid. Verify that the action is typed correctly. + /// - `LimitExceededException` : Exceeded the maximum limit for connections. + /// - `ResourceAlreadyExistsException` : Unable to create resource. Resource already exists. + /// - `ThrottlingException` : The request was denied due to request throttling. + public func createSyncConfiguration(input: CreateSyncConfigurationInput) async throws -> CreateSyncConfigurationOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "createSyncConfiguration") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "codestar-connections") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(CreateSyncConfigurationInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(CreateSyncConfigurationOutput.httpOutput(from:), CreateSyncConfigurationOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "CodeStar_connections_20191201.CreateSyncConfiguration")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: CreateSyncConfigurationInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.0")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CodeStarconnections") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "CreateSyncConfiguration") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `DeleteConnection` operation on the `CodeStar_connections_20191201` service. + /// + /// The connection to be deleted. + /// + /// - Parameter DeleteConnectionInput : [no documentation found] + /// + /// - Returns: `DeleteConnectionOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `ResourceNotFoundException` : Resource not found. Verify the connection resource ARN and try again. + public func deleteConnection(input: DeleteConnectionInput) async throws -> DeleteConnectionOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "deleteConnection") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "codestar-connections") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(DeleteConnectionInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(DeleteConnectionOutput.httpOutput(from:), DeleteConnectionOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "CodeStar_connections_20191201.DeleteConnection")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: DeleteConnectionInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.0")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CodeStarconnections") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "DeleteConnection") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `DeleteHost` operation on the `CodeStar_connections_20191201` service. + /// + /// The host to be deleted. Before you delete a host, all connections associated to the host must be deleted. A host cannot be deleted if it is in the VPC_CONFIG_INITIALIZING or VPC_CONFIG_DELETING state. + /// + /// - Parameter DeleteHostInput : [no documentation found] + /// + /// - Returns: `DeleteHostOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `ResourceNotFoundException` : Resource not found. Verify the connection resource ARN and try again. + /// - `ResourceUnavailableException` : Resource not found. Verify the ARN for the host resource and try again. + public func deleteHost(input: DeleteHostInput) async throws -> DeleteHostOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "deleteHost") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "codestar-connections") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(DeleteHostInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(DeleteHostOutput.httpOutput(from:), DeleteHostOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "CodeStar_connections_20191201.DeleteHost")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: DeleteHostInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.0")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CodeStarconnections") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "DeleteHost") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `DeleteRepositoryLink` operation on the `CodeStar_connections_20191201` service. + /// + /// Deletes the association between your connection and a specified external Git repository. + /// + /// - Parameter DeleteRepositoryLinkInput : [no documentation found] + /// + /// - Returns: `DeleteRepositoryLinkOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : You do not have sufficient access to perform this action. + /// - `ConcurrentModificationException` : Exception thrown as a result of concurrent modification to an application. For example, two individuals attempting to edit the same application at the same time. + /// - `InternalServerException` : Received an internal server exception. Try again later. + /// - `InvalidInputException` : The input is not valid. Verify that the action is typed correctly. + /// - `ResourceNotFoundException` : Resource not found. Verify the connection resource ARN and try again. + /// - `SyncConfigurationStillExistsException` : Unable to continue. The sync blocker still exists. + /// - `ThrottlingException` : The request was denied due to request throttling. + /// - `UnsupportedProviderTypeException` : The specified provider type is not supported for connections. + public func deleteRepositoryLink(input: DeleteRepositoryLinkInput) async throws -> DeleteRepositoryLinkOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "deleteRepositoryLink") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "codestar-connections") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(DeleteRepositoryLinkInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(DeleteRepositoryLinkOutput.httpOutput(from:), DeleteRepositoryLinkOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "CodeStar_connections_20191201.DeleteRepositoryLink")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: DeleteRepositoryLinkInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.0")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CodeStarconnections") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "DeleteRepositoryLink") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `DeleteSyncConfiguration` operation on the `CodeStar_connections_20191201` service. + /// + /// Deletes the sync configuration for a specified repository and connection. + /// + /// - Parameter DeleteSyncConfigurationInput : [no documentation found] + /// + /// - Returns: `DeleteSyncConfigurationOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : You do not have sufficient access to perform this action. + /// - `ConcurrentModificationException` : Exception thrown as a result of concurrent modification to an application. For example, two individuals attempting to edit the same application at the same time. + /// - `InternalServerException` : Received an internal server exception. Try again later. + /// - `InvalidInputException` : The input is not valid. Verify that the action is typed correctly. + /// - `LimitExceededException` : Exceeded the maximum limit for connections. + /// - `ThrottlingException` : The request was denied due to request throttling. + public func deleteSyncConfiguration(input: DeleteSyncConfigurationInput) async throws -> DeleteSyncConfigurationOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "deleteSyncConfiguration") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "codestar-connections") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(DeleteSyncConfigurationInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(DeleteSyncConfigurationOutput.httpOutput(from:), DeleteSyncConfigurationOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "CodeStar_connections_20191201.DeleteSyncConfiguration")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: DeleteSyncConfigurationInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.0")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CodeStarconnections") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "DeleteSyncConfiguration") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `GetConnection` operation on the `CodeStar_connections_20191201` service. + /// + /// Returns the connection ARN and details such as status, owner, and provider type. + /// + /// - Parameter GetConnectionInput : [no documentation found] + /// + /// - Returns: `GetConnectionOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `ResourceNotFoundException` : Resource not found. Verify the connection resource ARN and try again. + /// - `ResourceUnavailableException` : Resource not found. Verify the ARN for the host resource and try again. + public func getConnection(input: GetConnectionInput) async throws -> GetConnectionOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "getConnection") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "codestar-connections") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(GetConnectionInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(GetConnectionOutput.httpOutput(from:), GetConnectionOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "CodeStar_connections_20191201.GetConnection")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: GetConnectionInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.0")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CodeStarconnections") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "GetConnection") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `GetHost` operation on the `CodeStar_connections_20191201` service. + /// + /// Returns the host ARN and details such as status, provider type, endpoint, and, if applicable, the VPC configuration. + /// + /// - Parameter GetHostInput : [no documentation found] + /// + /// - Returns: `GetHostOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `ResourceNotFoundException` : Resource not found. Verify the connection resource ARN and try again. + /// - `ResourceUnavailableException` : Resource not found. Verify the ARN for the host resource and try again. + public func getHost(input: GetHostInput) async throws -> GetHostOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "getHost") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "codestar-connections") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(GetHostInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(GetHostOutput.httpOutput(from:), GetHostOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "CodeStar_connections_20191201.GetHost")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: GetHostInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.0")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CodeStarconnections") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "GetHost") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `GetRepositoryLink` operation on the `CodeStar_connections_20191201` service. + /// + /// Returns details about a repository link. A repository link allows Git sync to monitor and sync changes from files in a specified Git repository. + /// + /// - Parameter GetRepositoryLinkInput : [no documentation found] + /// + /// - Returns: `GetRepositoryLinkOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : You do not have sufficient access to perform this action. + /// - `ConcurrentModificationException` : Exception thrown as a result of concurrent modification to an application. For example, two individuals attempting to edit the same application at the same time. + /// - `InternalServerException` : Received an internal server exception. Try again later. + /// - `InvalidInputException` : The input is not valid. Verify that the action is typed correctly. + /// - `ResourceNotFoundException` : Resource not found. Verify the connection resource ARN and try again. + /// - `ThrottlingException` : The request was denied due to request throttling. + public func getRepositoryLink(input: GetRepositoryLinkInput) async throws -> GetRepositoryLinkOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "getRepositoryLink") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "codestar-connections") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(GetRepositoryLinkInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(GetRepositoryLinkOutput.httpOutput(from:), GetRepositoryLinkOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "CodeStar_connections_20191201.GetRepositoryLink")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: GetRepositoryLinkInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.0")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CodeStarconnections") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "GetRepositoryLink") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `GetRepositorySyncStatus` operation on the `CodeStar_connections_20191201` service. + /// + /// Returns details about the sync status for a repository. A repository sync uses Git sync to push and pull changes from your remote repository. + /// + /// - Parameter GetRepositorySyncStatusInput : [no documentation found] + /// + /// - Returns: `GetRepositorySyncStatusOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : You do not have sufficient access to perform this action. + /// - `InternalServerException` : Received an internal server exception. Try again later. + /// - `InvalidInputException` : The input is not valid. Verify that the action is typed correctly. + /// - `ResourceNotFoundException` : Resource not found. Verify the connection resource ARN and try again. + /// - `ThrottlingException` : The request was denied due to request throttling. + public func getRepositorySyncStatus(input: GetRepositorySyncStatusInput) async throws -> GetRepositorySyncStatusOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "getRepositorySyncStatus") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "codestar-connections") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(GetRepositorySyncStatusInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(GetRepositorySyncStatusOutput.httpOutput(from:), GetRepositorySyncStatusOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "CodeStar_connections_20191201.GetRepositorySyncStatus")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: GetRepositorySyncStatusInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.0")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CodeStarconnections") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "GetRepositorySyncStatus") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `GetResourceSyncStatus` operation on the `CodeStar_connections_20191201` service. + /// + /// Returns the status of the sync with the Git repository for a specific Amazon Web Services resource. + /// + /// - Parameter GetResourceSyncStatusInput : [no documentation found] + /// + /// - Returns: `GetResourceSyncStatusOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : You do not have sufficient access to perform this action. + /// - `InternalServerException` : Received an internal server exception. Try again later. + /// - `InvalidInputException` : The input is not valid. Verify that the action is typed correctly. + /// - `ResourceNotFoundException` : Resource not found. Verify the connection resource ARN and try again. + /// - `ThrottlingException` : The request was denied due to request throttling. + public func getResourceSyncStatus(input: GetResourceSyncStatusInput) async throws -> GetResourceSyncStatusOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "getResourceSyncStatus") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "codestar-connections") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(GetResourceSyncStatusInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(GetResourceSyncStatusOutput.httpOutput(from:), GetResourceSyncStatusOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "CodeStar_connections_20191201.GetResourceSyncStatus")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: GetResourceSyncStatusInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.0")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CodeStarconnections") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "GetResourceSyncStatus") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `GetSyncBlockerSummary` operation on the `CodeStar_connections_20191201` service. + /// + /// Returns a list of the most recent sync blockers. + /// + /// - Parameter GetSyncBlockerSummaryInput : [no documentation found] + /// + /// - Returns: `GetSyncBlockerSummaryOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : You do not have sufficient access to perform this action. + /// - `InternalServerException` : Received an internal server exception. Try again later. + /// - `InvalidInputException` : The input is not valid. Verify that the action is typed correctly. + /// - `ResourceNotFoundException` : Resource not found. Verify the connection resource ARN and try again. + /// - `ThrottlingException` : The request was denied due to request throttling. + public func getSyncBlockerSummary(input: GetSyncBlockerSummaryInput) async throws -> GetSyncBlockerSummaryOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "getSyncBlockerSummary") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "codestar-connections") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(GetSyncBlockerSummaryInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(GetSyncBlockerSummaryOutput.httpOutput(from:), GetSyncBlockerSummaryOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "CodeStar_connections_20191201.GetSyncBlockerSummary")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: GetSyncBlockerSummaryInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.0")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CodeStarconnections") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "GetSyncBlockerSummary") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `GetSyncConfiguration` operation on the `CodeStar_connections_20191201` service. + /// + /// Returns details about a sync configuration, including the sync type and resource name. A sync configuration allows the configuration to sync (push and pull) changes from the remote repository for a specified branch in a Git repository. + /// + /// - Parameter GetSyncConfigurationInput : [no documentation found] + /// + /// - Returns: `GetSyncConfigurationOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : You do not have sufficient access to perform this action. + /// - `InternalServerException` : Received an internal server exception. Try again later. + /// - `InvalidInputException` : The input is not valid. Verify that the action is typed correctly. + /// - `ResourceNotFoundException` : Resource not found. Verify the connection resource ARN and try again. + /// - `ThrottlingException` : The request was denied due to request throttling. + public func getSyncConfiguration(input: GetSyncConfigurationInput) async throws -> GetSyncConfigurationOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "getSyncConfiguration") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "codestar-connections") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(GetSyncConfigurationInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(GetSyncConfigurationOutput.httpOutput(from:), GetSyncConfigurationOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "CodeStar_connections_20191201.GetSyncConfiguration")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: GetSyncConfigurationInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.0")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CodeStarconnections") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "GetSyncConfiguration") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `ListConnections` operation on the `CodeStar_connections_20191201` service. + /// + /// Lists the connections associated with your account. + /// + /// - Parameter ListConnectionsInput : [no documentation found] + /// + /// - Returns: `ListConnectionsOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `ResourceNotFoundException` : Resource not found. Verify the connection resource ARN and try again. + public func listConnections(input: ListConnectionsInput) async throws -> ListConnectionsOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "listConnections") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "codestar-connections") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(ListConnectionsInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(ListConnectionsOutput.httpOutput(from:), ListConnectionsOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "CodeStar_connections_20191201.ListConnections")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: ListConnectionsInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.0")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CodeStarconnections") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "ListConnections") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `ListHosts` operation on the `CodeStar_connections_20191201` service. + /// + /// Lists the hosts associated with your account. + /// + /// - Parameter ListHostsInput : [no documentation found] + /// + /// - Returns: `ListHostsOutput` : [no documentation found] + public func listHosts(input: ListHostsInput) async throws -> ListHostsOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "listHosts") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "codestar-connections") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(ListHostsInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(ListHostsOutput.httpOutput(from:), ListHostsOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "CodeStar_connections_20191201.ListHosts")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: ListHostsInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.0")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CodeStarconnections") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "ListHosts") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `ListRepositoryLinks` operation on the `CodeStar_connections_20191201` service. + /// + /// Lists the repository links created for connections in your account. + /// + /// - Parameter ListRepositoryLinksInput : [no documentation found] + /// + /// - Returns: `ListRepositoryLinksOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : You do not have sufficient access to perform this action. + /// - `ConcurrentModificationException` : Exception thrown as a result of concurrent modification to an application. For example, two individuals attempting to edit the same application at the same time. + /// - `InternalServerException` : Received an internal server exception. Try again later. + /// - `InvalidInputException` : The input is not valid. Verify that the action is typed correctly. + /// - `ResourceNotFoundException` : Resource not found. Verify the connection resource ARN and try again. + /// - `ThrottlingException` : The request was denied due to request throttling. + public func listRepositoryLinks(input: ListRepositoryLinksInput) async throws -> ListRepositoryLinksOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "listRepositoryLinks") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "codestar-connections") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(ListRepositoryLinksInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(ListRepositoryLinksOutput.httpOutput(from:), ListRepositoryLinksOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "CodeStar_connections_20191201.ListRepositoryLinks")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: ListRepositoryLinksInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.0")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CodeStarconnections") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "ListRepositoryLinks") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `ListRepositorySyncDefinitions` operation on the `CodeStar_connections_20191201` service. + /// + /// Lists the repository sync definitions for repository links in your account. + /// + /// - Parameter ListRepositorySyncDefinitionsInput : [no documentation found] + /// + /// - Returns: `ListRepositorySyncDefinitionsOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : You do not have sufficient access to perform this action. + /// - `InternalServerException` : Received an internal server exception. Try again later. + /// - `InvalidInputException` : The input is not valid. Verify that the action is typed correctly. + /// - `ResourceNotFoundException` : Resource not found. Verify the connection resource ARN and try again. + /// - `ThrottlingException` : The request was denied due to request throttling. + public func listRepositorySyncDefinitions(input: ListRepositorySyncDefinitionsInput) async throws -> ListRepositorySyncDefinitionsOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "listRepositorySyncDefinitions") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "codestar-connections") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(ListRepositorySyncDefinitionsInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(ListRepositorySyncDefinitionsOutput.httpOutput(from:), ListRepositorySyncDefinitionsOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "CodeStar_connections_20191201.ListRepositorySyncDefinitions")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: ListRepositorySyncDefinitionsInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.0")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CodeStarconnections") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "ListRepositorySyncDefinitions") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `ListSyncConfigurations` operation on the `CodeStar_connections_20191201` service. + /// + /// Returns a list of sync configurations for a specified repository. + /// + /// - Parameter ListSyncConfigurationsInput : [no documentation found] + /// + /// - Returns: `ListSyncConfigurationsOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : You do not have sufficient access to perform this action. + /// - `InternalServerException` : Received an internal server exception. Try again later. + /// - `InvalidInputException` : The input is not valid. Verify that the action is typed correctly. + /// - `ResourceNotFoundException` : Resource not found. Verify the connection resource ARN and try again. + /// - `ThrottlingException` : The request was denied due to request throttling. + public func listSyncConfigurations(input: ListSyncConfigurationsInput) async throws -> ListSyncConfigurationsOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "listSyncConfigurations") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "codestar-connections") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(ListSyncConfigurationsInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(ListSyncConfigurationsOutput.httpOutput(from:), ListSyncConfigurationsOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "CodeStar_connections_20191201.ListSyncConfigurations")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: ListSyncConfigurationsInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.0")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CodeStarconnections") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "ListSyncConfigurations") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `ListTagsForResource` operation on the `CodeStar_connections_20191201` service. + /// + /// Gets the set of key-value pairs (metadata) that are used to manage the resource. + /// + /// - Parameter ListTagsForResourceInput : [no documentation found] + /// + /// - Returns: `ListTagsForResourceOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `ResourceNotFoundException` : Resource not found. Verify the connection resource ARN and try again. + public func listTagsForResource(input: ListTagsForResourceInput) async throws -> ListTagsForResourceOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "listTagsForResource") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "codestar-connections") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(ListTagsForResourceInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(ListTagsForResourceOutput.httpOutput(from:), ListTagsForResourceOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "CodeStar_connections_20191201.ListTagsForResource")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: ListTagsForResourceInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.0")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CodeStarconnections") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "ListTagsForResource") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `TagResource` operation on the `CodeStar_connections_20191201` service. + /// + /// Adds to or modifies the tags of the given resource. Tags are metadata that can be used to manage a resource. + /// + /// - Parameter TagResourceInput : [no documentation found] + /// + /// - Returns: `TagResourceOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `LimitExceededException` : Exceeded the maximum limit for connections. + /// - `ResourceNotFoundException` : Resource not found. Verify the connection resource ARN and try again. + public func tagResource(input: TagResourceInput) async throws -> TagResourceOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "tagResource") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "codestar-connections") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(TagResourceInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(TagResourceOutput.httpOutput(from:), TagResourceOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "CodeStar_connections_20191201.TagResource")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: TagResourceInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.0")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CodeStarconnections") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "TagResource") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `UntagResource` operation on the `CodeStar_connections_20191201` service. + /// + /// Removes tags from an Amazon Web Services resource. + /// + /// - Parameter UntagResourceInput : [no documentation found] + /// + /// - Returns: `UntagResourceOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `ResourceNotFoundException` : Resource not found. Verify the connection resource ARN and try again. + public func untagResource(input: UntagResourceInput) async throws -> UntagResourceOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "untagResource") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "codestar-connections") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(UntagResourceInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(UntagResourceOutput.httpOutput(from:), UntagResourceOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "CodeStar_connections_20191201.UntagResource")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: UntagResourceInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.0")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CodeStarconnections") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "UntagResource") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `UpdateHost` operation on the `CodeStar_connections_20191201` service. + /// + /// Updates a specified host with the provided configurations. + /// + /// - Parameter UpdateHostInput : [no documentation found] + /// + /// - Returns: `UpdateHostOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `ConflictException` : Two conflicting operations have been made on the same resource. + /// - `ResourceNotFoundException` : Resource not found. Verify the connection resource ARN and try again. + /// - `ResourceUnavailableException` : Resource not found. Verify the ARN for the host resource and try again. + /// - `UnsupportedOperationException` : The operation is not supported. Check the connection status and try again. + public func updateHost(input: UpdateHostInput) async throws -> UpdateHostOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "updateHost") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "codestar-connections") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(UpdateHostInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(UpdateHostOutput.httpOutput(from:), UpdateHostOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "CodeStar_connections_20191201.UpdateHost")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: UpdateHostInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.0")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CodeStarconnections") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "UpdateHost") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `UpdateRepositoryLink` operation on the `CodeStar_connections_20191201` service. + /// + /// Updates the association between your connection and a specified external Git repository. A repository link allows Git sync to monitor and sync changes to files in a specified Git repository. + /// + /// - Parameter UpdateRepositoryLinkInput : [no documentation found] + /// + /// - Returns: `UpdateRepositoryLinkOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : You do not have sufficient access to perform this action. + /// - `ConditionalCheckFailedException` : The conditional check failed. Try again later. + /// - `InternalServerException` : Received an internal server exception. Try again later. + /// - `InvalidInputException` : The input is not valid. Verify that the action is typed correctly. + /// - `ResourceNotFoundException` : Resource not found. Verify the connection resource ARN and try again. + /// - `ThrottlingException` : The request was denied due to request throttling. + /// - `UpdateOutOfSyncException` : The update is out of sync. Try syncing again. + public func updateRepositoryLink(input: UpdateRepositoryLinkInput) async throws -> UpdateRepositoryLinkOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "updateRepositoryLink") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "codestar-connections") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(UpdateRepositoryLinkInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(UpdateRepositoryLinkOutput.httpOutput(from:), UpdateRepositoryLinkOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "CodeStar_connections_20191201.UpdateRepositoryLink")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: UpdateRepositoryLinkInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.0")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CodeStarconnections") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "UpdateRepositoryLink") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `UpdateSyncBlocker` operation on the `CodeStar_connections_20191201` service. + /// + /// Allows you to update the status of a sync blocker, resolving the blocker and allowing syncing to continue. + /// + /// - Parameter UpdateSyncBlockerInput : [no documentation found] + /// + /// - Returns: `UpdateSyncBlockerOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : You do not have sufficient access to perform this action. + /// - `InternalServerException` : Received an internal server exception. Try again later. + /// - `InvalidInputException` : The input is not valid. Verify that the action is typed correctly. + /// - `ResourceNotFoundException` : Resource not found. Verify the connection resource ARN and try again. + /// - `RetryLatestCommitFailedException` : Retrying the latest commit failed. Try again later. + /// - `SyncBlockerDoesNotExistException` : Unable to continue. The sync blocker does not exist. + /// - `ThrottlingException` : The request was denied due to request throttling. + public func updateSyncBlocker(input: UpdateSyncBlockerInput) async throws -> UpdateSyncBlockerOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "updateSyncBlocker") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "codestar-connections") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(UpdateSyncBlockerInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(UpdateSyncBlockerOutput.httpOutput(from:), UpdateSyncBlockerOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "CodeStar_connections_20191201.UpdateSyncBlocker")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: UpdateSyncBlockerInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.0")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CodeStarconnections") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "UpdateSyncBlocker") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `UpdateSyncConfiguration` operation on the `CodeStar_connections_20191201` service. + /// + /// Updates the sync configuration for your connection and a specified external Git repository. + /// + /// - Parameter UpdateSyncConfigurationInput : [no documentation found] + /// + /// - Returns: `UpdateSyncConfigurationOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : You do not have sufficient access to perform this action. + /// - `ConcurrentModificationException` : Exception thrown as a result of concurrent modification to an application. For example, two individuals attempting to edit the same application at the same time. + /// - `InternalServerException` : Received an internal server exception. Try again later. + /// - `InvalidInputException` : The input is not valid. Verify that the action is typed correctly. + /// - `ResourceNotFoundException` : Resource not found. Verify the connection resource ARN and try again. + /// - `ThrottlingException` : The request was denied due to request throttling. + /// - `UpdateOutOfSyncException` : The update is out of sync. Try syncing again. + public func updateSyncConfiguration(input: UpdateSyncConfigurationInput) async throws -> UpdateSyncConfigurationOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "updateSyncConfiguration") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "codestar-connections") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(UpdateSyncConfigurationInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(UpdateSyncConfigurationOutput.httpOutput(from:), UpdateSyncConfigurationOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.interceptors.add(AWSClientRuntime.XAmzTargetMiddleware(xAmzTarget: "CodeStar_connections_20191201.UpdateSyncConfiguration")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: UpdateSyncConfigurationInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-amz-json-1.0")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "CodeStarconnections") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "UpdateSyncConfiguration") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + +} diff --git a/Sources/Services/AWSCodeStarconnections/Sources/AWSCodeStarconnections/Endpoints.swift b/Sources/Services/AWSCodeStarconnections/Sources/AWSCodeStarconnections/Endpoints.swift new file mode 100644 index 00000000000..b0fb945bb90 --- /dev/null +++ b/Sources/Services/AWSCodeStarconnections/Sources/AWSCodeStarconnections/Endpoints.swift @@ -0,0 +1,73 @@ +// +// Copyright Amazon.com Inc. or its affiliates. +// All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 +// + +// Code generated by smithy-swift-codegen. DO NOT EDIT! + +import class ClientRuntime.EndpointsRequestContext +import let AWSClientRuntime.awsPartitionJSON +import protocol ClientRuntime.EndpointsRequestContextProviding +import struct ClientRuntime.DefaultEndpointResolver +import struct ClientRuntime.StaticEndpointResolver +import struct SmithyHTTPAPI.Endpoint + +public struct EndpointParams { + /// Override the endpoint used to send this request + public let endpoint: Swift.String? + /// The AWS region used to dispatch the request. + public let region: Swift.String? + /// When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error. + public let useDualStack: Swift.Bool + /// When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error. + public let useFIPS: Swift.Bool + + public init( + endpoint: Swift.String? = nil, + region: Swift.String? = nil, + useDualStack: Swift.Bool = false, + useFIPS: Swift.Bool = false + ) + { + self.endpoint = endpoint + self.region = region + self.useDualStack = useDualStack + self.useFIPS = useFIPS + } +} + +extension EndpointParams: ClientRuntime.EndpointsRequestContextProviding { + + public var context: ClientRuntime.EndpointsRequestContext { + get throws { + let context = try ClientRuntime.EndpointsRequestContext() + try context.add(name: "Endpoint", value: self.endpoint) + try context.add(name: "Region", value: self.region) + try context.add(name: "UseDualStack", value: self.useDualStack) + try context.add(name: "UseFIPS", value: self.useFIPS) + return context + } + } +} + +public protocol EndpointResolver { + func resolve(params: EndpointParams) throws -> SmithyHTTPAPI.Endpoint +} + +typealias DefaultEndpointResolver = ClientRuntime.DefaultEndpointResolver + +extension DefaultEndpointResolver { + private static let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}],\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}],\"type\":\"tree\"},{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Region\"}]}],\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://codestar-connections-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}],\"type\":\"tree\"},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}],\"type\":\"tree\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]},true]}],\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://codestar-connections-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}],\"type\":\"tree\"},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}],\"type\":\"tree\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://codestar-connections.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}],\"type\":\"tree\"},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}],\"type\":\"tree\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://codestar-connections.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}],\"type\":\"tree\"}],\"type\":\"tree\"},{\"conditions\":[],\"error\":\"Invalid Configuration: Missing Region\",\"type\":\"error\"}]}" + + init() throws { + try self.init(partitions: AWSClientRuntime.awsPartitionJSON, ruleSet: Self.ruleSet) + } +} + +extension DefaultEndpointResolver: EndpointResolver {} + +typealias StaticEndpointResolver = ClientRuntime.StaticEndpointResolver + +extension StaticEndpointResolver: EndpointResolver {} diff --git a/Sources/Services/AWSCodeStarconnections/Sources/AWSCodeStarconnections/Models.swift b/Sources/Services/AWSCodeStarconnections/Sources/AWSCodeStarconnections/Models.swift new file mode 100644 index 00000000000..bad4cf8bd17 --- /dev/null +++ b/Sources/Services/AWSCodeStarconnections/Sources/AWSCodeStarconnections/Models.swift @@ -0,0 +1,3861 @@ +// +// Copyright Amazon.com Inc. or its affiliates. +// All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 +// + +// Code generated by smithy-swift-codegen. DO NOT EDIT! + +@_spi(SmithyReadWrite) import ClientRuntime +import Foundation +import class SmithyHTTPAPI.HTTPResponse +@_spi(SmithyReadWrite) import class SmithyJSON.Reader +@_spi(SmithyReadWrite) import class SmithyJSON.Writer +import enum ClientRuntime.ErrorFault +import enum SmithyReadWrite.ReaderError +@_spi(SmithyReadWrite) import enum SmithyReadWrite.ReadingClosures +@_spi(SmithyReadWrite) import enum SmithyReadWrite.WritingClosures +@_spi(SmithyTimestamps) import enum SmithyTimestamps.TimestampFormat +import protocol AWSClientRuntime.AWSServiceError +import protocol ClientRuntime.HTTPError +import protocol ClientRuntime.ModeledError +@_spi(SmithyReadWrite) import protocol SmithyReadWrite.SmithyReader +@_spi(SmithyReadWrite) import protocol SmithyReadWrite.SmithyWriter +@_spi(SmithyReadWrite) import struct AWSClientRuntime.AWSJSONError +@_spi(UnknownAWSHTTPServiceError) import struct AWSClientRuntime.UnknownAWSHTTPServiceError +@_spi(SmithyTimestamps) import struct SmithyTimestamps.TimestampFormatter + +/// You do not have sufficient access to perform this action. +public struct AccessDeniedException: 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 { "AccessDeniedException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.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 + } +} + +extension CodeStarconnectionsClientTypes { + + public enum BlockerStatus: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case active + case resolved + case sdkUnknown(Swift.String) + + public static var allCases: [BlockerStatus] { + return [ + .active, + .resolved + ] + } + + 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 .active: return "ACTIVE" + case .resolved: return "RESOLVED" + case let .sdkUnknown(s): return s + } + } + } +} + +extension CodeStarconnectionsClientTypes { + + public enum BlockerType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case automated + case sdkUnknown(Swift.String) + + public static var allCases: [BlockerType] { + return [ + .automated + ] + } + + 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 .automated: return "AUTOMATED" + case let .sdkUnknown(s): return s + } + } + } +} + +/// Exceeded the maximum limit for connections. +public struct LimitExceededException: 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 { "LimitExceededException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.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 + } +} + +/// Resource not found. Verify the connection resource ARN and try again. +public struct ResourceNotFoundException: 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 { "ResourceNotFoundException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.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 + } +} + +/// Resource not found. Verify the ARN for the host resource and try again. +public struct ResourceUnavailableException: 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 { "ResourceUnavailableException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.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 + } +} + +extension CodeStarconnectionsClientTypes { + + public enum ProviderType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case bitbucket + case github + case githubEnterpriseServer + case gitlab + case gitlabSelfManaged + case sdkUnknown(Swift.String) + + public static var allCases: [ProviderType] { + return [ + .bitbucket, + .github, + .githubEnterpriseServer, + .gitlab, + .gitlabSelfManaged + ] + } + + 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 .bitbucket: return "Bitbucket" + case .github: return "GitHub" + case .githubEnterpriseServer: return "GitHubEnterpriseServer" + case .gitlab: return "GitLab" + case .gitlabSelfManaged: return "GitLabSelfManaged" + case let .sdkUnknown(s): return s + } + } + } +} + +extension CodeStarconnectionsClientTypes { + + /// A tag is a key-value pair that is used to manage the resource. This tag is available for use by Amazon Web Services services that support tags. + public struct Tag: Swift.Sendable { + /// The tag's key. + /// This member is required. + public var key: Swift.String? + /// The tag's value. + /// 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 + } + } +} + +public struct CreateConnectionInput: Swift.Sendable { + /// The name of the connection to be created. + /// This member is required. + public var connectionName: Swift.String? + /// The Amazon Resource Name (ARN) of the host associated with the connection to be created. + public var hostArn: Swift.String? + /// The name of the external provider where your third-party code repository is configured. + public var providerType: CodeStarconnectionsClientTypes.ProviderType? + /// The key-value pair to use when tagging the resource. + public var tags: [CodeStarconnectionsClientTypes.Tag]? + + public init( + connectionName: Swift.String? = nil, + hostArn: Swift.String? = nil, + providerType: CodeStarconnectionsClientTypes.ProviderType? = nil, + tags: [CodeStarconnectionsClientTypes.Tag]? = nil + ) + { + self.connectionName = connectionName + self.hostArn = hostArn + self.providerType = providerType + self.tags = tags + } +} + +public struct CreateConnectionOutput: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the connection to be created. The ARN is used as the connection reference when the connection is shared between Amazon Web Services services. The ARN is never reused if the connection is deleted. + /// This member is required. + public var connectionArn: Swift.String? + /// Specifies the tags applied to the resource. + public var tags: [CodeStarconnectionsClientTypes.Tag]? + + public init( + connectionArn: Swift.String? = nil, + tags: [CodeStarconnectionsClientTypes.Tag]? = nil + ) + { + self.connectionArn = connectionArn + self.tags = tags + } +} + +extension CodeStarconnectionsClientTypes { + + /// The VPC configuration provisioned for the host. + public struct VpcConfiguration: Swift.Sendable { + /// The ID of the security group or security groups associated with the Amazon VPC connected to the infrastructure where your provider type is installed. + /// This member is required. + public var securityGroupIds: [Swift.String]? + /// The ID of the subnet or subnets associated with the Amazon VPC connected to the infrastructure where your provider type is installed. + /// This member is required. + public var subnetIds: [Swift.String]? + /// The value of the Transport Layer Security (TLS) certificate associated with the infrastructure where your provider type is installed. + public var tlsCertificate: Swift.String? + /// The ID of the Amazon VPC connected to the infrastructure where your provider type is installed. + /// This member is required. + public var vpcId: Swift.String? + + public init( + securityGroupIds: [Swift.String]? = nil, + subnetIds: [Swift.String]? = nil, + tlsCertificate: Swift.String? = nil, + vpcId: Swift.String? = nil + ) + { + self.securityGroupIds = securityGroupIds + self.subnetIds = subnetIds + self.tlsCertificate = tlsCertificate + self.vpcId = vpcId + } + } +} + +public struct CreateHostInput: Swift.Sendable { + /// The name of the host to be created. + /// This member is required. + public var name: Swift.String? + /// The endpoint of the infrastructure to be represented by the host after it is created. + /// This member is required. + public var providerEndpoint: Swift.String? + /// The name of the installed provider to be associated with your connection. The host resource represents the infrastructure where your provider type is installed. The valid provider type is GitHub Enterprise Server. + /// This member is required. + public var providerType: CodeStarconnectionsClientTypes.ProviderType? + /// Tags for the host to be created. + public var tags: [CodeStarconnectionsClientTypes.Tag]? + /// The VPC configuration to be provisioned for the host. A VPC must be configured and the infrastructure to be represented by the host must already be connected to the VPC. + public var vpcConfiguration: CodeStarconnectionsClientTypes.VpcConfiguration? + + public init( + name: Swift.String? = nil, + providerEndpoint: Swift.String? = nil, + providerType: CodeStarconnectionsClientTypes.ProviderType? = nil, + tags: [CodeStarconnectionsClientTypes.Tag]? = nil, + vpcConfiguration: CodeStarconnectionsClientTypes.VpcConfiguration? = nil + ) + { + self.name = name + self.providerEndpoint = providerEndpoint + self.providerType = providerType + self.tags = tags + self.vpcConfiguration = vpcConfiguration + } +} + +public struct CreateHostOutput: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the host to be created. + public var hostArn: Swift.String? + /// Tags for the created host. + public var tags: [CodeStarconnectionsClientTypes.Tag]? + + public init( + hostArn: Swift.String? = nil, + tags: [CodeStarconnectionsClientTypes.Tag]? = nil + ) + { + self.hostArn = hostArn + self.tags = tags + } +} + +/// Exception thrown as a result of concurrent modification to an application. For example, two individuals attempting to edit the same application at the same time. +public struct ConcurrentModificationException: 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 { "ConcurrentModificationException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.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 + } +} + +/// Received an internal server exception. Try again later. +public struct InternalServerException: 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 { "InternalServerException" } + public static var fault: ClientRuntime.ErrorFault { .server } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.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 + } +} + +/// The input is not valid. Verify that the action is typed correctly. +public struct InvalidInputException: 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 { "InvalidInputException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.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 + } +} + +/// Unable to create resource. Resource already exists. +public struct ResourceAlreadyExistsException: 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 { "ResourceAlreadyExistsException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.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 + } +} + +/// The request was denied due to request throttling. +public struct ThrottlingException: 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 { "ThrottlingException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.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 + } +} + +public struct CreateRepositoryLinkInput: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the connection to be associated with the repository link. + /// This member is required. + public var connectionArn: Swift.String? + /// The Amazon Resource Name (ARN) encryption key for the repository to be associated with the repository link. + public var encryptionKeyArn: Swift.String? + /// The owner ID for the repository associated with a specific sync configuration, such as the owner ID in GitHub. + /// This member is required. + public var ownerId: Swift.String? + /// The name of the repository to be associated with the repository link. + /// This member is required. + public var repositoryName: Swift.String? + /// The tags for the repository to be associated with the repository link. + public var tags: [CodeStarconnectionsClientTypes.Tag]? + + public init( + connectionArn: Swift.String? = nil, + encryptionKeyArn: Swift.String? = nil, + ownerId: Swift.String? = nil, + repositoryName: Swift.String? = nil, + tags: [CodeStarconnectionsClientTypes.Tag]? = nil + ) + { + self.connectionArn = connectionArn + self.encryptionKeyArn = encryptionKeyArn + self.ownerId = ownerId + self.repositoryName = repositoryName + self.tags = tags + } +} + +extension CodeStarconnectionsClientTypes { + + /// Information about the repository link resource, such as the repository link ARN, the associated connection ARN, encryption key ARN, and owner ID. + public struct RepositoryLinkInfo: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the connection associated with the repository link. + /// This member is required. + public var connectionArn: Swift.String? + /// The Amazon Resource Name (ARN) of the encryption key for the repository associated with the repository link. + public var encryptionKeyArn: Swift.String? + /// The owner ID for the repository associated with the repository link, such as the owner ID in GitHub. + /// This member is required. + public var ownerId: Swift.String? + /// The provider type for the connection, such as GitHub, associated with the repository link. + /// This member is required. + public var providerType: CodeStarconnectionsClientTypes.ProviderType? + /// The Amazon Resource Name (ARN) of the repository link. + /// This member is required. + public var repositoryLinkArn: Swift.String? + /// The ID of the repository link. + /// This member is required. + public var repositoryLinkId: Swift.String? + /// The name of the repository associated with the repository link. + /// This member is required. + public var repositoryName: Swift.String? + + public init( + connectionArn: Swift.String? = nil, + encryptionKeyArn: Swift.String? = nil, + ownerId: Swift.String? = nil, + providerType: CodeStarconnectionsClientTypes.ProviderType? = nil, + repositoryLinkArn: Swift.String? = nil, + repositoryLinkId: Swift.String? = nil, + repositoryName: Swift.String? = nil + ) + { + self.connectionArn = connectionArn + self.encryptionKeyArn = encryptionKeyArn + self.ownerId = ownerId + self.providerType = providerType + self.repositoryLinkArn = repositoryLinkArn + self.repositoryLinkId = repositoryLinkId + self.repositoryName = repositoryName + } + } +} + +public struct CreateRepositoryLinkOutput: Swift.Sendable { + /// The returned information about the created repository link. + /// This member is required. + public var repositoryLinkInfo: CodeStarconnectionsClientTypes.RepositoryLinkInfo? + + public init( + repositoryLinkInfo: CodeStarconnectionsClientTypes.RepositoryLinkInfo? = nil + ) + { + self.repositoryLinkInfo = repositoryLinkInfo + } +} + +extension CodeStarconnectionsClientTypes { + + public enum PublishDeploymentStatus: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case disabled + case enabled + case sdkUnknown(Swift.String) + + public static var allCases: [PublishDeploymentStatus] { + return [ + .disabled, + .enabled + ] + } + + 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 .disabled: return "DISABLED" + case .enabled: return "ENABLED" + case let .sdkUnknown(s): return s + } + } + } +} + +extension CodeStarconnectionsClientTypes { + + public enum SyncConfigurationType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case cfnStackSync + case sdkUnknown(Swift.String) + + public static var allCases: [SyncConfigurationType] { + return [ + .cfnStackSync + ] + } + + 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 .cfnStackSync: return "CFN_STACK_SYNC" + case let .sdkUnknown(s): return s + } + } + } +} + +extension CodeStarconnectionsClientTypes { + + public enum TriggerResourceUpdateOn: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case anyChange + case fileChange + case sdkUnknown(Swift.String) + + public static var allCases: [TriggerResourceUpdateOn] { + return [ + .anyChange, + .fileChange + ] + } + + 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 .anyChange: return "ANY_CHANGE" + case .fileChange: return "FILE_CHANGE" + case let .sdkUnknown(s): return s + } + } + } +} + +public struct CreateSyncConfigurationInput: Swift.Sendable { + /// The branch in the repository from which changes will be synced. + /// This member is required. + public var branch: Swift.String? + /// The file name of the configuration file that manages syncing between the connection and the repository. This configuration file is stored in the repository. + /// This member is required. + public var configFile: Swift.String? + /// Whether to enable or disable publishing of deployment status to source providers. + public var publishDeploymentStatus: CodeStarconnectionsClientTypes.PublishDeploymentStatus? + /// The ID of the repository link created for the connection. A repository link allows Git sync to monitor and sync changes to files in a specified Git repository. + /// This member is required. + public var repositoryLinkId: Swift.String? + /// The name of the Amazon Web Services resource (for example, a CloudFormation stack in the case of CFN_STACK_SYNC) that will be synchronized from the linked repository. + /// This member is required. + public var resourceName: Swift.String? + /// The ARN of the IAM role that grants permission for Amazon Web Services to use Git sync to update a given Amazon Web Services resource on your behalf. + /// This member is required. + public var roleArn: Swift.String? + /// The type of sync configuration. + /// This member is required. + public var syncType: CodeStarconnectionsClientTypes.SyncConfigurationType? + /// When to trigger Git sync to begin the stack update. + public var triggerResourceUpdateOn: CodeStarconnectionsClientTypes.TriggerResourceUpdateOn? + + public init( + branch: Swift.String? = nil, + configFile: Swift.String? = nil, + publishDeploymentStatus: CodeStarconnectionsClientTypes.PublishDeploymentStatus? = nil, + repositoryLinkId: Swift.String? = nil, + resourceName: Swift.String? = nil, + roleArn: Swift.String? = nil, + syncType: CodeStarconnectionsClientTypes.SyncConfigurationType? = nil, + triggerResourceUpdateOn: CodeStarconnectionsClientTypes.TriggerResourceUpdateOn? = nil + ) + { + self.branch = branch + self.configFile = configFile + self.publishDeploymentStatus = publishDeploymentStatus + self.repositoryLinkId = repositoryLinkId + self.resourceName = resourceName + self.roleArn = roleArn + self.syncType = syncType + self.triggerResourceUpdateOn = triggerResourceUpdateOn + } +} + +extension CodeStarconnectionsClientTypes { + + /// Information, such as repository, branch, provider, and resource names for a specific sync configuration. + public struct SyncConfiguration: Swift.Sendable { + /// The branch associated with a specific sync configuration. + /// This member is required. + public var branch: Swift.String? + /// The file path to the configuration file associated with a specific sync configuration. The path should point to an actual file in the sync configurations linked repository. + public var configFile: Swift.String? + /// The owner ID for the repository associated with a specific sync configuration, such as the owner ID in GitHub. + /// This member is required. + public var ownerId: Swift.String? + /// The connection provider type associated with a specific sync configuration, such as GitHub. + /// This member is required. + public var providerType: CodeStarconnectionsClientTypes.ProviderType? + /// Whether to enable or disable publishing of deployment status to source providers. + public var publishDeploymentStatus: CodeStarconnectionsClientTypes.PublishDeploymentStatus? + /// The ID of the repository link associated with a specific sync configuration. + /// This member is required. + public var repositoryLinkId: Swift.String? + /// The name of the repository associated with a specific sync configuration. + /// This member is required. + public var repositoryName: Swift.String? + /// The name of the connection resource associated with a specific sync configuration. + /// This member is required. + public var resourceName: Swift.String? + /// The Amazon Resource Name (ARN) of the IAM role associated with a specific sync configuration. + /// This member is required. + public var roleArn: Swift.String? + /// The type of sync for a specific sync configuration. + /// This member is required. + public var syncType: CodeStarconnectionsClientTypes.SyncConfigurationType? + /// When to trigger Git sync to begin the stack update. + public var triggerResourceUpdateOn: CodeStarconnectionsClientTypes.TriggerResourceUpdateOn? + + public init( + branch: Swift.String? = nil, + configFile: Swift.String? = nil, + ownerId: Swift.String? = nil, + providerType: CodeStarconnectionsClientTypes.ProviderType? = nil, + publishDeploymentStatus: CodeStarconnectionsClientTypes.PublishDeploymentStatus? = nil, + repositoryLinkId: Swift.String? = nil, + repositoryName: Swift.String? = nil, + resourceName: Swift.String? = nil, + roleArn: Swift.String? = nil, + syncType: CodeStarconnectionsClientTypes.SyncConfigurationType? = nil, + triggerResourceUpdateOn: CodeStarconnectionsClientTypes.TriggerResourceUpdateOn? = nil + ) + { + self.branch = branch + self.configFile = configFile + self.ownerId = ownerId + self.providerType = providerType + self.publishDeploymentStatus = publishDeploymentStatus + self.repositoryLinkId = repositoryLinkId + self.repositoryName = repositoryName + self.resourceName = resourceName + self.roleArn = roleArn + self.syncType = syncType + self.triggerResourceUpdateOn = triggerResourceUpdateOn + } + } +} + +public struct CreateSyncConfigurationOutput: Swift.Sendable { + /// The created sync configuration for the connection. A sync configuration allows Amazon Web Services to sync content from a Git repository to update a specified Amazon Web Services resource. + /// This member is required. + public var syncConfiguration: CodeStarconnectionsClientTypes.SyncConfiguration? + + public init( + syncConfiguration: CodeStarconnectionsClientTypes.SyncConfiguration? = nil + ) + { + self.syncConfiguration = syncConfiguration + } +} + +public struct DeleteConnectionInput: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the connection to be deleted. The ARN is never reused if the connection is deleted. + /// This member is required. + public var connectionArn: Swift.String? + + public init( + connectionArn: Swift.String? = nil + ) + { + self.connectionArn = connectionArn + } +} + +public struct DeleteConnectionOutput: Swift.Sendable { + + public init() { } +} + +public struct DeleteHostInput: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the host to be deleted. + /// This member is required. + public var hostArn: Swift.String? + + public init( + hostArn: Swift.String? = nil + ) + { + self.hostArn = hostArn + } +} + +public struct DeleteHostOutput: Swift.Sendable { + + public init() { } +} + +/// Unable to continue. The sync blocker still exists. +public struct SyncConfigurationStillExistsException: 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 { "SyncConfigurationStillExistsException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.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 + } +} + +/// The specified provider type is not supported for connections. +public struct UnsupportedProviderTypeException: 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 { "UnsupportedProviderTypeException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.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 + } +} + +public struct DeleteRepositoryLinkInput: Swift.Sendable { + /// The ID of the repository link to be deleted. + /// This member is required. + public var repositoryLinkId: Swift.String? + + public init( + repositoryLinkId: Swift.String? = nil + ) + { + self.repositoryLinkId = repositoryLinkId + } +} + +public struct DeleteRepositoryLinkOutput: Swift.Sendable { + + public init() { } +} + +public struct DeleteSyncConfigurationInput: Swift.Sendable { + /// The name of the Amazon Web Services resource associated with the sync configuration to be deleted. + /// This member is required. + public var resourceName: Swift.String? + /// The type of sync configuration to be deleted. + /// This member is required. + public var syncType: CodeStarconnectionsClientTypes.SyncConfigurationType? + + public init( + resourceName: Swift.String? = nil, + syncType: CodeStarconnectionsClientTypes.SyncConfigurationType? = nil + ) + { + self.resourceName = resourceName + self.syncType = syncType + } +} + +public struct DeleteSyncConfigurationOutput: Swift.Sendable { + + public init() { } +} + +public struct GetConnectionInput: Swift.Sendable { + /// The Amazon Resource Name (ARN) of a connection. + /// This member is required. + public var connectionArn: Swift.String? + + public init( + connectionArn: Swift.String? = nil + ) + { + self.connectionArn = connectionArn + } +} + +extension CodeStarconnectionsClientTypes { + + public enum ConnectionStatus: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case available + case error + case pending + case sdkUnknown(Swift.String) + + public static var allCases: [ConnectionStatus] { + return [ + .available, + .error, + .pending + ] + } + + 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 .available: return "AVAILABLE" + case .error: return "ERROR" + case .pending: return "PENDING" + case let .sdkUnknown(s): return s + } + } + } +} + +extension CodeStarconnectionsClientTypes { + + /// A resource that is used to connect third-party source providers with services like CodePipeline. Note: A connection created through CloudFormation, the CLI, or the SDK is in `PENDING` status by default. You can make its status `AVAILABLE` by updating the connection in the console. + public struct Connection: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the connection. The ARN is used as the connection reference when the connection is shared between Amazon Web Services. The ARN is never reused if the connection is deleted. + public var connectionArn: Swift.String? + /// The name of the connection. Connection names must be unique in an Amazon Web Services account. + public var connectionName: Swift.String? + /// The current status of the connection. + public var connectionStatus: CodeStarconnectionsClientTypes.ConnectionStatus? + /// The Amazon Resource Name (ARN) of the host associated with the connection. + public var hostArn: Swift.String? + /// The identifier of the external provider where your third-party code repository is configured. For Bitbucket, this is the account ID of the owner of the Bitbucket repository. + public var ownerAccountId: Swift.String? + /// The name of the external provider where your third-party code repository is configured. + public var providerType: CodeStarconnectionsClientTypes.ProviderType? + + public init( + connectionArn: Swift.String? = nil, + connectionName: Swift.String? = nil, + connectionStatus: CodeStarconnectionsClientTypes.ConnectionStatus? = nil, + hostArn: Swift.String? = nil, + ownerAccountId: Swift.String? = nil, + providerType: CodeStarconnectionsClientTypes.ProviderType? = nil + ) + { + self.connectionArn = connectionArn + self.connectionName = connectionName + self.connectionStatus = connectionStatus + self.hostArn = hostArn + self.ownerAccountId = ownerAccountId + self.providerType = providerType + } + } +} + +public struct GetConnectionOutput: Swift.Sendable { + /// The connection details, such as status, owner, and provider type. + public var connection: CodeStarconnectionsClientTypes.Connection? + + public init( + connection: CodeStarconnectionsClientTypes.Connection? = nil + ) + { + self.connection = connection + } +} + +public struct GetHostInput: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the requested host. + /// This member is required. + public var hostArn: Swift.String? + + public init( + hostArn: Swift.String? = nil + ) + { + self.hostArn = hostArn + } +} + +public struct GetHostOutput: Swift.Sendable { + /// The name of the requested host. + public var name: Swift.String? + /// The endpoint of the infrastructure represented by the requested host. + public var providerEndpoint: Swift.String? + /// The provider type of the requested host, such as GitHub Enterprise Server. + public var providerType: CodeStarconnectionsClientTypes.ProviderType? + /// The status of the requested host. + public var status: Swift.String? + /// The VPC configuration of the requested host. + public var vpcConfiguration: CodeStarconnectionsClientTypes.VpcConfiguration? + + public init( + name: Swift.String? = nil, + providerEndpoint: Swift.String? = nil, + providerType: CodeStarconnectionsClientTypes.ProviderType? = nil, + status: Swift.String? = nil, + vpcConfiguration: CodeStarconnectionsClientTypes.VpcConfiguration? = nil + ) + { + self.name = name + self.providerEndpoint = providerEndpoint + self.providerType = providerType + self.status = status + self.vpcConfiguration = vpcConfiguration + } +} + +public struct GetRepositoryLinkInput: Swift.Sendable { + /// The ID of the repository link to get. + /// This member is required. + public var repositoryLinkId: Swift.String? + + public init( + repositoryLinkId: Swift.String? = nil + ) + { + self.repositoryLinkId = repositoryLinkId + } +} + +public struct GetRepositoryLinkOutput: Swift.Sendable { + /// The information returned for a specified repository link. + /// This member is required. + public var repositoryLinkInfo: CodeStarconnectionsClientTypes.RepositoryLinkInfo? + + public init( + repositoryLinkInfo: CodeStarconnectionsClientTypes.RepositoryLinkInfo? = nil + ) + { + self.repositoryLinkInfo = repositoryLinkInfo + } +} + +public struct GetRepositorySyncStatusInput: Swift.Sendable { + /// The branch of the repository link for the requested repository sync status. + /// This member is required. + public var branch: Swift.String? + /// The repository link ID for the requested repository sync status. + /// This member is required. + public var repositoryLinkId: Swift.String? + /// The sync type of the requested sync status. + /// This member is required. + public var syncType: CodeStarconnectionsClientTypes.SyncConfigurationType? + + public init( + branch: Swift.String? = nil, + repositoryLinkId: Swift.String? = nil, + syncType: CodeStarconnectionsClientTypes.SyncConfigurationType? = nil + ) + { + self.branch = branch + self.repositoryLinkId = repositoryLinkId + self.syncType = syncType + } +} + +extension CodeStarconnectionsClientTypes { + + /// Information about a repository sync event. + public struct RepositorySyncEvent: Swift.Sendable { + /// A description of a repository sync event. + /// This member is required. + public var event: Swift.String? + /// The ID for a repository sync event. + public var externalId: Swift.String? + /// The time that a repository sync event occurred. + /// This member is required. + public var time: Foundation.Date? + /// The event type for a repository sync event. + /// This member is required. + public var type: Swift.String? + + public init( + event: Swift.String? = nil, + externalId: Swift.String? = nil, + time: Foundation.Date? = nil, + type: Swift.String? = nil + ) + { + self.event = event + self.externalId = externalId + self.time = time + self.type = type + } + } +} + +extension CodeStarconnectionsClientTypes { + + public enum RepositorySyncStatus: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case failed + case initiated + case inProgress + case queued + case succeeded + case sdkUnknown(Swift.String) + + public static var allCases: [RepositorySyncStatus] { + return [ + .failed, + .initiated, + .inProgress, + .queued, + .succeeded + ] + } + + 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 .initiated: return "INITIATED" + case .inProgress: return "IN_PROGRESS" + case .queued: return "QUEUED" + case .succeeded: return "SUCCEEDED" + case let .sdkUnknown(s): return s + } + } + } +} + +extension CodeStarconnectionsClientTypes { + + /// Information about a repository sync attempt for a repository with a sync configuration. + public struct RepositorySyncAttempt: Swift.Sendable { + /// The events associated with a specific sync attempt. + /// This member is required. + public var events: [CodeStarconnectionsClientTypes.RepositorySyncEvent]? + /// The start time of a specific sync attempt. + /// This member is required. + public var startedAt: Foundation.Date? + /// The status of a specific sync attempt. The following are valid statuses: + /// + /// * INITIATED - A repository sync attempt has been created and will begin soon. + /// + /// * IN_PROGRESS - A repository sync attempt has started and work is being done to reconcile the branch. + /// + /// * SUCCEEDED - The repository sync attempt has completed successfully. + /// + /// * FAILED - The repository sync attempt has failed. + /// + /// * QUEUED - The repository sync attempt didn't execute and was queued. + /// This member is required. + public var status: CodeStarconnectionsClientTypes.RepositorySyncStatus? + + public init( + events: [CodeStarconnectionsClientTypes.RepositorySyncEvent]? = nil, + startedAt: Foundation.Date? = nil, + status: CodeStarconnectionsClientTypes.RepositorySyncStatus? = nil + ) + { + self.events = events + self.startedAt = startedAt + self.status = status + } + } +} + +public struct GetRepositorySyncStatusOutput: Swift.Sendable { + /// The status of the latest sync returned for a specified repository and branch. + /// This member is required. + public var latestSync: CodeStarconnectionsClientTypes.RepositorySyncAttempt? + + public init( + latestSync: CodeStarconnectionsClientTypes.RepositorySyncAttempt? = nil + ) + { + self.latestSync = latestSync + } +} + +public struct GetResourceSyncStatusInput: Swift.Sendable { + /// The name of the Amazon Web Services resource for the sync status with the Git repository. + /// This member is required. + public var resourceName: Swift.String? + /// The sync type for the sync status with the Git repository. + /// This member is required. + public var syncType: CodeStarconnectionsClientTypes.SyncConfigurationType? + + public init( + resourceName: Swift.String? = nil, + syncType: CodeStarconnectionsClientTypes.SyncConfigurationType? = nil + ) + { + self.resourceName = resourceName + self.syncType = syncType + } +} + +extension CodeStarconnectionsClientTypes { + + /// Information about the revision for a specific sync event, such as the branch, owner ID, and name of the repository. + public struct Revision: Swift.Sendable { + /// The branch name for a specific revision. + /// This member is required. + public var branch: Swift.String? + /// The directory, if any, for a specific revision. + /// This member is required. + public var directory: Swift.String? + /// The owner ID for a specific revision, such as the GitHub owner ID for a GitHub repository. + /// This member is required. + public var ownerId: Swift.String? + /// The provider type for a revision, such as GitHub. + /// This member is required. + public var providerType: CodeStarconnectionsClientTypes.ProviderType? + /// The repository name for a specific revision. + /// This member is required. + public var repositoryName: Swift.String? + /// The SHA, such as the commit ID, for a specific revision. + /// This member is required. + public var sha: Swift.String? + + public init( + branch: Swift.String? = nil, + directory: Swift.String? = nil, + ownerId: Swift.String? = nil, + providerType: CodeStarconnectionsClientTypes.ProviderType? = nil, + repositoryName: Swift.String? = nil, + sha: Swift.String? = nil + ) + { + self.branch = branch + self.directory = directory + self.ownerId = ownerId + self.providerType = providerType + self.repositoryName = repositoryName + self.sha = sha + } + } +} + +extension CodeStarconnectionsClientTypes { + + /// Information about a resource sync event for the resource associated with a sync configuration. + public struct ResourceSyncEvent: Swift.Sendable { + /// The event for a resource sync event. + /// This member is required. + public var event: Swift.String? + /// The ID for a resource sync event. + public var externalId: Swift.String? + /// The time that a resource sync event occurred. + /// This member is required. + public var time: Foundation.Date? + /// The type of resource sync event. + /// This member is required. + public var type: Swift.String? + + public init( + event: Swift.String? = nil, + externalId: Swift.String? = nil, + time: Foundation.Date? = nil, + type: Swift.String? = nil + ) + { + self.event = event + self.externalId = externalId + self.time = time + self.type = type + } + } +} + +extension CodeStarconnectionsClientTypes { + + public enum ResourceSyncStatus: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case failed + case initiated + case inProgress + case succeeded + case sdkUnknown(Swift.String) + + public static var allCases: [ResourceSyncStatus] { + return [ + .failed, + .initiated, + .inProgress, + .succeeded + ] + } + + 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 .initiated: return "INITIATED" + case .inProgress: return "IN_PROGRESS" + case .succeeded: return "SUCCEEDED" + case let .sdkUnknown(s): return s + } + } + } +} + +extension CodeStarconnectionsClientTypes { + + /// Information about a resource sync attempt. + public struct ResourceSyncAttempt: Swift.Sendable { + /// The events related to a resource sync attempt. + /// This member is required. + public var events: [CodeStarconnectionsClientTypes.ResourceSyncEvent]? + /// The current state of the resource as defined in the resource's config-file in the linked repository. + /// This member is required. + public var initialRevision: CodeStarconnectionsClientTypes.Revision? + /// The start time for a resource sync attempt. + /// This member is required. + public var startedAt: Foundation.Date? + /// The status for a resource sync attempt. The follow are valid statuses: + /// + /// * SYNC-INITIATED - A resource sync attempt has been created and will begin soon. + /// + /// * SYNCING - Syncing has started and work is being done to reconcile state. + /// + /// * SYNCED - Syncing has completed successfully. + /// + /// * SYNC_FAILED - A resource sync attempt has failed. + /// This member is required. + public var status: CodeStarconnectionsClientTypes.ResourceSyncStatus? + /// The name of the Amazon Web Services resource that is attempted to be synchronized. + /// This member is required. + public var target: Swift.String? + /// The desired state of the resource as defined in the resource's config-file in the linked repository. Git sync attempts to update the resource to this state. + /// This member is required. + public var targetRevision: CodeStarconnectionsClientTypes.Revision? + + public init( + events: [CodeStarconnectionsClientTypes.ResourceSyncEvent]? = nil, + initialRevision: CodeStarconnectionsClientTypes.Revision? = nil, + startedAt: Foundation.Date? = nil, + status: CodeStarconnectionsClientTypes.ResourceSyncStatus? = nil, + target: Swift.String? = nil, + targetRevision: CodeStarconnectionsClientTypes.Revision? = nil + ) + { + self.events = events + self.initialRevision = initialRevision + self.startedAt = startedAt + self.status = status + self.target = target + self.targetRevision = targetRevision + } + } +} + +public struct GetResourceSyncStatusOutput: Swift.Sendable { + /// The desired state of the Amazon Web Services resource for the sync status with the Git repository. + public var desiredState: CodeStarconnectionsClientTypes.Revision? + /// The latest successful sync for the sync status with the Git repository. + public var latestSuccessfulSync: CodeStarconnectionsClientTypes.ResourceSyncAttempt? + /// The latest sync for the sync status with the Git repository, whether successful or not. + /// This member is required. + public var latestSync: CodeStarconnectionsClientTypes.ResourceSyncAttempt? + + public init( + desiredState: CodeStarconnectionsClientTypes.Revision? = nil, + latestSuccessfulSync: CodeStarconnectionsClientTypes.ResourceSyncAttempt? = nil, + latestSync: CodeStarconnectionsClientTypes.ResourceSyncAttempt? = nil + ) + { + self.desiredState = desiredState + self.latestSuccessfulSync = latestSuccessfulSync + self.latestSync = latestSync + } +} + +public struct GetSyncBlockerSummaryInput: Swift.Sendable { + /// The name of the Amazon Web Services resource currently blocked from automatically being synced from a Git repository. + /// This member is required. + public var resourceName: Swift.String? + /// The sync type for the sync blocker summary. + /// This member is required. + public var syncType: CodeStarconnectionsClientTypes.SyncConfigurationType? + + public init( + resourceName: Swift.String? = nil, + syncType: CodeStarconnectionsClientTypes.SyncConfigurationType? = nil + ) + { + self.resourceName = resourceName + self.syncType = syncType + } +} + +extension CodeStarconnectionsClientTypes { + + /// The context for a specific sync blocker. + public struct SyncBlockerContext: Swift.Sendable { + /// The key provided for a context key-value pair for a specific sync blocker. + /// This member is required. + public var key: Swift.String? + /// The value provided for a context key-value pair for a specific sync blocker. + /// 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 CodeStarconnectionsClientTypes { + + /// Information about a blocker for a sync event. + public struct SyncBlocker: Swift.Sendable { + /// The contexts for a specific sync blocker. + public var contexts: [CodeStarconnectionsClientTypes.SyncBlockerContext]? + /// The creation time for a specific sync blocker. + /// This member is required. + public var createdAt: Foundation.Date? + /// The provided reason for a specific sync blocker. + /// This member is required. + public var createdReason: Swift.String? + /// The ID for a specific sync blocker. + /// This member is required. + public var id: Swift.String? + /// The time that a specific sync blocker was resolved. + public var resolvedAt: Foundation.Date? + /// The resolved reason for a specific sync blocker. + public var resolvedReason: Swift.String? + /// The status for a specific sync blocker. + /// This member is required. + public var status: CodeStarconnectionsClientTypes.BlockerStatus? + /// The sync blocker type. + /// This member is required. + public var type: CodeStarconnectionsClientTypes.BlockerType? + + public init( + contexts: [CodeStarconnectionsClientTypes.SyncBlockerContext]? = nil, + createdAt: Foundation.Date? = nil, + createdReason: Swift.String? = nil, + id: Swift.String? = nil, + resolvedAt: Foundation.Date? = nil, + resolvedReason: Swift.String? = nil, + status: CodeStarconnectionsClientTypes.BlockerStatus? = nil, + type: CodeStarconnectionsClientTypes.BlockerType? = nil + ) + { + self.contexts = contexts + self.createdAt = createdAt + self.createdReason = createdReason + self.id = id + self.resolvedAt = resolvedAt + self.resolvedReason = resolvedReason + self.status = status + self.type = type + } + } +} + +extension CodeStarconnectionsClientTypes { + + /// A summary for sync blockers. + public struct SyncBlockerSummary: Swift.Sendable { + /// The latest events for a sync blocker summary. + public var latestBlockers: [CodeStarconnectionsClientTypes.SyncBlocker]? + /// The parent resource name for a sync blocker summary. + public var parentResourceName: Swift.String? + /// The resource name for sync blocker summary. + /// This member is required. + public var resourceName: Swift.String? + + public init( + latestBlockers: [CodeStarconnectionsClientTypes.SyncBlocker]? = nil, + parentResourceName: Swift.String? = nil, + resourceName: Swift.String? = nil + ) + { + self.latestBlockers = latestBlockers + self.parentResourceName = parentResourceName + self.resourceName = resourceName + } + } +} + +public struct GetSyncBlockerSummaryOutput: Swift.Sendable { + /// The list of sync blockers for a specified resource. + /// This member is required. + public var syncBlockerSummary: CodeStarconnectionsClientTypes.SyncBlockerSummary? + + public init( + syncBlockerSummary: CodeStarconnectionsClientTypes.SyncBlockerSummary? = nil + ) + { + self.syncBlockerSummary = syncBlockerSummary + } +} + +public struct GetSyncConfigurationInput: Swift.Sendable { + /// The name of the Amazon Web Services resource for the sync configuration for which you want to retrieve information. + /// This member is required. + public var resourceName: Swift.String? + /// The sync type for the sync configuration for which you want to retrieve information. + /// This member is required. + public var syncType: CodeStarconnectionsClientTypes.SyncConfigurationType? + + public init( + resourceName: Swift.String? = nil, + syncType: CodeStarconnectionsClientTypes.SyncConfigurationType? = nil + ) + { + self.resourceName = resourceName + self.syncType = syncType + } +} + +public struct GetSyncConfigurationOutput: Swift.Sendable { + /// The details about the sync configuration for which you want to retrieve information. + /// This member is required. + public var syncConfiguration: CodeStarconnectionsClientTypes.SyncConfiguration? + + public init( + syncConfiguration: CodeStarconnectionsClientTypes.SyncConfiguration? = nil + ) + { + self.syncConfiguration = syncConfiguration + } +} + +public struct ListConnectionsInput: Swift.Sendable { + /// Filters the list of connections to those associated with a specified host. + public var hostArnFilter: Swift.String? + /// The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned nextToken value. + public var maxResults: Swift.Int? + /// The token that was returned from the previous ListConnections call, which can be used to return the next set of connections in the list. + public var nextToken: Swift.String? + /// Filters the list of connections to those associated with a specified provider, such as Bitbucket. + public var providerTypeFilter: CodeStarconnectionsClientTypes.ProviderType? + + public init( + hostArnFilter: Swift.String? = nil, + maxResults: Swift.Int? = 0, + nextToken: Swift.String? = nil, + providerTypeFilter: CodeStarconnectionsClientTypes.ProviderType? = nil + ) + { + self.hostArnFilter = hostArnFilter + self.maxResults = maxResults + self.nextToken = nextToken + self.providerTypeFilter = providerTypeFilter + } +} + +public struct ListConnectionsOutput: Swift.Sendable { + /// A list of connections and the details for each connection, such as status, owner, and provider type. + public var connections: [CodeStarconnectionsClientTypes.Connection]? + /// A token that can be used in the next ListConnections call. To view all items in the list, continue to call this operation with each subsequent token until no more nextToken values are returned. + public var nextToken: Swift.String? + + public init( + connections: [CodeStarconnectionsClientTypes.Connection]? = nil, + nextToken: Swift.String? = nil + ) + { + self.connections = connections + self.nextToken = nextToken + } +} + +public struct ListHostsInput: Swift.Sendable { + /// The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned nextToken value. + public var maxResults: Swift.Int? + /// The token that was returned from the previous ListHosts call, which can be used to return the next set of hosts in the list. + public var nextToken: Swift.String? + + public init( + maxResults: Swift.Int? = 0, + nextToken: Swift.String? = nil + ) + { + self.maxResults = maxResults + self.nextToken = nextToken + } +} + +extension CodeStarconnectionsClientTypes { + + /// A resource that represents the infrastructure where a third-party provider is installed. The host is used when you create connections to an installed third-party provider type, such as GitHub Enterprise Server. You create one host for all connections to that provider. A host created through the CLI or the SDK is in `PENDING` status by default. You can make its status `AVAILABLE` by setting up the host in the console. + public struct Host: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the host. + public var hostArn: Swift.String? + /// The name of the host. + public var name: Swift.String? + /// The endpoint of the infrastructure where your provider type is installed. + public var providerEndpoint: Swift.String? + /// The name of the installed provider to be associated with your connection. The host resource represents the infrastructure where your provider type is installed. The valid provider type is GitHub Enterprise Server. + public var providerType: CodeStarconnectionsClientTypes.ProviderType? + /// The status of the host, such as PENDING, AVAILABLE, VPC_CONFIG_DELETING, VPC_CONFIG_INITIALIZING, and VPC_CONFIG_FAILED_INITIALIZATION. + public var status: Swift.String? + /// The status description for the host. + public var statusMessage: Swift.String? + /// The VPC configuration provisioned for the host. + public var vpcConfiguration: CodeStarconnectionsClientTypes.VpcConfiguration? + + public init( + hostArn: Swift.String? = nil, + name: Swift.String? = nil, + providerEndpoint: Swift.String? = nil, + providerType: CodeStarconnectionsClientTypes.ProviderType? = nil, + status: Swift.String? = nil, + statusMessage: Swift.String? = nil, + vpcConfiguration: CodeStarconnectionsClientTypes.VpcConfiguration? = nil + ) + { + self.hostArn = hostArn + self.name = name + self.providerEndpoint = providerEndpoint + self.providerType = providerType + self.status = status + self.statusMessage = statusMessage + self.vpcConfiguration = vpcConfiguration + } + } +} + +public struct ListHostsOutput: Swift.Sendable { + /// A list of hosts and the details for each host, such as status, endpoint, and provider type. + public var hosts: [CodeStarconnectionsClientTypes.Host]? + /// A token that can be used in the next ListHosts call. To view all items in the list, continue to call this operation with each subsequent token until no more nextToken values are returned. + public var nextToken: Swift.String? + + public init( + hosts: [CodeStarconnectionsClientTypes.Host]? = nil, + nextToken: Swift.String? = nil + ) + { + self.hosts = hosts + self.nextToken = nextToken + } +} + +public struct ListRepositoryLinksInput: Swift.Sendable { + /// A non-zero, non-negative integer used to limit the number of returned results. + public var maxResults: Swift.Int? + /// An enumeration token that, when provided in a request, returns the next batch of the results. + public var nextToken: Swift.String? + + public init( + maxResults: Swift.Int? = 0, + nextToken: Swift.String? = nil + ) + { + self.maxResults = maxResults + self.nextToken = nextToken + } +} + +public struct ListRepositoryLinksOutput: Swift.Sendable { + /// An enumeration token that allows the operation to batch the results of the operation. + public var nextToken: Swift.String? + /// Lists the repository links called by the list repository links operation. + /// This member is required. + public var repositoryLinks: [CodeStarconnectionsClientTypes.RepositoryLinkInfo]? + + public init( + nextToken: Swift.String? = nil, + repositoryLinks: [CodeStarconnectionsClientTypes.RepositoryLinkInfo]? = nil + ) + { + self.nextToken = nextToken + self.repositoryLinks = repositoryLinks + } +} + +public struct ListRepositorySyncDefinitionsInput: Swift.Sendable { + /// The ID of the repository link for the sync definition for which you want to retrieve information. + /// This member is required. + public var repositoryLinkId: Swift.String? + /// The sync type of the repository link for the the sync definition for which you want to retrieve information. + /// This member is required. + public var syncType: CodeStarconnectionsClientTypes.SyncConfigurationType? + + public init( + repositoryLinkId: Swift.String? = nil, + syncType: CodeStarconnectionsClientTypes.SyncConfigurationType? = nil + ) + { + self.repositoryLinkId = repositoryLinkId + self.syncType = syncType + } +} + +extension CodeStarconnectionsClientTypes { + + /// The definition for a repository with a sync configuration. + public struct RepositorySyncDefinition: Swift.Sendable { + /// The branch specified for a repository sync definition. + /// This member is required. + public var branch: Swift.String? + /// The configuration file for a repository sync definition. This value comes from creating or updating the config-file field of a sync-configuration. + /// This member is required. + public var directory: Swift.String? + /// The parent resource specified for a repository sync definition. + /// This member is required. + public var parent: Swift.String? + /// The target resource specified for a repository sync definition. In some cases, such as CFN_STACK_SYNC, the parent and target resource are the same. + /// This member is required. + public var target: Swift.String? + + public init( + branch: Swift.String? = nil, + directory: Swift.String? = nil, + parent: Swift.String? = nil, + target: Swift.String? = nil + ) + { + self.branch = branch + self.directory = directory + self.parent = parent + self.target = target + } + } +} + +public struct ListRepositorySyncDefinitionsOutput: Swift.Sendable { + /// An enumeration token that, when provided in a request, returns the next batch of the results. + public var nextToken: Swift.String? + /// The list of repository sync definitions returned by the request. A RepositorySyncDefinition is a mapping from a repository branch to all the Amazon Web Services resources that are being synced from that branch. + /// This member is required. + public var repositorySyncDefinitions: [CodeStarconnectionsClientTypes.RepositorySyncDefinition]? + + public init( + nextToken: Swift.String? = nil, + repositorySyncDefinitions: [CodeStarconnectionsClientTypes.RepositorySyncDefinition]? = nil + ) + { + self.nextToken = nextToken + self.repositorySyncDefinitions = repositorySyncDefinitions + } +} + +public struct ListSyncConfigurationsInput: Swift.Sendable { + /// A non-zero, non-negative integer used to limit the number of returned results. + public var maxResults: Swift.Int? + /// An enumeration token that allows the operation to batch the results of the operation. + public var nextToken: Swift.String? + /// The ID of the repository link for the requested list of sync configurations. + /// This member is required. + public var repositoryLinkId: Swift.String? + /// The sync type for the requested list of sync configurations. + /// This member is required. + public var syncType: CodeStarconnectionsClientTypes.SyncConfigurationType? + + public init( + maxResults: Swift.Int? = 0, + nextToken: Swift.String? = nil, + repositoryLinkId: Swift.String? = nil, + syncType: CodeStarconnectionsClientTypes.SyncConfigurationType? = nil + ) + { + self.maxResults = maxResults + self.nextToken = nextToken + self.repositoryLinkId = repositoryLinkId + self.syncType = syncType + } +} + +public struct ListSyncConfigurationsOutput: Swift.Sendable { + /// An enumeration token that allows the operation to batch the next results of the operation. + public var nextToken: Swift.String? + /// The list of repository sync definitions returned by the request. + /// This member is required. + public var syncConfigurations: [CodeStarconnectionsClientTypes.SyncConfiguration]? + + public init( + nextToken: Swift.String? = nil, + syncConfigurations: [CodeStarconnectionsClientTypes.SyncConfiguration]? = nil + ) + { + self.nextToken = nextToken + self.syncConfigurations = syncConfigurations + } +} + +public struct ListTagsForResourceInput: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the resource for which you want to get information about tags, if any. + /// This member is required. + public var resourceArn: Swift.String? + + public init( + resourceArn: Swift.String? = nil + ) + { + self.resourceArn = resourceArn + } +} + +public struct ListTagsForResourceOutput: Swift.Sendable { + /// A list of tag key and value pairs associated with the specified resource. + public var tags: [CodeStarconnectionsClientTypes.Tag]? + + public init( + tags: [CodeStarconnectionsClientTypes.Tag]? = nil + ) + { + self.tags = tags + } +} + +public struct TagResourceInput: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the resource to which you want to add or update tags. + /// This member is required. + public var resourceArn: Swift.String? + /// The tags you want to modify or add to the resource. + /// This member is required. + public var tags: [CodeStarconnectionsClientTypes.Tag]? + + public init( + resourceArn: Swift.String? = nil, + tags: [CodeStarconnectionsClientTypes.Tag]? = nil + ) + { + self.resourceArn = resourceArn + self.tags = tags + } +} + +public struct TagResourceOutput: Swift.Sendable { + + public init() { } +} + +public struct UntagResourceInput: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the resource to remove tags from. + /// This member is required. + public var resourceArn: Swift.String? + /// The list of keys for the tags to be removed from the resource. + /// This member is required. + public var tagKeys: [Swift.String]? + + public init( + resourceArn: Swift.String? = nil, + tagKeys: [Swift.String]? = nil + ) + { + self.resourceArn = resourceArn + self.tagKeys = tagKeys + } +} + +public struct UntagResourceOutput: Swift.Sendable { + + public init() { } +} + +/// Two conflicting operations have been made on the same resource. +public struct ConflictException: 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 { "ConflictException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.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 + } +} + +/// The operation is not supported. Check the connection status and try again. +public struct UnsupportedOperationException: 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 { "UnsupportedOperationException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.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 + } +} + +public struct UpdateHostInput: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the host to be updated. + /// This member is required. + public var hostArn: Swift.String? + /// The URL or endpoint of the host to be updated. + public var providerEndpoint: Swift.String? + /// The VPC configuration of the host to be updated. A VPC must be configured and the infrastructure to be represented by the host must already be connected to the VPC. + public var vpcConfiguration: CodeStarconnectionsClientTypes.VpcConfiguration? + + public init( + hostArn: Swift.String? = nil, + providerEndpoint: Swift.String? = nil, + vpcConfiguration: CodeStarconnectionsClientTypes.VpcConfiguration? = nil + ) + { + self.hostArn = hostArn + self.providerEndpoint = providerEndpoint + self.vpcConfiguration = vpcConfiguration + } +} + +public struct UpdateHostOutput: Swift.Sendable { + + public init() { } +} + +/// The conditional check failed. Try again later. +public struct ConditionalCheckFailedException: 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 { "ConditionalCheckFailedException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.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 + } +} + +/// The update is out of sync. Try syncing again. +public struct UpdateOutOfSyncException: 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 { "UpdateOutOfSyncException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.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 + } +} + +public struct UpdateRepositoryLinkInput: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the connection for the repository link to be updated. The updated connection ARN must have the same providerType (such as GitHub) as the original connection ARN for the repo link. + public var connectionArn: Swift.String? + /// The Amazon Resource Name (ARN) of the encryption key for the repository link to be updated. + public var encryptionKeyArn: Swift.String? + /// The ID of the repository link to be updated. + /// This member is required. + public var repositoryLinkId: Swift.String? + + public init( + connectionArn: Swift.String? = nil, + encryptionKeyArn: Swift.String? = nil, + repositoryLinkId: Swift.String? = nil + ) + { + self.connectionArn = connectionArn + self.encryptionKeyArn = encryptionKeyArn + self.repositoryLinkId = repositoryLinkId + } +} + +public struct UpdateRepositoryLinkOutput: Swift.Sendable { + /// Information about the repository link to be updated. + /// This member is required. + public var repositoryLinkInfo: CodeStarconnectionsClientTypes.RepositoryLinkInfo? + + public init( + repositoryLinkInfo: CodeStarconnectionsClientTypes.RepositoryLinkInfo? = nil + ) + { + self.repositoryLinkInfo = repositoryLinkInfo + } +} + +/// Retrying the latest commit failed. Try again later. +public struct RetryLatestCommitFailedException: 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 { "RetryLatestCommitFailedException" } + public static var fault: ClientRuntime.ErrorFault { .server } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.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 + } +} + +/// Unable to continue. The sync blocker does not exist. +public struct SyncBlockerDoesNotExistException: 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 { "SyncBlockerDoesNotExistException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.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 + } +} + +public struct UpdateSyncBlockerInput: Swift.Sendable { + /// The ID of the sync blocker to be updated. + /// This member is required. + public var id: Swift.String? + /// The reason for resolving the sync blocker. + /// This member is required. + public var resolvedReason: Swift.String? + /// The name of the resource for the sync blocker to be updated. + /// This member is required. + public var resourceName: Swift.String? + /// The sync type of the sync blocker to be updated. + /// This member is required. + public var syncType: CodeStarconnectionsClientTypes.SyncConfigurationType? + + public init( + id: Swift.String? = nil, + resolvedReason: Swift.String? = nil, + resourceName: Swift.String? = nil, + syncType: CodeStarconnectionsClientTypes.SyncConfigurationType? = nil + ) + { + self.id = id + self.resolvedReason = resolvedReason + self.resourceName = resourceName + self.syncType = syncType + } +} + +public struct UpdateSyncBlockerOutput: Swift.Sendable { + /// The parent resource name for the sync blocker. + public var parentResourceName: Swift.String? + /// The resource name for the sync blocker. + /// This member is required. + public var resourceName: Swift.String? + /// Information about the sync blocker to be updated. + /// This member is required. + public var syncBlocker: CodeStarconnectionsClientTypes.SyncBlocker? + + public init( + parentResourceName: Swift.String? = nil, + resourceName: Swift.String? = nil, + syncBlocker: CodeStarconnectionsClientTypes.SyncBlocker? = nil + ) + { + self.parentResourceName = parentResourceName + self.resourceName = resourceName + self.syncBlocker = syncBlocker + } +} + +public struct UpdateSyncConfigurationInput: Swift.Sendable { + /// The branch for the sync configuration to be updated. + public var branch: Swift.String? + /// The configuration file for the sync configuration to be updated. + public var configFile: Swift.String? + /// Whether to enable or disable publishing of deployment status to source providers. + public var publishDeploymentStatus: CodeStarconnectionsClientTypes.PublishDeploymentStatus? + /// The ID of the repository link for the sync configuration to be updated. + public var repositoryLinkId: Swift.String? + /// The name of the Amazon Web Services resource for the sync configuration to be updated. + /// This member is required. + public var resourceName: Swift.String? + /// The ARN of the IAM role for the sync configuration to be updated. + public var roleArn: Swift.String? + /// The sync type for the sync configuration to be updated. + /// This member is required. + public var syncType: CodeStarconnectionsClientTypes.SyncConfigurationType? + /// When to trigger Git sync to begin the stack update. + public var triggerResourceUpdateOn: CodeStarconnectionsClientTypes.TriggerResourceUpdateOn? + + public init( + branch: Swift.String? = nil, + configFile: Swift.String? = nil, + publishDeploymentStatus: CodeStarconnectionsClientTypes.PublishDeploymentStatus? = nil, + repositoryLinkId: Swift.String? = nil, + resourceName: Swift.String? = nil, + roleArn: Swift.String? = nil, + syncType: CodeStarconnectionsClientTypes.SyncConfigurationType? = nil, + triggerResourceUpdateOn: CodeStarconnectionsClientTypes.TriggerResourceUpdateOn? = nil + ) + { + self.branch = branch + self.configFile = configFile + self.publishDeploymentStatus = publishDeploymentStatus + self.repositoryLinkId = repositoryLinkId + self.resourceName = resourceName + self.roleArn = roleArn + self.syncType = syncType + self.triggerResourceUpdateOn = triggerResourceUpdateOn + } +} + +public struct UpdateSyncConfigurationOutput: Swift.Sendable { + /// The information returned for the sync configuration to be updated. + /// This member is required. + public var syncConfiguration: CodeStarconnectionsClientTypes.SyncConfiguration? + + public init( + syncConfiguration: CodeStarconnectionsClientTypes.SyncConfiguration? = nil + ) + { + self.syncConfiguration = syncConfiguration + } +} + +extension CreateConnectionInput { + + static func urlPathProvider(_ value: CreateConnectionInput) -> Swift.String? { + return "/" + } +} + +extension CreateHostInput { + + static func urlPathProvider(_ value: CreateHostInput) -> Swift.String? { + return "/" + } +} + +extension CreateRepositoryLinkInput { + + static func urlPathProvider(_ value: CreateRepositoryLinkInput) -> Swift.String? { + return "/" + } +} + +extension CreateSyncConfigurationInput { + + static func urlPathProvider(_ value: CreateSyncConfigurationInput) -> Swift.String? { + return "/" + } +} + +extension DeleteConnectionInput { + + static func urlPathProvider(_ value: DeleteConnectionInput) -> Swift.String? { + return "/" + } +} + +extension DeleteHostInput { + + static func urlPathProvider(_ value: DeleteHostInput) -> Swift.String? { + return "/" + } +} + +extension DeleteRepositoryLinkInput { + + static func urlPathProvider(_ value: DeleteRepositoryLinkInput) -> Swift.String? { + return "/" + } +} + +extension DeleteSyncConfigurationInput { + + static func urlPathProvider(_ value: DeleteSyncConfigurationInput) -> Swift.String? { + return "/" + } +} + +extension GetConnectionInput { + + static func urlPathProvider(_ value: GetConnectionInput) -> Swift.String? { + return "/" + } +} + +extension GetHostInput { + + static func urlPathProvider(_ value: GetHostInput) -> Swift.String? { + return "/" + } +} + +extension GetRepositoryLinkInput { + + static func urlPathProvider(_ value: GetRepositoryLinkInput) -> Swift.String? { + return "/" + } +} + +extension GetRepositorySyncStatusInput { + + static func urlPathProvider(_ value: GetRepositorySyncStatusInput) -> Swift.String? { + return "/" + } +} + +extension GetResourceSyncStatusInput { + + static func urlPathProvider(_ value: GetResourceSyncStatusInput) -> Swift.String? { + return "/" + } +} + +extension GetSyncBlockerSummaryInput { + + static func urlPathProvider(_ value: GetSyncBlockerSummaryInput) -> Swift.String? { + return "/" + } +} + +extension GetSyncConfigurationInput { + + static func urlPathProvider(_ value: GetSyncConfigurationInput) -> Swift.String? { + return "/" + } +} + +extension ListConnectionsInput { + + static func urlPathProvider(_ value: ListConnectionsInput) -> Swift.String? { + return "/" + } +} + +extension ListHostsInput { + + static func urlPathProvider(_ value: ListHostsInput) -> Swift.String? { + return "/" + } +} + +extension ListRepositoryLinksInput { + + static func urlPathProvider(_ value: ListRepositoryLinksInput) -> Swift.String? { + return "/" + } +} + +extension ListRepositorySyncDefinitionsInput { + + static func urlPathProvider(_ value: ListRepositorySyncDefinitionsInput) -> Swift.String? { + return "/" + } +} + +extension ListSyncConfigurationsInput { + + static func urlPathProvider(_ value: ListSyncConfigurationsInput) -> Swift.String? { + return "/" + } +} + +extension ListTagsForResourceInput { + + static func urlPathProvider(_ value: ListTagsForResourceInput) -> Swift.String? { + return "/" + } +} + +extension TagResourceInput { + + static func urlPathProvider(_ value: TagResourceInput) -> Swift.String? { + return "/" + } +} + +extension UntagResourceInput { + + static func urlPathProvider(_ value: UntagResourceInput) -> Swift.String? { + return "/" + } +} + +extension UpdateHostInput { + + static func urlPathProvider(_ value: UpdateHostInput) -> Swift.String? { + return "/" + } +} + +extension UpdateRepositoryLinkInput { + + static func urlPathProvider(_ value: UpdateRepositoryLinkInput) -> Swift.String? { + return "/" + } +} + +extension UpdateSyncBlockerInput { + + static func urlPathProvider(_ value: UpdateSyncBlockerInput) -> Swift.String? { + return "/" + } +} + +extension UpdateSyncConfigurationInput { + + static func urlPathProvider(_ value: UpdateSyncConfigurationInput) -> Swift.String? { + return "/" + } +} + +extension CreateConnectionInput { + + static func write(value: CreateConnectionInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["ConnectionName"].write(value.connectionName) + try writer["HostArn"].write(value.hostArn) + try writer["ProviderType"].write(value.providerType) + try writer["Tags"].writeList(value.tags, memberWritingClosure: CodeStarconnectionsClientTypes.Tag.write(value:to:), memberNodeInfo: "member", isFlattened: false) + } +} + +extension CreateHostInput { + + static func write(value: CreateHostInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["Name"].write(value.name) + try writer["ProviderEndpoint"].write(value.providerEndpoint) + try writer["ProviderType"].write(value.providerType) + try writer["Tags"].writeList(value.tags, memberWritingClosure: CodeStarconnectionsClientTypes.Tag.write(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["VpcConfiguration"].write(value.vpcConfiguration, with: CodeStarconnectionsClientTypes.VpcConfiguration.write(value:to:)) + } +} + +extension CreateRepositoryLinkInput { + + static func write(value: CreateRepositoryLinkInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["ConnectionArn"].write(value.connectionArn) + try writer["EncryptionKeyArn"].write(value.encryptionKeyArn) + try writer["OwnerId"].write(value.ownerId) + try writer["RepositoryName"].write(value.repositoryName) + try writer["Tags"].writeList(value.tags, memberWritingClosure: CodeStarconnectionsClientTypes.Tag.write(value:to:), memberNodeInfo: "member", isFlattened: false) + } +} + +extension CreateSyncConfigurationInput { + + static func write(value: CreateSyncConfigurationInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["Branch"].write(value.branch) + try writer["ConfigFile"].write(value.configFile) + try writer["PublishDeploymentStatus"].write(value.publishDeploymentStatus) + try writer["RepositoryLinkId"].write(value.repositoryLinkId) + try writer["ResourceName"].write(value.resourceName) + try writer["RoleArn"].write(value.roleArn) + try writer["SyncType"].write(value.syncType) + try writer["TriggerResourceUpdateOn"].write(value.triggerResourceUpdateOn) + } +} + +extension DeleteConnectionInput { + + static func write(value: DeleteConnectionInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["ConnectionArn"].write(value.connectionArn) + } +} + +extension DeleteHostInput { + + static func write(value: DeleteHostInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["HostArn"].write(value.hostArn) + } +} + +extension DeleteRepositoryLinkInput { + + static func write(value: DeleteRepositoryLinkInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["RepositoryLinkId"].write(value.repositoryLinkId) + } +} + +extension DeleteSyncConfigurationInput { + + static func write(value: DeleteSyncConfigurationInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["ResourceName"].write(value.resourceName) + try writer["SyncType"].write(value.syncType) + } +} + +extension GetConnectionInput { + + static func write(value: GetConnectionInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["ConnectionArn"].write(value.connectionArn) + } +} + +extension GetHostInput { + + static func write(value: GetHostInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["HostArn"].write(value.hostArn) + } +} + +extension GetRepositoryLinkInput { + + static func write(value: GetRepositoryLinkInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["RepositoryLinkId"].write(value.repositoryLinkId) + } +} + +extension GetRepositorySyncStatusInput { + + static func write(value: GetRepositorySyncStatusInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["Branch"].write(value.branch) + try writer["RepositoryLinkId"].write(value.repositoryLinkId) + try writer["SyncType"].write(value.syncType) + } +} + +extension GetResourceSyncStatusInput { + + static func write(value: GetResourceSyncStatusInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["ResourceName"].write(value.resourceName) + try writer["SyncType"].write(value.syncType) + } +} + +extension GetSyncBlockerSummaryInput { + + static func write(value: GetSyncBlockerSummaryInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["ResourceName"].write(value.resourceName) + try writer["SyncType"].write(value.syncType) + } +} + +extension GetSyncConfigurationInput { + + static func write(value: GetSyncConfigurationInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["ResourceName"].write(value.resourceName) + try writer["SyncType"].write(value.syncType) + } +} + +extension ListConnectionsInput { + + static func write(value: ListConnectionsInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["HostArnFilter"].write(value.hostArnFilter) + try writer["MaxResults"].write(value.maxResults) + try writer["NextToken"].write(value.nextToken) + try writer["ProviderTypeFilter"].write(value.providerTypeFilter) + } +} + +extension ListHostsInput { + + static func write(value: ListHostsInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["MaxResults"].write(value.maxResults) + try writer["NextToken"].write(value.nextToken) + } +} + +extension ListRepositoryLinksInput { + + static func write(value: ListRepositoryLinksInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["MaxResults"].write(value.maxResults) + try writer["NextToken"].write(value.nextToken) + } +} + +extension ListRepositorySyncDefinitionsInput { + + static func write(value: ListRepositorySyncDefinitionsInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["RepositoryLinkId"].write(value.repositoryLinkId) + try writer["SyncType"].write(value.syncType) + } +} + +extension ListSyncConfigurationsInput { + + static func write(value: ListSyncConfigurationsInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["MaxResults"].write(value.maxResults) + try writer["NextToken"].write(value.nextToken) + try writer["RepositoryLinkId"].write(value.repositoryLinkId) + try writer["SyncType"].write(value.syncType) + } +} + +extension ListTagsForResourceInput { + + static func write(value: ListTagsForResourceInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["ResourceArn"].write(value.resourceArn) + } +} + +extension TagResourceInput { + + static func write(value: TagResourceInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["ResourceArn"].write(value.resourceArn) + try writer["Tags"].writeList(value.tags, memberWritingClosure: CodeStarconnectionsClientTypes.Tag.write(value:to:), memberNodeInfo: "member", isFlattened: false) + } +} + +extension UntagResourceInput { + + static func write(value: UntagResourceInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["ResourceArn"].write(value.resourceArn) + try writer["TagKeys"].writeList(value.tagKeys, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + } +} + +extension UpdateHostInput { + + static func write(value: UpdateHostInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["HostArn"].write(value.hostArn) + try writer["ProviderEndpoint"].write(value.providerEndpoint) + try writer["VpcConfiguration"].write(value.vpcConfiguration, with: CodeStarconnectionsClientTypes.VpcConfiguration.write(value:to:)) + } +} + +extension UpdateRepositoryLinkInput { + + static func write(value: UpdateRepositoryLinkInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["ConnectionArn"].write(value.connectionArn) + try writer["EncryptionKeyArn"].write(value.encryptionKeyArn) + try writer["RepositoryLinkId"].write(value.repositoryLinkId) + } +} + +extension UpdateSyncBlockerInput { + + static func write(value: UpdateSyncBlockerInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["Id"].write(value.id) + try writer["ResolvedReason"].write(value.resolvedReason) + try writer["ResourceName"].write(value.resourceName) + try writer["SyncType"].write(value.syncType) + } +} + +extension UpdateSyncConfigurationInput { + + static func write(value: UpdateSyncConfigurationInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["Branch"].write(value.branch) + try writer["ConfigFile"].write(value.configFile) + try writer["PublishDeploymentStatus"].write(value.publishDeploymentStatus) + try writer["RepositoryLinkId"].write(value.repositoryLinkId) + try writer["ResourceName"].write(value.resourceName) + try writer["RoleArn"].write(value.roleArn) + try writer["SyncType"].write(value.syncType) + try writer["TriggerResourceUpdateOn"].write(value.triggerResourceUpdateOn) + } +} + +extension CreateConnectionOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> CreateConnectionOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = CreateConnectionOutput() + value.connectionArn = try reader["ConnectionArn"].readIfPresent() ?? "" + value.tags = try reader["Tags"].readListIfPresent(memberReadingClosure: CodeStarconnectionsClientTypes.Tag.read(from:), memberNodeInfo: "member", isFlattened: false) + return value + } +} + +extension CreateHostOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> CreateHostOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = CreateHostOutput() + value.hostArn = try reader["HostArn"].readIfPresent() + value.tags = try reader["Tags"].readListIfPresent(memberReadingClosure: CodeStarconnectionsClientTypes.Tag.read(from:), memberNodeInfo: "member", isFlattened: false) + return value + } +} + +extension CreateRepositoryLinkOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> CreateRepositoryLinkOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = CreateRepositoryLinkOutput() + value.repositoryLinkInfo = try reader["RepositoryLinkInfo"].readIfPresent(with: CodeStarconnectionsClientTypes.RepositoryLinkInfo.read(from:)) + return value + } +} + +extension CreateSyncConfigurationOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> CreateSyncConfigurationOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = CreateSyncConfigurationOutput() + value.syncConfiguration = try reader["SyncConfiguration"].readIfPresent(with: CodeStarconnectionsClientTypes.SyncConfiguration.read(from:)) + return value + } +} + +extension DeleteConnectionOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteConnectionOutput { + return DeleteConnectionOutput() + } +} + +extension DeleteHostOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteHostOutput { + return DeleteHostOutput() + } +} + +extension DeleteRepositoryLinkOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteRepositoryLinkOutput { + return DeleteRepositoryLinkOutput() + } +} + +extension DeleteSyncConfigurationOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteSyncConfigurationOutput { + return DeleteSyncConfigurationOutput() + } +} + +extension GetConnectionOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetConnectionOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = GetConnectionOutput() + value.connection = try reader["Connection"].readIfPresent(with: CodeStarconnectionsClientTypes.Connection.read(from:)) + return value + } +} + +extension GetHostOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetHostOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = GetHostOutput() + value.name = try reader["Name"].readIfPresent() + value.providerEndpoint = try reader["ProviderEndpoint"].readIfPresent() + value.providerType = try reader["ProviderType"].readIfPresent() + value.status = try reader["Status"].readIfPresent() + value.vpcConfiguration = try reader["VpcConfiguration"].readIfPresent(with: CodeStarconnectionsClientTypes.VpcConfiguration.read(from:)) + return value + } +} + +extension GetRepositoryLinkOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetRepositoryLinkOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = GetRepositoryLinkOutput() + value.repositoryLinkInfo = try reader["RepositoryLinkInfo"].readIfPresent(with: CodeStarconnectionsClientTypes.RepositoryLinkInfo.read(from:)) + return value + } +} + +extension GetRepositorySyncStatusOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetRepositorySyncStatusOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = GetRepositorySyncStatusOutput() + value.latestSync = try reader["LatestSync"].readIfPresent(with: CodeStarconnectionsClientTypes.RepositorySyncAttempt.read(from:)) + return value + } +} + +extension GetResourceSyncStatusOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetResourceSyncStatusOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = GetResourceSyncStatusOutput() + value.desiredState = try reader["DesiredState"].readIfPresent(with: CodeStarconnectionsClientTypes.Revision.read(from:)) + value.latestSuccessfulSync = try reader["LatestSuccessfulSync"].readIfPresent(with: CodeStarconnectionsClientTypes.ResourceSyncAttempt.read(from:)) + value.latestSync = try reader["LatestSync"].readIfPresent(with: CodeStarconnectionsClientTypes.ResourceSyncAttempt.read(from:)) + return value + } +} + +extension GetSyncBlockerSummaryOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetSyncBlockerSummaryOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = GetSyncBlockerSummaryOutput() + value.syncBlockerSummary = try reader["SyncBlockerSummary"].readIfPresent(with: CodeStarconnectionsClientTypes.SyncBlockerSummary.read(from:)) + return value + } +} + +extension GetSyncConfigurationOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> GetSyncConfigurationOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = GetSyncConfigurationOutput() + value.syncConfiguration = try reader["SyncConfiguration"].readIfPresent(with: CodeStarconnectionsClientTypes.SyncConfiguration.read(from:)) + return value + } +} + +extension ListConnectionsOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListConnectionsOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = ListConnectionsOutput() + value.connections = try reader["Connections"].readListIfPresent(memberReadingClosure: CodeStarconnectionsClientTypes.Connection.read(from:), memberNodeInfo: "member", isFlattened: false) + value.nextToken = try reader["NextToken"].readIfPresent() + return value + } +} + +extension ListHostsOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListHostsOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = ListHostsOutput() + value.hosts = try reader["Hosts"].readListIfPresent(memberReadingClosure: CodeStarconnectionsClientTypes.Host.read(from:), memberNodeInfo: "member", isFlattened: false) + value.nextToken = try reader["NextToken"].readIfPresent() + return value + } +} + +extension ListRepositoryLinksOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListRepositoryLinksOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = ListRepositoryLinksOutput() + value.nextToken = try reader["NextToken"].readIfPresent() + value.repositoryLinks = try reader["RepositoryLinks"].readListIfPresent(memberReadingClosure: CodeStarconnectionsClientTypes.RepositoryLinkInfo.read(from:), memberNodeInfo: "member", isFlattened: false) ?? [] + return value + } +} + +extension ListRepositorySyncDefinitionsOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListRepositorySyncDefinitionsOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = ListRepositorySyncDefinitionsOutput() + value.nextToken = try reader["NextToken"].readIfPresent() + value.repositorySyncDefinitions = try reader["RepositorySyncDefinitions"].readListIfPresent(memberReadingClosure: CodeStarconnectionsClientTypes.RepositorySyncDefinition.read(from:), memberNodeInfo: "member", isFlattened: false) ?? [] + return value + } +} + +extension ListSyncConfigurationsOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListSyncConfigurationsOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = ListSyncConfigurationsOutput() + value.nextToken = try reader["NextToken"].readIfPresent() + value.syncConfigurations = try reader["SyncConfigurations"].readListIfPresent(memberReadingClosure: CodeStarconnectionsClientTypes.SyncConfiguration.read(from:), memberNodeInfo: "member", isFlattened: false) ?? [] + return value + } +} + +extension ListTagsForResourceOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListTagsForResourceOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = ListTagsForResourceOutput() + value.tags = try reader["Tags"].readListIfPresent(memberReadingClosure: CodeStarconnectionsClientTypes.Tag.read(from:), memberNodeInfo: "member", isFlattened: false) + return value + } +} + +extension TagResourceOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> TagResourceOutput { + return TagResourceOutput() + } +} + +extension UntagResourceOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> UntagResourceOutput { + return UntagResourceOutput() + } +} + +extension UpdateHostOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> UpdateHostOutput { + return UpdateHostOutput() + } +} + +extension UpdateRepositoryLinkOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> UpdateRepositoryLinkOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = UpdateRepositoryLinkOutput() + value.repositoryLinkInfo = try reader["RepositoryLinkInfo"].readIfPresent(with: CodeStarconnectionsClientTypes.RepositoryLinkInfo.read(from:)) + return value + } +} + +extension UpdateSyncBlockerOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> UpdateSyncBlockerOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = UpdateSyncBlockerOutput() + value.parentResourceName = try reader["ParentResourceName"].readIfPresent() + value.resourceName = try reader["ResourceName"].readIfPresent() ?? "" + value.syncBlocker = try reader["SyncBlocker"].readIfPresent(with: CodeStarconnectionsClientTypes.SyncBlocker.read(from:)) + return value + } +} + +extension UpdateSyncConfigurationOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> UpdateSyncConfigurationOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = UpdateSyncConfigurationOutput() + value.syncConfiguration = try reader["SyncConfiguration"].readIfPresent(with: CodeStarconnectionsClientTypes.SyncConfiguration.read(from:)) + return value + } +} + +enum CreateConnectionOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "LimitExceededException": return try LimitExceededException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ResourceUnavailableException": return try ResourceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum CreateHostOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "LimitExceededException": return try LimitExceededException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum CreateRepositoryLinkOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "ConcurrentModificationException": return try ConcurrentModificationException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "InvalidInputException": return try InvalidInputException.makeError(baseError: baseError) + case "LimitExceededException": return try LimitExceededException.makeError(baseError: baseError) + case "ResourceAlreadyExistsException": return try ResourceAlreadyExistsException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum CreateSyncConfigurationOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "ConcurrentModificationException": return try ConcurrentModificationException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "InvalidInputException": return try InvalidInputException.makeError(baseError: baseError) + case "LimitExceededException": return try LimitExceededException.makeError(baseError: baseError) + case "ResourceAlreadyExistsException": return try ResourceAlreadyExistsException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum DeleteConnectionOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum DeleteHostOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ResourceUnavailableException": return try ResourceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum DeleteRepositoryLinkOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "ConcurrentModificationException": return try ConcurrentModificationException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "InvalidInputException": return try InvalidInputException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "SyncConfigurationStillExistsException": return try SyncConfigurationStillExistsException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "UnsupportedProviderTypeException": return try UnsupportedProviderTypeException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum DeleteSyncConfigurationOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "ConcurrentModificationException": return try ConcurrentModificationException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "InvalidInputException": return try InvalidInputException.makeError(baseError: baseError) + case "LimitExceededException": return try LimitExceededException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum GetConnectionOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ResourceUnavailableException": return try ResourceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum GetHostOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ResourceUnavailableException": return try ResourceUnavailableException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum GetRepositoryLinkOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "ConcurrentModificationException": return try ConcurrentModificationException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "InvalidInputException": return try InvalidInputException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum GetRepositorySyncStatusOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "InvalidInputException": return try InvalidInputException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum GetResourceSyncStatusOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "InvalidInputException": return try InvalidInputException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum GetSyncBlockerSummaryOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "InvalidInputException": return try InvalidInputException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum GetSyncConfigurationOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "InvalidInputException": return try InvalidInputException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum ListConnectionsOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum ListHostsOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum ListRepositoryLinksOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "ConcurrentModificationException": return try ConcurrentModificationException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "InvalidInputException": return try InvalidInputException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum ListRepositorySyncDefinitionsOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "InvalidInputException": return try InvalidInputException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum ListSyncConfigurationsOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "InvalidInputException": return try InvalidInputException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum ListTagsForResourceOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum TagResourceOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "LimitExceededException": return try LimitExceededException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum UntagResourceOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum UpdateHostOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "ConflictException": return try ConflictException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ResourceUnavailableException": return try ResourceUnavailableException.makeError(baseError: baseError) + case "UnsupportedOperationException": return try UnsupportedOperationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum UpdateRepositoryLinkOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "ConditionalCheckFailedException": return try ConditionalCheckFailedException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "InvalidInputException": return try InvalidInputException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "UpdateOutOfSyncException": return try UpdateOutOfSyncException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum UpdateSyncBlockerOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "InvalidInputException": return try InvalidInputException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "RetryLatestCommitFailedException": return try RetryLatestCommitFailedException.makeError(baseError: baseError) + case "SyncBlockerDoesNotExistException": return try SyncBlockerDoesNotExistException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum UpdateSyncConfigurationOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "ConcurrentModificationException": return try ConcurrentModificationException.makeError(baseError: baseError) + case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "InvalidInputException": return try InvalidInputException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ThrottlingException": return try ThrottlingException.makeError(baseError: baseError) + case "UpdateOutOfSyncException": return try UpdateOutOfSyncException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +extension ResourceUnavailableException { + + static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> ResourceUnavailableException { + let reader = baseError.errorBodyReader + var value = ResourceUnavailableException() + value.properties.message = try reader["Message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension LimitExceededException { + + static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> LimitExceededException { + let reader = baseError.errorBodyReader + var value = LimitExceededException() + value.properties.message = try reader["Message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension ResourceNotFoundException { + + static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> ResourceNotFoundException { + let reader = baseError.errorBodyReader + var value = ResourceNotFoundException() + value.properties.message = try reader["Message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension ResourceAlreadyExistsException { + + static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> ResourceAlreadyExistsException { + let reader = baseError.errorBodyReader + var value = ResourceAlreadyExistsException() + value.properties.message = try reader["Message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension InvalidInputException { + + static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> InvalidInputException { + let reader = baseError.errorBodyReader + var value = InvalidInputException() + value.properties.message = try reader["Message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension AccessDeniedException { + + static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> AccessDeniedException { + let reader = baseError.errorBodyReader + var value = AccessDeniedException() + value.properties.message = try reader["Message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension ThrottlingException { + + static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> ThrottlingException { + let reader = baseError.errorBodyReader + var value = ThrottlingException() + value.properties.message = try reader["Message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension InternalServerException { + + static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> InternalServerException { + let reader = baseError.errorBodyReader + var value = InternalServerException() + value.properties.message = try reader["Message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension ConcurrentModificationException { + + static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> ConcurrentModificationException { + let reader = baseError.errorBodyReader + var value = ConcurrentModificationException() + value.properties.message = try reader["Message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension UnsupportedProviderTypeException { + + static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> UnsupportedProviderTypeException { + let reader = baseError.errorBodyReader + var value = UnsupportedProviderTypeException() + value.properties.message = try reader["Message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension SyncConfigurationStillExistsException { + + static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> SyncConfigurationStillExistsException { + let reader = baseError.errorBodyReader + var value = SyncConfigurationStillExistsException() + value.properties.message = try reader["Message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension UnsupportedOperationException { + + static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> UnsupportedOperationException { + let reader = baseError.errorBodyReader + var value = UnsupportedOperationException() + value.properties.message = try reader["Message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension ConflictException { + + static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> ConflictException { + let reader = baseError.errorBodyReader + var value = ConflictException() + value.properties.message = try reader["Message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension ConditionalCheckFailedException { + + static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> ConditionalCheckFailedException { + let reader = baseError.errorBodyReader + var value = ConditionalCheckFailedException() + value.properties.message = try reader["Message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension UpdateOutOfSyncException { + + static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> UpdateOutOfSyncException { + let reader = baseError.errorBodyReader + var value = UpdateOutOfSyncException() + value.properties.message = try reader["Message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension RetryLatestCommitFailedException { + + static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> RetryLatestCommitFailedException { + let reader = baseError.errorBodyReader + var value = RetryLatestCommitFailedException() + value.properties.message = try reader["Message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension SyncBlockerDoesNotExistException { + + static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> SyncBlockerDoesNotExistException { + let reader = baseError.errorBodyReader + var value = SyncBlockerDoesNotExistException() + value.properties.message = try reader["Message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension CodeStarconnectionsClientTypes.Tag { + + static func write(value: CodeStarconnectionsClientTypes.Tag?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["Key"].write(value.key) + try writer["Value"].write(value.value) + } + + static func read(from reader: SmithyJSON.Reader) throws -> CodeStarconnectionsClientTypes.Tag { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CodeStarconnectionsClientTypes.Tag() + value.key = try reader["Key"].readIfPresent() ?? "" + value.value = try reader["Value"].readIfPresent() ?? "" + return value + } +} + +extension CodeStarconnectionsClientTypes.RepositoryLinkInfo { + + static func read(from reader: SmithyJSON.Reader) throws -> CodeStarconnectionsClientTypes.RepositoryLinkInfo { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CodeStarconnectionsClientTypes.RepositoryLinkInfo() + value.connectionArn = try reader["ConnectionArn"].readIfPresent() ?? "" + value.encryptionKeyArn = try reader["EncryptionKeyArn"].readIfPresent() + value.ownerId = try reader["OwnerId"].readIfPresent() ?? "" + value.providerType = try reader["ProviderType"].readIfPresent() ?? .sdkUnknown("") + value.repositoryLinkArn = try reader["RepositoryLinkArn"].readIfPresent() ?? "" + value.repositoryLinkId = try reader["RepositoryLinkId"].readIfPresent() ?? "" + value.repositoryName = try reader["RepositoryName"].readIfPresent() ?? "" + return value + } +} + +extension CodeStarconnectionsClientTypes.SyncConfiguration { + + static func read(from reader: SmithyJSON.Reader) throws -> CodeStarconnectionsClientTypes.SyncConfiguration { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CodeStarconnectionsClientTypes.SyncConfiguration() + value.branch = try reader["Branch"].readIfPresent() ?? "" + value.configFile = try reader["ConfigFile"].readIfPresent() + value.ownerId = try reader["OwnerId"].readIfPresent() ?? "" + value.providerType = try reader["ProviderType"].readIfPresent() ?? .sdkUnknown("") + value.repositoryLinkId = try reader["RepositoryLinkId"].readIfPresent() ?? "" + value.repositoryName = try reader["RepositoryName"].readIfPresent() ?? "" + value.resourceName = try reader["ResourceName"].readIfPresent() ?? "" + value.roleArn = try reader["RoleArn"].readIfPresent() ?? "" + value.syncType = try reader["SyncType"].readIfPresent() ?? .sdkUnknown("") + value.publishDeploymentStatus = try reader["PublishDeploymentStatus"].readIfPresent() + value.triggerResourceUpdateOn = try reader["TriggerResourceUpdateOn"].readIfPresent() + return value + } +} + +extension CodeStarconnectionsClientTypes.Connection { + + static func read(from reader: SmithyJSON.Reader) throws -> CodeStarconnectionsClientTypes.Connection { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CodeStarconnectionsClientTypes.Connection() + value.connectionName = try reader["ConnectionName"].readIfPresent() + value.connectionArn = try reader["ConnectionArn"].readIfPresent() + value.providerType = try reader["ProviderType"].readIfPresent() + value.ownerAccountId = try reader["OwnerAccountId"].readIfPresent() + value.connectionStatus = try reader["ConnectionStatus"].readIfPresent() + value.hostArn = try reader["HostArn"].readIfPresent() + return value + } +} + +extension CodeStarconnectionsClientTypes.VpcConfiguration { + + static func write(value: CodeStarconnectionsClientTypes.VpcConfiguration?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["SecurityGroupIds"].writeList(value.securityGroupIds, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["SubnetIds"].writeList(value.subnetIds, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["TlsCertificate"].write(value.tlsCertificate) + try writer["VpcId"].write(value.vpcId) + } + + static func read(from reader: SmithyJSON.Reader) throws -> CodeStarconnectionsClientTypes.VpcConfiguration { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CodeStarconnectionsClientTypes.VpcConfiguration() + value.vpcId = try reader["VpcId"].readIfPresent() ?? "" + value.subnetIds = try reader["SubnetIds"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) ?? [] + value.securityGroupIds = try reader["SecurityGroupIds"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) ?? [] + value.tlsCertificate = try reader["TlsCertificate"].readIfPresent() + return value + } +} + +extension CodeStarconnectionsClientTypes.RepositorySyncAttempt { + + static func read(from reader: SmithyJSON.Reader) throws -> CodeStarconnectionsClientTypes.RepositorySyncAttempt { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CodeStarconnectionsClientTypes.RepositorySyncAttempt() + value.startedAt = try reader["StartedAt"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") + value.status = try reader["Status"].readIfPresent() ?? .sdkUnknown("") + value.events = try reader["Events"].readListIfPresent(memberReadingClosure: CodeStarconnectionsClientTypes.RepositorySyncEvent.read(from:), memberNodeInfo: "member", isFlattened: false) ?? [] + return value + } +} + +extension CodeStarconnectionsClientTypes.RepositorySyncEvent { + + static func read(from reader: SmithyJSON.Reader) throws -> CodeStarconnectionsClientTypes.RepositorySyncEvent { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CodeStarconnectionsClientTypes.RepositorySyncEvent() + value.event = try reader["Event"].readIfPresent() ?? "" + value.externalId = try reader["ExternalId"].readIfPresent() + value.time = try reader["Time"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") + value.type = try reader["Type"].readIfPresent() ?? "" + return value + } +} + +extension CodeStarconnectionsClientTypes.Revision { + + static func read(from reader: SmithyJSON.Reader) throws -> CodeStarconnectionsClientTypes.Revision { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CodeStarconnectionsClientTypes.Revision() + value.branch = try reader["Branch"].readIfPresent() ?? "" + value.directory = try reader["Directory"].readIfPresent() ?? "" + value.ownerId = try reader["OwnerId"].readIfPresent() ?? "" + value.repositoryName = try reader["RepositoryName"].readIfPresent() ?? "" + value.providerType = try reader["ProviderType"].readIfPresent() ?? .sdkUnknown("") + value.sha = try reader["Sha"].readIfPresent() ?? "" + return value + } +} + +extension CodeStarconnectionsClientTypes.ResourceSyncAttempt { + + static func read(from reader: SmithyJSON.Reader) throws -> CodeStarconnectionsClientTypes.ResourceSyncAttempt { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CodeStarconnectionsClientTypes.ResourceSyncAttempt() + value.events = try reader["Events"].readListIfPresent(memberReadingClosure: CodeStarconnectionsClientTypes.ResourceSyncEvent.read(from:), memberNodeInfo: "member", isFlattened: false) ?? [] + value.initialRevision = try reader["InitialRevision"].readIfPresent(with: CodeStarconnectionsClientTypes.Revision.read(from:)) + value.startedAt = try reader["StartedAt"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") + value.status = try reader["Status"].readIfPresent() ?? .sdkUnknown("") + value.targetRevision = try reader["TargetRevision"].readIfPresent(with: CodeStarconnectionsClientTypes.Revision.read(from:)) + value.target = try reader["Target"].readIfPresent() ?? "" + return value + } +} + +extension CodeStarconnectionsClientTypes.ResourceSyncEvent { + + static func read(from reader: SmithyJSON.Reader) throws -> CodeStarconnectionsClientTypes.ResourceSyncEvent { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CodeStarconnectionsClientTypes.ResourceSyncEvent() + value.event = try reader["Event"].readIfPresent() ?? "" + value.externalId = try reader["ExternalId"].readIfPresent() + value.time = try reader["Time"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") + value.type = try reader["Type"].readIfPresent() ?? "" + return value + } +} + +extension CodeStarconnectionsClientTypes.SyncBlockerSummary { + + static func read(from reader: SmithyJSON.Reader) throws -> CodeStarconnectionsClientTypes.SyncBlockerSummary { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CodeStarconnectionsClientTypes.SyncBlockerSummary() + value.resourceName = try reader["ResourceName"].readIfPresent() ?? "" + value.parentResourceName = try reader["ParentResourceName"].readIfPresent() + value.latestBlockers = try reader["LatestBlockers"].readListIfPresent(memberReadingClosure: CodeStarconnectionsClientTypes.SyncBlocker.read(from:), memberNodeInfo: "member", isFlattened: false) + return value + } +} + +extension CodeStarconnectionsClientTypes.SyncBlocker { + + static func read(from reader: SmithyJSON.Reader) throws -> CodeStarconnectionsClientTypes.SyncBlocker { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CodeStarconnectionsClientTypes.SyncBlocker() + value.id = try reader["Id"].readIfPresent() ?? "" + value.type = try reader["Type"].readIfPresent() ?? .sdkUnknown("") + value.status = try reader["Status"].readIfPresent() ?? .sdkUnknown("") + value.createdReason = try reader["CreatedReason"].readIfPresent() ?? "" + value.createdAt = try reader["CreatedAt"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") + value.contexts = try reader["Contexts"].readListIfPresent(memberReadingClosure: CodeStarconnectionsClientTypes.SyncBlockerContext.read(from:), memberNodeInfo: "member", isFlattened: false) + value.resolvedReason = try reader["ResolvedReason"].readIfPresent() + value.resolvedAt = try reader["ResolvedAt"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) + return value + } +} + +extension CodeStarconnectionsClientTypes.SyncBlockerContext { + + static func read(from reader: SmithyJSON.Reader) throws -> CodeStarconnectionsClientTypes.SyncBlockerContext { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CodeStarconnectionsClientTypes.SyncBlockerContext() + value.key = try reader["Key"].readIfPresent() ?? "" + value.value = try reader["Value"].readIfPresent() ?? "" + return value + } +} + +extension CodeStarconnectionsClientTypes.Host { + + static func read(from reader: SmithyJSON.Reader) throws -> CodeStarconnectionsClientTypes.Host { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CodeStarconnectionsClientTypes.Host() + value.name = try reader["Name"].readIfPresent() + value.hostArn = try reader["HostArn"].readIfPresent() + value.providerType = try reader["ProviderType"].readIfPresent() + value.providerEndpoint = try reader["ProviderEndpoint"].readIfPresent() + value.vpcConfiguration = try reader["VpcConfiguration"].readIfPresent(with: CodeStarconnectionsClientTypes.VpcConfiguration.read(from:)) + value.status = try reader["Status"].readIfPresent() + value.statusMessage = try reader["StatusMessage"].readIfPresent() + return value + } +} + +extension CodeStarconnectionsClientTypes.RepositorySyncDefinition { + + static func read(from reader: SmithyJSON.Reader) throws -> CodeStarconnectionsClientTypes.RepositorySyncDefinition { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CodeStarconnectionsClientTypes.RepositorySyncDefinition() + value.branch = try reader["Branch"].readIfPresent() ?? "" + value.directory = try reader["Directory"].readIfPresent() ?? "" + value.parent = try reader["Parent"].readIfPresent() ?? "" + value.target = try reader["Target"].readIfPresent() ?? "" + return value + } +} + +public enum CodeStarconnectionsClientTypes {} diff --git a/Sources/Services/AWSCodeStarconnections/Sources/AWSCodeStarconnections/Paginators.swift b/Sources/Services/AWSCodeStarconnections/Sources/AWSCodeStarconnections/Paginators.swift new file mode 100644 index 00000000000..ce4f505e06f --- /dev/null +++ b/Sources/Services/AWSCodeStarconnections/Sources/AWSCodeStarconnections/Paginators.swift @@ -0,0 +1,100 @@ +// +// Copyright Amazon.com Inc. or its affiliates. +// All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 +// + +// Code generated by smithy-swift-codegen. DO NOT EDIT! + +import protocol ClientRuntime.PaginateToken +import struct ClientRuntime.PaginatorSequence + +extension CodeStarconnectionsClient { + /// Paginate over `[ListConnectionsOutput]` 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 `[ListConnectionsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListConnectionsOutput` + public func listConnectionsPaginated(input: ListConnectionsInput) -> ClientRuntime.PaginatorSequence { + return ClientRuntime.PaginatorSequence(input: input, inputKey: \.nextToken, outputKey: \.nextToken, paginationFunction: self.listConnections(input:)) + } +} + +extension ListConnectionsInput: ClientRuntime.PaginateToken { + public func usingPaginationToken(_ token: Swift.String) -> ListConnectionsInput { + return ListConnectionsInput( + hostArnFilter: self.hostArnFilter, + maxResults: self.maxResults, + nextToken: token, + providerTypeFilter: self.providerTypeFilter + )} +} +extension CodeStarconnectionsClient { + /// Paginate over `[ListHostsOutput]` 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 `[ListHostsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListHostsOutput` + public func listHostsPaginated(input: ListHostsInput) -> ClientRuntime.PaginatorSequence { + return ClientRuntime.PaginatorSequence(input: input, inputKey: \.nextToken, outputKey: \.nextToken, paginationFunction: self.listHosts(input:)) + } +} + +extension ListHostsInput: ClientRuntime.PaginateToken { + public func usingPaginationToken(_ token: Swift.String) -> ListHostsInput { + return ListHostsInput( + maxResults: self.maxResults, + nextToken: token + )} +} +extension CodeStarconnectionsClient { + /// Paginate over `[ListRepositoryLinksOutput]` 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 `[ListRepositoryLinksInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListRepositoryLinksOutput` + public func listRepositoryLinksPaginated(input: ListRepositoryLinksInput) -> ClientRuntime.PaginatorSequence { + return ClientRuntime.PaginatorSequence(input: input, inputKey: \.nextToken, outputKey: \.nextToken, paginationFunction: self.listRepositoryLinks(input:)) + } +} + +extension ListRepositoryLinksInput: ClientRuntime.PaginateToken { + public func usingPaginationToken(_ token: Swift.String) -> ListRepositoryLinksInput { + return ListRepositoryLinksInput( + maxResults: self.maxResults, + nextToken: token + )} +} +extension CodeStarconnectionsClient { + /// Paginate over `[ListSyncConfigurationsOutput]` 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 `[ListSyncConfigurationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListSyncConfigurationsOutput` + public func listSyncConfigurationsPaginated(input: ListSyncConfigurationsInput) -> ClientRuntime.PaginatorSequence { + return ClientRuntime.PaginatorSequence(input: input, inputKey: \.nextToken, outputKey: \.nextToken, paginationFunction: self.listSyncConfigurations(input:)) + } +} + +extension ListSyncConfigurationsInput: ClientRuntime.PaginateToken { + public func usingPaginationToken(_ token: Swift.String) -> ListSyncConfigurationsInput { + return ListSyncConfigurationsInput( + maxResults: self.maxResults, + nextToken: token, + repositoryLinkId: self.repositoryLinkId, + syncType: self.syncType + )} +} diff --git a/Sources/Services/AWSCodeStarconnections/Sources/AWSCodeStarconnections/Plugins.swift b/Sources/Services/AWSCodeStarconnections/Sources/AWSCodeStarconnections/Plugins.swift new file mode 100644 index 00000000000..9b244517967 --- /dev/null +++ b/Sources/Services/AWSCodeStarconnections/Sources/AWSCodeStarconnections/Plugins.swift @@ -0,0 +1,82 @@ +// +// Copyright Amazon.com Inc. or its affiliates. +// All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 +// + +// Code generated by smithy-swift-codegen. DO NOT EDIT! + +import class AWSClientRuntime.AWSClientConfigDefaultsProvider +import protocol ClientRuntime.ClientConfiguration +import protocol ClientRuntime.Plugin +import protocol SmithyHTTPAuthAPI.AuthSchemeResolver +import protocol SmithyIdentity.AWSCredentialIdentityResolver +import protocol SmithyIdentity.BearerTokenIdentityResolver +import struct AWSSDKHTTPAuth.SigV4AuthScheme +import struct SmithyIdentity.BearerTokenIdentity +import struct SmithyIdentity.StaticBearerTokenIdentityResolver +import typealias SmithyHTTPAuthAPI.AuthSchemes + +public class CodeStarconnectionsClientEndpointPlugin: Plugin { + private var endpointResolver: EndpointResolver + + public init(endpointResolver: EndpointResolver) { + self.endpointResolver = endpointResolver + } + + public convenience init() throws { + self.init(endpointResolver: try DefaultEndpointResolver()) + } + + public func configureClient(clientConfiguration: ClientRuntime.ClientConfiguration) throws { + if let config = clientConfiguration as? CodeStarconnectionsClient.CodeStarconnectionsClientConfiguration { + config.endpointResolver = self.endpointResolver + } + } +} + +public class DefaultAWSAuthSchemePlugin: ClientRuntime.Plugin { + + public init() {} + + public func configureClient(clientConfiguration: ClientRuntime.ClientConfiguration) throws { + if let config = clientConfiguration as? CodeStarconnectionsClient.CodeStarconnectionsClientConfiguration { + config.authSchemeResolver = DefaultCodeStarconnectionsAuthSchemeResolver() + config.authSchemes = [AWSSDKHTTPAuth.SigV4AuthScheme()] + config.awsCredentialIdentityResolver = try AWSClientRuntime.AWSClientConfigDefaultsProvider.awsCredentialIdentityResolver() + config.bearerTokenIdentityResolver = SmithyIdentity.StaticBearerTokenIdentityResolver(token: SmithyIdentity.BearerTokenIdentity(token: "")) + } + } +} + +public class CodeStarconnectionsClientAuthSchemePlugin: ClientRuntime.Plugin { + private var authSchemes: SmithyHTTPAuthAPI.AuthSchemes? + private var authSchemeResolver: SmithyHTTPAuthAPI.AuthSchemeResolver? + private var awsCredentialIdentityResolver: (any SmithyIdentity.AWSCredentialIdentityResolver)? + private var bearerTokenIdentityResolver: (any SmithyIdentity.BearerTokenIdentityResolver)? + + public init(authSchemes: SmithyHTTPAuthAPI.AuthSchemes? = nil, authSchemeResolver: CodeStarconnectionsAuthSchemeResolver? = nil, awsCredentialIdentityResolver: (any SmithyIdentity.AWSCredentialIdentityResolver)? = nil, bearerTokenIdentityResolver: (any SmithyIdentity.BearerTokenIdentityResolver)? = nil) { + self.authSchemeResolver = authSchemeResolver + self.authSchemes = authSchemes + self.awsCredentialIdentityResolver = awsCredentialIdentityResolver + self.bearerTokenIdentityResolver = bearerTokenIdentityResolver + } + + public func configureClient(clientConfiguration: ClientRuntime.ClientConfiguration) throws { + if let config = clientConfiguration as? CodeStarconnectionsClient.CodeStarconnectionsClientConfiguration { + if (self.authSchemes != nil) { + config.authSchemes = self.authSchemes + } + if (self.authSchemeResolver != nil) { + config.authSchemeResolver = self.authSchemeResolver! + } + if (self.awsCredentialIdentityResolver != nil) { + config.awsCredentialIdentityResolver = self.awsCredentialIdentityResolver! + } + if (self.bearerTokenIdentityResolver != nil) { + config.bearerTokenIdentityResolver = self.bearerTokenIdentityResolver! + } + } + } +} diff --git a/Sources/Services/AWSCodeStarconnections/Sources/AWSCodeStarconnections/Resources/Package.version b/Sources/Services/AWSCodeStarconnections/Sources/AWSCodeStarconnections/Resources/Package.version new file mode 100644 index 00000000000..d3827e75a5c --- /dev/null +++ b/Sources/Services/AWSCodeStarconnections/Sources/AWSCodeStarconnections/Resources/Package.version @@ -0,0 +1 @@ +1.0 diff --git a/Sources/Services/AWSCodeStarconnections/Tests/AWSCodeStarconnectionsTests/EndpointResolverTest.swift b/Sources/Services/AWSCodeStarconnections/Tests/AWSCodeStarconnectionsTests/EndpointResolverTest.swift new file mode 100644 index 00000000000..0560753168a --- /dev/null +++ b/Sources/Services/AWSCodeStarconnections/Tests/AWSCodeStarconnectionsTests/EndpointResolverTest.swift @@ -0,0 +1,816 @@ +// +// Copyright Amazon.com Inc. or its affiliates. +// All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 +// + +// Code generated by smithy-swift-codegen. DO NOT EDIT! + +@testable import AWSCodeStarconnections +import SmithyTestUtil +import XCTest +import enum ClientRuntime.EndpointError +import struct SmithyHTTPAPI.Endpoint +import struct SmithyHTTPAPI.Headers + +class EndpointResolverTest: XCTestCase { + + override class func setUp() { + SmithyTestUtil.TestInitializer.initialize() + } + + /// For region ap-northeast-1 with FIPS disabled and DualStack disabled + func testResolve1() throws { + let endpointParams = EndpointParams( + region: "ap-northeast-1", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://codestar-connections.ap-northeast-1.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region ap-northeast-2 with FIPS disabled and DualStack disabled + func testResolve2() throws { + let endpointParams = EndpointParams( + region: "ap-northeast-2", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://codestar-connections.ap-northeast-2.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region ap-south-1 with FIPS disabled and DualStack disabled + func testResolve3() throws { + let endpointParams = EndpointParams( + region: "ap-south-1", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://codestar-connections.ap-south-1.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region ap-southeast-1 with FIPS disabled and DualStack disabled + func testResolve4() throws { + let endpointParams = EndpointParams( + region: "ap-southeast-1", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://codestar-connections.ap-southeast-1.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region ap-southeast-2 with FIPS disabled and DualStack disabled + func testResolve5() throws { + let endpointParams = EndpointParams( + region: "ap-southeast-2", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://codestar-connections.ap-southeast-2.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region ca-central-1 with FIPS disabled and DualStack disabled + func testResolve6() throws { + let endpointParams = EndpointParams( + region: "ca-central-1", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://codestar-connections.ca-central-1.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region eu-central-1 with FIPS disabled and DualStack disabled + func testResolve7() throws { + let endpointParams = EndpointParams( + region: "eu-central-1", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://codestar-connections.eu-central-1.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region eu-north-1 with FIPS disabled and DualStack disabled + func testResolve8() throws { + let endpointParams = EndpointParams( + region: "eu-north-1", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://codestar-connections.eu-north-1.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region eu-west-1 with FIPS disabled and DualStack disabled + func testResolve9() throws { + let endpointParams = EndpointParams( + region: "eu-west-1", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://codestar-connections.eu-west-1.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region eu-west-2 with FIPS disabled and DualStack disabled + func testResolve10() throws { + let endpointParams = EndpointParams( + region: "eu-west-2", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://codestar-connections.eu-west-2.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region eu-west-3 with FIPS disabled and DualStack disabled + func testResolve11() throws { + let endpointParams = EndpointParams( + region: "eu-west-3", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://codestar-connections.eu-west-3.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region sa-east-1 with FIPS disabled and DualStack disabled + func testResolve12() throws { + let endpointParams = EndpointParams( + region: "sa-east-1", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://codestar-connections.sa-east-1.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-east-1 with FIPS disabled and DualStack disabled + func testResolve13() throws { + let endpointParams = EndpointParams( + region: "us-east-1", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://codestar-connections.us-east-1.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-east-2 with FIPS disabled and DualStack disabled + func testResolve14() throws { + let endpointParams = EndpointParams( + region: "us-east-2", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://codestar-connections.us-east-2.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-west-1 with FIPS disabled and DualStack disabled + func testResolve15() throws { + let endpointParams = EndpointParams( + region: "us-west-1", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://codestar-connections.us-west-1.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-west-2 with FIPS disabled and DualStack disabled + func testResolve16() throws { + let endpointParams = EndpointParams( + region: "us-west-2", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://codestar-connections.us-west-2.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-east-1 with FIPS enabled and DualStack enabled + func testResolve17() throws { + let endpointParams = EndpointParams( + region: "us-east-1", + useDualStack: true, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://codestar-connections-fips.us-east-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-east-1 with FIPS enabled and DualStack disabled + func testResolve18() throws { + let endpointParams = EndpointParams( + region: "us-east-1", + useDualStack: false, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://codestar-connections-fips.us-east-1.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-east-1 with FIPS disabled and DualStack enabled + func testResolve19() throws { + let endpointParams = EndpointParams( + region: "us-east-1", + useDualStack: true, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://codestar-connections.us-east-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region cn-north-1 with FIPS enabled and DualStack enabled + func testResolve20() throws { + let endpointParams = EndpointParams( + region: "cn-north-1", + useDualStack: true, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://codestar-connections-fips.cn-north-1.api.amazonwebservices.com.cn", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region cn-north-1 with FIPS enabled and DualStack disabled + func testResolve21() throws { + let endpointParams = EndpointParams( + region: "cn-north-1", + useDualStack: false, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://codestar-connections-fips.cn-north-1.amazonaws.com.cn", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region cn-north-1 with FIPS disabled and DualStack enabled + func testResolve22() throws { + let endpointParams = EndpointParams( + region: "cn-north-1", + useDualStack: true, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://codestar-connections.cn-north-1.api.amazonwebservices.com.cn", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region cn-north-1 with FIPS disabled and DualStack disabled + func testResolve23() throws { + let endpointParams = EndpointParams( + region: "cn-north-1", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://codestar-connections.cn-north-1.amazonaws.com.cn", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-gov-east-1 with FIPS enabled and DualStack enabled + func testResolve24() throws { + let endpointParams = EndpointParams( + region: "us-gov-east-1", + useDualStack: true, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://codestar-connections-fips.us-gov-east-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-gov-east-1 with FIPS enabled and DualStack disabled + func testResolve25() throws { + let endpointParams = EndpointParams( + region: "us-gov-east-1", + useDualStack: false, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://codestar-connections-fips.us-gov-east-1.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-gov-east-1 with FIPS disabled and DualStack enabled + func testResolve26() throws { + let endpointParams = EndpointParams( + region: "us-gov-east-1", + useDualStack: true, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://codestar-connections.us-gov-east-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-gov-east-1 with FIPS disabled and DualStack disabled + func testResolve27() throws { + let endpointParams = EndpointParams( + region: "us-gov-east-1", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://codestar-connections.us-gov-east-1.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-iso-east-1 with FIPS enabled and DualStack enabled + func testResolve28() throws { + let endpointParams = EndpointParams( + region: "us-iso-east-1", + useDualStack: true, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + XCTAssertThrowsError(try resolver.resolve(params: endpointParams)) { error in + switch error { + case ClientRuntime.EndpointError.unresolved(let message): + XCTAssertEqual("FIPS and DualStack are enabled, but this partition does not support one or both", message) + default: + XCTFail() + } + } + } + + /// For region us-iso-east-1 with FIPS enabled and DualStack disabled + func testResolve29() throws { + let endpointParams = EndpointParams( + region: "us-iso-east-1", + useDualStack: false, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://codestar-connections-fips.us-iso-east-1.c2s.ic.gov", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-iso-east-1 with FIPS disabled and DualStack enabled + func testResolve30() throws { + let endpointParams = EndpointParams( + region: "us-iso-east-1", + useDualStack: true, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + XCTAssertThrowsError(try resolver.resolve(params: endpointParams)) { error in + switch error { + case ClientRuntime.EndpointError.unresolved(let message): + XCTAssertEqual("DualStack is enabled but this partition does not support DualStack", message) + default: + XCTFail() + } + } + } + + /// For region us-iso-east-1 with FIPS disabled and DualStack disabled + func testResolve31() throws { + let endpointParams = EndpointParams( + region: "us-iso-east-1", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://codestar-connections.us-iso-east-1.c2s.ic.gov", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-isob-east-1 with FIPS enabled and DualStack enabled + func testResolve32() throws { + let endpointParams = EndpointParams( + region: "us-isob-east-1", + useDualStack: true, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + XCTAssertThrowsError(try resolver.resolve(params: endpointParams)) { error in + switch error { + case ClientRuntime.EndpointError.unresolved(let message): + XCTAssertEqual("FIPS and DualStack are enabled, but this partition does not support one or both", message) + default: + XCTFail() + } + } + } + + /// For region us-isob-east-1 with FIPS enabled and DualStack disabled + func testResolve33() throws { + let endpointParams = EndpointParams( + region: "us-isob-east-1", + useDualStack: false, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://codestar-connections-fips.us-isob-east-1.sc2s.sgov.gov", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-isob-east-1 with FIPS disabled and DualStack enabled + func testResolve34() throws { + let endpointParams = EndpointParams( + region: "us-isob-east-1", + useDualStack: true, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + XCTAssertThrowsError(try resolver.resolve(params: endpointParams)) { error in + switch error { + case ClientRuntime.EndpointError.unresolved(let message): + XCTAssertEqual("DualStack is enabled but this partition does not support DualStack", message) + default: + XCTFail() + } + } + } + + /// For region us-isob-east-1 with FIPS disabled and DualStack disabled + func testResolve35() throws { + let endpointParams = EndpointParams( + region: "us-isob-east-1", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://codestar-connections.us-isob-east-1.sc2s.sgov.gov", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For custom endpoint with region set and fips disabled and dualstack disabled + func testResolve36() throws { + let endpointParams = EndpointParams( + endpoint: "https://example.com", + region: "us-east-1", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://example.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For custom endpoint with region not set and fips disabled and dualstack disabled + func testResolve37() throws { + let endpointParams = EndpointParams( + endpoint: "https://example.com", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://example.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For custom endpoint with fips enabled and dualstack disabled + func testResolve38() throws { + let endpointParams = EndpointParams( + endpoint: "https://example.com", + region: "us-east-1", + useDualStack: false, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + XCTAssertThrowsError(try resolver.resolve(params: endpointParams)) { error in + switch error { + case ClientRuntime.EndpointError.unresolved(let message): + XCTAssertEqual("Invalid Configuration: FIPS and custom endpoint are not supported", message) + default: + XCTFail() + } + } + } + + /// For custom endpoint with fips disabled and dualstack enabled + func testResolve39() throws { + let endpointParams = EndpointParams( + endpoint: "https://example.com", + region: "us-east-1", + useDualStack: true, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + XCTAssertThrowsError(try resolver.resolve(params: endpointParams)) { error in + switch error { + case ClientRuntime.EndpointError.unresolved(let message): + XCTAssertEqual("Invalid Configuration: Dualstack and custom endpoint are not supported", message) + default: + XCTFail() + } + } + } + + /// Missing region + func testResolve40() throws { + let endpointParams = EndpointParams( + ) + let resolver = try DefaultEndpointResolver() + + XCTAssertThrowsError(try resolver.resolve(params: endpointParams)) { error in + switch error { + case ClientRuntime.EndpointError.unresolved(let message): + XCTAssertEqual("Invalid Configuration: Missing Region", message) + default: + XCTFail() + } + } + } + +} diff --git a/Sources/Services/AWSCodestarnotifications/Package.swift.txt b/Sources/Services/AWSCodestarnotifications/Package.swift.txt new file mode 100644 index 00000000000..46c9d1624fa --- /dev/null +++ b/Sources/Services/AWSCodestarnotifications/Package.swift.txt @@ -0,0 +1,99 @@ +// swift-tools-version: 5.9.0 + +import PackageDescription + +let package = Package( + name: "AWSCodestarnotifications", + platforms: [ + .macOS(.v10_15), .iOS(.v13) + ], + products: [ + .library(name: "AWSCodestarnotifications", targets: ["AWSCodestarnotifications"]) + ], + dependencies: [ + .package( + id: "aws-sdk-swift.smithy-swift", + exact: "0.0.1" + ), + .package( + id: "aws-sdk-swift.AWSClientRuntime", + exact: "0.0.1" + ), + .package( + id: "aws-sdk-swift.AWSSDKHTTPAuth", + exact: "0.0.1" + ), + ], + targets: [ + .target( + name: "AWSCodestarnotifications", + dependencies: [ + .product( + name: "SmithyHTTPAuthAPI", + package: "aws-sdk-swift.smithy-swift" + ), + .product( + name: "Smithy", + package: "aws-sdk-swift.smithy-swift" + ), + .product( + name: "ClientRuntime", + package: "aws-sdk-swift.smithy-swift" + ), + .product( + name: "AWSClientRuntime", + package: "aws-sdk-swift.AWSClientRuntime" + ), + .product( + name: "SmithyIdentity", + package: "aws-sdk-swift.smithy-swift" + ), + .product( + name: "SmithyRetriesAPI", + package: "aws-sdk-swift.smithy-swift" + ), + .product( + name: "SmithyHTTPAPI", + package: "aws-sdk-swift.smithy-swift" + ), + .product( + name: "AWSSDKHTTPAuth", + package: "aws-sdk-swift.AWSSDKHTTPAuth" + ), + .product( + name: "SmithyJSON", + package: "aws-sdk-swift.smithy-swift" + ), + .product( + name: "SmithyReadWrite", + package: "aws-sdk-swift.smithy-swift" + ), + .product( + name: "SmithyRetries", + package: "aws-sdk-swift.smithy-swift" + ), + .product( + name: "SmithyTimestamps", + package: "aws-sdk-swift.smithy-swift" + ), + .product( + name: "SmithyTestUtil", + package: "aws-sdk-swift.smithy-swift" + ), + ], + resources: [ + .process("Resources") + ] + ), + .testTarget( + name: "AWSCodestarnotificationsTests", + dependencies: [ + "AWSCodestarnotifications", + .product( + name: "SmithyTestUtil", + package: "aws-sdk-swift.smithy-swift" + ), + ] + ) + ] +) diff --git a/Sources/Services/AWSCodestarnotifications/Sources/AWSCodestarnotifications/AuthSchemeResolver.swift b/Sources/Services/AWSCodestarnotifications/Sources/AWSCodestarnotifications/AuthSchemeResolver.swift new file mode 100644 index 00000000000..3b75fa19888 --- /dev/null +++ b/Sources/Services/AWSCodestarnotifications/Sources/AWSCodestarnotifications/AuthSchemeResolver.swift @@ -0,0 +1,56 @@ +// +// Copyright Amazon.com Inc. or its affiliates. +// All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 +// + +// Code generated by smithy-swift-codegen. DO NOT EDIT! + +import class Smithy.Context +import enum Smithy.ClientError +import enum SmithyHTTPAuthAPI.SigningPropertyKeys +import protocol SmithyHTTPAuthAPI.AuthSchemeResolver +import protocol SmithyHTTPAuthAPI.AuthSchemeResolverParameters +import struct SmithyHTTPAuthAPI.AuthOption + +public struct CodestarnotificationsAuthSchemeResolverParameters: SmithyHTTPAuthAPI.AuthSchemeResolverParameters { + public let operation: Swift.String + // Region is used for SigV4 auth scheme + public let region: Swift.String? +} + +public protocol CodestarnotificationsAuthSchemeResolver: SmithyHTTPAuthAPI.AuthSchemeResolver { + // Intentionally empty. + // This is the parent protocol that all auth scheme resolver implementations of + // the service Codestarnotifications must conform to. +} + +public struct DefaultCodestarnotificationsAuthSchemeResolver: CodestarnotificationsAuthSchemeResolver { + + public func resolveAuthScheme(params: SmithyHTTPAuthAPI.AuthSchemeResolverParameters) throws -> [SmithyHTTPAuthAPI.AuthOption] { + var validAuthOptions = [SmithyHTTPAuthAPI.AuthOption]() + guard let serviceParams = params as? CodestarnotificationsAuthSchemeResolverParameters else { + throw Smithy.ClientError.authError("Service specific auth scheme parameters type must be passed to auth scheme resolver.") + } + switch serviceParams.operation { + default: + var sigV4Option = SmithyHTTPAuthAPI.AuthOption(schemeID: "aws.auth#sigv4") + sigV4Option.signingProperties.set(key: SmithyHTTPAuthAPI.SigningPropertyKeys.signingName, value: "codestar-notifications") + guard let region = serviceParams.region else { + throw Smithy.ClientError.authError("Missing region in auth scheme parameters for SigV4 auth scheme.") + } + sigV4Option.signingProperties.set(key: SmithyHTTPAuthAPI.SigningPropertyKeys.signingRegion, value: region) + validAuthOptions.append(sigV4Option) + } + return validAuthOptions + } + + public func constructParameters(context: Smithy.Context) throws -> SmithyHTTPAuthAPI.AuthSchemeResolverParameters { + guard let opName = context.getOperation() else { + throw Smithy.ClientError.dataNotFound("Operation name not configured in middleware context for auth scheme resolver params construction.") + } + let opRegion = context.getRegion() + return CodestarnotificationsAuthSchemeResolverParameters(operation: opName, region: opRegion) + } +} diff --git a/Sources/Services/AWSCodestarnotifications/Sources/AWSCodestarnotifications/CodestarnotificationsClient.swift b/Sources/Services/AWSCodestarnotifications/Sources/AWSCodestarnotifications/CodestarnotificationsClient.swift new file mode 100644 index 00000000000..0983d3f812d --- /dev/null +++ b/Sources/Services/AWSCodestarnotifications/Sources/AWSCodestarnotifications/CodestarnotificationsClient.swift @@ -0,0 +1,1116 @@ +// +// Copyright Amazon.com Inc. or its affiliates. +// All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 +// + +// Code generated by smithy-swift-codegen. DO NOT EDIT! + +import Foundation +import class AWSClientRuntime.AWSClientConfigDefaultsProvider +import class AWSClientRuntime.AmzSdkRequestMiddleware +import class AWSClientRuntime.DefaultAWSClientPlugin +import class ClientRuntime.ClientBuilder +import class ClientRuntime.DefaultClientPlugin +import class ClientRuntime.HttpClientConfiguration +import class ClientRuntime.OrchestratorBuilder +import class ClientRuntime.OrchestratorTelemetry +import class ClientRuntime.SdkHttpClient +import class Smithy.ContextBuilder +import class SmithyHTTPAPI.HTTPRequest +import class SmithyHTTPAPI.HTTPResponse +@_spi(SmithyReadWrite) import class SmithyJSON.Writer +import enum AWSClientRuntime.AWSRetryErrorInfoProvider +import enum AWSClientRuntime.AWSRetryMode +import enum ClientRuntime.ClientLogMode +import enum ClientRuntime.DefaultTelemetry +import enum ClientRuntime.OrchestratorMetricsAttributesKeys +import protocol AWSClientRuntime.AWSDefaultClientConfiguration +import protocol AWSClientRuntime.AWSRegionClientConfiguration +import protocol ClientRuntime.Client +import protocol ClientRuntime.DefaultClientConfiguration +import protocol ClientRuntime.DefaultHttpClientConfiguration +import protocol ClientRuntime.HttpInterceptorProvider +import protocol ClientRuntime.IdempotencyTokenGenerator +import protocol ClientRuntime.InterceptorProvider +import protocol ClientRuntime.TelemetryProvider +import protocol Smithy.LogAgent +import protocol SmithyHTTPAPI.HTTPClient +import protocol SmithyHTTPAuthAPI.AuthSchemeResolver +import protocol SmithyIdentity.AWSCredentialIdentityResolver +import protocol SmithyIdentity.BearerTokenIdentityResolver +@_spi(SmithyReadWrite) import protocol SmithyReadWrite.SmithyWriter +import struct AWSClientRuntime.AmzSdkInvocationIdMiddleware +import struct AWSClientRuntime.EndpointResolverMiddleware +import struct AWSClientRuntime.UserAgentMiddleware +import struct AWSSDKHTTPAuth.SigV4AuthScheme +import struct ClientRuntime.AuthSchemeMiddleware +@_spi(SmithyReadWrite) import struct ClientRuntime.BodyMiddleware +import struct ClientRuntime.ContentLengthMiddleware +import struct ClientRuntime.ContentTypeMiddleware +@_spi(SmithyReadWrite) import struct ClientRuntime.DeserializeMiddleware +import struct ClientRuntime.IdempotencyTokenMiddleware +import struct ClientRuntime.LoggerMiddleware +import struct ClientRuntime.QueryItemMiddleware +import struct ClientRuntime.SignerMiddleware +import struct ClientRuntime.URLHostMiddleware +import struct ClientRuntime.URLPathMiddleware +import struct Smithy.Attributes +import struct SmithyIdentity.BearerTokenIdentity +import struct SmithyIdentity.StaticBearerTokenIdentityResolver +import struct SmithyRetries.DefaultRetryStrategy +import struct SmithyRetriesAPI.RetryStrategyOptions +import typealias SmithyHTTPAuthAPI.AuthSchemes + +public class CodestarnotificationsClient: ClientRuntime.Client { + public static let clientName = "CodestarnotificationsClient" + let client: ClientRuntime.SdkHttpClient + let config: CodestarnotificationsClient.CodestarnotificationsClientConfiguration + let serviceName = "codestar notifications" + + public required init(config: CodestarnotificationsClient.CodestarnotificationsClientConfiguration) { + client = ClientRuntime.SdkHttpClient(engine: config.httpClientEngine, config: config.httpClientConfiguration) + self.config = config + } + + public convenience init(region: Swift.String) throws { + let config = try CodestarnotificationsClient.CodestarnotificationsClientConfiguration(region: region) + self.init(config: config) + } + + public convenience required init() async throws { + let config = try await CodestarnotificationsClient.CodestarnotificationsClientConfiguration() + self.init(config: config) + } +} + +extension CodestarnotificationsClient { + public class CodestarnotificationsClientConfiguration: AWSClientRuntime.AWSDefaultClientConfiguration & AWSClientRuntime.AWSRegionClientConfiguration & ClientRuntime.DefaultClientConfiguration & ClientRuntime.DefaultHttpClientConfiguration { + public var useFIPS: Swift.Bool? + + public var useDualStack: Swift.Bool? + + public var appID: Swift.String? + + public var awsCredentialIdentityResolver: any SmithyIdentity.AWSCredentialIdentityResolver + + public var awsRetryMode: AWSClientRuntime.AWSRetryMode + + public var maxAttempts: Swift.Int? + + public var region: Swift.String? + + public var signingRegion: Swift.String? + + public var endpointResolver: EndpointResolver + + public var telemetryProvider: ClientRuntime.TelemetryProvider + + public var retryStrategyOptions: SmithyRetriesAPI.RetryStrategyOptions + + public var clientLogMode: ClientRuntime.ClientLogMode + + public var endpoint: Swift.String? + + public var idempotencyTokenGenerator: ClientRuntime.IdempotencyTokenGenerator + + public var httpClientEngine: SmithyHTTPAPI.HTTPClient + + public var httpClientConfiguration: ClientRuntime.HttpClientConfiguration + + public var authSchemes: SmithyHTTPAuthAPI.AuthSchemes? + + public var authSchemeResolver: SmithyHTTPAuthAPI.AuthSchemeResolver + + public var bearerTokenIdentityResolver: any SmithyIdentity.BearerTokenIdentityResolver + + public private(set) var interceptorProviders: [ClientRuntime.InterceptorProvider] + + public private(set) var httpInterceptorProviders: [ClientRuntime.HttpInterceptorProvider] + + internal let logger: Smithy.LogAgent + + private init(_ useFIPS: Swift.Bool?, _ useDualStack: Swift.Bool?, _ appID: Swift.String?, _ awsCredentialIdentityResolver: any SmithyIdentity.AWSCredentialIdentityResolver, _ awsRetryMode: AWSClientRuntime.AWSRetryMode, _ maxAttempts: Swift.Int?, _ region: Swift.String?, _ signingRegion: Swift.String?, _ endpointResolver: EndpointResolver, _ telemetryProvider: ClientRuntime.TelemetryProvider, _ retryStrategyOptions: SmithyRetriesAPI.RetryStrategyOptions, _ clientLogMode: ClientRuntime.ClientLogMode, _ endpoint: Swift.String?, _ idempotencyTokenGenerator: ClientRuntime.IdempotencyTokenGenerator, _ httpClientEngine: SmithyHTTPAPI.HTTPClient, _ httpClientConfiguration: ClientRuntime.HttpClientConfiguration, _ authSchemes: SmithyHTTPAuthAPI.AuthSchemes?, _ authSchemeResolver: SmithyHTTPAuthAPI.AuthSchemeResolver, _ bearerTokenIdentityResolver: any SmithyIdentity.BearerTokenIdentityResolver, _ interceptorProviders: [ClientRuntime.InterceptorProvider], _ httpInterceptorProviders: [ClientRuntime.HttpInterceptorProvider]) { + self.useFIPS = useFIPS + self.useDualStack = useDualStack + self.appID = appID + self.awsCredentialIdentityResolver = awsCredentialIdentityResolver + self.awsRetryMode = awsRetryMode + self.maxAttempts = maxAttempts + self.region = region + self.signingRegion = signingRegion + self.endpointResolver = endpointResolver + self.telemetryProvider = telemetryProvider + self.retryStrategyOptions = retryStrategyOptions + self.clientLogMode = clientLogMode + self.endpoint = endpoint + self.idempotencyTokenGenerator = idempotencyTokenGenerator + self.httpClientEngine = httpClientEngine + self.httpClientConfiguration = httpClientConfiguration + self.authSchemes = authSchemes + self.authSchemeResolver = authSchemeResolver + self.bearerTokenIdentityResolver = bearerTokenIdentityResolver + self.interceptorProviders = interceptorProviders + self.httpInterceptorProviders = httpInterceptorProviders + self.logger = telemetryProvider.loggerProvider.getLogger(name: CodestarnotificationsClient.clientName) + } + + public convenience init(useFIPS: Swift.Bool? = nil, useDualStack: Swift.Bool? = nil, appID: Swift.String? = nil, awsCredentialIdentityResolver: (any SmithyIdentity.AWSCredentialIdentityResolver)? = nil, awsRetryMode: AWSClientRuntime.AWSRetryMode? = nil, maxAttempts: Swift.Int? = nil, region: Swift.String? = nil, signingRegion: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, telemetryProvider: ClientRuntime.TelemetryProvider? = nil, retryStrategyOptions: SmithyRetriesAPI.RetryStrategyOptions? = nil, clientLogMode: ClientRuntime.ClientLogMode? = nil, endpoint: Swift.String? = nil, idempotencyTokenGenerator: ClientRuntime.IdempotencyTokenGenerator? = nil, httpClientEngine: SmithyHTTPAPI.HTTPClient? = nil, httpClientConfiguration: ClientRuntime.HttpClientConfiguration? = nil, authSchemes: SmithyHTTPAuthAPI.AuthSchemes? = nil, authSchemeResolver: SmithyHTTPAuthAPI.AuthSchemeResolver? = nil, bearerTokenIdentityResolver: (any SmithyIdentity.BearerTokenIdentityResolver)? = nil, interceptorProviders: [ClientRuntime.InterceptorProvider]? = nil, httpInterceptorProviders: [ClientRuntime.HttpInterceptorProvider]? = nil) throws { + self.init(useFIPS, useDualStack, try appID ?? AWSClientRuntime.AWSClientConfigDefaultsProvider.appID(), try awsCredentialIdentityResolver ?? AWSClientRuntime.AWSClientConfigDefaultsProvider.awsCredentialIdentityResolver(awsCredentialIdentityResolver), try awsRetryMode ?? AWSClientRuntime.AWSClientConfigDefaultsProvider.retryMode(), maxAttempts, region, signingRegion, try endpointResolver ?? DefaultEndpointResolver(), telemetryProvider ?? ClientRuntime.DefaultTelemetry.provider, try retryStrategyOptions ?? AWSClientConfigDefaultsProvider.retryStrategyOptions(awsRetryMode, maxAttempts), clientLogMode ?? AWSClientConfigDefaultsProvider.clientLogMode(), endpoint, idempotencyTokenGenerator ?? AWSClientConfigDefaultsProvider.idempotencyTokenGenerator(), httpClientEngine ?? AWSClientConfigDefaultsProvider.httpClientEngine(), httpClientConfiguration ?? AWSClientConfigDefaultsProvider.httpClientConfiguration(), authSchemes ?? [AWSSDKHTTPAuth.SigV4AuthScheme()], authSchemeResolver ?? DefaultCodestarnotificationsAuthSchemeResolver(), bearerTokenIdentityResolver ?? SmithyIdentity.StaticBearerTokenIdentityResolver(token: SmithyIdentity.BearerTokenIdentity(token: "")), interceptorProviders ?? [], httpInterceptorProviders ?? []) + } + + public convenience init(useFIPS: Swift.Bool? = nil, useDualStack: Swift.Bool? = nil, appID: Swift.String? = nil, awsCredentialIdentityResolver: (any SmithyIdentity.AWSCredentialIdentityResolver)? = nil, awsRetryMode: AWSClientRuntime.AWSRetryMode? = nil, maxAttempts: Swift.Int? = nil, region: Swift.String? = nil, signingRegion: Swift.String? = nil, endpointResolver: EndpointResolver? = nil, telemetryProvider: ClientRuntime.TelemetryProvider? = nil, retryStrategyOptions: SmithyRetriesAPI.RetryStrategyOptions? = nil, clientLogMode: ClientRuntime.ClientLogMode? = nil, endpoint: Swift.String? = nil, idempotencyTokenGenerator: ClientRuntime.IdempotencyTokenGenerator? = nil, httpClientEngine: SmithyHTTPAPI.HTTPClient? = nil, httpClientConfiguration: ClientRuntime.HttpClientConfiguration? = nil, authSchemes: SmithyHTTPAuthAPI.AuthSchemes? = nil, authSchemeResolver: SmithyHTTPAuthAPI.AuthSchemeResolver? = nil, bearerTokenIdentityResolver: (any SmithyIdentity.BearerTokenIdentityResolver)? = nil, interceptorProviders: [ClientRuntime.InterceptorProvider]? = nil, httpInterceptorProviders: [ClientRuntime.HttpInterceptorProvider]? = nil) async throws { + self.init(useFIPS, useDualStack, try appID ?? AWSClientRuntime.AWSClientConfigDefaultsProvider.appID(), try awsCredentialIdentityResolver ?? AWSClientRuntime.AWSClientConfigDefaultsProvider.awsCredentialIdentityResolver(awsCredentialIdentityResolver), try awsRetryMode ?? AWSClientRuntime.AWSClientConfigDefaultsProvider.retryMode(), maxAttempts, try await AWSClientRuntime.AWSClientConfigDefaultsProvider.region(region), try await AWSClientRuntime.AWSClientConfigDefaultsProvider.region(region), try endpointResolver ?? DefaultEndpointResolver(), telemetryProvider ?? ClientRuntime.DefaultTelemetry.provider, try retryStrategyOptions ?? AWSClientConfigDefaultsProvider.retryStrategyOptions(awsRetryMode, maxAttempts), clientLogMode ?? AWSClientConfigDefaultsProvider.clientLogMode(), endpoint, idempotencyTokenGenerator ?? AWSClientConfigDefaultsProvider.idempotencyTokenGenerator(), httpClientEngine ?? AWSClientConfigDefaultsProvider.httpClientEngine(), httpClientConfiguration ?? AWSClientConfigDefaultsProvider.httpClientConfiguration(), authSchemes ?? [AWSSDKHTTPAuth.SigV4AuthScheme()], authSchemeResolver ?? DefaultCodestarnotificationsAuthSchemeResolver(), bearerTokenIdentityResolver ?? SmithyIdentity.StaticBearerTokenIdentityResolver(token: SmithyIdentity.BearerTokenIdentity(token: "")), interceptorProviders ?? [], httpInterceptorProviders ?? []) + } + + public convenience required init() async throws { + try await self.init(useFIPS: nil, useDualStack: nil, appID: nil, awsCredentialIdentityResolver: nil, awsRetryMode: nil, maxAttempts: nil, region: nil, signingRegion: nil, endpointResolver: nil, telemetryProvider: nil, retryStrategyOptions: nil, clientLogMode: nil, endpoint: nil, idempotencyTokenGenerator: nil, httpClientEngine: nil, httpClientConfiguration: nil, authSchemes: nil, authSchemeResolver: nil, bearerTokenIdentityResolver: nil, interceptorProviders: nil, httpInterceptorProviders: nil) + } + + public convenience init(region: String) throws { + self.init(nil, nil, try AWSClientRuntime.AWSClientConfigDefaultsProvider.appID(), try AWSClientConfigDefaultsProvider.awsCredentialIdentityResolver(), try AWSClientRuntime.AWSClientConfigDefaultsProvider.retryMode(), nil, region, region, try DefaultEndpointResolver(), ClientRuntime.DefaultTelemetry.provider, try AWSClientConfigDefaultsProvider.retryStrategyOptions(), AWSClientConfigDefaultsProvider.clientLogMode(), nil, AWSClientConfigDefaultsProvider.idempotencyTokenGenerator(), AWSClientConfigDefaultsProvider.httpClientEngine(), AWSClientConfigDefaultsProvider.httpClientConfiguration(), [AWSSDKHTTPAuth.SigV4AuthScheme()], DefaultCodestarnotificationsAuthSchemeResolver(), SmithyIdentity.StaticBearerTokenIdentityResolver(token: SmithyIdentity.BearerTokenIdentity(token: "")), [], []) + } + + public var partitionID: String? { + return "\(CodestarnotificationsClient.clientName) - \(region ?? "")" + } + public func addInterceptorProvider(_ provider: ClientRuntime.InterceptorProvider) { + self.interceptorProviders.append(provider) + } + + public func addInterceptorProvider(_ provider: ClientRuntime.HttpInterceptorProvider) { + self.httpInterceptorProviders.append(provider) + } + + } + + public static func builder() -> ClientRuntime.ClientBuilder { + return ClientRuntime.ClientBuilder(defaultPlugins: [ + ClientRuntime.DefaultClientPlugin(), + AWSClientRuntime.DefaultAWSClientPlugin(clientName: self.clientName), + DefaultAWSAuthSchemePlugin() + ]) + } +} + +extension CodestarnotificationsClient { + /// Performs the `CreateNotificationRule` operation on the `CodeStarNotifications_20191015` service. + /// + /// Creates a notification rule for a resource. The rule specifies the events you want notifications about and the targets (such as Chatbot topics or Chatbot clients configured for Slack) where you want to receive them. + /// + /// - Parameter CreateNotificationRuleInput : [no documentation found] + /// + /// - Returns: `CreateNotificationRuleOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `AccessDeniedException` : CodeStar Notifications can't create the notification rule because you do not have sufficient permissions. + /// - `ConcurrentModificationException` : CodeStar Notifications can't complete the request because the resource is being modified by another process. Wait a few minutes and try again. + /// - `ConfigurationException` : Some or all of the configuration is incomplete, missing, or not valid. + /// - `LimitExceededException` : One of the CodeStar Notifications limits has been exceeded. Limits apply to accounts, notification rules, notifications, resources, and targets. For more information, see Limits. + /// - `ResourceAlreadyExistsException` : A resource with the same name or ID already exists. Notification rule names must be unique in your Amazon Web Services account. + /// - `ValidationException` : One or more parameter values are not valid. + public func createNotificationRule(input: CreateNotificationRuleInput) async throws -> CreateNotificationRuleOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "createNotificationRule") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "codestar-notifications") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.IdempotencyTokenMiddleware(keyPath: \.clientRequestToken)) + builder.interceptors.add(ClientRuntime.URLPathMiddleware(CreateNotificationRuleInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: CreateNotificationRuleInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(CreateNotificationRuleOutput.httpOutput(from:), CreateNotificationRuleOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "Codestarnotifications") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "CreateNotificationRule") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `DeleteNotificationRule` operation on the `CodeStarNotifications_20191015` service. + /// + /// Deletes a notification rule for a resource. + /// + /// - Parameter DeleteNotificationRuleInput : [no documentation found] + /// + /// - Returns: `DeleteNotificationRuleOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `ConcurrentModificationException` : CodeStar Notifications can't complete the request because the resource is being modified by another process. Wait a few minutes and try again. + /// - `LimitExceededException` : One of the CodeStar Notifications limits has been exceeded. Limits apply to accounts, notification rules, notifications, resources, and targets. For more information, see Limits. + /// - `ValidationException` : One or more parameter values are not valid. + public func deleteNotificationRule(input: DeleteNotificationRuleInput) async throws -> DeleteNotificationRuleOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "deleteNotificationRule") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "codestar-notifications") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(DeleteNotificationRuleInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: DeleteNotificationRuleInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(DeleteNotificationRuleOutput.httpOutput(from:), DeleteNotificationRuleOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "Codestarnotifications") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "DeleteNotificationRule") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `DeleteTarget` operation on the `CodeStarNotifications_20191015` service. + /// + /// Deletes a specified target for notifications. + /// + /// - Parameter DeleteTargetInput : [no documentation found] + /// + /// - Returns: `DeleteTargetOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `ValidationException` : One or more parameter values are not valid. + public func deleteTarget(input: DeleteTargetInput) async throws -> DeleteTargetOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "deleteTarget") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "codestar-notifications") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(DeleteTargetInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: DeleteTargetInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(DeleteTargetOutput.httpOutput(from:), DeleteTargetOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "Codestarnotifications") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "DeleteTarget") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `DescribeNotificationRule` operation on the `CodeStarNotifications_20191015` service. + /// + /// Returns information about a specified notification rule. + /// + /// - Parameter DescribeNotificationRuleInput : [no documentation found] + /// + /// - Returns: `DescribeNotificationRuleOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `ResourceNotFoundException` : CodeStar Notifications can't find a resource that matches the provided ARN. + /// - `ValidationException` : One or more parameter values are not valid. + public func describeNotificationRule(input: DescribeNotificationRuleInput) async throws -> DescribeNotificationRuleOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "describeNotificationRule") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "codestar-notifications") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(DescribeNotificationRuleInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: DescribeNotificationRuleInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(DescribeNotificationRuleOutput.httpOutput(from:), DescribeNotificationRuleOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "Codestarnotifications") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "DescribeNotificationRule") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `ListEventTypes` operation on the `CodeStarNotifications_20191015` service. + /// + /// Returns information about the event types available for configuring notifications. + /// + /// - Parameter ListEventTypesInput : [no documentation found] + /// + /// - Returns: `ListEventTypesOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `InvalidNextTokenException` : The value for the enumeration token used in the request to return the next batch of the results is not valid. + /// - `ValidationException` : One or more parameter values are not valid. + public func listEventTypes(input: ListEventTypesInput) async throws -> ListEventTypesOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "listEventTypes") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "codestar-notifications") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(ListEventTypesInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: ListEventTypesInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(ListEventTypesOutput.httpOutput(from:), ListEventTypesOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "Codestarnotifications") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "ListEventTypes") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `ListNotificationRules` operation on the `CodeStarNotifications_20191015` service. + /// + /// Returns a list of the notification rules for an Amazon Web Services account. + /// + /// - Parameter ListNotificationRulesInput : [no documentation found] + /// + /// - Returns: `ListNotificationRulesOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `InvalidNextTokenException` : The value for the enumeration token used in the request to return the next batch of the results is not valid. + /// - `ValidationException` : One or more parameter values are not valid. + public func listNotificationRules(input: ListNotificationRulesInput) async throws -> ListNotificationRulesOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "listNotificationRules") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "codestar-notifications") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(ListNotificationRulesInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: ListNotificationRulesInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(ListNotificationRulesOutput.httpOutput(from:), ListNotificationRulesOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "Codestarnotifications") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "ListNotificationRules") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `ListTagsForResource` operation on the `CodeStarNotifications_20191015` service. + /// + /// Returns a list of the tags associated with a notification rule. + /// + /// - Parameter ListTagsForResourceInput : [no documentation found] + /// + /// - Returns: `ListTagsForResourceOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `ResourceNotFoundException` : CodeStar Notifications can't find a resource that matches the provided ARN. + /// - `ValidationException` : One or more parameter values are not valid. + public func listTagsForResource(input: ListTagsForResourceInput) async throws -> ListTagsForResourceOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "listTagsForResource") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "codestar-notifications") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(ListTagsForResourceInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: ListTagsForResourceInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(ListTagsForResourceOutput.httpOutput(from:), ListTagsForResourceOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "Codestarnotifications") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "ListTagsForResource") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `ListTargets` operation on the `CodeStarNotifications_20191015` service. + /// + /// Returns a list of the notification rule targets for an Amazon Web Services account. + /// + /// - Parameter ListTargetsInput : [no documentation found] + /// + /// - Returns: `ListTargetsOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `InvalidNextTokenException` : The value for the enumeration token used in the request to return the next batch of the results is not valid. + /// - `ValidationException` : One or more parameter values are not valid. + public func listTargets(input: ListTargetsInput) async throws -> ListTargetsOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "listTargets") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "codestar-notifications") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(ListTargetsInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: ListTargetsInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(ListTargetsOutput.httpOutput(from:), ListTargetsOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "Codestarnotifications") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "ListTargets") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `Subscribe` operation on the `CodeStarNotifications_20191015` service. + /// + /// Creates an association between a notification rule and an Chatbot topic or Chatbot client so that the associated target can receive notifications when the events described in the rule are triggered. + /// + /// - Parameter SubscribeInput : [no documentation found] + /// + /// - Returns: `SubscribeOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `ConfigurationException` : Some or all of the configuration is incomplete, missing, or not valid. + /// - `ResourceNotFoundException` : CodeStar Notifications can't find a resource that matches the provided ARN. + /// - `ValidationException` : One or more parameter values are not valid. + public func subscribe(input: SubscribeInput) async throws -> SubscribeOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "subscribe") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "codestar-notifications") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(SubscribeInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: SubscribeInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(SubscribeOutput.httpOutput(from:), SubscribeOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "Codestarnotifications") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "Subscribe") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `TagResource` operation on the `CodeStarNotifications_20191015` service. + /// + /// Associates a set of provided tags with a notification rule. + /// + /// - Parameter TagResourceInput : [no documentation found] + /// + /// - Returns: `TagResourceOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `ConcurrentModificationException` : CodeStar Notifications can't complete the request because the resource is being modified by another process. Wait a few minutes and try again. + /// - `LimitExceededException` : One of the CodeStar Notifications limits has been exceeded. Limits apply to accounts, notification rules, notifications, resources, and targets. For more information, see Limits. + /// - `ResourceNotFoundException` : CodeStar Notifications can't find a resource that matches the provided ARN. + /// - `ValidationException` : One or more parameter values are not valid. + public func tagResource(input: TagResourceInput) async throws -> TagResourceOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "tagResource") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "codestar-notifications") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(TagResourceInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: TagResourceInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(TagResourceOutput.httpOutput(from:), TagResourceOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "Codestarnotifications") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "TagResource") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `Unsubscribe` operation on the `CodeStarNotifications_20191015` service. + /// + /// Removes an association between a notification rule and an Chatbot topic so that subscribers to that topic stop receiving notifications when the events described in the rule are triggered. + /// + /// - Parameter UnsubscribeInput : [no documentation found] + /// + /// - Returns: `UnsubscribeOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `ValidationException` : One or more parameter values are not valid. + public func unsubscribe(input: UnsubscribeInput) async throws -> UnsubscribeOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "unsubscribe") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "codestar-notifications") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(UnsubscribeInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: UnsubscribeInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(UnsubscribeOutput.httpOutput(from:), UnsubscribeOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "Codestarnotifications") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "Unsubscribe") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `UntagResource` operation on the `CodeStarNotifications_20191015` service. + /// + /// Removes the association between one or more provided tags and a notification rule. + /// + /// - Parameter UntagResourceInput : [no documentation found] + /// + /// - Returns: `UntagResourceOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `ConcurrentModificationException` : CodeStar Notifications can't complete the request because the resource is being modified by another process. Wait a few minutes and try again. + /// - `LimitExceededException` : One of the CodeStar Notifications limits has been exceeded. Limits apply to accounts, notification rules, notifications, resources, and targets. For more information, see Limits. + /// - `ResourceNotFoundException` : CodeStar Notifications can't find a resource that matches the provided ARN. + /// - `ValidationException` : One or more parameter values are not valid. + public func untagResource(input: UntagResourceInput) async throws -> UntagResourceOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "untagResource") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "codestar-notifications") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(UntagResourceInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.serialize(ClientRuntime.QueryItemMiddleware(UntagResourceInput.queryItemProvider(_:))) + builder.deserialize(ClientRuntime.DeserializeMiddleware(UntagResourceOutput.httpOutput(from:), UntagResourceOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "Codestarnotifications") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "UntagResource") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + + /// Performs the `UpdateNotificationRule` operation on the `CodeStarNotifications_20191015` service. + /// + /// Updates a notification rule for a resource. You can change the events that trigger the notification rule, the status of the rule, and the targets that receive the notifications. To add or remove tags for a notification rule, you must use [TagResource] and [UntagResource]. + /// + /// - Parameter UpdateNotificationRuleInput : [no documentation found] + /// + /// - Returns: `UpdateNotificationRuleOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `ConfigurationException` : Some or all of the configuration is incomplete, missing, or not valid. + /// - `ResourceNotFoundException` : CodeStar Notifications can't find a resource that matches the provided ARN. + /// - `ValidationException` : One or more parameter values are not valid. + public func updateNotificationRule(input: UpdateNotificationRuleInput) async throws -> UpdateNotificationRuleOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "updateNotificationRule") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "codestar-notifications") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(UpdateNotificationRuleInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: UpdateNotificationRuleInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(UpdateNotificationRuleOutput.httpOutput(from:), UpdateNotificationRuleOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "Codestarnotifications") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "UpdateNotificationRule") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + +} diff --git a/Sources/Services/AWSCodestarnotifications/Sources/AWSCodestarnotifications/Endpoints.swift b/Sources/Services/AWSCodestarnotifications/Sources/AWSCodestarnotifications/Endpoints.swift new file mode 100644 index 00000000000..94ec779a658 --- /dev/null +++ b/Sources/Services/AWSCodestarnotifications/Sources/AWSCodestarnotifications/Endpoints.swift @@ -0,0 +1,73 @@ +// +// Copyright Amazon.com Inc. or its affiliates. +// All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 +// + +// Code generated by smithy-swift-codegen. DO NOT EDIT! + +import class ClientRuntime.EndpointsRequestContext +import let AWSClientRuntime.awsPartitionJSON +import protocol ClientRuntime.EndpointsRequestContextProviding +import struct ClientRuntime.DefaultEndpointResolver +import struct ClientRuntime.StaticEndpointResolver +import struct SmithyHTTPAPI.Endpoint + +public struct EndpointParams { + /// Override the endpoint used to send this request + public let endpoint: Swift.String? + /// The AWS region used to dispatch the request. + public let region: Swift.String? + /// When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error. + public let useDualStack: Swift.Bool + /// When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error. + public let useFIPS: Swift.Bool + + public init( + endpoint: Swift.String? = nil, + region: Swift.String? = nil, + useDualStack: Swift.Bool = false, + useFIPS: Swift.Bool = false + ) + { + self.endpoint = endpoint + self.region = region + self.useDualStack = useDualStack + self.useFIPS = useFIPS + } +} + +extension EndpointParams: ClientRuntime.EndpointsRequestContextProviding { + + public var context: ClientRuntime.EndpointsRequestContext { + get throws { + let context = try ClientRuntime.EndpointsRequestContext() + try context.add(name: "Endpoint", value: self.endpoint) + try context.add(name: "Region", value: self.region) + try context.add(name: "UseDualStack", value: self.useDualStack) + try context.add(name: "UseFIPS", value: self.useFIPS) + return context + } + } +} + +public protocol EndpointResolver { + func resolve(params: EndpointParams) throws -> SmithyHTTPAPI.Endpoint +} + +typealias DefaultEndpointResolver = ClientRuntime.DefaultEndpointResolver + +extension DefaultEndpointResolver { + private static let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}],\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}],\"type\":\"tree\"},{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Region\"}]}],\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://codestar-notifications-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}],\"type\":\"tree\"},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}],\"type\":\"tree\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]},true]}],\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://codestar-notifications-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}],\"type\":\"tree\"},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}],\"type\":\"tree\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://codestar-notifications.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}],\"type\":\"tree\"},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}],\"type\":\"tree\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://codestar-notifications.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}],\"type\":\"tree\"}],\"type\":\"tree\"},{\"conditions\":[],\"error\":\"Invalid Configuration: Missing Region\",\"type\":\"error\"}]}" + + init() throws { + try self.init(partitions: AWSClientRuntime.awsPartitionJSON, ruleSet: Self.ruleSet) + } +} + +extension DefaultEndpointResolver: EndpointResolver {} + +typealias StaticEndpointResolver = ClientRuntime.StaticEndpointResolver + +extension StaticEndpointResolver: EndpointResolver {} diff --git a/Sources/Services/AWSCodestarnotifications/Sources/AWSCodestarnotifications/Models.swift b/Sources/Services/AWSCodestarnotifications/Sources/AWSCodestarnotifications/Models.swift new file mode 100644 index 00000000000..d3a52bcc35d --- /dev/null +++ b/Sources/Services/AWSCodestarnotifications/Sources/AWSCodestarnotifications/Models.swift @@ -0,0 +1,1837 @@ +// +// Copyright Amazon.com Inc. or its affiliates. +// All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 +// + +// Code generated by smithy-swift-codegen. DO NOT EDIT! + +@_spi(SmithyReadWrite) import ClientRuntime +import Foundation +import class SmithyHTTPAPI.HTTPResponse +@_spi(SmithyReadWrite) import class SmithyJSON.Reader +@_spi(SmithyReadWrite) import class SmithyJSON.Writer +import enum ClientRuntime.ErrorFault +import enum Smithy.ClientError +import enum SmithyReadWrite.ReaderError +@_spi(SmithyReadWrite) import enum SmithyReadWrite.ReadingClosures +@_spi(SmithyReadWrite) import enum SmithyReadWrite.WritingClosures +@_spi(SmithyTimestamps) import enum SmithyTimestamps.TimestampFormat +import protocol AWSClientRuntime.AWSServiceError +import protocol ClientRuntime.HTTPError +import protocol ClientRuntime.ModeledError +@_spi(SmithyReadWrite) import protocol SmithyReadWrite.SmithyReader +@_spi(SmithyReadWrite) import protocol SmithyReadWrite.SmithyWriter +@_spi(SmithyReadWrite) import struct AWSClientRuntime.RestJSONError +@_spi(UnknownAWSHTTPServiceError) import struct AWSClientRuntime.UnknownAWSHTTPServiceError +import struct Smithy.URIQueryItem + +/// CodeStar Notifications can't create the notification rule because you do not have sufficient permissions. +public struct AccessDeniedException: 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 { "AccessDeniedException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.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 + } +} + +/// CodeStar Notifications can't complete the request because the resource is being modified by another process. Wait a few minutes and try again. +public struct ConcurrentModificationException: 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 { "ConcurrentModificationException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.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 + } +} + +/// Some or all of the configuration is incomplete, missing, or not valid. +public struct ConfigurationException: 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 { "ConfigurationException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.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 + } +} + +/// One of the CodeStar Notifications limits has been exceeded. Limits apply to accounts, notification rules, notifications, resources, and targets. For more information, see Limits. +public struct LimitExceededException: 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 { "LimitExceededException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.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 + } +} + +/// A resource with the same name or ID already exists. Notification rule names must be unique in your Amazon Web Services account. +public struct ResourceAlreadyExistsException: 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 { "ResourceAlreadyExistsException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.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 + } +} + +/// One or more parameter values are not valid. +public struct ValidationException: 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 { "ValidationException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.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 + } +} + +extension CodestarnotificationsClientTypes { + + public enum DetailType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case basic + case full + case sdkUnknown(Swift.String) + + public static var allCases: [DetailType] { + return [ + .basic, + .full + ] + } + + 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 .basic: return "BASIC" + case .full: return "FULL" + case let .sdkUnknown(s): return s + } + } + } +} + +extension CodestarnotificationsClientTypes { + + public enum NotificationRuleStatus: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case disabled + case enabled + case sdkUnknown(Swift.String) + + public static var allCases: [NotificationRuleStatus] { + return [ + .disabled, + .enabled + ] + } + + 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 .disabled: return "DISABLED" + case .enabled: return "ENABLED" + case let .sdkUnknown(s): return s + } + } + } +} + +extension CodestarnotificationsClientTypes { + + /// Information about the Chatbot topics or Chatbot clients associated with a notification rule. + public struct Target: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the Chatbot topic or Chatbot client. + public var targetAddress: Swift.String? + /// The target type. Can be an Chatbot topic or Chatbot client. + /// + /// * Chatbot topics are specified as SNS. + /// + /// * Chatbot clients are specified as AWSChatbotSlack. + public var targetType: Swift.String? + + public init( + targetAddress: Swift.String? = nil, + targetType: Swift.String? = nil + ) + { + self.targetAddress = targetAddress + self.targetType = targetType + } + } +} + +extension CodestarnotificationsClientTypes.Target: Swift.CustomDebugStringConvertible { + public var debugDescription: Swift.String { + "Target(targetType: \(Swift.String(describing: targetType)), targetAddress: \"CONTENT_REDACTED\")"} +} + +public struct CreateNotificationRuleInput: Swift.Sendable { + /// A unique, client-generated idempotency token that, when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request with the same parameters is received and a token is included, the request returns information about the initial request that used that token. The Amazon Web Services SDKs prepopulate client request tokens. If you are using an Amazon Web Services SDK, an idempotency token is created for you. + public var clientRequestToken: Swift.String? + /// The level of detail to include in the notifications for this resource. BASIC will include only the contents of the event as it would appear in Amazon CloudWatch. FULL will include any supplemental information provided by CodeStar Notifications and/or the service for the resource for which the notification is created. + /// This member is required. + public var detailType: CodestarnotificationsClientTypes.DetailType? + /// A list of event types associated with this notification rule. For a list of allowed events, see [EventTypeSummary]. + /// This member is required. + public var eventTypeIds: [Swift.String]? + /// The name for the notification rule. Notification rule names must be unique in your Amazon Web Services account. + /// This member is required. + public var name: Swift.String? + /// The Amazon Resource Name (ARN) of the resource to associate with the notification rule. Supported resources include pipelines in CodePipeline, repositories in CodeCommit, and build projects in CodeBuild. + /// This member is required. + public var resource: Swift.String? + /// The status of the notification rule. The default value is ENABLED. If the status is set to DISABLED, notifications aren't sent for the notification rule. + public var status: CodestarnotificationsClientTypes.NotificationRuleStatus? + /// A list of tags to apply to this notification rule. Key names cannot start with "aws". + public var tags: [Swift.String: Swift.String]? + /// A list of Amazon Resource Names (ARNs) of Amazon Simple Notification Service topics and Chatbot clients to associate with the notification rule. + /// This member is required. + public var targets: [CodestarnotificationsClientTypes.Target]? + + public init( + clientRequestToken: Swift.String? = nil, + detailType: CodestarnotificationsClientTypes.DetailType? = nil, + eventTypeIds: [Swift.String]? = nil, + name: Swift.String? = nil, + resource: Swift.String? = nil, + status: CodestarnotificationsClientTypes.NotificationRuleStatus? = nil, + tags: [Swift.String: Swift.String]? = nil, + targets: [CodestarnotificationsClientTypes.Target]? = nil + ) + { + self.clientRequestToken = clientRequestToken + self.detailType = detailType + self.eventTypeIds = eventTypeIds + self.name = name + self.resource = resource + self.status = status + self.tags = tags + self.targets = targets + } +} + +extension CreateNotificationRuleInput: Swift.CustomDebugStringConvertible { + public var debugDescription: Swift.String { + "CreateNotificationRuleInput(clientRequestToken: \(Swift.String(describing: clientRequestToken)), detailType: \(Swift.String(describing: detailType)), eventTypeIds: \(Swift.String(describing: eventTypeIds)), resource: \(Swift.String(describing: resource)), status: \(Swift.String(describing: status)), tags: \(Swift.String(describing: tags)), targets: \(Swift.String(describing: targets)), name: \"CONTENT_REDACTED\")"} +} + +public struct CreateNotificationRuleOutput: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the notification rule. + public var arn: Swift.String? + + public init( + arn: Swift.String? = nil + ) + { + self.arn = arn + } +} + +public struct DeleteNotificationRuleInput: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the notification rule you want to delete. + /// This member is required. + public var arn: Swift.String? + + public init( + arn: Swift.String? = nil + ) + { + self.arn = arn + } +} + +public struct DeleteNotificationRuleOutput: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the deleted notification rule. + public var arn: Swift.String? + + public init( + arn: Swift.String? = nil + ) + { + self.arn = arn + } +} + +public struct DeleteTargetInput: Swift.Sendable { + /// A Boolean value that can be used to delete all associations with this Chatbot topic. The default value is FALSE. If set to TRUE, all associations between that target and every notification rule in your Amazon Web Services account are deleted. + public var forceUnsubscribeAll: Swift.Bool? + /// The Amazon Resource Name (ARN) of the Chatbot topic or Chatbot client to delete. + /// This member is required. + public var targetAddress: Swift.String? + + public init( + forceUnsubscribeAll: Swift.Bool? = false, + targetAddress: Swift.String? = nil + ) + { + self.forceUnsubscribeAll = forceUnsubscribeAll + self.targetAddress = targetAddress + } +} + +extension DeleteTargetInput: Swift.CustomDebugStringConvertible { + public var debugDescription: Swift.String { + "DeleteTargetInput(forceUnsubscribeAll: \(Swift.String(describing: forceUnsubscribeAll)), targetAddress: \"CONTENT_REDACTED\")"} +} + +public struct DeleteTargetOutput: Swift.Sendable { + + public init() { } +} + +/// CodeStar Notifications can't find a resource that matches the provided ARN. +public struct ResourceNotFoundException: 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 { "ResourceNotFoundException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.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 + } +} + +public struct DescribeNotificationRuleInput: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the notification rule. + /// This member is required. + public var arn: Swift.String? + + public init( + arn: Swift.String? = nil + ) + { + self.arn = arn + } +} + +extension CodestarnotificationsClientTypes { + + /// Returns information about an event that has triggered a notification rule. + public struct EventTypeSummary: Swift.Sendable { + /// The system-generated ID of the event. For a complete list of event types and IDs, see [Notification concepts](https://docs.aws.amazon.com/codestar-notifications/latest/userguide/concepts.html#concepts-api) in the Developer Tools Console User Guide. + public var eventTypeId: Swift.String? + /// The name of the event. + public var eventTypeName: Swift.String? + /// The resource type of the event. + public var resourceType: Swift.String? + /// The name of the service for which the event applies. + public var serviceName: Swift.String? + + public init( + eventTypeId: Swift.String? = nil, + eventTypeName: Swift.String? = nil, + resourceType: Swift.String? = nil, + serviceName: Swift.String? = nil + ) + { + self.eventTypeId = eventTypeId + self.eventTypeName = eventTypeName + self.resourceType = resourceType + self.serviceName = serviceName + } + } +} + +extension CodestarnotificationsClientTypes { + + public enum TargetStatus: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case active + case deactivated + case inactive + case pending + case unreachable + case sdkUnknown(Swift.String) + + public static var allCases: [TargetStatus] { + return [ + .active, + .deactivated, + .inactive, + .pending, + .unreachable + ] + } + + 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 .active: return "ACTIVE" + case .deactivated: return "DEACTIVATED" + case .inactive: return "INACTIVE" + case .pending: return "PENDING" + case .unreachable: return "UNREACHABLE" + case let .sdkUnknown(s): return s + } + } + } +} + +extension CodestarnotificationsClientTypes { + + /// Information about the targets specified for a notification rule. + public struct TargetSummary: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the Chatbot topic or Chatbot client. + public var targetAddress: Swift.String? + /// The status of the target. + public var targetStatus: CodestarnotificationsClientTypes.TargetStatus? + /// The type of the target (for example, SNS). + /// + /// * Chatbot topics are specified as SNS. + /// + /// * Chatbot clients are specified as AWSChatbotSlack. + public var targetType: Swift.String? + + public init( + targetAddress: Swift.String? = nil, + targetStatus: CodestarnotificationsClientTypes.TargetStatus? = nil, + targetType: Swift.String? = nil + ) + { + self.targetAddress = targetAddress + self.targetStatus = targetStatus + self.targetType = targetType + } + } +} + +extension CodestarnotificationsClientTypes.TargetSummary: Swift.CustomDebugStringConvertible { + public var debugDescription: Swift.String { + "TargetSummary(targetStatus: \(Swift.String(describing: targetStatus)), targetType: \(Swift.String(describing: targetType)), targetAddress: \"CONTENT_REDACTED\")"} +} + +public struct DescribeNotificationRuleOutput: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the notification rule. + /// This member is required. + public var arn: Swift.String? + /// The name or email alias of the person who created the notification rule. + public var createdBy: Swift.String? + /// The date and time the notification rule was created, in timestamp format. + public var createdTimestamp: Foundation.Date? + /// The level of detail included in the notifications for this resource. BASIC will include only the contents of the event as it would appear in Amazon CloudWatch. FULL will include any supplemental information provided by CodeStar Notifications and/or the service for the resource for which the notification is created. + public var detailType: CodestarnotificationsClientTypes.DetailType? + /// A list of the event types associated with the notification rule. + public var eventTypes: [CodestarnotificationsClientTypes.EventTypeSummary]? + /// The date and time the notification rule was most recently updated, in timestamp format. + public var lastModifiedTimestamp: Foundation.Date? + /// The name of the notification rule. + public var name: Swift.String? + /// The Amazon Resource Name (ARN) of the resource associated with the notification rule. + public var resource: Swift.String? + /// The status of the notification rule. Valid statuses are on (sending notifications) or off (not sending notifications). + public var status: CodestarnotificationsClientTypes.NotificationRuleStatus? + /// The tags associated with the notification rule. + public var tags: [Swift.String: Swift.String]? + /// A list of the Chatbot topics and Chatbot clients associated with the notification rule. + public var targets: [CodestarnotificationsClientTypes.TargetSummary]? + + public init( + arn: Swift.String? = nil, + createdBy: Swift.String? = nil, + createdTimestamp: Foundation.Date? = nil, + detailType: CodestarnotificationsClientTypes.DetailType? = nil, + eventTypes: [CodestarnotificationsClientTypes.EventTypeSummary]? = nil, + lastModifiedTimestamp: Foundation.Date? = nil, + name: Swift.String? = nil, + resource: Swift.String? = nil, + status: CodestarnotificationsClientTypes.NotificationRuleStatus? = nil, + tags: [Swift.String: Swift.String]? = nil, + targets: [CodestarnotificationsClientTypes.TargetSummary]? = nil + ) + { + self.arn = arn + self.createdBy = createdBy + self.createdTimestamp = createdTimestamp + self.detailType = detailType + self.eventTypes = eventTypes + self.lastModifiedTimestamp = lastModifiedTimestamp + self.name = name + self.resource = resource + self.status = status + self.tags = tags + self.targets = targets + } +} + +extension DescribeNotificationRuleOutput: Swift.CustomDebugStringConvertible { + public var debugDescription: Swift.String { + "DescribeNotificationRuleOutput(arn: \(Swift.String(describing: arn)), createdBy: \(Swift.String(describing: createdBy)), createdTimestamp: \(Swift.String(describing: createdTimestamp)), detailType: \(Swift.String(describing: detailType)), eventTypes: \(Swift.String(describing: eventTypes)), lastModifiedTimestamp: \(Swift.String(describing: lastModifiedTimestamp)), resource: \(Swift.String(describing: resource)), status: \(Swift.String(describing: status)), tags: \(Swift.String(describing: tags)), targets: \(Swift.String(describing: targets)), name: \"CONTENT_REDACTED\")"} +} + +/// The value for the enumeration token used in the request to return the next batch of the results is not valid. +public struct InvalidNextTokenException: 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 { "InvalidNextTokenException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.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 + } +} + +extension CodestarnotificationsClientTypes { + + public enum ListEventTypesFilterName: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case resourceType + case serviceName + case sdkUnknown(Swift.String) + + public static var allCases: [ListEventTypesFilterName] { + return [ + .resourceType, + .serviceName + ] + } + + 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 .resourceType: return "RESOURCE_TYPE" + case .serviceName: return "SERVICE_NAME" + case let .sdkUnknown(s): return s + } + } + } +} + +extension CodestarnotificationsClientTypes { + + /// Information about a filter to apply to the list of returned event types. You can filter by resource type or service name. + public struct ListEventTypesFilter: Swift.Sendable { + /// The system-generated name of the filter type you want to filter by. + /// This member is required. + public var name: CodestarnotificationsClientTypes.ListEventTypesFilterName? + /// The name of the resource type (for example, pipeline) or service name (for example, CodePipeline) that you want to filter by. + /// This member is required. + public var value: Swift.String? + + public init( + name: CodestarnotificationsClientTypes.ListEventTypesFilterName? = nil, + value: Swift.String? = nil + ) + { + self.name = name + self.value = value + } + } +} + +public struct ListEventTypesInput: Swift.Sendable { + /// The filters to use to return information by service or resource type. + public var filters: [CodestarnotificationsClientTypes.ListEventTypesFilter]? + /// A non-negative integer used to limit the number of returned results. The default number is 50. The maximum number of results that can be returned is 100. + public var maxResults: Swift.Int? + /// An enumeration token that, when provided in a request, returns the next batch of the results. + public var nextToken: Swift.String? + + public init( + filters: [CodestarnotificationsClientTypes.ListEventTypesFilter]? = nil, + maxResults: Swift.Int? = nil, + nextToken: Swift.String? = nil + ) + { + self.filters = filters + self.maxResults = maxResults + self.nextToken = nextToken + } +} + +public struct ListEventTypesOutput: Swift.Sendable { + /// Information about each event, including service name, resource type, event ID, and event name. + public var eventTypes: [CodestarnotificationsClientTypes.EventTypeSummary]? + /// An enumeration token that can be used in a request to return the next batch of the results. + public var nextToken: Swift.String? + + public init( + eventTypes: [CodestarnotificationsClientTypes.EventTypeSummary]? = nil, + nextToken: Swift.String? = nil + ) + { + self.eventTypes = eventTypes + self.nextToken = nextToken + } +} + +extension CodestarnotificationsClientTypes { + + public enum ListNotificationRulesFilterName: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case createdBy + case eventTypeId + case resource + case targetAddress + case sdkUnknown(Swift.String) + + public static var allCases: [ListNotificationRulesFilterName] { + return [ + .createdBy, + .eventTypeId, + .resource, + .targetAddress + ] + } + + 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 .createdBy: return "CREATED_BY" + case .eventTypeId: return "EVENT_TYPE_ID" + case .resource: return "RESOURCE" + case .targetAddress: return "TARGET_ADDRESS" + case let .sdkUnknown(s): return s + } + } + } +} + +extension CodestarnotificationsClientTypes { + + /// Information about a filter to apply to the list of returned notification rules. You can filter by event type, owner, resource, or target. + public struct ListNotificationRulesFilter: Swift.Sendable { + /// The name of the attribute you want to use to filter the returned notification rules. + /// This member is required. + public var name: CodestarnotificationsClientTypes.ListNotificationRulesFilterName? + /// The value of the attribute you want to use to filter the returned notification rules. For example, if you specify filtering by RESOURCE in Name, you might specify the ARN of a pipeline in CodePipeline for the value. + /// This member is required. + public var value: Swift.String? + + public init( + name: CodestarnotificationsClientTypes.ListNotificationRulesFilterName? = nil, + value: Swift.String? = nil + ) + { + self.name = name + self.value = value + } + } +} + +public struct ListNotificationRulesInput: Swift.Sendable { + /// The filters to use to return information by service or resource type. For valid values, see [ListNotificationRulesFilter]. A filter with the same name can appear more than once when used with OR statements. Filters with different names should be applied with AND statements. + public var filters: [CodestarnotificationsClientTypes.ListNotificationRulesFilter]? + /// A non-negative integer used to limit the number of returned results. The maximum number of results that can be returned is 100. + public var maxResults: Swift.Int? + /// An enumeration token that, when provided in a request, returns the next batch of the results. + public var nextToken: Swift.String? + + public init( + filters: [CodestarnotificationsClientTypes.ListNotificationRulesFilter]? = nil, + maxResults: Swift.Int? = nil, + nextToken: Swift.String? = nil + ) + { + self.filters = filters + self.maxResults = maxResults + self.nextToken = nextToken + } +} + +extension CodestarnotificationsClientTypes { + + /// Information about a specified notification rule. + public struct NotificationRuleSummary: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the notification rule. + public var arn: Swift.String? + /// The unique ID of the notification rule. + public var id: Swift.String? + + public init( + arn: Swift.String? = nil, + id: Swift.String? = nil + ) + { + self.arn = arn + self.id = id + } + } +} + +public struct ListNotificationRulesOutput: Swift.Sendable { + /// An enumeration token that can be used in a request to return the next batch of the results. + public var nextToken: Swift.String? + /// The list of notification rules for the Amazon Web Services account, by Amazon Resource Name (ARN) and ID. + public var notificationRules: [CodestarnotificationsClientTypes.NotificationRuleSummary]? + + public init( + nextToken: Swift.String? = nil, + notificationRules: [CodestarnotificationsClientTypes.NotificationRuleSummary]? = nil + ) + { + self.nextToken = nextToken + self.notificationRules = notificationRules + } +} + +public struct ListTagsForResourceInput: Swift.Sendable { + /// The Amazon Resource Name (ARN) for the notification rule. + /// This member is required. + public var arn: Swift.String? + + public init( + arn: Swift.String? = nil + ) + { + self.arn = arn + } +} + +public struct ListTagsForResourceOutput: Swift.Sendable { + /// The tags associated with the notification rule. + public var tags: [Swift.String: Swift.String]? + + public init( + tags: [Swift.String: Swift.String]? = nil + ) + { + self.tags = tags + } +} + +extension CodestarnotificationsClientTypes { + + public enum ListTargetsFilterName: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case targetAddress + case targetStatus + case targetType + case sdkUnknown(Swift.String) + + public static var allCases: [ListTargetsFilterName] { + return [ + .targetAddress, + .targetStatus, + .targetType + ] + } + + 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 .targetAddress: return "TARGET_ADDRESS" + case .targetStatus: return "TARGET_STATUS" + case .targetType: return "TARGET_TYPE" + case let .sdkUnknown(s): return s + } + } + } +} + +extension CodestarnotificationsClientTypes { + + /// Information about a filter to apply to the list of returned targets. You can filter by target type, address, or status. For example, to filter results to notification rules that have active Chatbot topics as targets, you could specify a ListTargetsFilter Name as TargetType and a Value of SNS, and a Name of TARGET_STATUS and a Value of ACTIVE. + public struct ListTargetsFilter: Swift.Sendable { + /// The name of the attribute you want to use to filter the returned targets. + /// This member is required. + public var name: CodestarnotificationsClientTypes.ListTargetsFilterName? + /// The value of the attribute you want to use to filter the returned targets. For example, if you specify SNS for the Target type, you could specify an Amazon Resource Name (ARN) for a topic as the value. + /// This member is required. + public var value: Swift.String? + + public init( + name: CodestarnotificationsClientTypes.ListTargetsFilterName? = nil, + value: Swift.String? = nil + ) + { + self.name = name + self.value = value + } + } +} + +public struct ListTargetsInput: Swift.Sendable { + /// The filters to use to return information by service or resource type. Valid filters include target type, target address, and target status. A filter with the same name can appear more than once when used with OR statements. Filters with different names should be applied with AND statements. + public var filters: [CodestarnotificationsClientTypes.ListTargetsFilter]? + /// A non-negative integer used to limit the number of returned results. The maximum number of results that can be returned is 100. + public var maxResults: Swift.Int? + /// An enumeration token that, when provided in a request, returns the next batch of the results. + public var nextToken: Swift.String? + + public init( + filters: [CodestarnotificationsClientTypes.ListTargetsFilter]? = nil, + maxResults: Swift.Int? = nil, + nextToken: Swift.String? = nil + ) + { + self.filters = filters + self.maxResults = maxResults + self.nextToken = nextToken + } +} + +public struct ListTargetsOutput: Swift.Sendable { + /// An enumeration token that can be used in a request to return the next batch of results. + public var nextToken: Swift.String? + /// The list of notification rule targets. + public var targets: [CodestarnotificationsClientTypes.TargetSummary]? + + public init( + nextToken: Swift.String? = nil, + targets: [CodestarnotificationsClientTypes.TargetSummary]? = nil + ) + { + self.nextToken = nextToken + self.targets = targets + } +} + +public struct SubscribeInput: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the notification rule for which you want to create the association. + /// This member is required. + public var arn: Swift.String? + /// An enumeration token that, when provided in a request, returns the next batch of the results. + public var clientRequestToken: Swift.String? + /// Information about the Chatbot topics or Chatbot clients associated with a notification rule. + /// This member is required. + public var target: CodestarnotificationsClientTypes.Target? + + public init( + arn: Swift.String? = nil, + clientRequestToken: Swift.String? = nil, + target: CodestarnotificationsClientTypes.Target? = nil + ) + { + self.arn = arn + self.clientRequestToken = clientRequestToken + self.target = target + } +} + +public struct SubscribeOutput: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the notification rule for which you have created assocations. + public var arn: Swift.String? + + public init( + arn: Swift.String? = nil + ) + { + self.arn = arn + } +} + +public struct TagResourceInput: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the notification rule to tag. + /// This member is required. + public var arn: Swift.String? + /// The list of tags to associate with the resource. Tag key names cannot start with "aws". + /// This member is required. + public var tags: [Swift.String: Swift.String]? + + public init( + arn: Swift.String? = nil, + tags: [Swift.String: Swift.String]? = nil + ) + { + self.arn = arn + self.tags = tags + } +} + +public struct TagResourceOutput: Swift.Sendable { + /// The list of tags associated with the resource. + public var tags: [Swift.String: Swift.String]? + + public init( + tags: [Swift.String: Swift.String]? = nil + ) + { + self.tags = tags + } +} + +public struct UnsubscribeInput: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the notification rule. + /// This member is required. + public var arn: Swift.String? + /// The ARN of the Chatbot topic to unsubscribe from the notification rule. + /// This member is required. + public var targetAddress: Swift.String? + + public init( + arn: Swift.String? = nil, + targetAddress: Swift.String? = nil + ) + { + self.arn = arn + self.targetAddress = targetAddress + } +} + +extension UnsubscribeInput: Swift.CustomDebugStringConvertible { + public var debugDescription: Swift.String { + "UnsubscribeInput(arn: \(Swift.String(describing: arn)), targetAddress: \"CONTENT_REDACTED\")"} +} + +public struct UnsubscribeOutput: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the the notification rule from which you have removed a subscription. + /// This member is required. + public var arn: Swift.String? + + public init( + arn: Swift.String? = nil + ) + { + self.arn = arn + } +} + +public struct UntagResourceInput: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the notification rule from which to remove the tags. + /// This member is required. + public var arn: Swift.String? + /// The key names of the tags to remove. + /// This member is required. + public var tagKeys: [Swift.String]? + + public init( + arn: Swift.String? = nil, + tagKeys: [Swift.String]? = nil + ) + { + self.arn = arn + self.tagKeys = tagKeys + } +} + +public struct UntagResourceOutput: Swift.Sendable { + + public init() { } +} + +public struct UpdateNotificationRuleInput: Swift.Sendable { + /// The Amazon Resource Name (ARN) of the notification rule. + /// This member is required. + public var arn: Swift.String? + /// The level of detail to include in the notifications for this resource. BASIC will include only the contents of the event as it would appear in Amazon CloudWatch. FULL will include any supplemental information provided by CodeStar Notifications and/or the service for the resource for which the notification is created. + public var detailType: CodestarnotificationsClientTypes.DetailType? + /// A list of event types associated with this notification rule. For a complete list of event types and IDs, see [Notification concepts](https://docs.aws.amazon.com/codestar-notifications/latest/userguide/concepts.html#concepts-api) in the Developer Tools Console User Guide. + public var eventTypeIds: [Swift.String]? + /// The name of the notification rule. + public var name: Swift.String? + /// The status of the notification rule. Valid statuses include enabled (sending notifications) or disabled (not sending notifications). + public var status: CodestarnotificationsClientTypes.NotificationRuleStatus? + /// The address and type of the targets to receive notifications from this notification rule. + public var targets: [CodestarnotificationsClientTypes.Target]? + + public init( + arn: Swift.String? = nil, + detailType: CodestarnotificationsClientTypes.DetailType? = nil, + eventTypeIds: [Swift.String]? = nil, + name: Swift.String? = nil, + status: CodestarnotificationsClientTypes.NotificationRuleStatus? = nil, + targets: [CodestarnotificationsClientTypes.Target]? = nil + ) + { + self.arn = arn + self.detailType = detailType + self.eventTypeIds = eventTypeIds + self.name = name + self.status = status + self.targets = targets + } +} + +extension UpdateNotificationRuleInput: Swift.CustomDebugStringConvertible { + public var debugDescription: Swift.String { + "UpdateNotificationRuleInput(arn: \(Swift.String(describing: arn)), detailType: \(Swift.String(describing: detailType)), eventTypeIds: \(Swift.String(describing: eventTypeIds)), status: \(Swift.String(describing: status)), targets: \(Swift.String(describing: targets)), name: \"CONTENT_REDACTED\")"} +} + +public struct UpdateNotificationRuleOutput: Swift.Sendable { + + public init() { } +} + +extension CreateNotificationRuleInput { + + static func urlPathProvider(_ value: CreateNotificationRuleInput) -> Swift.String? { + return "/createNotificationRule" + } +} + +extension DeleteNotificationRuleInput { + + static func urlPathProvider(_ value: DeleteNotificationRuleInput) -> Swift.String? { + return "/deleteNotificationRule" + } +} + +extension DeleteTargetInput { + + static func urlPathProvider(_ value: DeleteTargetInput) -> Swift.String? { + return "/deleteTarget" + } +} + +extension DescribeNotificationRuleInput { + + static func urlPathProvider(_ value: DescribeNotificationRuleInput) -> Swift.String? { + return "/describeNotificationRule" + } +} + +extension ListEventTypesInput { + + static func urlPathProvider(_ value: ListEventTypesInput) -> Swift.String? { + return "/listEventTypes" + } +} + +extension ListNotificationRulesInput { + + static func urlPathProvider(_ value: ListNotificationRulesInput) -> Swift.String? { + return "/listNotificationRules" + } +} + +extension ListTagsForResourceInput { + + static func urlPathProvider(_ value: ListTagsForResourceInput) -> Swift.String? { + return "/listTagsForResource" + } +} + +extension ListTargetsInput { + + static func urlPathProvider(_ value: ListTargetsInput) -> Swift.String? { + return "/listTargets" + } +} + +extension SubscribeInput { + + static func urlPathProvider(_ value: SubscribeInput) -> Swift.String? { + return "/subscribe" + } +} + +extension TagResourceInput { + + static func urlPathProvider(_ value: TagResourceInput) -> Swift.String? { + return "/tagResource" + } +} + +extension UnsubscribeInput { + + static func urlPathProvider(_ value: UnsubscribeInput) -> Swift.String? { + return "/unsubscribe" + } +} + +extension UntagResourceInput { + + static func urlPathProvider(_ value: UntagResourceInput) -> Swift.String? { + guard let arn = value.arn else { + return nil + } + return "/untagResource/\(arn.urlPercentEncoding())" + } +} + +extension UntagResourceInput { + + static func queryItemProvider(_ value: UntagResourceInput) throws -> [Smithy.URIQueryItem] { + var items = [Smithy.URIQueryItem]() + guard let tagKeys = value.tagKeys else { + let message = "Creating a URL Query Item failed. tagKeys is required and must not be nil." + throw Smithy.ClientError.unknownError(message) + } + tagKeys.forEach { queryItemValue in + let queryItem = Smithy.URIQueryItem(name: "tagKeys".urlPercentEncoding(), value: Swift.String(queryItemValue).urlPercentEncoding()) + items.append(queryItem) + } + return items + } +} + +extension UpdateNotificationRuleInput { + + static func urlPathProvider(_ value: UpdateNotificationRuleInput) -> Swift.String? { + return "/updateNotificationRule" + } +} + +extension CreateNotificationRuleInput { + + static func write(value: CreateNotificationRuleInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["ClientRequestToken"].write(value.clientRequestToken) + try writer["DetailType"].write(value.detailType) + try writer["EventTypeIds"].writeList(value.eventTypeIds, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["Name"].write(value.name) + try writer["Resource"].write(value.resource) + try writer["Status"].write(value.status) + try writer["Tags"].writeMap(value.tags, valueWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + try writer["Targets"].writeList(value.targets, memberWritingClosure: CodestarnotificationsClientTypes.Target.write(value:to:), memberNodeInfo: "member", isFlattened: false) + } +} + +extension DeleteNotificationRuleInput { + + static func write(value: DeleteNotificationRuleInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["Arn"].write(value.arn) + } +} + +extension DeleteTargetInput { + + static func write(value: DeleteTargetInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["ForceUnsubscribeAll"].write(value.forceUnsubscribeAll) + try writer["TargetAddress"].write(value.targetAddress) + } +} + +extension DescribeNotificationRuleInput { + + static func write(value: DescribeNotificationRuleInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["Arn"].write(value.arn) + } +} + +extension ListEventTypesInput { + + static func write(value: ListEventTypesInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["Filters"].writeList(value.filters, memberWritingClosure: CodestarnotificationsClientTypes.ListEventTypesFilter.write(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["MaxResults"].write(value.maxResults) + try writer["NextToken"].write(value.nextToken) + } +} + +extension ListNotificationRulesInput { + + static func write(value: ListNotificationRulesInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["Filters"].writeList(value.filters, memberWritingClosure: CodestarnotificationsClientTypes.ListNotificationRulesFilter.write(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["MaxResults"].write(value.maxResults) + try writer["NextToken"].write(value.nextToken) + } +} + +extension ListTagsForResourceInput { + + static func write(value: ListTagsForResourceInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["Arn"].write(value.arn) + } +} + +extension ListTargetsInput { + + static func write(value: ListTargetsInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["Filters"].writeList(value.filters, memberWritingClosure: CodestarnotificationsClientTypes.ListTargetsFilter.write(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["MaxResults"].write(value.maxResults) + try writer["NextToken"].write(value.nextToken) + } +} + +extension SubscribeInput { + + static func write(value: SubscribeInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["Arn"].write(value.arn) + try writer["ClientRequestToken"].write(value.clientRequestToken) + try writer["Target"].write(value.target, with: CodestarnotificationsClientTypes.Target.write(value:to:)) + } +} + +extension TagResourceInput { + + static func write(value: TagResourceInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["Arn"].write(value.arn) + try writer["Tags"].writeMap(value.tags, valueWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + } +} + +extension UnsubscribeInput { + + static func write(value: UnsubscribeInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["Arn"].write(value.arn) + try writer["TargetAddress"].write(value.targetAddress) + } +} + +extension UpdateNotificationRuleInput { + + static func write(value: UpdateNotificationRuleInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["Arn"].write(value.arn) + try writer["DetailType"].write(value.detailType) + try writer["EventTypeIds"].writeList(value.eventTypeIds, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["Name"].write(value.name) + try writer["Status"].write(value.status) + try writer["Targets"].writeList(value.targets, memberWritingClosure: CodestarnotificationsClientTypes.Target.write(value:to:), memberNodeInfo: "member", isFlattened: false) + } +} + +extension CreateNotificationRuleOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> CreateNotificationRuleOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = CreateNotificationRuleOutput() + value.arn = try reader["Arn"].readIfPresent() + return value + } +} + +extension DeleteNotificationRuleOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteNotificationRuleOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = DeleteNotificationRuleOutput() + value.arn = try reader["Arn"].readIfPresent() + return value + } +} + +extension DeleteTargetOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteTargetOutput { + return DeleteTargetOutput() + } +} + +extension DescribeNotificationRuleOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DescribeNotificationRuleOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = DescribeNotificationRuleOutput() + value.arn = try reader["Arn"].readIfPresent() ?? "" + value.createdBy = try reader["CreatedBy"].readIfPresent() + value.createdTimestamp = try reader["CreatedTimestamp"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) + value.detailType = try reader["DetailType"].readIfPresent() + value.eventTypes = try reader["EventTypes"].readListIfPresent(memberReadingClosure: CodestarnotificationsClientTypes.EventTypeSummary.read(from:), memberNodeInfo: "member", isFlattened: false) + value.lastModifiedTimestamp = try reader["LastModifiedTimestamp"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) + value.name = try reader["Name"].readIfPresent() + value.resource = try reader["Resource"].readIfPresent() + value.status = try reader["Status"].readIfPresent() + value.tags = try reader["Tags"].readMapIfPresent(valueReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + value.targets = try reader["Targets"].readListIfPresent(memberReadingClosure: CodestarnotificationsClientTypes.TargetSummary.read(from:), memberNodeInfo: "member", isFlattened: false) + return value + } +} + +extension ListEventTypesOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListEventTypesOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = ListEventTypesOutput() + value.eventTypes = try reader["EventTypes"].readListIfPresent(memberReadingClosure: CodestarnotificationsClientTypes.EventTypeSummary.read(from:), memberNodeInfo: "member", isFlattened: false) + value.nextToken = try reader["NextToken"].readIfPresent() + return value + } +} + +extension ListNotificationRulesOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListNotificationRulesOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = ListNotificationRulesOutput() + value.nextToken = try reader["NextToken"].readIfPresent() + value.notificationRules = try reader["NotificationRules"].readListIfPresent(memberReadingClosure: CodestarnotificationsClientTypes.NotificationRuleSummary.read(from:), memberNodeInfo: "member", isFlattened: false) + return value + } +} + +extension ListTagsForResourceOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListTagsForResourceOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = ListTagsForResourceOutput() + value.tags = try reader["Tags"].readMapIfPresent(valueReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + return value + } +} + +extension ListTargetsOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ListTargetsOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = ListTargetsOutput() + value.nextToken = try reader["NextToken"].readIfPresent() + value.targets = try reader["Targets"].readListIfPresent(memberReadingClosure: CodestarnotificationsClientTypes.TargetSummary.read(from:), memberNodeInfo: "member", isFlattened: false) + return value + } +} + +extension SubscribeOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> SubscribeOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = SubscribeOutput() + value.arn = try reader["Arn"].readIfPresent() + return value + } +} + +extension TagResourceOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> TagResourceOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = TagResourceOutput() + value.tags = try reader["Tags"].readMapIfPresent(valueReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + return value + } +} + +extension UnsubscribeOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> UnsubscribeOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = UnsubscribeOutput() + value.arn = try reader["Arn"].readIfPresent() ?? "" + return value + } +} + +extension UntagResourceOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> UntagResourceOutput { + return UntagResourceOutput() + } +} + +extension UpdateNotificationRuleOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> UpdateNotificationRuleOutput { + return UpdateNotificationRuleOutput() + } +} + +enum CreateNotificationRuleOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "AccessDeniedException": return try AccessDeniedException.makeError(baseError: baseError) + case "ConcurrentModificationException": return try ConcurrentModificationException.makeError(baseError: baseError) + case "ConfigurationException": return try ConfigurationException.makeError(baseError: baseError) + case "LimitExceededException": return try LimitExceededException.makeError(baseError: baseError) + case "ResourceAlreadyExistsException": return try ResourceAlreadyExistsException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum DeleteNotificationRuleOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "ConcurrentModificationException": return try ConcurrentModificationException.makeError(baseError: baseError) + case "LimitExceededException": return try LimitExceededException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum DeleteTargetOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum DescribeNotificationRuleOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum ListEventTypesOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidNextTokenException": return try InvalidNextTokenException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum ListNotificationRulesOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidNextTokenException": return try InvalidNextTokenException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum ListTagsForResourceOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum ListTargetsOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "InvalidNextTokenException": return try InvalidNextTokenException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum SubscribeOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "ConfigurationException": return try ConfigurationException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum TagResourceOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "ConcurrentModificationException": return try ConcurrentModificationException.makeError(baseError: baseError) + case "LimitExceededException": return try LimitExceededException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum UnsubscribeOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum UntagResourceOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "ConcurrentModificationException": return try ConcurrentModificationException.makeError(baseError: baseError) + case "LimitExceededException": return try LimitExceededException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +enum UpdateNotificationRuleOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let baseError = try AWSClientRuntime.RestJSONError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "ConfigurationException": return try ConfigurationException.makeError(baseError: baseError) + case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + +extension ConfigurationException { + + static func makeError(baseError: AWSClientRuntime.RestJSONError) throws -> ConfigurationException { + let reader = baseError.errorBodyReader + var value = ConfigurationException() + value.properties.message = try reader["Message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension ConcurrentModificationException { + + static func makeError(baseError: AWSClientRuntime.RestJSONError) throws -> ConcurrentModificationException { + let reader = baseError.errorBodyReader + var value = ConcurrentModificationException() + value.properties.message = try reader["Message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension AccessDeniedException { + + static func makeError(baseError: AWSClientRuntime.RestJSONError) throws -> AccessDeniedException { + let reader = baseError.errorBodyReader + var value = AccessDeniedException() + value.properties.message = try reader["Message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension ValidationException { + + static func makeError(baseError: AWSClientRuntime.RestJSONError) throws -> ValidationException { + let reader = baseError.errorBodyReader + var value = ValidationException() + value.properties.message = try reader["Message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension LimitExceededException { + + static func makeError(baseError: AWSClientRuntime.RestJSONError) throws -> LimitExceededException { + let reader = baseError.errorBodyReader + var value = LimitExceededException() + value.properties.message = try reader["Message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension ResourceAlreadyExistsException { + + static func makeError(baseError: AWSClientRuntime.RestJSONError) throws -> ResourceAlreadyExistsException { + let reader = baseError.errorBodyReader + var value = ResourceAlreadyExistsException() + value.properties.message = try reader["Message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension ResourceNotFoundException { + + static func makeError(baseError: AWSClientRuntime.RestJSONError) throws -> ResourceNotFoundException { + let reader = baseError.errorBodyReader + var value = ResourceNotFoundException() + value.properties.message = try reader["Message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension InvalidNextTokenException { + + static func makeError(baseError: AWSClientRuntime.RestJSONError) throws -> InvalidNextTokenException { + let reader = baseError.errorBodyReader + var value = InvalidNextTokenException() + value.properties.message = try reader["Message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension CodestarnotificationsClientTypes.EventTypeSummary { + + static func read(from reader: SmithyJSON.Reader) throws -> CodestarnotificationsClientTypes.EventTypeSummary { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CodestarnotificationsClientTypes.EventTypeSummary() + value.eventTypeId = try reader["EventTypeId"].readIfPresent() + value.serviceName = try reader["ServiceName"].readIfPresent() + value.eventTypeName = try reader["EventTypeName"].readIfPresent() + value.resourceType = try reader["ResourceType"].readIfPresent() + return value + } +} + +extension CodestarnotificationsClientTypes.TargetSummary { + + static func read(from reader: SmithyJSON.Reader) throws -> CodestarnotificationsClientTypes.TargetSummary { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CodestarnotificationsClientTypes.TargetSummary() + value.targetAddress = try reader["TargetAddress"].readIfPresent() + value.targetType = try reader["TargetType"].readIfPresent() + value.targetStatus = try reader["TargetStatus"].readIfPresent() + return value + } +} + +extension CodestarnotificationsClientTypes.NotificationRuleSummary { + + static func read(from reader: SmithyJSON.Reader) throws -> CodestarnotificationsClientTypes.NotificationRuleSummary { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = CodestarnotificationsClientTypes.NotificationRuleSummary() + value.id = try reader["Id"].readIfPresent() + value.arn = try reader["Arn"].readIfPresent() + return value + } +} + +extension CodestarnotificationsClientTypes.Target { + + static func write(value: CodestarnotificationsClientTypes.Target?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["TargetAddress"].write(value.targetAddress) + try writer["TargetType"].write(value.targetType) + } +} + +extension CodestarnotificationsClientTypes.ListEventTypesFilter { + + static func write(value: CodestarnotificationsClientTypes.ListEventTypesFilter?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["Name"].write(value.name) + try writer["Value"].write(value.value) + } +} + +extension CodestarnotificationsClientTypes.ListNotificationRulesFilter { + + static func write(value: CodestarnotificationsClientTypes.ListNotificationRulesFilter?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["Name"].write(value.name) + try writer["Value"].write(value.value) + } +} + +extension CodestarnotificationsClientTypes.ListTargetsFilter { + + static func write(value: CodestarnotificationsClientTypes.ListTargetsFilter?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["Name"].write(value.name) + try writer["Value"].write(value.value) + } +} + +public enum CodestarnotificationsClientTypes {} diff --git a/Sources/Services/AWSCodestarnotifications/Sources/AWSCodestarnotifications/Paginators.swift b/Sources/Services/AWSCodestarnotifications/Sources/AWSCodestarnotifications/Paginators.swift new file mode 100644 index 00000000000..c16c20f5bc9 --- /dev/null +++ b/Sources/Services/AWSCodestarnotifications/Sources/AWSCodestarnotifications/Paginators.swift @@ -0,0 +1,105 @@ +// +// Copyright Amazon.com Inc. or its affiliates. +// All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 +// + +// Code generated by smithy-swift-codegen. DO NOT EDIT! + +import protocol ClientRuntime.PaginateToken +import struct ClientRuntime.PaginatorSequence + +extension CodestarnotificationsClient { + /// Paginate over `[ListEventTypesOutput]` 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 `[ListEventTypesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListEventTypesOutput` + public func listEventTypesPaginated(input: ListEventTypesInput) -> ClientRuntime.PaginatorSequence { + return ClientRuntime.PaginatorSequence(input: input, inputKey: \.nextToken, outputKey: \.nextToken, paginationFunction: self.listEventTypes(input:)) + } +} + +extension ListEventTypesInput: ClientRuntime.PaginateToken { + public func usingPaginationToken(_ token: Swift.String) -> ListEventTypesInput { + return ListEventTypesInput( + filters: self.filters, + maxResults: self.maxResults, + nextToken: token + )} +} + +extension PaginatorSequence where OperationStackInput == ListEventTypesInput, OperationStackOutput == ListEventTypesOutput { + /// This paginator transforms the `AsyncSequence` returned by `listEventTypesPaginated` + /// to access the nested member `[CodestarnotificationsClientTypes.EventTypeSummary]` + /// - Returns: `[CodestarnotificationsClientTypes.EventTypeSummary]` + public func eventTypes() async throws -> [CodestarnotificationsClientTypes.EventTypeSummary] { + return try await self.asyncCompactMap { item in item.eventTypes } + } +} +extension CodestarnotificationsClient { + /// Paginate over `[ListNotificationRulesOutput]` 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 `[ListNotificationRulesInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListNotificationRulesOutput` + public func listNotificationRulesPaginated(input: ListNotificationRulesInput) -> ClientRuntime.PaginatorSequence { + return ClientRuntime.PaginatorSequence(input: input, inputKey: \.nextToken, outputKey: \.nextToken, paginationFunction: self.listNotificationRules(input:)) + } +} + +extension ListNotificationRulesInput: ClientRuntime.PaginateToken { + public func usingPaginationToken(_ token: Swift.String) -> ListNotificationRulesInput { + return ListNotificationRulesInput( + filters: self.filters, + maxResults: self.maxResults, + nextToken: token + )} +} + +extension PaginatorSequence where OperationStackInput == ListNotificationRulesInput, OperationStackOutput == ListNotificationRulesOutput { + /// This paginator transforms the `AsyncSequence` returned by `listNotificationRulesPaginated` + /// to access the nested member `[CodestarnotificationsClientTypes.NotificationRuleSummary]` + /// - Returns: `[CodestarnotificationsClientTypes.NotificationRuleSummary]` + public func notificationRules() async throws -> [CodestarnotificationsClientTypes.NotificationRuleSummary] { + return try await self.asyncCompactMap { item in item.notificationRules } + } +} +extension CodestarnotificationsClient { + /// Paginate over `[ListTargetsOutput]` 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 `[ListTargetsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `ListTargetsOutput` + public func listTargetsPaginated(input: ListTargetsInput) -> ClientRuntime.PaginatorSequence { + return ClientRuntime.PaginatorSequence(input: input, inputKey: \.nextToken, outputKey: \.nextToken, paginationFunction: self.listTargets(input:)) + } +} + +extension ListTargetsInput: ClientRuntime.PaginateToken { + public func usingPaginationToken(_ token: Swift.String) -> ListTargetsInput { + return ListTargetsInput( + filters: self.filters, + maxResults: self.maxResults, + nextToken: token + )} +} + +extension PaginatorSequence where OperationStackInput == ListTargetsInput, OperationStackOutput == ListTargetsOutput { + /// This paginator transforms the `AsyncSequence` returned by `listTargetsPaginated` + /// to access the nested member `[CodestarnotificationsClientTypes.TargetSummary]` + /// - Returns: `[CodestarnotificationsClientTypes.TargetSummary]` + public func targets() async throws -> [CodestarnotificationsClientTypes.TargetSummary] { + return try await self.asyncCompactMap { item in item.targets } + } +} diff --git a/Sources/Services/AWSCodestarnotifications/Sources/AWSCodestarnotifications/Plugins.swift b/Sources/Services/AWSCodestarnotifications/Sources/AWSCodestarnotifications/Plugins.swift new file mode 100644 index 00000000000..d4a0e61e878 --- /dev/null +++ b/Sources/Services/AWSCodestarnotifications/Sources/AWSCodestarnotifications/Plugins.swift @@ -0,0 +1,82 @@ +// +// Copyright Amazon.com Inc. or its affiliates. +// All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 +// + +// Code generated by smithy-swift-codegen. DO NOT EDIT! + +import class AWSClientRuntime.AWSClientConfigDefaultsProvider +import protocol ClientRuntime.ClientConfiguration +import protocol ClientRuntime.Plugin +import protocol SmithyHTTPAuthAPI.AuthSchemeResolver +import protocol SmithyIdentity.AWSCredentialIdentityResolver +import protocol SmithyIdentity.BearerTokenIdentityResolver +import struct AWSSDKHTTPAuth.SigV4AuthScheme +import struct SmithyIdentity.BearerTokenIdentity +import struct SmithyIdentity.StaticBearerTokenIdentityResolver +import typealias SmithyHTTPAuthAPI.AuthSchemes + +public class CodestarnotificationsClientEndpointPlugin: Plugin { + private var endpointResolver: EndpointResolver + + public init(endpointResolver: EndpointResolver) { + self.endpointResolver = endpointResolver + } + + public convenience init() throws { + self.init(endpointResolver: try DefaultEndpointResolver()) + } + + public func configureClient(clientConfiguration: ClientRuntime.ClientConfiguration) throws { + if let config = clientConfiguration as? CodestarnotificationsClient.CodestarnotificationsClientConfiguration { + config.endpointResolver = self.endpointResolver + } + } +} + +public class DefaultAWSAuthSchemePlugin: ClientRuntime.Plugin { + + public init() {} + + public func configureClient(clientConfiguration: ClientRuntime.ClientConfiguration) throws { + if let config = clientConfiguration as? CodestarnotificationsClient.CodestarnotificationsClientConfiguration { + config.authSchemeResolver = DefaultCodestarnotificationsAuthSchemeResolver() + config.authSchemes = [AWSSDKHTTPAuth.SigV4AuthScheme()] + config.awsCredentialIdentityResolver = try AWSClientRuntime.AWSClientConfigDefaultsProvider.awsCredentialIdentityResolver() + config.bearerTokenIdentityResolver = SmithyIdentity.StaticBearerTokenIdentityResolver(token: SmithyIdentity.BearerTokenIdentity(token: "")) + } + } +} + +public class CodestarnotificationsClientAuthSchemePlugin: ClientRuntime.Plugin { + private var authSchemes: SmithyHTTPAuthAPI.AuthSchemes? + private var authSchemeResolver: SmithyHTTPAuthAPI.AuthSchemeResolver? + private var awsCredentialIdentityResolver: (any SmithyIdentity.AWSCredentialIdentityResolver)? + private var bearerTokenIdentityResolver: (any SmithyIdentity.BearerTokenIdentityResolver)? + + public init(authSchemes: SmithyHTTPAuthAPI.AuthSchemes? = nil, authSchemeResolver: CodestarnotificationsAuthSchemeResolver? = nil, awsCredentialIdentityResolver: (any SmithyIdentity.AWSCredentialIdentityResolver)? = nil, bearerTokenIdentityResolver: (any SmithyIdentity.BearerTokenIdentityResolver)? = nil) { + self.authSchemeResolver = authSchemeResolver + self.authSchemes = authSchemes + self.awsCredentialIdentityResolver = awsCredentialIdentityResolver + self.bearerTokenIdentityResolver = bearerTokenIdentityResolver + } + + public func configureClient(clientConfiguration: ClientRuntime.ClientConfiguration) throws { + if let config = clientConfiguration as? CodestarnotificationsClient.CodestarnotificationsClientConfiguration { + if (self.authSchemes != nil) { + config.authSchemes = self.authSchemes + } + if (self.authSchemeResolver != nil) { + config.authSchemeResolver = self.authSchemeResolver! + } + if (self.awsCredentialIdentityResolver != nil) { + config.awsCredentialIdentityResolver = self.awsCredentialIdentityResolver! + } + if (self.bearerTokenIdentityResolver != nil) { + config.bearerTokenIdentityResolver = self.bearerTokenIdentityResolver! + } + } + } +} diff --git a/Sources/Services/AWSCodestarnotifications/Sources/AWSCodestarnotifications/Resources/Package.version b/Sources/Services/AWSCodestarnotifications/Sources/AWSCodestarnotifications/Resources/Package.version new file mode 100644 index 00000000000..d3827e75a5c --- /dev/null +++ b/Sources/Services/AWSCodestarnotifications/Sources/AWSCodestarnotifications/Resources/Package.version @@ -0,0 +1 @@ +1.0 diff --git a/Sources/Services/AWSCodestarnotifications/Tests/AWSCodestarnotificationsTests/EndpointResolverTest.swift b/Sources/Services/AWSCodestarnotifications/Tests/AWSCodestarnotificationsTests/EndpointResolverTest.swift new file mode 100644 index 00000000000..3de32fce740 --- /dev/null +++ b/Sources/Services/AWSCodestarnotifications/Tests/AWSCodestarnotificationsTests/EndpointResolverTest.swift @@ -0,0 +1,516 @@ +// +// Copyright Amazon.com Inc. or its affiliates. +// All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 +// + +// Code generated by smithy-swift-codegen. DO NOT EDIT! + +@testable import AWSCodestarnotifications +import SmithyTestUtil +import XCTest +import enum ClientRuntime.EndpointError +import struct SmithyHTTPAPI.Endpoint +import struct SmithyHTTPAPI.Headers + +class EndpointResolverTest: XCTestCase { + + override class func setUp() { + SmithyTestUtil.TestInitializer.initialize() + } + + /// For region us-east-1 with FIPS enabled and DualStack enabled + func testResolve1() throws { + let endpointParams = EndpointParams( + region: "us-east-1", + useDualStack: true, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://codestar-notifications-fips.us-east-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-east-1 with FIPS enabled and DualStack disabled + func testResolve2() throws { + let endpointParams = EndpointParams( + region: "us-east-1", + useDualStack: false, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://codestar-notifications-fips.us-east-1.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-east-1 with FIPS disabled and DualStack enabled + func testResolve3() throws { + let endpointParams = EndpointParams( + region: "us-east-1", + useDualStack: true, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://codestar-notifications.us-east-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-east-1 with FIPS disabled and DualStack disabled + func testResolve4() throws { + let endpointParams = EndpointParams( + region: "us-east-1", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://codestar-notifications.us-east-1.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region cn-north-1 with FIPS enabled and DualStack enabled + func testResolve5() throws { + let endpointParams = EndpointParams( + region: "cn-north-1", + useDualStack: true, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://codestar-notifications-fips.cn-north-1.api.amazonwebservices.com.cn", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region cn-north-1 with FIPS enabled and DualStack disabled + func testResolve6() throws { + let endpointParams = EndpointParams( + region: "cn-north-1", + useDualStack: false, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://codestar-notifications-fips.cn-north-1.amazonaws.com.cn", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region cn-north-1 with FIPS disabled and DualStack enabled + func testResolve7() throws { + let endpointParams = EndpointParams( + region: "cn-north-1", + useDualStack: true, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://codestar-notifications.cn-north-1.api.amazonwebservices.com.cn", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region cn-north-1 with FIPS disabled and DualStack disabled + func testResolve8() throws { + let endpointParams = EndpointParams( + region: "cn-north-1", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://codestar-notifications.cn-north-1.amazonaws.com.cn", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-gov-east-1 with FIPS enabled and DualStack enabled + func testResolve9() throws { + let endpointParams = EndpointParams( + region: "us-gov-east-1", + useDualStack: true, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://codestar-notifications-fips.us-gov-east-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-gov-east-1 with FIPS enabled and DualStack disabled + func testResolve10() throws { + let endpointParams = EndpointParams( + region: "us-gov-east-1", + useDualStack: false, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://codestar-notifications-fips.us-gov-east-1.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-gov-east-1 with FIPS disabled and DualStack enabled + func testResolve11() throws { + let endpointParams = EndpointParams( + region: "us-gov-east-1", + useDualStack: true, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://codestar-notifications.us-gov-east-1.api.aws", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-gov-east-1 with FIPS disabled and DualStack disabled + func testResolve12() throws { + let endpointParams = EndpointParams( + region: "us-gov-east-1", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://codestar-notifications.us-gov-east-1.amazonaws.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-iso-east-1 with FIPS enabled and DualStack enabled + func testResolve13() throws { + let endpointParams = EndpointParams( + region: "us-iso-east-1", + useDualStack: true, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + XCTAssertThrowsError(try resolver.resolve(params: endpointParams)) { error in + switch error { + case ClientRuntime.EndpointError.unresolved(let message): + XCTAssertEqual("FIPS and DualStack are enabled, but this partition does not support one or both", message) + default: + XCTFail() + } + } + } + + /// For region us-iso-east-1 with FIPS enabled and DualStack disabled + func testResolve14() throws { + let endpointParams = EndpointParams( + region: "us-iso-east-1", + useDualStack: false, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://codestar-notifications-fips.us-iso-east-1.c2s.ic.gov", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-iso-east-1 with FIPS disabled and DualStack enabled + func testResolve15() throws { + let endpointParams = EndpointParams( + region: "us-iso-east-1", + useDualStack: true, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + XCTAssertThrowsError(try resolver.resolve(params: endpointParams)) { error in + switch error { + case ClientRuntime.EndpointError.unresolved(let message): + XCTAssertEqual("DualStack is enabled but this partition does not support DualStack", message) + default: + XCTFail() + } + } + } + + /// For region us-iso-east-1 with FIPS disabled and DualStack disabled + func testResolve16() throws { + let endpointParams = EndpointParams( + region: "us-iso-east-1", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://codestar-notifications.us-iso-east-1.c2s.ic.gov", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-isob-east-1 with FIPS enabled and DualStack enabled + func testResolve17() throws { + let endpointParams = EndpointParams( + region: "us-isob-east-1", + useDualStack: true, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + XCTAssertThrowsError(try resolver.resolve(params: endpointParams)) { error in + switch error { + case ClientRuntime.EndpointError.unresolved(let message): + XCTAssertEqual("FIPS and DualStack are enabled, but this partition does not support one or both", message) + default: + XCTFail() + } + } + } + + /// For region us-isob-east-1 with FIPS enabled and DualStack disabled + func testResolve18() throws { + let endpointParams = EndpointParams( + region: "us-isob-east-1", + useDualStack: false, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://codestar-notifications-fips.us-isob-east-1.sc2s.sgov.gov", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-isob-east-1 with FIPS disabled and DualStack enabled + func testResolve19() throws { + let endpointParams = EndpointParams( + region: "us-isob-east-1", + useDualStack: true, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + XCTAssertThrowsError(try resolver.resolve(params: endpointParams)) { error in + switch error { + case ClientRuntime.EndpointError.unresolved(let message): + XCTAssertEqual("DualStack is enabled but this partition does not support DualStack", message) + default: + XCTFail() + } + } + } + + /// For region us-isob-east-1 with FIPS disabled and DualStack disabled + func testResolve20() throws { + let endpointParams = EndpointParams( + region: "us-isob-east-1", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://codestar-notifications.us-isob-east-1.sc2s.sgov.gov", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For custom endpoint with region set and fips disabled and dualstack disabled + func testResolve21() throws { + let endpointParams = EndpointParams( + endpoint: "https://example.com", + region: "us-east-1", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://example.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For custom endpoint with region not set and fips disabled and dualstack disabled + func testResolve22() throws { + let endpointParams = EndpointParams( + endpoint: "https://example.com", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://example.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For custom endpoint with fips enabled and dualstack disabled + func testResolve23() throws { + let endpointParams = EndpointParams( + endpoint: "https://example.com", + region: "us-east-1", + useDualStack: false, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + XCTAssertThrowsError(try resolver.resolve(params: endpointParams)) { error in + switch error { + case ClientRuntime.EndpointError.unresolved(let message): + XCTAssertEqual("Invalid Configuration: FIPS and custom endpoint are not supported", message) + default: + XCTFail() + } + } + } + + /// For custom endpoint with fips disabled and dualstack enabled + func testResolve24() throws { + let endpointParams = EndpointParams( + endpoint: "https://example.com", + region: "us-east-1", + useDualStack: true, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + XCTAssertThrowsError(try resolver.resolve(params: endpointParams)) { error in + switch error { + case ClientRuntime.EndpointError.unresolved(let message): + XCTAssertEqual("Invalid Configuration: Dualstack and custom endpoint are not supported", message) + default: + XCTFail() + } + } + } + + /// Missing region + func testResolve25() throws { + let endpointParams = EndpointParams( + ) + let resolver = try DefaultEndpointResolver() + + XCTAssertThrowsError(try resolver.resolve(params: endpointParams)) { error in + switch error { + case ClientRuntime.EndpointError.unresolved(let message): + XCTAssertEqual("Invalid Configuration: Missing Region", message) + default: + XCTFail() + } + } + } + +} diff --git a/Sources/Services/AWSConnectContactLens/Sources/AWSConnectContactLens/Models.swift b/Sources/Services/AWSConnectContactLens/Sources/AWSConnectContactLens/Models.swift index 3a9a62d0420..d86b117f088 100644 --- a/Sources/Services/AWSConnectContactLens/Sources/AWSConnectContactLens/Models.swift +++ b/Sources/Services/AWSConnectContactLens/Sources/AWSConnectContactLens/Models.swift @@ -151,7 +151,7 @@ public struct ListRealtimeContactAnalysisSegmentsInput: Swift.Sendable { /// The identifier of the Amazon Connect instance. /// This member is required. public var instanceId: Swift.String? - /// The maximimum number of results to return per page. + /// The maximum number of results to return per page. public var maxResults: Swift.Int? /// The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results. public var nextToken: Swift.String? @@ -231,6 +231,108 @@ extension ConnectContactLensClientTypes { } } +extension ConnectContactLensClientTypes { + + public enum PostContactSummaryFailureCode: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case failedSafetyGuidelines + case insufficientConversationContent + case internalError + case invalidAnalysisConfiguration + case quotaExceeded + case sdkUnknown(Swift.String) + + public static var allCases: [PostContactSummaryFailureCode] { + return [ + .failedSafetyGuidelines, + .insufficientConversationContent, + .internalError, + .invalidAnalysisConfiguration, + .quotaExceeded + ] + } + + 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 .failedSafetyGuidelines: return "FAILED_SAFETY_GUIDELINES" + case .insufficientConversationContent: return "INSUFFICIENT_CONVERSATION_CONTENT" + case .internalError: return "INTERNAL_ERROR" + case .invalidAnalysisConfiguration: return "INVALID_ANALYSIS_CONFIGURATION" + case .quotaExceeded: return "QUOTA_EXCEEDED" + case let .sdkUnknown(s): return s + } + } + } +} + +extension ConnectContactLensClientTypes { + + public enum PostContactSummaryStatus: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case completed + case failed + case sdkUnknown(Swift.String) + + public static var allCases: [PostContactSummaryStatus] { + return [ + .completed, + .failed + ] + } + + 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 .completed: return "COMPLETED" + case .failed: return "FAILED" + case let .sdkUnknown(s): return s + } + } + } +} + +extension ConnectContactLensClientTypes { + + /// Information about the post-contact summary. + public struct PostContactSummary: Swift.Sendable { + /// The content of the summary. + public var content: Swift.String? + /// If the summary failed to be generated, one of the following failure codes occurs: + /// + /// * QUOTA_EXCEEDED: The number of concurrent analytics jobs reached your service quota. + /// + /// * INSUFFICIENT_CONVERSATION_CONTENT: The conversation needs to have at least one turn from both the participants in order to generate the summary. + /// + /// * FAILED_SAFETY_GUIDELINES: The generated summary cannot be provided because it failed to meet system safety guidelines. + /// + /// * INVALID_ANALYSIS_CONFIGURATION: This code occurs when, for example, you're using a [language](https://docs.aws.amazon.com/connect/latest/adminguide/supported-languages.html#supported-languages-contact-lens) that isn't supported by generative AI-powered post-contact summaries. + /// + /// * INTERNAL_ERROR: Internal system error. + public var failureCode: ConnectContactLensClientTypes.PostContactSummaryFailureCode? + /// Whether the summary was successfully COMPLETED or FAILED to be generated. + /// This member is required. + public var status: ConnectContactLensClientTypes.PostContactSummaryStatus? + + public init( + content: Swift.String? = nil, + failureCode: ConnectContactLensClientTypes.PostContactSummaryFailureCode? = nil, + status: ConnectContactLensClientTypes.PostContactSummaryStatus? = nil + ) + { + self.content = content + self.failureCode = failureCode + self.status = status + } + } +} + extension ConnectContactLensClientTypes { /// For characters that were detected as issues, where they occur in the transcript. @@ -320,13 +422,13 @@ extension ConnectContactLensClientTypes { public var id: Swift.String? /// List of positions where issues were detected on the transcript. public var issuesDetected: [ConnectContactLensClientTypes.IssueDetected]? - /// The identifier of the participant. + /// The identifier of the participant. Valid values are CUSTOMER or AGENT. /// This member is required. public var participantId: Swift.String? /// The role of participant. For example, is it a customer, agent, or system. /// This member is required. public var participantRole: Swift.String? - /// The sentiment of the detected for this piece of transcript. + /// The sentiment detected for this piece of transcript. /// This member is required. public var sentiment: ConnectContactLensClientTypes.SentimentValue? @@ -359,15 +461,19 @@ extension ConnectContactLensClientTypes { public struct RealtimeContactAnalysisSegment: Swift.Sendable { /// The matched category rules. public var categories: ConnectContactLensClientTypes.Categories? + /// Information about the post-contact summary. + public var postContactSummary: ConnectContactLensClientTypes.PostContactSummary? /// The analyzed transcript. public var transcript: ConnectContactLensClientTypes.Transcript? public init( categories: ConnectContactLensClientTypes.Categories? = nil, + postContactSummary: ConnectContactLensClientTypes.PostContactSummary? = nil, transcript: ConnectContactLensClientTypes.Transcript? = nil ) { self.categories = categories + self.postContactSummary = postContactSummary self.transcript = transcript } } @@ -518,6 +624,19 @@ extension ConnectContactLensClientTypes.RealtimeContactAnalysisSegment { var value = ConnectContactLensClientTypes.RealtimeContactAnalysisSegment() value.transcript = try reader["Transcript"].readIfPresent(with: ConnectContactLensClientTypes.Transcript.read(from:)) value.categories = try reader["Categories"].readIfPresent(with: ConnectContactLensClientTypes.Categories.read(from:)) + value.postContactSummary = try reader["PostContactSummary"].readIfPresent(with: ConnectContactLensClientTypes.PostContactSummary.read(from:)) + return value + } +} + +extension ConnectContactLensClientTypes.PostContactSummary { + + static func read(from reader: SmithyJSON.Reader) throws -> ConnectContactLensClientTypes.PostContactSummary { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = ConnectContactLensClientTypes.PostContactSummary() + value.content = try reader["Content"].readIfPresent() + value.status = try reader["Status"].readIfPresent() ?? .sdkUnknown("") + value.failureCode = try reader["FailureCode"].readIfPresent() return value } } diff --git a/Sources/Services/AWSFirehose/Sources/AWSFirehose/Models.swift b/Sources/Services/AWSFirehose/Sources/AWSFirehose/Models.swift index 13424fbc1fa..b3fd6ab0578 100644 --- a/Sources/Services/AWSFirehose/Sources/AWSFirehose/Models.swift +++ b/Sources/Services/AWSFirehose/Sources/AWSFirehose/Models.swift @@ -1181,6 +1181,22 @@ extension FirehoseClientTypes { } } +extension FirehoseClientTypes { + + /// Describes the containers where the destination Apache Iceberg Tables are persisted. Amazon Data Firehose is in preview release and is subject to change. + public struct CatalogConfiguration: Swift.Sendable { + /// Specifies the Glue catalog ARN indentifier of the destination Apache Iceberg Tables. You must specify the ARN in the format arn:aws:glue:region:account-id:catalog. Amazon Data Firehose is in preview release and is subject to change. + public var catalogARN: Swift.String? + + public init( + catalogARN: Swift.String? = nil + ) + { + self.catalogARN = catalogARN + } + } +} + /// Another modification has already happened. Fetch VersionId again and use it to update the destination. public struct ConcurrentModificationException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { @@ -2364,6 +2380,116 @@ extension FirehoseClientTypes { } } +extension FirehoseClientTypes { + + /// Describes the configuration of a destination in Apache Iceberg Tables. Amazon Data Firehose is in preview release and is subject to change. + public struct DestinationTableConfiguration: Swift.Sendable { + /// The name of the Apache Iceberg database. Amazon Data Firehose is in preview release and is subject to change. + /// This member is required. + public var destinationDatabaseName: Swift.String? + /// Specifies the name of the Apache Iceberg Table. Amazon Data Firehose is in preview release and is subject to change. + /// This member is required. + public var destinationTableName: Swift.String? + /// The table specific S3 error output prefix. All the errors that occurred while delivering to this table will be prefixed with this value in S3 destination. Amazon Data Firehose is in preview release and is subject to change. + public var s3ErrorOutputPrefix: Swift.String? + /// A list of unique keys for a given Apache Iceberg table. Firehose will use these for running Create/Update/Delete operations on the given Iceberg table. Amazon Data Firehose is in preview release and is subject to change. + public var uniqueKeys: [Swift.String]? + + public init( + destinationDatabaseName: Swift.String? = nil, + destinationTableName: Swift.String? = nil, + s3ErrorOutputPrefix: Swift.String? = nil, + uniqueKeys: [Swift.String]? = nil + ) + { + self.destinationDatabaseName = destinationDatabaseName + self.destinationTableName = destinationTableName + self.s3ErrorOutputPrefix = s3ErrorOutputPrefix + self.uniqueKeys = uniqueKeys + } + } +} + +extension FirehoseClientTypes { + + public enum IcebergS3BackupMode: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case alldata + case faileddataonly + case sdkUnknown(Swift.String) + + public static var allCases: [IcebergS3BackupMode] { + return [ + .alldata, + .faileddataonly + ] + } + + 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 .alldata: return "AllData" + case .faileddataonly: return "FailedDataOnly" + case let .sdkUnknown(s): return s + } + } + } +} + +extension FirehoseClientTypes { + + /// Specifies the destination configure settings for Apache Iceberg Table. Amazon Data Firehose is in preview release and is subject to change. + public struct IcebergDestinationConfiguration: Swift.Sendable { + /// Describes hints for the buffering to perform before delivering data to the destination. These options are treated as hints, and therefore Firehose might choose to use different values when it is optimal. The SizeInMBs and IntervalInSeconds parameters are optional. However, if specify a value for one of them, you must also provide a value for the other. + public var bufferingHints: FirehoseClientTypes.BufferingHints? + /// Configuration describing where the destination Apache Iceberg Tables are persisted. Amazon Data Firehose is in preview release and is subject to change. + /// This member is required. + public var catalogConfiguration: FirehoseClientTypes.CatalogConfiguration? + /// Describes the Amazon CloudWatch logging options for your delivery stream. + public var cloudWatchLoggingOptions: FirehoseClientTypes.CloudWatchLoggingOptions? + /// Provides a list of DestinationTableConfigurations which Firehose uses to deliver data to Apache Iceberg tables. Amazon Data Firehose is in preview release and is subject to change. + public var destinationTableConfigurationList: [FirehoseClientTypes.DestinationTableConfiguration]? + /// Describes a data processing configuration. + public var processingConfiguration: FirehoseClientTypes.ProcessingConfiguration? + /// The retry behavior in case Firehose is unable to deliver data to an Amazon S3 prefix. + public var retryOptions: FirehoseClientTypes.RetryOptions? + /// The Amazon Resource Name (ARN) of the Apache Iceberg tables role. Amazon Data Firehose is in preview release and is subject to change. + /// This member is required. + public var roleARN: Swift.String? + /// Describes how Firehose will backup records. Currently,Firehose only supports FailedDataOnly for preview. Amazon Data Firehose is in preview release and is subject to change. + public var s3BackupMode: FirehoseClientTypes.IcebergS3BackupMode? + /// Describes the configuration of a destination in Amazon S3. + /// This member is required. + public var s3Configuration: FirehoseClientTypes.S3DestinationConfiguration? + + public init( + bufferingHints: FirehoseClientTypes.BufferingHints? = nil, + catalogConfiguration: FirehoseClientTypes.CatalogConfiguration? = nil, + cloudWatchLoggingOptions: FirehoseClientTypes.CloudWatchLoggingOptions? = nil, + destinationTableConfigurationList: [FirehoseClientTypes.DestinationTableConfiguration]? = nil, + processingConfiguration: FirehoseClientTypes.ProcessingConfiguration? = nil, + retryOptions: FirehoseClientTypes.RetryOptions? = nil, + roleARN: Swift.String? = nil, + s3BackupMode: FirehoseClientTypes.IcebergS3BackupMode? = nil, + s3Configuration: FirehoseClientTypes.S3DestinationConfiguration? = nil + ) + { + self.bufferingHints = bufferingHints + self.catalogConfiguration = catalogConfiguration + self.cloudWatchLoggingOptions = cloudWatchLoggingOptions + self.destinationTableConfigurationList = destinationTableConfigurationList + self.processingConfiguration = processingConfiguration + self.retryOptions = retryOptions + self.roleARN = roleARN + self.s3BackupMode = s3BackupMode + self.s3Configuration = s3Configuration + } + } +} + extension FirehoseClientTypes { /// The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. @@ -2396,6 +2522,8 @@ extension FirehoseClientTypes { /// The ARN of the Amazon MSK cluster. /// This member is required. public var mskClusterARN: Swift.String? + /// The start date and time in UTC for the offset position within your MSK topic from where Firehose begins to read. By default, this is set to timestamp when Firehose becomes Active. If you want to create a Firehose stream with Earliest start position from SDK or CLI, you need to set the ReadFromTimestamp parameter to Epoch (1970-01-01T00:00:00Z). + public var readFromTimestamp: Foundation.Date? /// The topic name within the Amazon MSK cluster. /// This member is required. public var topicName: Swift.String? @@ -2403,11 +2531,13 @@ extension FirehoseClientTypes { public init( authenticationConfiguration: FirehoseClientTypes.AuthenticationConfiguration? = nil, mskClusterARN: Swift.String? = nil, + readFromTimestamp: Foundation.Date? = nil, topicName: Swift.String? = nil ) { self.authenticationConfiguration = authenticationConfiguration self.mskClusterARN = mskClusterARN + self.readFromTimestamp = readFromTimestamp self.topicName = topicName } } @@ -2527,6 +2657,26 @@ extension FirehoseClientTypes.RedshiftDestinationConfiguration: Swift.CustomDebu "RedshiftDestinationConfiguration(cloudWatchLoggingOptions: \(Swift.String(describing: cloudWatchLoggingOptions)), clusterJDBCURL: \(Swift.String(describing: clusterJDBCURL)), copyCommand: \(Swift.String(describing: copyCommand)), processingConfiguration: \(Swift.String(describing: processingConfiguration)), retryOptions: \(Swift.String(describing: retryOptions)), roleARN: \(Swift.String(describing: roleARN)), s3BackupConfiguration: \(Swift.String(describing: s3BackupConfiguration)), s3BackupMode: \(Swift.String(describing: s3BackupMode)), s3Configuration: \(Swift.String(describing: s3Configuration)), secretsManagerConfiguration: \(Swift.String(describing: secretsManagerConfiguration)), password: \"CONTENT_REDACTED\", username: \"CONTENT_REDACTED\")"} } +extension FirehoseClientTypes { + + /// Describes the buffering to perform before delivering data to the Snowflake destination. If you do not specify any value, Firehose uses the default values. + public struct SnowflakeBufferingHints: Swift.Sendable { + /// Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 0. + public var intervalInSeconds: Swift.Int? + /// Buffer incoming data to the specified size, in MBs, before delivering it to the destination. The default value is 1. + public var sizeInMBs: Swift.Int? + + public init( + intervalInSeconds: Swift.Int? = nil, + sizeInMBs: Swift.Int? = nil + ) + { + self.intervalInSeconds = intervalInSeconds + self.sizeInMBs = sizeInMBs + } + } +} + extension FirehoseClientTypes { public enum SnowflakeDataLoadingOption: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { @@ -2658,6 +2808,8 @@ extension FirehoseClientTypes { /// URL for accessing your Snowflake account. This URL must include your [account identifier](https://docs.snowflake.com/en/user-guide/admin-account-identifier). Note that the protocol (https://) and port number are optional. /// This member is required. public var accountUrl: Swift.String? + /// Describes the buffering to perform before delivering data to the Snowflake destination. If you do not specify any value, Firehose uses the default values. + public var bufferingHints: FirehoseClientTypes.SnowflakeBufferingHints? /// Describes the Amazon CloudWatch logging options for your delivery stream. public var cloudWatchLoggingOptions: FirehoseClientTypes.CloudWatchLoggingOptions? /// The name of the record content column @@ -2702,6 +2854,7 @@ extension FirehoseClientTypes { public init( accountUrl: Swift.String? = nil, + bufferingHints: FirehoseClientTypes.SnowflakeBufferingHints? = nil, cloudWatchLoggingOptions: FirehoseClientTypes.CloudWatchLoggingOptions? = nil, contentColumnName: Swift.String? = nil, dataLoadingOption: FirehoseClientTypes.SnowflakeDataLoadingOption? = nil, @@ -2723,6 +2876,7 @@ extension FirehoseClientTypes { ) { self.accountUrl = accountUrl + self.bufferingHints = bufferingHints self.cloudWatchLoggingOptions = cloudWatchLoggingOptions self.contentColumnName = contentColumnName self.dataLoadingOption = dataLoadingOption @@ -2747,7 +2901,7 @@ extension FirehoseClientTypes { extension FirehoseClientTypes.SnowflakeDestinationConfiguration: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "SnowflakeDestinationConfiguration(cloudWatchLoggingOptions: \(Swift.String(describing: cloudWatchLoggingOptions)), dataLoadingOption: \(Swift.String(describing: dataLoadingOption)), processingConfiguration: \(Swift.String(describing: processingConfiguration)), retryOptions: \(Swift.String(describing: retryOptions)), roleARN: \(Swift.String(describing: roleARN)), s3BackupMode: \(Swift.String(describing: s3BackupMode)), s3Configuration: \(Swift.String(describing: s3Configuration)), secretsManagerConfiguration: \(Swift.String(describing: secretsManagerConfiguration)), snowflakeRoleConfiguration: \(Swift.String(describing: snowflakeRoleConfiguration)), snowflakeVpcConfiguration: \(Swift.String(describing: snowflakeVpcConfiguration)), accountUrl: \"CONTENT_REDACTED\", contentColumnName: \"CONTENT_REDACTED\", database: \"CONTENT_REDACTED\", keyPassphrase: \"CONTENT_REDACTED\", metaDataColumnName: \"CONTENT_REDACTED\", privateKey: \"CONTENT_REDACTED\", schema: \"CONTENT_REDACTED\", table: \"CONTENT_REDACTED\", user: \"CONTENT_REDACTED\")"} + "SnowflakeDestinationConfiguration(bufferingHints: \(Swift.String(describing: bufferingHints)), cloudWatchLoggingOptions: \(Swift.String(describing: cloudWatchLoggingOptions)), dataLoadingOption: \(Swift.String(describing: dataLoadingOption)), processingConfiguration: \(Swift.String(describing: processingConfiguration)), retryOptions: \(Swift.String(describing: retryOptions)), roleARN: \(Swift.String(describing: roleARN)), s3BackupMode: \(Swift.String(describing: s3BackupMode)), s3Configuration: \(Swift.String(describing: s3Configuration)), secretsManagerConfiguration: \(Swift.String(describing: secretsManagerConfiguration)), snowflakeRoleConfiguration: \(Swift.String(describing: snowflakeRoleConfiguration)), snowflakeVpcConfiguration: \(Swift.String(describing: snowflakeVpcConfiguration)), accountUrl: \"CONTENT_REDACTED\", contentColumnName: \"CONTENT_REDACTED\", database: \"CONTENT_REDACTED\", keyPassphrase: \"CONTENT_REDACTED\", metaDataColumnName: \"CONTENT_REDACTED\", privateKey: \"CONTENT_REDACTED\", schema: \"CONTENT_REDACTED\", table: \"CONTENT_REDACTED\", user: \"CONTENT_REDACTED\")"} } extension FirehoseClientTypes { @@ -2946,6 +3100,8 @@ public struct CreateDeliveryStreamInput: Swift.Sendable { public var extendedS3DestinationConfiguration: FirehoseClientTypes.ExtendedS3DestinationConfiguration? /// Enables configuring Kinesis Firehose to deliver data to any HTTP endpoint destination. You can specify only one destination. public var httpEndpointDestinationConfiguration: FirehoseClientTypes.HttpEndpointDestinationConfiguration? + /// Configure Apache Iceberg Tables destination. Amazon Data Firehose is in preview release and is subject to change. + public var icebergDestinationConfiguration: FirehoseClientTypes.IcebergDestinationConfiguration? /// When a Kinesis data stream is used as the source for the delivery stream, a [KinesisStreamSourceConfiguration] containing the Kinesis data stream Amazon Resource Name (ARN) and the role ARN for the source stream. public var kinesisStreamSourceConfiguration: FirehoseClientTypes.KinesisStreamSourceConfiguration? /// The configuration for the Amazon MSK cluster to be used as the source for a delivery stream. @@ -2971,6 +3127,7 @@ public struct CreateDeliveryStreamInput: Swift.Sendable { elasticsearchDestinationConfiguration: FirehoseClientTypes.ElasticsearchDestinationConfiguration? = nil, extendedS3DestinationConfiguration: FirehoseClientTypes.ExtendedS3DestinationConfiguration? = nil, httpEndpointDestinationConfiguration: FirehoseClientTypes.HttpEndpointDestinationConfiguration? = nil, + icebergDestinationConfiguration: FirehoseClientTypes.IcebergDestinationConfiguration? = nil, kinesisStreamSourceConfiguration: FirehoseClientTypes.KinesisStreamSourceConfiguration? = nil, mskSourceConfiguration: FirehoseClientTypes.MSKSourceConfiguration? = nil, redshiftDestinationConfiguration: FirehoseClientTypes.RedshiftDestinationConfiguration? = nil, @@ -2988,6 +3145,7 @@ public struct CreateDeliveryStreamInput: Swift.Sendable { self.elasticsearchDestinationConfiguration = elasticsearchDestinationConfiguration self.extendedS3DestinationConfiguration = extendedS3DestinationConfiguration self.httpEndpointDestinationConfiguration = httpEndpointDestinationConfiguration + self.icebergDestinationConfiguration = icebergDestinationConfiguration self.kinesisStreamSourceConfiguration = kinesisStreamSourceConfiguration self.mskSourceConfiguration = mskSourceConfiguration self.redshiftDestinationConfiguration = redshiftDestinationConfiguration @@ -3476,6 +3634,54 @@ extension FirehoseClientTypes { } } +extension FirehoseClientTypes { + + /// Describes a destination in Apache Iceberg Tables. Amazon Data Firehose is in preview release and is subject to change. + public struct IcebergDestinationDescription: Swift.Sendable { + /// Describes hints for the buffering to perform before delivering data to the destination. These options are treated as hints, and therefore Firehose might choose to use different values when it is optimal. The SizeInMBs and IntervalInSeconds parameters are optional. However, if specify a value for one of them, you must also provide a value for the other. + public var bufferingHints: FirehoseClientTypes.BufferingHints? + /// Configuration describing where the destination Iceberg tables are persisted. Amazon Data Firehose is in preview release and is subject to change. + public var catalogConfiguration: FirehoseClientTypes.CatalogConfiguration? + /// Describes the Amazon CloudWatch logging options for your delivery stream. + public var cloudWatchLoggingOptions: FirehoseClientTypes.CloudWatchLoggingOptions? + /// Provides a list of DestinationTableConfigurations which Firehose uses to deliver data to Apache Iceberg tables. Amazon Data Firehose is in preview release and is subject to change. + public var destinationTableConfigurationList: [FirehoseClientTypes.DestinationTableConfiguration]? + /// Describes a data processing configuration. + public var processingConfiguration: FirehoseClientTypes.ProcessingConfiguration? + /// The retry behavior in case Firehose is unable to deliver data to an Amazon S3 prefix. + public var retryOptions: FirehoseClientTypes.RetryOptions? + /// The Amazon Resource Name (ARN) of the Apache Iceberg Tables role. Amazon Data Firehose is in preview release and is subject to change. + public var roleARN: Swift.String? + /// Describes how Firehose will backup records. Currently,Firehose only supports FailedDataOnly for preview. Amazon Data Firehose is in preview release and is subject to change. + public var s3BackupMode: FirehoseClientTypes.IcebergS3BackupMode? + /// Describes a destination in Amazon S3. + public var s3DestinationDescription: FirehoseClientTypes.S3DestinationDescription? + + public init( + bufferingHints: FirehoseClientTypes.BufferingHints? = nil, + catalogConfiguration: FirehoseClientTypes.CatalogConfiguration? = nil, + cloudWatchLoggingOptions: FirehoseClientTypes.CloudWatchLoggingOptions? = nil, + destinationTableConfigurationList: [FirehoseClientTypes.DestinationTableConfiguration]? = nil, + processingConfiguration: FirehoseClientTypes.ProcessingConfiguration? = nil, + retryOptions: FirehoseClientTypes.RetryOptions? = nil, + roleARN: Swift.String? = nil, + s3BackupMode: FirehoseClientTypes.IcebergS3BackupMode? = nil, + s3DestinationDescription: FirehoseClientTypes.S3DestinationDescription? = nil + ) + { + self.bufferingHints = bufferingHints + self.catalogConfiguration = catalogConfiguration + self.cloudWatchLoggingOptions = cloudWatchLoggingOptions + self.destinationTableConfigurationList = destinationTableConfigurationList + self.processingConfiguration = processingConfiguration + self.retryOptions = retryOptions + self.roleARN = roleARN + self.s3BackupMode = s3BackupMode + self.s3DestinationDescription = s3DestinationDescription + } + } +} + extension FirehoseClientTypes { /// Describes a destination in Amazon Redshift. @@ -3547,6 +3753,8 @@ extension FirehoseClientTypes { public struct SnowflakeDestinationDescription: Swift.Sendable { /// URL for accessing your Snowflake account. This URL must include your [account identifier](https://docs.snowflake.com/en/user-guide/admin-account-identifier). Note that the protocol (https://) and port number are optional. public var accountUrl: Swift.String? + /// Describes the buffering to perform before delivering data to the Snowflake destination. If you do not specify any value, Firehose uses the default values. + public var bufferingHints: FirehoseClientTypes.SnowflakeBufferingHints? /// Describes the Amazon CloudWatch logging options for your delivery stream. public var cloudWatchLoggingOptions: FirehoseClientTypes.CloudWatchLoggingOptions? /// The name of the record content column @@ -3582,6 +3790,7 @@ extension FirehoseClientTypes { public init( accountUrl: Swift.String? = nil, + bufferingHints: FirehoseClientTypes.SnowflakeBufferingHints? = nil, cloudWatchLoggingOptions: FirehoseClientTypes.CloudWatchLoggingOptions? = nil, contentColumnName: Swift.String? = nil, dataLoadingOption: FirehoseClientTypes.SnowflakeDataLoadingOption? = nil, @@ -3601,6 +3810,7 @@ extension FirehoseClientTypes { ) { self.accountUrl = accountUrl + self.bufferingHints = bufferingHints self.cloudWatchLoggingOptions = cloudWatchLoggingOptions self.contentColumnName = contentColumnName self.dataLoadingOption = dataLoadingOption @@ -3623,7 +3833,7 @@ extension FirehoseClientTypes { extension FirehoseClientTypes.SnowflakeDestinationDescription: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "SnowflakeDestinationDescription(cloudWatchLoggingOptions: \(Swift.String(describing: cloudWatchLoggingOptions)), dataLoadingOption: \(Swift.String(describing: dataLoadingOption)), processingConfiguration: \(Swift.String(describing: processingConfiguration)), retryOptions: \(Swift.String(describing: retryOptions)), roleARN: \(Swift.String(describing: roleARN)), s3BackupMode: \(Swift.String(describing: s3BackupMode)), s3DestinationDescription: \(Swift.String(describing: s3DestinationDescription)), secretsManagerConfiguration: \(Swift.String(describing: secretsManagerConfiguration)), snowflakeRoleConfiguration: \(Swift.String(describing: snowflakeRoleConfiguration)), snowflakeVpcConfiguration: \(Swift.String(describing: snowflakeVpcConfiguration)), accountUrl: \"CONTENT_REDACTED\", contentColumnName: \"CONTENT_REDACTED\", database: \"CONTENT_REDACTED\", metaDataColumnName: \"CONTENT_REDACTED\", schema: \"CONTENT_REDACTED\", table: \"CONTENT_REDACTED\", user: \"CONTENT_REDACTED\")"} + "SnowflakeDestinationDescription(bufferingHints: \(Swift.String(describing: bufferingHints)), cloudWatchLoggingOptions: \(Swift.String(describing: cloudWatchLoggingOptions)), dataLoadingOption: \(Swift.String(describing: dataLoadingOption)), processingConfiguration: \(Swift.String(describing: processingConfiguration)), retryOptions: \(Swift.String(describing: retryOptions)), roleARN: \(Swift.String(describing: roleARN)), s3BackupMode: \(Swift.String(describing: s3BackupMode)), s3DestinationDescription: \(Swift.String(describing: s3DestinationDescription)), secretsManagerConfiguration: \(Swift.String(describing: secretsManagerConfiguration)), snowflakeRoleConfiguration: \(Swift.String(describing: snowflakeRoleConfiguration)), snowflakeVpcConfiguration: \(Swift.String(describing: snowflakeVpcConfiguration)), accountUrl: \"CONTENT_REDACTED\", contentColumnName: \"CONTENT_REDACTED\", database: \"CONTENT_REDACTED\", metaDataColumnName: \"CONTENT_REDACTED\", schema: \"CONTENT_REDACTED\", table: \"CONTENT_REDACTED\", user: \"CONTENT_REDACTED\")"} } extension FirehoseClientTypes { @@ -3699,6 +3909,8 @@ extension FirehoseClientTypes { public var extendedS3DestinationDescription: FirehoseClientTypes.ExtendedS3DestinationDescription? /// Describes the specified HTTP endpoint destination. public var httpEndpointDestinationDescription: FirehoseClientTypes.HttpEndpointDestinationDescription? + /// Describes a destination in Apache Iceberg Tables. Amazon Data Firehose is in preview release and is subject to change. + public var icebergDestinationDescription: FirehoseClientTypes.IcebergDestinationDescription? /// The destination in Amazon Redshift. public var redshiftDestinationDescription: FirehoseClientTypes.RedshiftDestinationDescription? /// [Deprecated] The destination in Amazon S3. @@ -3715,6 +3927,7 @@ extension FirehoseClientTypes { elasticsearchDestinationDescription: FirehoseClientTypes.ElasticsearchDestinationDescription? = nil, extendedS3DestinationDescription: FirehoseClientTypes.ExtendedS3DestinationDescription? = nil, httpEndpointDestinationDescription: FirehoseClientTypes.HttpEndpointDestinationDescription? = nil, + icebergDestinationDescription: FirehoseClientTypes.IcebergDestinationDescription? = nil, redshiftDestinationDescription: FirehoseClientTypes.RedshiftDestinationDescription? = nil, s3DestinationDescription: FirehoseClientTypes.S3DestinationDescription? = nil, snowflakeDestinationDescription: FirehoseClientTypes.SnowflakeDestinationDescription? = nil, @@ -3727,6 +3940,7 @@ extension FirehoseClientTypes { self.elasticsearchDestinationDescription = elasticsearchDestinationDescription self.extendedS3DestinationDescription = extendedS3DestinationDescription self.httpEndpointDestinationDescription = httpEndpointDestinationDescription + self.icebergDestinationDescription = icebergDestinationDescription self.redshiftDestinationDescription = redshiftDestinationDescription self.s3DestinationDescription = s3DestinationDescription self.snowflakeDestinationDescription = snowflakeDestinationDescription @@ -3769,6 +3983,8 @@ extension FirehoseClientTypes { public var deliveryStartTimestamp: Foundation.Date? /// The ARN of the Amazon MSK cluster. public var mskClusterARN: Swift.String? + /// The start date and time in UTC for the offset position within your MSK topic from where Firehose begins to read. By default, this is set to timestamp when Firehose becomes Active. If you want to create a Firehose stream with Earliest start position from SDK or CLI, you need to set the ReadFromTimestampUTC parameter to Epoch (1970-01-01T00:00:00Z). + public var readFromTimestamp: Foundation.Date? /// The topic name within the Amazon MSK cluster. public var topicName: Swift.String? @@ -3776,12 +3992,14 @@ extension FirehoseClientTypes { authenticationConfiguration: FirehoseClientTypes.AuthenticationConfiguration? = nil, deliveryStartTimestamp: Foundation.Date? = nil, mskClusterARN: Swift.String? = nil, + readFromTimestamp: Foundation.Date? = nil, topicName: Swift.String? = nil ) { self.authenticationConfiguration = authenticationConfiguration self.deliveryStartTimestamp = deliveryStartTimestamp self.mskClusterARN = mskClusterARN + self.readFromTimestamp = readFromTimestamp self.topicName = topicName } } @@ -4434,6 +4652,54 @@ extension FirehoseClientTypes { } } +extension FirehoseClientTypes { + + /// Describes an update for a destination in Apache Iceberg Tables. Amazon Data Firehose is in preview release and is subject to change. + public struct IcebergDestinationUpdate: Swift.Sendable { + /// Describes hints for the buffering to perform before delivering data to the destination. These options are treated as hints, and therefore Firehose might choose to use different values when it is optimal. The SizeInMBs and IntervalInSeconds parameters are optional. However, if specify a value for one of them, you must also provide a value for the other. + public var bufferingHints: FirehoseClientTypes.BufferingHints? + /// Configuration describing where the destination Iceberg tables are persisted. Amazon Data Firehose is in preview release and is subject to change. + public var catalogConfiguration: FirehoseClientTypes.CatalogConfiguration? + /// Describes the Amazon CloudWatch logging options for your delivery stream. + public var cloudWatchLoggingOptions: FirehoseClientTypes.CloudWatchLoggingOptions? + /// Provides a list of DestinationTableConfigurations which Firehose uses to deliver data to Apache Iceberg tables. Amazon Data Firehose is in preview release and is subject to change. + public var destinationTableConfigurationList: [FirehoseClientTypes.DestinationTableConfiguration]? + /// Describes a data processing configuration. + public var processingConfiguration: FirehoseClientTypes.ProcessingConfiguration? + /// The retry behavior in case Firehose is unable to deliver data to an Amazon S3 prefix. + public var retryOptions: FirehoseClientTypes.RetryOptions? + /// The Amazon Resource Name (ARN) of the Apache Iceberg Tables role. Amazon Data Firehose is in preview release and is subject to change. + public var roleARN: Swift.String? + /// Describes how Firehose will backup records. Currently,Firehose only supports FailedDataOnly for preview. Amazon Data Firehose is in preview release and is subject to change. + public var s3BackupMode: FirehoseClientTypes.IcebergS3BackupMode? + /// Describes the configuration of a destination in Amazon S3. + public var s3Configuration: FirehoseClientTypes.S3DestinationConfiguration? + + public init( + bufferingHints: FirehoseClientTypes.BufferingHints? = nil, + catalogConfiguration: FirehoseClientTypes.CatalogConfiguration? = nil, + cloudWatchLoggingOptions: FirehoseClientTypes.CloudWatchLoggingOptions? = nil, + destinationTableConfigurationList: [FirehoseClientTypes.DestinationTableConfiguration]? = nil, + processingConfiguration: FirehoseClientTypes.ProcessingConfiguration? = nil, + retryOptions: FirehoseClientTypes.RetryOptions? = nil, + roleARN: Swift.String? = nil, + s3BackupMode: FirehoseClientTypes.IcebergS3BackupMode? = nil, + s3Configuration: FirehoseClientTypes.S3DestinationConfiguration? = nil + ) + { + self.bufferingHints = bufferingHints + self.catalogConfiguration = catalogConfiguration + self.cloudWatchLoggingOptions = cloudWatchLoggingOptions + self.destinationTableConfigurationList = destinationTableConfigurationList + self.processingConfiguration = processingConfiguration + self.retryOptions = retryOptions + self.roleARN = roleARN + self.s3BackupMode = s3BackupMode + self.s3Configuration = s3Configuration + } + } +} + extension FirehoseClientTypes { /// Describes an update for a destination in Amazon Redshift. @@ -4505,6 +4771,8 @@ extension FirehoseClientTypes { public struct SnowflakeDestinationUpdate: Swift.Sendable { /// URL for accessing your Snowflake account. This URL must include your [account identifier](https://docs.snowflake.com/en/user-guide/admin-account-identifier). Note that the protocol (https://) and port number are optional. public var accountUrl: Swift.String? + /// Describes the buffering to perform before delivering data to the Snowflake destination. + public var bufferingHints: FirehoseClientTypes.SnowflakeBufferingHints? /// Describes the Amazon CloudWatch logging options for your delivery stream. public var cloudWatchLoggingOptions: FirehoseClientTypes.CloudWatchLoggingOptions? /// The name of the content metadata column @@ -4542,6 +4810,7 @@ extension FirehoseClientTypes { public init( accountUrl: Swift.String? = nil, + bufferingHints: FirehoseClientTypes.SnowflakeBufferingHints? = nil, cloudWatchLoggingOptions: FirehoseClientTypes.CloudWatchLoggingOptions? = nil, contentColumnName: Swift.String? = nil, dataLoadingOption: FirehoseClientTypes.SnowflakeDataLoadingOption? = nil, @@ -4562,6 +4831,7 @@ extension FirehoseClientTypes { ) { self.accountUrl = accountUrl + self.bufferingHints = bufferingHints self.cloudWatchLoggingOptions = cloudWatchLoggingOptions self.contentColumnName = contentColumnName self.dataLoadingOption = dataLoadingOption @@ -4585,7 +4855,7 @@ extension FirehoseClientTypes { extension FirehoseClientTypes.SnowflakeDestinationUpdate: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "SnowflakeDestinationUpdate(cloudWatchLoggingOptions: \(Swift.String(describing: cloudWatchLoggingOptions)), dataLoadingOption: \(Swift.String(describing: dataLoadingOption)), processingConfiguration: \(Swift.String(describing: processingConfiguration)), retryOptions: \(Swift.String(describing: retryOptions)), roleARN: \(Swift.String(describing: roleARN)), s3BackupMode: \(Swift.String(describing: s3BackupMode)), s3Update: \(Swift.String(describing: s3Update)), secretsManagerConfiguration: \(Swift.String(describing: secretsManagerConfiguration)), snowflakeRoleConfiguration: \(Swift.String(describing: snowflakeRoleConfiguration)), accountUrl: \"CONTENT_REDACTED\", contentColumnName: \"CONTENT_REDACTED\", database: \"CONTENT_REDACTED\", keyPassphrase: \"CONTENT_REDACTED\", metaDataColumnName: \"CONTENT_REDACTED\", privateKey: \"CONTENT_REDACTED\", schema: \"CONTENT_REDACTED\", table: \"CONTENT_REDACTED\", user: \"CONTENT_REDACTED\")"} + "SnowflakeDestinationUpdate(bufferingHints: \(Swift.String(describing: bufferingHints)), cloudWatchLoggingOptions: \(Swift.String(describing: cloudWatchLoggingOptions)), dataLoadingOption: \(Swift.String(describing: dataLoadingOption)), processingConfiguration: \(Swift.String(describing: processingConfiguration)), retryOptions: \(Swift.String(describing: retryOptions)), roleARN: \(Swift.String(describing: roleARN)), s3BackupMode: \(Swift.String(describing: s3BackupMode)), s3Update: \(Swift.String(describing: s3Update)), secretsManagerConfiguration: \(Swift.String(describing: secretsManagerConfiguration)), snowflakeRoleConfiguration: \(Swift.String(describing: snowflakeRoleConfiguration)), accountUrl: \"CONTENT_REDACTED\", contentColumnName: \"CONTENT_REDACTED\", database: \"CONTENT_REDACTED\", keyPassphrase: \"CONTENT_REDACTED\", metaDataColumnName: \"CONTENT_REDACTED\", privateKey: \"CONTENT_REDACTED\", schema: \"CONTENT_REDACTED\", table: \"CONTENT_REDACTED\", user: \"CONTENT_REDACTED\")"} } extension FirehoseClientTypes { @@ -4664,6 +4934,8 @@ public struct UpdateDestinationInput: Swift.Sendable { public var extendedS3DestinationUpdate: FirehoseClientTypes.ExtendedS3DestinationUpdate? /// Describes an update to the specified HTTP endpoint destination. public var httpEndpointDestinationUpdate: FirehoseClientTypes.HttpEndpointDestinationUpdate? + /// Describes an update for a destination in Apache Iceberg Tables. Amazon Data Firehose is in preview release and is subject to change. + public var icebergDestinationUpdate: FirehoseClientTypes.IcebergDestinationUpdate? /// Describes an update for a destination in Amazon Redshift. public var redshiftDestinationUpdate: FirehoseClientTypes.RedshiftDestinationUpdate? /// [Deprecated] Describes an update for a destination in Amazon S3. @@ -4683,6 +4955,7 @@ public struct UpdateDestinationInput: Swift.Sendable { elasticsearchDestinationUpdate: FirehoseClientTypes.ElasticsearchDestinationUpdate? = nil, extendedS3DestinationUpdate: FirehoseClientTypes.ExtendedS3DestinationUpdate? = nil, httpEndpointDestinationUpdate: FirehoseClientTypes.HttpEndpointDestinationUpdate? = nil, + icebergDestinationUpdate: FirehoseClientTypes.IcebergDestinationUpdate? = nil, redshiftDestinationUpdate: FirehoseClientTypes.RedshiftDestinationUpdate? = nil, s3DestinationUpdate: FirehoseClientTypes.S3DestinationUpdate? = nil, snowflakeDestinationUpdate: FirehoseClientTypes.SnowflakeDestinationUpdate? = nil, @@ -4697,6 +4970,7 @@ public struct UpdateDestinationInput: Swift.Sendable { self.elasticsearchDestinationUpdate = elasticsearchDestinationUpdate self.extendedS3DestinationUpdate = extendedS3DestinationUpdate self.httpEndpointDestinationUpdate = httpEndpointDestinationUpdate + self.icebergDestinationUpdate = icebergDestinationUpdate self.redshiftDestinationUpdate = redshiftDestinationUpdate self.s3DestinationUpdate = s3DestinationUpdate self.snowflakeDestinationUpdate = snowflakeDestinationUpdate @@ -4805,6 +5079,7 @@ extension CreateDeliveryStreamInput { try writer["ElasticsearchDestinationConfiguration"].write(value.elasticsearchDestinationConfiguration, with: FirehoseClientTypes.ElasticsearchDestinationConfiguration.write(value:to:)) try writer["ExtendedS3DestinationConfiguration"].write(value.extendedS3DestinationConfiguration, with: FirehoseClientTypes.ExtendedS3DestinationConfiguration.write(value:to:)) try writer["HttpEndpointDestinationConfiguration"].write(value.httpEndpointDestinationConfiguration, with: FirehoseClientTypes.HttpEndpointDestinationConfiguration.write(value:to:)) + try writer["IcebergDestinationConfiguration"].write(value.icebergDestinationConfiguration, with: FirehoseClientTypes.IcebergDestinationConfiguration.write(value:to:)) try writer["KinesisStreamSourceConfiguration"].write(value.kinesisStreamSourceConfiguration, with: FirehoseClientTypes.KinesisStreamSourceConfiguration.write(value:to:)) try writer["MSKSourceConfiguration"].write(value.mskSourceConfiguration, with: FirehoseClientTypes.MSKSourceConfiguration.write(value:to:)) try writer["RedshiftDestinationConfiguration"].write(value.redshiftDestinationConfiguration, with: FirehoseClientTypes.RedshiftDestinationConfiguration.write(value:to:)) @@ -4919,6 +5194,7 @@ extension UpdateDestinationInput { try writer["ElasticsearchDestinationUpdate"].write(value.elasticsearchDestinationUpdate, with: FirehoseClientTypes.ElasticsearchDestinationUpdate.write(value:to:)) try writer["ExtendedS3DestinationUpdate"].write(value.extendedS3DestinationUpdate, with: FirehoseClientTypes.ExtendedS3DestinationUpdate.write(value:to:)) try writer["HttpEndpointDestinationUpdate"].write(value.httpEndpointDestinationUpdate, with: FirehoseClientTypes.HttpEndpointDestinationUpdate.write(value:to:)) + try writer["IcebergDestinationUpdate"].write(value.icebergDestinationUpdate, with: FirehoseClientTypes.IcebergDestinationUpdate.write(value:to:)) try writer["RedshiftDestinationUpdate"].write(value.redshiftDestinationUpdate, with: FirehoseClientTypes.RedshiftDestinationUpdate.write(value:to:)) try writer["S3DestinationUpdate"].write(value.s3DestinationUpdate, with: FirehoseClientTypes.S3DestinationUpdate.write(value:to:)) try writer["SnowflakeDestinationUpdate"].write(value.snowflakeDestinationUpdate, with: FirehoseClientTypes.SnowflakeDestinationUpdate.write(value:to:)) @@ -5384,38 +5660,42 @@ extension FirehoseClientTypes.DestinationDescription { value.httpEndpointDestinationDescription = try reader["HttpEndpointDestinationDescription"].readIfPresent(with: FirehoseClientTypes.HttpEndpointDestinationDescription.read(from:)) value.snowflakeDestinationDescription = try reader["SnowflakeDestinationDescription"].readIfPresent(with: FirehoseClientTypes.SnowflakeDestinationDescription.read(from:)) value.amazonOpenSearchServerlessDestinationDescription = try reader["AmazonOpenSearchServerlessDestinationDescription"].readIfPresent(with: FirehoseClientTypes.AmazonOpenSearchServerlessDestinationDescription.read(from:)) + value.icebergDestinationDescription = try reader["IcebergDestinationDescription"].readIfPresent(with: FirehoseClientTypes.IcebergDestinationDescription.read(from:)) return value } } -extension FirehoseClientTypes.AmazonOpenSearchServerlessDestinationDescription { +extension FirehoseClientTypes.IcebergDestinationDescription { - static func read(from reader: SmithyJSON.Reader) throws -> FirehoseClientTypes.AmazonOpenSearchServerlessDestinationDescription { + static func read(from reader: SmithyJSON.Reader) throws -> FirehoseClientTypes.IcebergDestinationDescription { guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } - var value = FirehoseClientTypes.AmazonOpenSearchServerlessDestinationDescription() - value.roleARN = try reader["RoleARN"].readIfPresent() - value.collectionEndpoint = try reader["CollectionEndpoint"].readIfPresent() - value.indexName = try reader["IndexName"].readIfPresent() - value.bufferingHints = try reader["BufferingHints"].readIfPresent(with: FirehoseClientTypes.AmazonOpenSearchServerlessBufferingHints.read(from:)) - value.retryOptions = try reader["RetryOptions"].readIfPresent(with: FirehoseClientTypes.AmazonOpenSearchServerlessRetryOptions.read(from:)) + var value = FirehoseClientTypes.IcebergDestinationDescription() + value.destinationTableConfigurationList = try reader["DestinationTableConfigurationList"].readListIfPresent(memberReadingClosure: FirehoseClientTypes.DestinationTableConfiguration.read(from:), memberNodeInfo: "member", isFlattened: false) + value.bufferingHints = try reader["BufferingHints"].readIfPresent(with: FirehoseClientTypes.BufferingHints.read(from:)) + value.cloudWatchLoggingOptions = try reader["CloudWatchLoggingOptions"].readIfPresent(with: FirehoseClientTypes.CloudWatchLoggingOptions.read(from:)) + value.processingConfiguration = try reader["ProcessingConfiguration"].readIfPresent(with: FirehoseClientTypes.ProcessingConfiguration.read(from:)) value.s3BackupMode = try reader["S3BackupMode"].readIfPresent() + value.retryOptions = try reader["RetryOptions"].readIfPresent(with: FirehoseClientTypes.RetryOptions.read(from:)) + value.roleARN = try reader["RoleARN"].readIfPresent() + value.catalogConfiguration = try reader["CatalogConfiguration"].readIfPresent(with: FirehoseClientTypes.CatalogConfiguration.read(from:)) value.s3DestinationDescription = try reader["S3DestinationDescription"].readIfPresent(with: FirehoseClientTypes.S3DestinationDescription.read(from:)) - value.processingConfiguration = try reader["ProcessingConfiguration"].readIfPresent(with: FirehoseClientTypes.ProcessingConfiguration.read(from:)) - value.cloudWatchLoggingOptions = try reader["CloudWatchLoggingOptions"].readIfPresent(with: FirehoseClientTypes.CloudWatchLoggingOptions.read(from:)) - value.vpcConfigurationDescription = try reader["VpcConfigurationDescription"].readIfPresent(with: FirehoseClientTypes.VpcConfigurationDescription.read(from:)) return value } } -extension FirehoseClientTypes.VpcConfigurationDescription { +extension FirehoseClientTypes.S3DestinationDescription { - static func read(from reader: SmithyJSON.Reader) throws -> FirehoseClientTypes.VpcConfigurationDescription { + static func read(from reader: SmithyJSON.Reader) throws -> FirehoseClientTypes.S3DestinationDescription { guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } - var value = FirehoseClientTypes.VpcConfigurationDescription() - value.subnetIds = try reader["SubnetIds"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) ?? [] + var value = FirehoseClientTypes.S3DestinationDescription() value.roleARN = try reader["RoleARN"].readIfPresent() ?? "" - value.securityGroupIds = try reader["SecurityGroupIds"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) ?? [] - value.vpcId = try reader["VpcId"].readIfPresent() ?? "" + value.bucketARN = try reader["BucketARN"].readIfPresent() ?? "" + value.`prefix` = try reader["Prefix"].readIfPresent() + value.errorOutputPrefix = try reader["ErrorOutputPrefix"].readIfPresent() + value.bufferingHints = try reader["BufferingHints"].readIfPresent(with: FirehoseClientTypes.BufferingHints.read(from:)) + value.compressionFormat = try reader["CompressionFormat"].readIfPresent() ?? .sdkUnknown("") + value.encryptionConfiguration = try reader["EncryptionConfiguration"].readIfPresent(with: FirehoseClientTypes.EncryptionConfiguration.read(from:)) + value.cloudWatchLoggingOptions = try reader["CloudWatchLoggingOptions"].readIfPresent(with: FirehoseClientTypes.CloudWatchLoggingOptions.read(from:)) return value } } @@ -5439,6 +5719,85 @@ extension FirehoseClientTypes.CloudWatchLoggingOptions { } } +extension FirehoseClientTypes.EncryptionConfiguration { + + static func write(value: FirehoseClientTypes.EncryptionConfiguration?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["KMSEncryptionConfig"].write(value.kmsEncryptionConfig, with: FirehoseClientTypes.KMSEncryptionConfig.write(value:to:)) + try writer["NoEncryptionConfig"].write(value.noEncryptionConfig) + } + + static func read(from reader: SmithyJSON.Reader) throws -> FirehoseClientTypes.EncryptionConfiguration { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = FirehoseClientTypes.EncryptionConfiguration() + value.noEncryptionConfig = try reader["NoEncryptionConfig"].readIfPresent() + value.kmsEncryptionConfig = try reader["KMSEncryptionConfig"].readIfPresent(with: FirehoseClientTypes.KMSEncryptionConfig.read(from:)) + return value + } +} + +extension FirehoseClientTypes.KMSEncryptionConfig { + + static func write(value: FirehoseClientTypes.KMSEncryptionConfig?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["AWSKMSKeyARN"].write(value.awskmsKeyARN) + } + + static func read(from reader: SmithyJSON.Reader) throws -> FirehoseClientTypes.KMSEncryptionConfig { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = FirehoseClientTypes.KMSEncryptionConfig() + value.awskmsKeyARN = try reader["AWSKMSKeyARN"].readIfPresent() ?? "" + return value + } +} + +extension FirehoseClientTypes.BufferingHints { + + static func write(value: FirehoseClientTypes.BufferingHints?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["IntervalInSeconds"].write(value.intervalInSeconds) + try writer["SizeInMBs"].write(value.sizeInMBs) + } + + static func read(from reader: SmithyJSON.Reader) throws -> FirehoseClientTypes.BufferingHints { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = FirehoseClientTypes.BufferingHints() + value.sizeInMBs = try reader["SizeInMBs"].readIfPresent() + value.intervalInSeconds = try reader["IntervalInSeconds"].readIfPresent() + return value + } +} + +extension FirehoseClientTypes.CatalogConfiguration { + + static func write(value: FirehoseClientTypes.CatalogConfiguration?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["CatalogARN"].write(value.catalogARN) + } + + static func read(from reader: SmithyJSON.Reader) throws -> FirehoseClientTypes.CatalogConfiguration { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = FirehoseClientTypes.CatalogConfiguration() + value.catalogARN = try reader["CatalogARN"].readIfPresent() + return value + } +} + +extension FirehoseClientTypes.RetryOptions { + + static func write(value: FirehoseClientTypes.RetryOptions?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["DurationInSeconds"].write(value.durationInSeconds) + } + + static func read(from reader: SmithyJSON.Reader) throws -> FirehoseClientTypes.RetryOptions { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = FirehoseClientTypes.RetryOptions() + value.durationInSeconds = try reader["DurationInSeconds"].readIfPresent() + return value + } +} + extension FirehoseClientTypes.ProcessingConfiguration { static func write(value: FirehoseClientTypes.ProcessingConfiguration?, to writer: SmithyJSON.Writer) throws { @@ -5490,68 +5849,55 @@ extension FirehoseClientTypes.ProcessorParameter { } } -extension FirehoseClientTypes.S3DestinationDescription { - - static func read(from reader: SmithyJSON.Reader) throws -> FirehoseClientTypes.S3DestinationDescription { - guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } - var value = FirehoseClientTypes.S3DestinationDescription() - value.roleARN = try reader["RoleARN"].readIfPresent() ?? "" - value.bucketARN = try reader["BucketARN"].readIfPresent() ?? "" - value.`prefix` = try reader["Prefix"].readIfPresent() - value.errorOutputPrefix = try reader["ErrorOutputPrefix"].readIfPresent() - value.bufferingHints = try reader["BufferingHints"].readIfPresent(with: FirehoseClientTypes.BufferingHints.read(from:)) - value.compressionFormat = try reader["CompressionFormat"].readIfPresent() ?? .sdkUnknown("") - value.encryptionConfiguration = try reader["EncryptionConfiguration"].readIfPresent(with: FirehoseClientTypes.EncryptionConfiguration.read(from:)) - value.cloudWatchLoggingOptions = try reader["CloudWatchLoggingOptions"].readIfPresent(with: FirehoseClientTypes.CloudWatchLoggingOptions.read(from:)) - return value - } -} - -extension FirehoseClientTypes.EncryptionConfiguration { +extension FirehoseClientTypes.DestinationTableConfiguration { - static func write(value: FirehoseClientTypes.EncryptionConfiguration?, to writer: SmithyJSON.Writer) throws { + static func write(value: FirehoseClientTypes.DestinationTableConfiguration?, to writer: SmithyJSON.Writer) throws { guard let value else { return } - try writer["KMSEncryptionConfig"].write(value.kmsEncryptionConfig, with: FirehoseClientTypes.KMSEncryptionConfig.write(value:to:)) - try writer["NoEncryptionConfig"].write(value.noEncryptionConfig) + try writer["DestinationDatabaseName"].write(value.destinationDatabaseName) + try writer["DestinationTableName"].write(value.destinationTableName) + try writer["S3ErrorOutputPrefix"].write(value.s3ErrorOutputPrefix) + try writer["UniqueKeys"].writeList(value.uniqueKeys, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) } - static func read(from reader: SmithyJSON.Reader) throws -> FirehoseClientTypes.EncryptionConfiguration { + static func read(from reader: SmithyJSON.Reader) throws -> FirehoseClientTypes.DestinationTableConfiguration { guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } - var value = FirehoseClientTypes.EncryptionConfiguration() - value.noEncryptionConfig = try reader["NoEncryptionConfig"].readIfPresent() - value.kmsEncryptionConfig = try reader["KMSEncryptionConfig"].readIfPresent(with: FirehoseClientTypes.KMSEncryptionConfig.read(from:)) + var value = FirehoseClientTypes.DestinationTableConfiguration() + value.destinationTableName = try reader["DestinationTableName"].readIfPresent() ?? "" + value.destinationDatabaseName = try reader["DestinationDatabaseName"].readIfPresent() ?? "" + value.uniqueKeys = try reader["UniqueKeys"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) + value.s3ErrorOutputPrefix = try reader["S3ErrorOutputPrefix"].readIfPresent() return value } } -extension FirehoseClientTypes.KMSEncryptionConfig { - - static func write(value: FirehoseClientTypes.KMSEncryptionConfig?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["AWSKMSKeyARN"].write(value.awskmsKeyARN) - } +extension FirehoseClientTypes.AmazonOpenSearchServerlessDestinationDescription { - static func read(from reader: SmithyJSON.Reader) throws -> FirehoseClientTypes.KMSEncryptionConfig { + static func read(from reader: SmithyJSON.Reader) throws -> FirehoseClientTypes.AmazonOpenSearchServerlessDestinationDescription { guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } - var value = FirehoseClientTypes.KMSEncryptionConfig() - value.awskmsKeyARN = try reader["AWSKMSKeyARN"].readIfPresent() ?? "" + var value = FirehoseClientTypes.AmazonOpenSearchServerlessDestinationDescription() + value.roleARN = try reader["RoleARN"].readIfPresent() + value.collectionEndpoint = try reader["CollectionEndpoint"].readIfPresent() + value.indexName = try reader["IndexName"].readIfPresent() + value.bufferingHints = try reader["BufferingHints"].readIfPresent(with: FirehoseClientTypes.AmazonOpenSearchServerlessBufferingHints.read(from:)) + value.retryOptions = try reader["RetryOptions"].readIfPresent(with: FirehoseClientTypes.AmazonOpenSearchServerlessRetryOptions.read(from:)) + value.s3BackupMode = try reader["S3BackupMode"].readIfPresent() + value.s3DestinationDescription = try reader["S3DestinationDescription"].readIfPresent(with: FirehoseClientTypes.S3DestinationDescription.read(from:)) + value.processingConfiguration = try reader["ProcessingConfiguration"].readIfPresent(with: FirehoseClientTypes.ProcessingConfiguration.read(from:)) + value.cloudWatchLoggingOptions = try reader["CloudWatchLoggingOptions"].readIfPresent(with: FirehoseClientTypes.CloudWatchLoggingOptions.read(from:)) + value.vpcConfigurationDescription = try reader["VpcConfigurationDescription"].readIfPresent(with: FirehoseClientTypes.VpcConfigurationDescription.read(from:)) return value } } -extension FirehoseClientTypes.BufferingHints { - - static func write(value: FirehoseClientTypes.BufferingHints?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["IntervalInSeconds"].write(value.intervalInSeconds) - try writer["SizeInMBs"].write(value.sizeInMBs) - } +extension FirehoseClientTypes.VpcConfigurationDescription { - static func read(from reader: SmithyJSON.Reader) throws -> FirehoseClientTypes.BufferingHints { + static func read(from reader: SmithyJSON.Reader) throws -> FirehoseClientTypes.VpcConfigurationDescription { guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } - var value = FirehoseClientTypes.BufferingHints() - value.sizeInMBs = try reader["SizeInMBs"].readIfPresent() - value.intervalInSeconds = try reader["IntervalInSeconds"].readIfPresent() + var value = FirehoseClientTypes.VpcConfigurationDescription() + value.subnetIds = try reader["SubnetIds"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) ?? [] + value.roleARN = try reader["RoleARN"].readIfPresent() ?? "" + value.securityGroupIds = try reader["SecurityGroupIds"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) ?? [] + value.vpcId = try reader["VpcId"].readIfPresent() ?? "" return value } } @@ -5610,6 +5956,24 @@ extension FirehoseClientTypes.SnowflakeDestinationDescription { value.s3BackupMode = try reader["S3BackupMode"].readIfPresent() value.s3DestinationDescription = try reader["S3DestinationDescription"].readIfPresent(with: FirehoseClientTypes.S3DestinationDescription.read(from:)) value.secretsManagerConfiguration = try reader["SecretsManagerConfiguration"].readIfPresent(with: FirehoseClientTypes.SecretsManagerConfiguration.read(from:)) + value.bufferingHints = try reader["BufferingHints"].readIfPresent(with: FirehoseClientTypes.SnowflakeBufferingHints.read(from:)) + return value + } +} + +extension FirehoseClientTypes.SnowflakeBufferingHints { + + static func write(value: FirehoseClientTypes.SnowflakeBufferingHints?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["IntervalInSeconds"].write(value.intervalInSeconds) + try writer["SizeInMBs"].write(value.sizeInMBs) + } + + static func read(from reader: SmithyJSON.Reader) throws -> FirehoseClientTypes.SnowflakeBufferingHints { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = FirehoseClientTypes.SnowflakeBufferingHints() + value.sizeInMBs = try reader["SizeInMBs"].readIfPresent() + value.intervalInSeconds = try reader["IntervalInSeconds"].readIfPresent() return value } } @@ -6048,21 +6412,6 @@ extension FirehoseClientTypes.DynamicPartitioningConfiguration { } } -extension FirehoseClientTypes.RetryOptions { - - static func write(value: FirehoseClientTypes.RetryOptions?, to writer: SmithyJSON.Writer) throws { - guard let value else { return } - try writer["DurationInSeconds"].write(value.durationInSeconds) - } - - static func read(from reader: SmithyJSON.Reader) throws -> FirehoseClientTypes.RetryOptions { - guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } - var value = FirehoseClientTypes.RetryOptions() - value.durationInSeconds = try reader["DurationInSeconds"].readIfPresent() - return value - } -} - extension FirehoseClientTypes.DataFormatConversionConfiguration { static func write(value: FirehoseClientTypes.DataFormatConversionConfiguration?, to writer: SmithyJSON.Writer) throws { @@ -6285,6 +6634,7 @@ extension FirehoseClientTypes.MSKSourceDescription { value.topicName = try reader["TopicName"].readIfPresent() value.authenticationConfiguration = try reader["AuthenticationConfiguration"].readIfPresent(with: FirehoseClientTypes.AuthenticationConfiguration.read(from:)) value.deliveryStartTimestamp = try reader["DeliveryStartTimestamp"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) + value.readFromTimestamp = try reader["ReadFromTimestamp"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) return value } } @@ -6565,6 +6915,7 @@ extension FirehoseClientTypes.MSKSourceConfiguration { guard let value else { return } try writer["AuthenticationConfiguration"].write(value.authenticationConfiguration, with: FirehoseClientTypes.AuthenticationConfiguration.write(value:to:)) try writer["MSKClusterARN"].write(value.mskClusterARN) + try writer["ReadFromTimestamp"].writeTimestamp(value.readFromTimestamp, format: SmithyTimestamps.TimestampFormat.epochSeconds) try writer["TopicName"].write(value.topicName) } } @@ -6574,6 +6925,7 @@ extension FirehoseClientTypes.SnowflakeDestinationConfiguration { static func write(value: FirehoseClientTypes.SnowflakeDestinationConfiguration?, to writer: SmithyJSON.Writer) throws { guard let value else { return } try writer["AccountUrl"].write(value.accountUrl) + try writer["BufferingHints"].write(value.bufferingHints, with: FirehoseClientTypes.SnowflakeBufferingHints.write(value:to:)) try writer["CloudWatchLoggingOptions"].write(value.cloudWatchLoggingOptions, with: FirehoseClientTypes.CloudWatchLoggingOptions.write(value:to:)) try writer["ContentColumnName"].write(value.contentColumnName) try writer["DataLoadingOption"].write(value.dataLoadingOption) @@ -6595,6 +6947,22 @@ extension FirehoseClientTypes.SnowflakeDestinationConfiguration { } } +extension FirehoseClientTypes.IcebergDestinationConfiguration { + + static func write(value: FirehoseClientTypes.IcebergDestinationConfiguration?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["BufferingHints"].write(value.bufferingHints, with: FirehoseClientTypes.BufferingHints.write(value:to:)) + try writer["CatalogConfiguration"].write(value.catalogConfiguration, with: FirehoseClientTypes.CatalogConfiguration.write(value:to:)) + try writer["CloudWatchLoggingOptions"].write(value.cloudWatchLoggingOptions, with: FirehoseClientTypes.CloudWatchLoggingOptions.write(value:to:)) + try writer["DestinationTableConfigurationList"].writeList(value.destinationTableConfigurationList, memberWritingClosure: FirehoseClientTypes.DestinationTableConfiguration.write(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["ProcessingConfiguration"].write(value.processingConfiguration, with: FirehoseClientTypes.ProcessingConfiguration.write(value:to:)) + try writer["RetryOptions"].write(value.retryOptions, with: FirehoseClientTypes.RetryOptions.write(value:to:)) + try writer["RoleARN"].write(value.roleARN) + try writer["S3BackupMode"].write(value.s3BackupMode) + try writer["S3Configuration"].write(value.s3Configuration, with: FirehoseClientTypes.S3DestinationConfiguration.write(value:to:)) + } +} + extension FirehoseClientTypes.Record { static func write(value: FirehoseClientTypes.Record?, to writer: SmithyJSON.Writer) throws { @@ -6752,6 +7120,7 @@ extension FirehoseClientTypes.SnowflakeDestinationUpdate { static func write(value: FirehoseClientTypes.SnowflakeDestinationUpdate?, to writer: SmithyJSON.Writer) throws { guard let value else { return } try writer["AccountUrl"].write(value.accountUrl) + try writer["BufferingHints"].write(value.bufferingHints, with: FirehoseClientTypes.SnowflakeBufferingHints.write(value:to:)) try writer["CloudWatchLoggingOptions"].write(value.cloudWatchLoggingOptions, with: FirehoseClientTypes.CloudWatchLoggingOptions.write(value:to:)) try writer["ContentColumnName"].write(value.contentColumnName) try writer["DataLoadingOption"].write(value.dataLoadingOption) @@ -6772,4 +7141,20 @@ extension FirehoseClientTypes.SnowflakeDestinationUpdate { } } +extension FirehoseClientTypes.IcebergDestinationUpdate { + + static func write(value: FirehoseClientTypes.IcebergDestinationUpdate?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["BufferingHints"].write(value.bufferingHints, with: FirehoseClientTypes.BufferingHints.write(value:to:)) + try writer["CatalogConfiguration"].write(value.catalogConfiguration, with: FirehoseClientTypes.CatalogConfiguration.write(value:to:)) + try writer["CloudWatchLoggingOptions"].write(value.cloudWatchLoggingOptions, with: FirehoseClientTypes.CloudWatchLoggingOptions.write(value:to:)) + try writer["DestinationTableConfigurationList"].writeList(value.destinationTableConfigurationList, memberWritingClosure: FirehoseClientTypes.DestinationTableConfiguration.write(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["ProcessingConfiguration"].write(value.processingConfiguration, with: FirehoseClientTypes.ProcessingConfiguration.write(value:to:)) + try writer["RetryOptions"].write(value.retryOptions, with: FirehoseClientTypes.RetryOptions.write(value:to:)) + try writer["RoleARN"].write(value.roleARN) + try writer["S3BackupMode"].write(value.s3BackupMode) + try writer["S3Configuration"].write(value.s3Configuration, with: FirehoseClientTypes.S3DestinationConfiguration.write(value:to:)) + } +} + public enum FirehoseClientTypes {} diff --git a/Sources/Services/AWSIvs/Sources/AWSIvs/Models.swift b/Sources/Services/AWSIvs/Sources/AWSIvs/Models.swift index a3368f4cc6c..76676819f97 100644 --- a/Sources/Services/AWSIvs/Sources/AWSIvs/Models.swift +++ b/Sources/Services/AWSIvs/Sources/AWSIvs/Models.swift @@ -1653,6 +1653,14 @@ extension IvsClientTypes { /// Object specifying a stream’s events. For a list of events, see [Using Amazon EventBridge with Amazon IVS](https://docs.aws.amazon.com/ivs/latest/userguide/eventbridge.html). public struct StreamEvent: Swift.Sendable { + /// Provides additional details about the stream event. There are several values; note that the long descriptions are provided in the IVS console but not delivered through the IVS API or EventBridge: + /// + /// * StreamTakeoverMediaMismatch — The broadcast client attempted to take over with different media properties (e.g., codec, resolution, or video track type) from the original stream. + /// + /// * StreamTakeoverInvalidPriority — The broadcast client attempted a takeover with either a priority integer value equal to or lower than the original stream's value or a value outside the allowed range of 1 to 2,147,483,647. + /// + /// * StreamTakeoverLimitBreached — The broadcast client reached the maximum allowed takeover attempts for this stream. + public var code: Swift.String? /// Time when the event occurred. This is an ISO 8601 timestamp; note that this is returned as a string. public var eventTime: Foundation.Date? /// Name that identifies the stream event within a type. @@ -1661,11 +1669,13 @@ extension IvsClientTypes { public var type: Swift.String? public init( + code: Swift.String? = nil, eventTime: Foundation.Date? = nil, name: Swift.String? = nil, type: Swift.String? = nil ) { + self.code = code self.eventTime = eventTime self.name = name self.type = type @@ -4436,6 +4446,7 @@ extension IvsClientTypes.StreamEvent { value.name = try reader["name"].readIfPresent() value.type = try reader["type"].readIfPresent() value.eventTime = try reader["eventTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) + value.code = try reader["code"].readIfPresent() return value } } diff --git a/Sources/Services/AWSMedicalImaging/Sources/AWSMedicalImaging/MedicalImagingClient.swift b/Sources/Services/AWSMedicalImaging/Sources/AWSMedicalImaging/MedicalImagingClient.swift index d2b76c7fed1..826970c295b 100644 --- a/Sources/Services/AWSMedicalImaging/Sources/AWSMedicalImaging/MedicalImagingClient.swift +++ b/Sources/Services/AWSMedicalImaging/Sources/AWSMedicalImaging/MedicalImagingClient.swift @@ -243,6 +243,7 @@ extension MedicalImagingClient { } builder.interceptors.add(ClientRuntime.URLPathMiddleware(CopyImageSetInput.urlPathProvider(_:))) builder.interceptors.add(ClientRuntime.URLHostMiddleware(hostPrefix: "runtime-")) + builder.serialize(ClientRuntime.QueryItemMiddleware(CopyImageSetInput.queryItemProvider(_:))) builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) builder.serialize(ClientRuntime.PayloadBodyMiddleware(rootNodeInfo: "", inputWritingClosure: MedicalImagingClientTypes.CopyImageSetInformation.write(value:to:), keyPath: \.copyImageSetInformation, defaultBody: "{}")) builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) diff --git a/Sources/Services/AWSMedicalImaging/Sources/AWSMedicalImaging/Models.swift b/Sources/Services/AWSMedicalImaging/Sources/AWSMedicalImaging/Models.swift index c8c930ca526..35eb52d0171 100644 --- a/Sources/Services/AWSMedicalImaging/Sources/AWSMedicalImaging/Models.swift +++ b/Sources/Services/AWSMedicalImaging/Sources/AWSMedicalImaging/Models.swift @@ -226,18 +226,44 @@ extension MedicalImagingClientTypes { } } +extension MedicalImagingClientTypes { + + /// Contains copiable Attributes structure and wraps information related to specific copy use cases. For example, when copying subsets. + public struct MetadataCopies: Swift.Sendable { + /// The JSON string used to specify a subset of SOP Instances to copy from source to destination image set. + /// This member is required. + public var copiableAttributes: Swift.String? + + public init( + copiableAttributes: Swift.String? = nil + ) + { + self.copiableAttributes = copiableAttributes + } + } +} + +extension MedicalImagingClientTypes.MetadataCopies: Swift.CustomDebugStringConvertible { + public var debugDescription: Swift.String { + "MetadataCopies(copiableAttributes: \"CONTENT_REDACTED\")"} +} + extension MedicalImagingClientTypes { /// Copy source image set information. public struct CopySourceImageSetInformation: Swift.Sendable { + /// Contains MetadataCopies structure and wraps information related to specific copy use cases. For example, when copying subsets. + public var dicomCopies: MedicalImagingClientTypes.MetadataCopies? /// The latest version identifier for the source image set. /// This member is required. public var latestVersionId: Swift.String? public init( + dicomCopies: MedicalImagingClientTypes.MetadataCopies? = nil, latestVersionId: Swift.String? = nil ) { + self.dicomCopies = dicomCopies self.latestVersionId = latestVersionId } } @@ -271,6 +297,8 @@ public struct CopyImageSetInput: Swift.Sendable { /// The data store identifier. /// This member is required. public var datastoreId: Swift.String? + /// Setting this flag will force the CopyImageSet operation, even if Patient, Study, or Series level metadata are mismatched across the sourceImageSet and destinationImageSet. + public var force: Swift.Bool? /// The source image set identifier. /// This member is required. public var sourceImageSetId: Swift.String? @@ -278,11 +306,13 @@ public struct CopyImageSetInput: Swift.Sendable { public init( copyImageSetInformation: MedicalImagingClientTypes.CopyImageSetInformation? = nil, datastoreId: Swift.String? = nil, + force: Swift.Bool? = nil, sourceImageSetId: Swift.String? = nil ) { self.copyImageSetInformation = copyImageSetInformation self.datastoreId = datastoreId + self.force = force self.sourceImageSetId = sourceImageSetId } } @@ -985,6 +1015,22 @@ public struct GetImageSetInput: Swift.Sendable { } } +extension MedicalImagingClientTypes { + + /// Specifies the overrides used in image set modification calls to CopyImageSet and UpdateImageSetMetadata. + public struct Overrides: Swift.Sendable { + /// Setting this flag will force the CopyImageSet and UpdateImageSetMetadata operations, even if Patient, Study, or Series level metadata are mismatched. + public var forced: Swift.Bool? + + public init( + forced: Swift.Bool? = nil + ) + { + self.forced = forced + } + } +} + public struct GetImageSetOutput: Swift.Sendable { /// The timestamp when image set properties were created. public var createdAt: Foundation.Date? @@ -1005,6 +1051,8 @@ public struct GetImageSetOutput: Swift.Sendable { public var imageSetWorkflowStatus: MedicalImagingClientTypes.ImageSetWorkflowStatus? /// The error message thrown if an image set action fails. public var message: Swift.String? + /// This object contains the details of any overrides used while creating a specific image set version. If an image set was copied or updated using the force flag, this object will contain the forced flag. + public var overrides: MedicalImagingClientTypes.Overrides? /// The timestamp when image set properties were updated. public var updatedAt: Foundation.Date? /// The image set version identifier. @@ -1020,6 +1068,7 @@ public struct GetImageSetOutput: Swift.Sendable { imageSetState: MedicalImagingClientTypes.ImageSetState? = nil, imageSetWorkflowStatus: MedicalImagingClientTypes.ImageSetWorkflowStatus? = nil, message: Swift.String? = nil, + overrides: MedicalImagingClientTypes.Overrides? = nil, updatedAt: Foundation.Date? = nil, versionId: Swift.String? = nil ) @@ -1032,6 +1081,7 @@ public struct GetImageSetOutput: Swift.Sendable { self.imageSetState = imageSetState self.imageSetWorkflowStatus = imageSetWorkflowStatus self.message = message + self.overrides = overrides self.updatedAt = updatedAt self.versionId = versionId } @@ -1214,6 +1264,8 @@ extension MedicalImagingClientTypes { public var imageSetWorkflowStatus: MedicalImagingClientTypes.ImageSetWorkflowStatus? /// The error message thrown if an image set action fails. public var message: Swift.String? + /// Contains details on overrides used when creating the returned version of an image set. For example, if forced exists, the forced flag was used when creating the image set. + public var overrides: MedicalImagingClientTypes.Overrides? /// The timestamp when the image set properties were updated. public var updatedAt: Foundation.Date? /// The image set version identifier. @@ -1227,6 +1279,7 @@ extension MedicalImagingClientTypes { imageSetState: MedicalImagingClientTypes.ImageSetState? = nil, imageSetWorkflowStatus: MedicalImagingClientTypes.ImageSetWorkflowStatus? = nil, message: Swift.String? = nil, + overrides: MedicalImagingClientTypes.Overrides? = nil, updatedAt: Foundation.Date? = nil, versionId: Swift.String? = nil ) @@ -1237,6 +1290,7 @@ extension MedicalImagingClientTypes { self.imageSetState = imageSetState self.imageSetWorkflowStatus = imageSetWorkflowStatus self.message = message + self.overrides = overrides self.updatedAt = updatedAt self.versionId = versionId } @@ -1807,6 +1861,8 @@ extension MedicalImagingClientTypes { public enum MetadataUpdates: Swift.Sendable { /// The object containing removableAttributes and updatableAttributes. case dicomupdates(MedicalImagingClientTypes.DICOMUpdates) + /// Specifies the previous image set version ID to revert the current image set back to. You must provide either revertToVersionId or DICOMUpdates in your request. A ValidationException error is thrown if both parameters are provided at the same time. + case reverttoversionid(Swift.String) case sdkUnknown(Swift.String) } } @@ -1815,6 +1871,12 @@ public struct UpdateImageSetMetadataInput: Swift.Sendable { /// The data store identifier. /// This member is required. public var datastoreId: Swift.String? + /// Setting this flag will force the UpdateImageSetMetadata operation for the following attributes: + /// + /// * Tag.StudyInstanceUID, Tag.SeriesInstanceUID, Tag.SOPInstanceUID, and Tag.StudyID + /// + /// * Adding, removing, or updating private tags for an individual SOP Instance + public var force: Swift.Bool? /// The image set identifier. /// This member is required. public var imageSetId: Swift.String? @@ -1827,12 +1889,14 @@ public struct UpdateImageSetMetadataInput: Swift.Sendable { public init( datastoreId: Swift.String? = nil, + force: Swift.Bool? = nil, imageSetId: Swift.String? = nil, latestVersionId: Swift.String? = nil, updateImageSetMetadataUpdates: MedicalImagingClientTypes.MetadataUpdates? = nil ) { self.datastoreId = datastoreId + self.force = force self.imageSetId = imageSetId self.latestVersionId = latestVersionId self.updateImageSetMetadataUpdates = updateImageSetMetadataUpdates @@ -1896,6 +1960,18 @@ extension CopyImageSetInput { } } +extension CopyImageSetInput { + + static func queryItemProvider(_ value: CopyImageSetInput) throws -> [Smithy.URIQueryItem] { + var items = [Smithy.URIQueryItem]() + if let force = value.force { + let forceQueryItem = Smithy.URIQueryItem(name: "force".urlPercentEncoding(), value: Swift.String(force).urlPercentEncoding()) + items.append(forceQueryItem) + } + return items + } +} + extension CreateDatastoreInput { static func urlPathProvider(_ value: CreateDatastoreInput) -> Swift.String? { @@ -2203,6 +2279,10 @@ extension UpdateImageSetMetadataInput { } let latestVersionIdQueryItem = Smithy.URIQueryItem(name: "latestVersion".urlPercentEncoding(), value: Swift.String(latestVersionId).urlPercentEncoding()) items.append(latestVersionIdQueryItem) + if let force = value.force { + let forceQueryItem = Smithy.URIQueryItem(name: "force".urlPercentEncoding(), value: Swift.String(force).urlPercentEncoding()) + items.append(forceQueryItem) + } return items } } @@ -2384,6 +2464,7 @@ extension GetImageSetOutput { value.imageSetState = try reader["imageSetState"].readIfPresent() ?? .sdkUnknown("") value.imageSetWorkflowStatus = try reader["imageSetWorkflowStatus"].readIfPresent() value.message = try reader["message"].readIfPresent() + value.overrides = try reader["overrides"].readIfPresent(with: MedicalImagingClientTypes.Overrides.read(from:)) value.updatedAt = try reader["updatedAt"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) value.versionId = try reader["versionId"].readIfPresent() ?? "" return value @@ -3022,6 +3103,16 @@ extension MedicalImagingClientTypes.DICOMImportJobProperties { } } +extension MedicalImagingClientTypes.Overrides { + + static func read(from reader: SmithyJSON.Reader) throws -> MedicalImagingClientTypes.Overrides { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = MedicalImagingClientTypes.Overrides() + value.forced = try reader["forced"].readIfPresent() + return value + } +} + extension MedicalImagingClientTypes.DatastoreSummary { static func read(from reader: SmithyJSON.Reader) throws -> MedicalImagingClientTypes.DatastoreSummary { @@ -3067,6 +3158,7 @@ extension MedicalImagingClientTypes.ImageSetProperties { value.updatedAt = try reader["updatedAt"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) value.deletedAt = try reader["deletedAt"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) value.message = try reader["message"].readIfPresent() + value.overrides = try reader["overrides"].readIfPresent(with: MedicalImagingClientTypes.Overrides.read(from:)) return value } } @@ -3149,10 +3241,19 @@ extension MedicalImagingClientTypes.CopySourceImageSetInformation { static func write(value: MedicalImagingClientTypes.CopySourceImageSetInformation?, to writer: SmithyJSON.Writer) throws { guard let value else { return } + try writer["DICOMCopies"].write(value.dicomCopies, with: MedicalImagingClientTypes.MetadataCopies.write(value:to:)) try writer["latestVersionId"].write(value.latestVersionId) } } +extension MedicalImagingClientTypes.MetadataCopies { + + static func write(value: MedicalImagingClientTypes.MetadataCopies?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["copiableAttributes"].write(value.copiableAttributes) + } +} + extension MedicalImagingClientTypes.ImageFrameInformation { static func write(value: MedicalImagingClientTypes.ImageFrameInformation?, to writer: SmithyJSON.Writer) throws { @@ -3222,6 +3323,8 @@ extension MedicalImagingClientTypes.MetadataUpdates { switch value { case let .dicomupdates(dicomupdates): try writer["DICOMUpdates"].write(dicomupdates, with: MedicalImagingClientTypes.DICOMUpdates.write(value:to:)) + case let .reverttoversionid(reverttoversionid): + try writer["revertToVersionId"].write(reverttoversionid) case let .sdkUnknown(sdkUnknown): try writer["sdkUnknown"].write(sdkUnknown) } diff --git a/Sources/Services/AWSNetworkFirewall/Sources/AWSNetworkFirewall/Models.swift b/Sources/Services/AWSNetworkFirewall/Sources/AWSNetworkFirewall/Models.swift index 61b2ec0fbe3..0d45cb81330 100644 --- a/Sources/Services/AWSNetworkFirewall/Sources/AWSNetworkFirewall/Models.swift +++ b/Sources/Services/AWSNetworkFirewall/Sources/AWSNetworkFirewall/Models.swift @@ -1909,6 +1909,8 @@ extension NetworkFirewallClientTypes { /// * DROP - Blocks the packets from going to the intended destination and sends an alert log message, if alert logging is configured in the [Firewall][LoggingConfiguration]. /// /// * ALERT - Sends an alert log message, if alert logging is configured in the [Firewall][LoggingConfiguration]. You can use this action to test a rule that you intend to use to drop traffic. You can enable the rule with ALERT action, verify in the logs that the rule is filtering as you want, then change the action to DROP. + /// + /// * REJECT - Drops traffic that matches the conditions of the stateful rule, and sends a TCP reset packet back to sender of the packet. A TCP reset packet is a packet with no payload and an RST bit contained in the TCP header flags. REJECT is available only for TCP traffic. This option doesn't support FTP or IMAP protocols. /// This member is required. public var action: NetworkFirewallClientTypes.StatefulAction? /// The stateful inspection criteria for this rule, used to inspect traffic flows. @@ -2972,12 +2974,14 @@ extension NetworkFirewallClientTypes { public enum LogType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { case alert case flow + case tls case sdkUnknown(Swift.String) public static var allCases: [LogType] { return [ .alert, - .flow + .flow, + .tls ] } @@ -2990,6 +2994,7 @@ extension NetworkFirewallClientTypes { switch self { case .alert: return "ALERT" case .flow: return "FLOW" + case .tls: return "TLS" case let .sdkUnknown(s): return s } } @@ -2998,7 +3003,7 @@ extension NetworkFirewallClientTypes { extension NetworkFirewallClientTypes { - /// Defines where Network Firewall sends logs for the firewall for one log type. This is used in [LoggingConfiguration]. You can send each type of log to an Amazon S3 bucket, a CloudWatch log group, or a Firehose delivery stream. Network Firewall generates logs for stateful rule groups. You can save alert and flow log types. The stateful rules engine records flow logs for all network traffic that it receives. It records alert logs for traffic that matches stateful rules that have the rule action set to DROP or ALERT. + /// Defines where Network Firewall sends logs for the firewall for one log type. This is used in [LoggingConfiguration]. You can send each type of log to an Amazon S3 bucket, a CloudWatch log group, or a Firehose delivery stream. Network Firewall generates logs for stateful rule groups. You can save alert, flow, and TLS log types. public struct LogDestinationConfig: Swift.Sendable { /// The named location for the logs, provided in a key:value mapping that is specific to the chosen destination type. /// @@ -3012,7 +3017,13 @@ extension NetworkFirewallClientTypes { /// The type of storage destination to send these logs to. You can send logs to an Amazon S3 bucket, a CloudWatch log group, or a Firehose delivery stream. /// This member is required. public var logDestinationType: NetworkFirewallClientTypes.LogDestinationType? - /// The type of log to send. Alert logs report traffic that matches a [StatefulRule] with an action setting that sends an alert log message. Flow logs are standard network traffic flow logs. + /// The type of log to record. You can record the following types of logs from your Network Firewall stateful engine. + /// + /// * ALERT - Logs for traffic that matches your stateful rules and that have an action that sends an alert. A stateful rule sends alerts for the rule actions DROP, ALERT, and REJECT. For more information, see [StatefulRule]. + /// + /// * FLOW - Standard network traffic flow logs. The stateful rules engine records flow logs for all network traffic that it receives. Each flow log record captures the network flow for a specific standard stateless rule group. + /// + /// * TLS - Logs for events that are related to TLS inspection. For more information, see [Inspecting SSL/TLS traffic with TLS inspection configurations](https://docs.aws.amazon.com/network-firewall/latest/developerguide/tls-inspection-configurations.html) in the Network Firewall Developer Guide. /// This member is required. public var logType: NetworkFirewallClientTypes.LogType? diff --git a/Sources/Services/AWSNetworkFirewall/Sources/AWSNetworkFirewall/NetworkFirewallClient.swift b/Sources/Services/AWSNetworkFirewall/Sources/AWSNetworkFirewall/NetworkFirewallClient.swift index b4fbc6b6252..e057e583ace 100644 --- a/Sources/Services/AWSNetworkFirewall/Sources/AWSNetworkFirewall/NetworkFirewallClient.swift +++ b/Sources/Services/AWSNetworkFirewall/Sources/AWSNetworkFirewall/NetworkFirewallClient.swift @@ -600,7 +600,7 @@ extension NetworkFirewallClient { /// Performs the `CreateTLSInspectionConfiguration` operation on the `NetworkFirewall_20201112` service. /// - /// Creates an Network Firewall TLS inspection configuration. A TLS inspection configuration contains Certificate Manager certificate associations between and the scope configurations that Network Firewall uses to decrypt and re-encrypt traffic traveling through your firewall. After you create a TLS inspection configuration, you can associate it with a new firewall policy. To update the settings for a TLS inspection configuration, use [UpdateTLSInspectionConfiguration]. To manage a TLS inspection configuration's tags, use the standard Amazon Web Services resource tagging operations, [ListTagsForResource], [TagResource], and [UntagResource]. To retrieve information about TLS inspection configurations, use [ListTLSInspectionConfigurations] and [DescribeTLSInspectionConfiguration]. For more information about TLS inspection configurations, see [Inspecting SSL/TLS traffic with TLS inspection configurations](https://docs.aws.amazon.com/network-firewall/latest/developerguide/tls-inspection.html) in the Network Firewall Developer Guide. + /// Creates an Network Firewall TLS inspection configuration. Network Firewall uses TLS inspection configurations to decrypt your firewall's inbound and outbound SSL/TLS traffic. After decryption, Network Firewall inspects the traffic according to your firewall policy's stateful rules, and then re-encrypts it before sending it to its destination. You can enable inspection of your firewall's inbound traffic, outbound traffic, or both. To use TLS inspection with your firewall, you must first import or provision certificates using ACM, create a TLS inspection configuration, add that configuration to a new firewall policy, and then associate that policy with your firewall. To update the settings for a TLS inspection configuration, use [UpdateTLSInspectionConfiguration]. To manage a TLS inspection configuration's tags, use the standard Amazon Web Services resource tagging operations, [ListTagsForResource], [TagResource], and [UntagResource]. To retrieve information about TLS inspection configurations, use [ListTLSInspectionConfigurations] and [DescribeTLSInspectionConfiguration]. For more information about TLS inspection configurations, see [Inspecting SSL/TLS traffic with TLS inspection configurations](https://docs.aws.amazon.com/network-firewall/latest/developerguide/tls-inspection.html) in the Network Firewall Developer Guide. /// /// - Parameter CreateTLSInspectionConfigurationInput : [no documentation found] /// diff --git a/Sources/Services/AWSQBusiness/Sources/AWSQBusiness/Models.swift b/Sources/Services/AWSQBusiness/Sources/AWSQBusiness/Models.swift index 64a5a2c6687..cf0830568bb 100644 --- a/Sources/Services/AWSQBusiness/Sources/AWSQBusiness/Models.swift +++ b/Sources/Services/AWSQBusiness/Sources/AWSQBusiness/Models.swift @@ -1097,7 +1097,7 @@ extension QBusinessClientTypes { extension QBusinessClientTypes { - /// Configuration information about Amazon Q Apps. (preview feature) + /// Configuration information about Amazon Q Apps. public struct QAppsConfiguration: Swift.Sendable { /// Status information about whether end users can create and use Amazon Q Apps in the web experience. /// This member is required. @@ -1158,7 +1158,7 @@ public struct CreateApplicationInput: Swift.Sendable { public var personalizationConfiguration: QBusinessClientTypes.PersonalizationConfiguration? /// An option to allow end users to create and use Amazon Q Apps in the web experience. public var qAppsConfiguration: QBusinessClientTypes.QAppsConfiguration? - /// The Amazon Resource Name (ARN) of an IAM role with permissions to access your Amazon CloudWatch logs and metrics. + /// The Amazon Resource Name (ARN) of an IAM role with permissions to access your Amazon CloudWatch logs and metrics. If this property is not specified, Amazon Q Business will create a [service linked role (SLR)](https://docs.aws.amazon.com/amazonq/latest/qbusiness-ug/using-service-linked-roles.html#slr-permissions) and use it as the application's role. public var roleArn: Swift.String? /// A list of key-value pairs that identify or categorize your Amazon Q Business application. You can also use tags to help control access to the application. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @. public var tags: [QBusinessClientTypes.Tag]? @@ -3776,6 +3776,8 @@ public struct CreateWebExperienceInput: Swift.Sendable { public var clientToken: Swift.String? /// Information about the identity provider (IdP) used to authenticate end users of an Amazon Q Business web experience. public var identityProviderConfiguration: QBusinessClientTypes.IdentityProviderConfiguration? + /// Sets the website domain origins that are allowed to embed the Amazon Q Business web experience. The domain origin refers to the base URL for accessing a website including the protocol (http/https), the domain name, and the port number (if specified). You must only submit a base URL and not a full path. For example, https://docs.aws.amazon.com. + public var origins: [Swift.String]? /// The Amazon Resource Name (ARN) of the service role attached to your web experience. You must provide this value if you're using IAM Identity Center to manage end user access to your application. If you're using legacy identity management to manage user access, you don't need to provide this value. public var roleArn: Swift.String? /// Determines whether sample prompts are enabled in the web experience for an end user. @@ -3793,6 +3795,7 @@ public struct CreateWebExperienceInput: Swift.Sendable { applicationId: Swift.String? = nil, clientToken: Swift.String? = nil, identityProviderConfiguration: QBusinessClientTypes.IdentityProviderConfiguration? = nil, + origins: [Swift.String]? = nil, roleArn: Swift.String? = nil, samplePromptsControlMode: QBusinessClientTypes.WebExperienceSamplePromptsControlMode? = nil, subtitle: Swift.String? = nil, @@ -3804,6 +3807,7 @@ public struct CreateWebExperienceInput: Swift.Sendable { self.applicationId = applicationId self.clientToken = clientToken self.identityProviderConfiguration = identityProviderConfiguration + self.origins = origins self.roleArn = roleArn self.samplePromptsControlMode = samplePromptsControlMode self.subtitle = subtitle @@ -3963,6 +3967,8 @@ public struct GetWebExperienceOutput: Swift.Sendable { public var error: QBusinessClientTypes.ErrorDetail? /// Information about the identity provider (IdP) used to authenticate end users of an Amazon Q Business web experience. public var identityProviderConfiguration: QBusinessClientTypes.IdentityProviderConfiguration? + /// Gets the website domain origins that are allowed to embed the Amazon Q Business web experience. The domain origin refers to the base URL for accessing a website including the protocol (http/https), the domain name, and the port number (if specified). + public var origins: [Swift.String]? /// The Amazon Resource Name (ARN) of the service role attached to your web experience. public var roleArn: Swift.String? /// Determines whether sample prompts are enabled in the web experience for an end user. @@ -3989,6 +3995,7 @@ public struct GetWebExperienceOutput: Swift.Sendable { defaultEndpoint: Swift.String? = nil, error: QBusinessClientTypes.ErrorDetail? = nil, identityProviderConfiguration: QBusinessClientTypes.IdentityProviderConfiguration? = nil, + origins: [Swift.String]? = nil, roleArn: Swift.String? = nil, samplePromptsControlMode: QBusinessClientTypes.WebExperienceSamplePromptsControlMode? = nil, status: QBusinessClientTypes.WebExperienceStatus? = nil, @@ -4006,6 +4013,7 @@ public struct GetWebExperienceOutput: Swift.Sendable { self.defaultEndpoint = defaultEndpoint self.error = error self.identityProviderConfiguration = identityProviderConfiguration + self.origins = origins self.roleArn = roleArn self.samplePromptsControlMode = samplePromptsControlMode self.status = status @@ -4096,6 +4104,12 @@ public struct UpdateWebExperienceInput: Swift.Sendable { public var authenticationConfiguration: QBusinessClientTypes.WebExperienceAuthConfiguration? /// Information about the identity provider (IdP) used to authenticate end users of an Amazon Q Business web experience. public var identityProviderConfiguration: QBusinessClientTypes.IdentityProviderConfiguration? + /// Updates the website domain origins that are allowed to embed the Amazon Q Business web experience. The domain origin refers to the base URL for accessing a website including the protocol (http/https), the domain name, and the port number (if specified). + /// + /// * Any values except null submitted as part of this update will replace all previous values. + /// + /// * You must only submit a base URL and not a full path. For example, https://docs.aws.amazon.com. + public var origins: [Swift.String]? /// The Amazon Resource Name (ARN) of the role with permission to access the Amazon Q Business web experience and required resources. public var roleArn: Swift.String? /// Determines whether sample prompts are enabled in the web experience for an end user. @@ -4114,6 +4128,7 @@ public struct UpdateWebExperienceInput: Swift.Sendable { applicationId: Swift.String? = nil, authenticationConfiguration: QBusinessClientTypes.WebExperienceAuthConfiguration? = nil, identityProviderConfiguration: QBusinessClientTypes.IdentityProviderConfiguration? = nil, + origins: [Swift.String]? = nil, roleArn: Swift.String? = nil, samplePromptsControlMode: QBusinessClientTypes.WebExperienceSamplePromptsControlMode? = nil, subtitle: Swift.String? = nil, @@ -4125,6 +4140,7 @@ public struct UpdateWebExperienceInput: Swift.Sendable { self.applicationId = applicationId self.authenticationConfiguration = authenticationConfiguration self.identityProviderConfiguration = identityProviderConfiguration + self.origins = origins self.roleArn = roleArn self.samplePromptsControlMode = samplePromptsControlMode self.subtitle = subtitle @@ -5485,9 +5501,9 @@ extension QBusinessClientTypes { extension QBusinessClientTypes { - /// Provides information about users and groups associated with a topic control rule. + /// Provides information about users and group names associated with a topic control rule. public struct UsersAndGroups: Swift.Sendable { - /// The user groups associated with a topic control rule. + /// The user group names associated with a topic control rule. public var userGroups: [Swift.String]? /// The user ids associated with a topic control rule. public var userIds: [Swift.String]? @@ -6693,7 +6709,7 @@ public struct ChatSyncInput: Swift.Sendable { public var conversationId: Swift.String? /// The identifier of the previous system message in a conversation. public var parentMessageId: Swift.String? - /// The groups that a user associated with the chat input belongs to. + /// The group names that a user associated with the chat input belongs to. public var userGroups: [Swift.String]? /// The identifier of the user attached to the chat input. public var userId: Swift.String? @@ -6764,7 +6780,7 @@ public struct ChatInput: Swift.Sendable { public var inputStream: AsyncThrowingStream? /// The identifier used to associate a user message with a AI generated response. public var parentMessageId: Swift.String? - /// The groups that a user associated with the chat input belongs to. + /// The group names that a user associated with the chat input belongs to. public var userGroups: [Swift.String]? /// The identifier of the user attached to the chat input. public var userId: Swift.String? @@ -7938,6 +7954,7 @@ extension CreateWebExperienceInput { guard let value else { return } try writer["clientToken"].write(value.clientToken) try writer["identityProviderConfiguration"].write(value.identityProviderConfiguration, with: QBusinessClientTypes.IdentityProviderConfiguration.write(value:to:)) + try writer["origins"].writeList(value.origins, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) try writer["roleArn"].write(value.roleArn) try writer["samplePromptsControlMode"].write(value.samplePromptsControlMode) try writer["subtitle"].write(value.subtitle) @@ -8065,6 +8082,7 @@ extension UpdateWebExperienceInput { guard let value else { return } try writer["authenticationConfiguration"].write(value.authenticationConfiguration, with: QBusinessClientTypes.WebExperienceAuthConfiguration.write(value:to:)) try writer["identityProviderConfiguration"].write(value.identityProviderConfiguration, with: QBusinessClientTypes.IdentityProviderConfiguration.write(value:to:)) + try writer["origins"].writeList(value.origins, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) try writer["roleArn"].write(value.roleArn) try writer["samplePromptsControlMode"].write(value.samplePromptsControlMode) try writer["subtitle"].write(value.subtitle) @@ -8463,6 +8481,7 @@ extension GetWebExperienceOutput { value.defaultEndpoint = try reader["defaultEndpoint"].readIfPresent() value.error = try reader["error"].readIfPresent(with: QBusinessClientTypes.ErrorDetail.read(from:)) value.identityProviderConfiguration = try reader["identityProviderConfiguration"].readIfPresent(with: QBusinessClientTypes.IdentityProviderConfiguration.read(from:)) + value.origins = try reader["origins"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) value.roleArn = try reader["roleArn"].readIfPresent() value.samplePromptsControlMode = try reader["samplePromptsControlMode"].readIfPresent() value.status = try reader["status"].readIfPresent() diff --git a/Sources/Services/AWSRedshift/Sources/AWSRedshift/Models.swift b/Sources/Services/AWSRedshift/Sources/AWSRedshift/Models.swift index 9d806b7f714..6d2e5ec9121 100644 --- a/Sources/Services/AWSRedshift/Sources/AWSRedshift/Models.swift +++ b/Sources/Services/AWSRedshift/Sources/AWSRedshift/Models.swift @@ -4467,7 +4467,7 @@ public struct CreateClusterInput: Swift.Sendable { public var masterUsername: Swift.String? /// If true, Amazon Redshift will deploy the cluster in two Availability Zones (AZ). public var multiAZ: Swift.Bool? - /// The node type to be provisioned for the cluster. For information about node types, go to [ Working with Clusters](https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#how-many-nodes) in the Amazon Redshift Cluster Management Guide. Valid Values: dc2.large | dc2.8xlarge | ra3.xlplus | ra3.4xlarge | ra3.16xlarge + /// The node type to be provisioned for the cluster. For information about node types, go to [ Working with Clusters](https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#how-many-nodes) in the Amazon Redshift Cluster Management Guide. Valid Values: dc2.large | dc2.8xlarge | ra3.large | ra3.xlplus | ra3.4xlarge | ra3.16xlarge /// This member is required. public var nodeType: Swift.String? /// The number of compute nodes in the cluster. This parameter is required when the ClusterType parameter is specified as multi-node. For information about determining how many nodes you need, go to [ Working with Clusters](https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#how-many-nodes) in the Amazon Redshift Cluster Management Guide. If you don't specify this parameter, you get a single-node cluster. When requesting a multi-node cluster, you must specify the number of nodes that you want in the cluster. Default: 1 Constraints: Value must be at least 1 and no more than 100. @@ -5584,6 +5584,282 @@ public struct CreateHsmConfigurationOutput: Swift.Sendable { } } +/// The integration you are trying to create already exists. +public struct IntegrationAlreadyExistsFault: 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 { "IntegrationAlreadyExistsFault" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.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 + } +} + +/// A conflicting conditional operation is currently in progress against this resource. This typically occurs when there are multiple requests being made to the same resource at the same time, and these requests conflict with each other. +public struct IntegrationConflictOperationFault: 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 { "IntegrationConflictOperationFault" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.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 + } +} + +/// You can't create any more zero-ETL integrations because the quota has been reached. +public struct IntegrationQuotaExceededFault: 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 { "IntegrationQuotaExceededFault" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.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 + } +} + +/// The specified integration source can't be found. +public struct IntegrationSourceNotFoundFault: 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 { "IntegrationSourceNotFoundFault" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.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 + } +} + +/// The specified integration target can't be found. +public struct IntegrationTargetNotFoundFault: 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 { "IntegrationTargetNotFoundFault" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.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 + } +} + +public struct CreateIntegrationInput: Swift.Sendable { + /// An optional set of non-secret key–value pairs that contains additional contextual information about the data. For more information, see [Encryption context](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) in the Amazon Web Services Key Management Service Developer Guide. You can only include this parameter if you specify the KMSKeyId parameter. + public var additionalEncryptionContext: [Swift.String: Swift.String]? + /// A description of the integration. + public var description: Swift.String? + /// The name of the integration. + /// This member is required. + public var integrationName: Swift.String? + /// An Key Management Service (KMS) key identifier for the key to use to encrypt the integration. If you don't specify an encryption key, the default Amazon Web Services owned key is used. + public var kmsKeyId: Swift.String? + /// The Amazon Resource Name (ARN) of the database to use as the source for replication. + /// This member is required. + public var sourceArn: Swift.String? + /// A list of tags. + public var tagList: [RedshiftClientTypes.Tag]? + /// The Amazon Resource Name (ARN) of the Amazon Redshift data warehouse to use as the target for replication. + /// This member is required. + public var targetArn: Swift.String? + + public init( + additionalEncryptionContext: [Swift.String: Swift.String]? = nil, + description: Swift.String? = nil, + integrationName: Swift.String? = nil, + kmsKeyId: Swift.String? = nil, + sourceArn: Swift.String? = nil, + tagList: [RedshiftClientTypes.Tag]? = nil, + targetArn: Swift.String? = nil + ) + { + self.additionalEncryptionContext = additionalEncryptionContext + self.description = description + self.integrationName = integrationName + self.kmsKeyId = kmsKeyId + self.sourceArn = sourceArn + self.tagList = tagList + self.targetArn = targetArn + } +} + +extension RedshiftClientTypes { + + /// The error of an inbound integration. + public struct IntegrationError: Swift.Sendable { + /// The error code of an inbound integration error. + /// This member is required. + public var errorCode: Swift.String? + /// The error message of an inbound integration error. + public var errorMessage: Swift.String? + + public init( + errorCode: Swift.String? = nil, + errorMessage: Swift.String? = nil + ) + { + self.errorCode = errorCode + self.errorMessage = errorMessage + } + } +} + +extension RedshiftClientTypes { + + public enum ZeroETLIntegrationStatus: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case active + case creating + case deleting + case failed + case modifying + case needsAttention + case syncing + case sdkUnknown(Swift.String) + + public static var allCases: [ZeroETLIntegrationStatus] { + return [ + .active, + .creating, + .deleting, + .failed, + .modifying, + .needsAttention, + .syncing + ] + } + + 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 .active: return "active" + case .creating: return "creating" + case .deleting: return "deleting" + case .failed: return "failed" + case .modifying: return "modifying" + case .needsAttention: return "needs_attention" + case .syncing: return "syncing" + case let .sdkUnknown(s): return s + } + } + } +} + +public struct CreateIntegrationOutput: Swift.Sendable { + /// The encryption context for the integration. For more information, see [Encryption context](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) in the Amazon Web Services Key Management Service Developer Guide. + public var additionalEncryptionContext: [Swift.String: Swift.String]? + /// The time (UTC) when the integration was created. + public var createTime: Foundation.Date? + /// The description of the integration. + public var description: Swift.String? + /// Any errors associated with the integration. + public var errors: [RedshiftClientTypes.IntegrationError]? + /// The Amazon Resource Name (ARN) of the integration. + public var integrationArn: Swift.String? + /// The name of the integration. + public var integrationName: Swift.String? + /// The Key Management Service (KMS) key identifier for the key used to encrypt the integration. + public var kmsKeyId: Swift.String? + /// The Amazon Resource Name (ARN) of the database used as the source for replication. + public var sourceArn: Swift.String? + /// The current status of the integration. + public var status: RedshiftClientTypes.ZeroETLIntegrationStatus? + /// The list of tags associated with the integration. + public var tags: [RedshiftClientTypes.Tag]? + /// The Amazon Resource Name (ARN) of the Amazon Redshift data warehouse to use as the target for replication. + public var targetArn: Swift.String? + + public init( + additionalEncryptionContext: [Swift.String: Swift.String]? = nil, + createTime: Foundation.Date? = nil, + description: Swift.String? = nil, + errors: [RedshiftClientTypes.IntegrationError]? = nil, + integrationArn: Swift.String? = nil, + integrationName: Swift.String? = nil, + kmsKeyId: Swift.String? = nil, + sourceArn: Swift.String? = nil, + status: RedshiftClientTypes.ZeroETLIntegrationStatus? = nil, + tags: [RedshiftClientTypes.Tag]? = nil, + targetArn: Swift.String? = nil + ) + { + self.additionalEncryptionContext = additionalEncryptionContext + self.createTime = createTime + self.description = description + self.errors = errors + self.integrationArn = integrationArn + self.integrationName = integrationName + self.kmsKeyId = kmsKeyId + self.sourceArn = sourceArn + self.status = status + self.tags = tags + self.targetArn = targetArn + } +} + /// A dependent service denied access for the integration. public struct DependentServiceAccessDeniedFault: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { @@ -7382,6 +7658,119 @@ public struct DeleteHsmConfigurationInput: Swift.Sendable { } } +/// The integration is in an invalid state and can't perform the requested operation. +public struct IntegrationConflictStateFault: 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 { "IntegrationConflictStateFault" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.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 + } +} + +/// The integration can't be found. +public struct IntegrationNotFoundFault: 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 { "IntegrationNotFoundFault" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.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 + } +} + +public struct DeleteIntegrationInput: Swift.Sendable { + /// The unique identifier of the integration to delete. + /// This member is required. + public var integrationArn: Swift.String? + + public init( + integrationArn: Swift.String? = nil + ) + { + self.integrationArn = integrationArn + } +} + +public struct DeleteIntegrationOutput: Swift.Sendable { + /// The encryption context for the integration. For more information, see [Encryption context](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) in the Amazon Web Services Key Management Service Developer Guide. + public var additionalEncryptionContext: [Swift.String: Swift.String]? + /// The time (UTC) when the integration was created. + public var createTime: Foundation.Date? + /// The description of the integration. + public var description: Swift.String? + /// Any errors associated with the integration. + public var errors: [RedshiftClientTypes.IntegrationError]? + /// The Amazon Resource Name (ARN) of the integration. + public var integrationArn: Swift.String? + /// The name of the integration. + public var integrationName: Swift.String? + /// The Key Management Service (KMS) key identifier for the key used to encrypt the integration. + public var kmsKeyId: Swift.String? + /// The Amazon Resource Name (ARN) of the database used as the source for replication. + public var sourceArn: Swift.String? + /// The current status of the integration. + public var status: RedshiftClientTypes.ZeroETLIntegrationStatus? + /// The list of tags associated with the integration. + public var tags: [RedshiftClientTypes.Tag]? + /// The Amazon Resource Name (ARN) of the Amazon Redshift data warehouse to use as the target for replication. + public var targetArn: Swift.String? + + public init( + additionalEncryptionContext: [Swift.String: Swift.String]? = nil, + createTime: Foundation.Date? = nil, + description: Swift.String? = nil, + errors: [RedshiftClientTypes.IntegrationError]? = nil, + integrationArn: Swift.String? = nil, + integrationName: Swift.String? = nil, + kmsKeyId: Swift.String? = nil, + sourceArn: Swift.String? = nil, + status: RedshiftClientTypes.ZeroETLIntegrationStatus? = nil, + tags: [RedshiftClientTypes.Tag]? = nil, + targetArn: Swift.String? = nil + ) + { + self.additionalEncryptionContext = additionalEncryptionContext + self.createTime = createTime + self.description = description + self.errors = errors + self.integrationArn = integrationArn + self.integrationName = integrationName + self.kmsKeyId = kmsKeyId + self.sourceArn = sourceArn + self.status = status + self.tags = tags + self.targetArn = targetArn + } +} + public struct DeletePartnerInput: Swift.Sendable { /// The Amazon Web Services account ID that owns the cluster. /// This member is required. @@ -9013,30 +9402,6 @@ public struct DescribeHsmConfigurationsOutput: Swift.Sendable { } } -/// The integration can't be found. -public struct IntegrationNotFoundFault: 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 { "IntegrationNotFoundFault" } - public static var fault: ClientRuntime.ErrorFault { .client } - public static var isRetryable: Swift.Bool { false } - public static var isThrottling: Swift.Bool { false } - public internal(set) var httpResponse = SmithyHTTPAPI.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 - } -} - public struct DescribeInboundIntegrationsInput: Swift.Sendable { /// The Amazon Resource Name (ARN) of the inbound integration. public var integrationArn: Swift.String? @@ -9063,46 +9428,71 @@ public struct DescribeInboundIntegrationsInput: Swift.Sendable { extension RedshiftClientTypes { - /// The error of an inbound integration. - public struct IntegrationError: Swift.Sendable { - /// The error code of an inbound integration error. - /// This member is required. - public var errorCode: Swift.String? - /// The error message of an inbound integration error. - public var errorMessage: Swift.String? + /// The content of an inbound integration. + public struct InboundIntegration: Swift.Sendable { + /// The creation time of an inbound integration. + public var createTime: Foundation.Date? + /// The outstanding errors of an inbound integration. Each item is an "IntegrationError". This is null if there is no error. + public var errors: [RedshiftClientTypes.IntegrationError]? + /// The Amazon Resource Name (ARN) of an inbound integration. + public var integrationArn: Swift.String? + /// The Amazon Resource Name (ARN) of the source of an inbound integration. + public var sourceArn: Swift.String? + /// The status of an inbound integration. + public var status: RedshiftClientTypes.ZeroETLIntegrationStatus? + /// The Amazon Resource Name (ARN) of the target of an inbound integration. + public var targetArn: Swift.String? public init( - errorCode: Swift.String? = nil, - errorMessage: Swift.String? = nil + createTime: Foundation.Date? = nil, + errors: [RedshiftClientTypes.IntegrationError]? = nil, + integrationArn: Swift.String? = nil, + sourceArn: Swift.String? = nil, + status: RedshiftClientTypes.ZeroETLIntegrationStatus? = nil, + targetArn: Swift.String? = nil ) { - self.errorCode = errorCode - self.errorMessage = errorMessage + self.createTime = createTime + self.errors = errors + self.integrationArn = integrationArn + self.sourceArn = sourceArn + self.status = status + self.targetArn = targetArn } } } +public struct DescribeInboundIntegrationsOutput: Swift.Sendable { + /// A list of [InboundIntegration] instances. + public var inboundIntegrations: [RedshiftClientTypes.InboundIntegration]? + /// A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the Marker parameter and retrying the command. If the Marker field is empty, all response records have been retrieved for the request. + public var marker: Swift.String? + + public init( + inboundIntegrations: [RedshiftClientTypes.InboundIntegration]? = nil, + marker: Swift.String? = nil + ) + { + self.inboundIntegrations = inboundIntegrations + self.marker = marker + } +} + extension RedshiftClientTypes { - public enum ZeroETLIntegrationStatus: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { - case active - case creating - case deleting - case failed - case modifying - case needsAttention - case syncing + public enum DescribeIntegrationsFilterName: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case integrationArn + case sourceArn + case sourceTypes + case status case sdkUnknown(Swift.String) - public static var allCases: [ZeroETLIntegrationStatus] { + public static var allCases: [DescribeIntegrationsFilterName] { return [ - .active, - .creating, - .deleting, - .failed, - .modifying, - .needsAttention, - .syncing + .integrationArn, + .sourceArn, + .sourceTypes, + .status ] } @@ -9113,13 +9503,10 @@ extension RedshiftClientTypes { public var rawValue: Swift.String { switch self { - case .active: return "active" - case .creating: return "creating" - case .deleting: return "deleting" - case .failed: return "failed" - case .modifying: return "modifying" - case .needsAttention: return "needs_attention" - case .syncing: return "syncing" + case .integrationArn: return "integration-arn" + case .sourceArn: return "source-arn" + case .sourceTypes: return "source-types" + case .status: return "status" case let .sdkUnknown(s): return s } } @@ -9128,52 +9515,117 @@ extension RedshiftClientTypes { extension RedshiftClientTypes { - /// The content of an inbound integration. - public struct InboundIntegration: Swift.Sendable { - /// The creation time of an inbound integration. + /// A set of elements to filter the returned integrations. + public struct DescribeIntegrationsFilter: Swift.Sendable { + /// Specifies the type of integration filter. + /// This member is required. + public var name: RedshiftClientTypes.DescribeIntegrationsFilterName? + /// Specifies the values to filter on. + /// This member is required. + public var values: [Swift.String]? + + public init( + name: RedshiftClientTypes.DescribeIntegrationsFilterName? = nil, + values: [Swift.String]? = nil + ) + { + self.name = name + self.values = values + } + } +} + +public struct DescribeIntegrationsInput: Swift.Sendable { + /// A filter that specifies one or more resources to return. + public var filters: [RedshiftClientTypes.DescribeIntegrationsFilter]? + /// The unique identifier of the integration. + public var integrationArn: Swift.String? + /// An optional pagination token provided by a previous DescribeIntegrations 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 response records to return in each call. If the number of remaining response records exceeds the specified MaxRecords value, a value is returned in a marker field of the response. You can retrieve the next set of records by retrying the command with the returned marker value. Default: 100 Constraints: minimum 20, maximum 100. + public var maxRecords: Swift.Int? + + public init( + filters: [RedshiftClientTypes.DescribeIntegrationsFilter]? = nil, + integrationArn: Swift.String? = nil, + marker: Swift.String? = nil, + maxRecords: Swift.Int? = nil + ) + { + self.filters = filters + self.integrationArn = integrationArn + self.marker = marker + self.maxRecords = maxRecords + } +} + +extension RedshiftClientTypes { + + public struct Integration: Swift.Sendable { + /// The encryption context for the integration. For more information, see [Encryption context](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) in the Amazon Web Services Key Management Service Developer Guide. + public var additionalEncryptionContext: [Swift.String: Swift.String]? + /// The time (UTC) when the integration was created. public var createTime: Foundation.Date? - /// The outstanding errors of an inbound integration. Each item is an "IntegrationError". This is null if there is no error. + /// The description of the integration. + public var description: Swift.String? + /// Any errors associated with the integration. public var errors: [RedshiftClientTypes.IntegrationError]? - /// The Amazon Resource Name (ARN) of an inbound integration. + /// The Amazon Resource Name (ARN) of the integration. public var integrationArn: Swift.String? - /// The Amazon Resource Name (ARN) of the source of an inbound integration. + /// The name of the integration. + public var integrationName: Swift.String? + /// The Key Management Service (KMS) key identifier for the key used to encrypt the integration. + public var kmsKeyId: Swift.String? + /// The Amazon Resource Name (ARN) of the database used as the source for replication. public var sourceArn: Swift.String? - /// The status of an inbound integration. + /// The current status of the integration. public var status: RedshiftClientTypes.ZeroETLIntegrationStatus? - /// The Amazon Resource Name (ARN) of the target of an inbound integration. + /// The list of tags associated with the integration. + public var tags: [RedshiftClientTypes.Tag]? + /// The Amazon Resource Name (ARN) of the Amazon Redshift data warehouse to use as the target for replication. public var targetArn: Swift.String? public init( + additionalEncryptionContext: [Swift.String: Swift.String]? = nil, createTime: Foundation.Date? = nil, + description: Swift.String? = nil, errors: [RedshiftClientTypes.IntegrationError]? = nil, integrationArn: Swift.String? = nil, + integrationName: Swift.String? = nil, + kmsKeyId: Swift.String? = nil, sourceArn: Swift.String? = nil, status: RedshiftClientTypes.ZeroETLIntegrationStatus? = nil, + tags: [RedshiftClientTypes.Tag]? = nil, targetArn: Swift.String? = nil ) { + self.additionalEncryptionContext = additionalEncryptionContext self.createTime = createTime + self.description = description self.errors = errors self.integrationArn = integrationArn + self.integrationName = integrationName + self.kmsKeyId = kmsKeyId self.sourceArn = sourceArn self.status = status + self.tags = tags self.targetArn = targetArn } } } -public struct DescribeInboundIntegrationsOutput: Swift.Sendable { - /// A list of [InboundIntegration] instances. - public var inboundIntegrations: [RedshiftClientTypes.InboundIntegration]? +public struct DescribeIntegrationsOutput: Swift.Sendable { + /// List of integrations that are described. + public var integrations: [RedshiftClientTypes.Integration]? /// A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the Marker parameter and retrying the command. If the Marker field is empty, all response records have been retrieved for the request. public var marker: Swift.String? public init( - inboundIntegrations: [RedshiftClientTypes.InboundIntegration]? = nil, + integrations: [RedshiftClientTypes.Integration]? = nil, marker: Swift.String? = nil ) { - self.inboundIntegrations = inboundIntegrations + self.integrations = integrations self.marker = marker } } @@ -10508,6 +10960,8 @@ public struct DescribeTagsInput: Swift.Sendable { /// /// * Snapshot copy grant /// + /// * Integration (zero-ETL integration) To describe the tags associated with an integration, don't specify ResourceType, instead specify the ResourceName of the integration. + /// /// /// For more information about Amazon Redshift resource types and constructing ARNs, go to [Specifying Policy Elements: Actions, Effects, Resources, and Principals](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-overview.html#redshift-iam-access-control-specify-actions) in the Amazon Redshift Cluster Management Guide. public var resourceType: Swift.String? @@ -11989,7 +12443,7 @@ public struct ModifyClusterInput: Swift.Sendable { /// /// Example: examplecluster public var newClusterIdentifier: Swift.String? - /// The new node type of the cluster. If you specify a new node type, you must also specify the number of nodes parameter. For more information about resizing clusters, go to [Resizing Clusters in Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/rs-resize-tutorial.html) in the Amazon Redshift Cluster Management Guide. Valid Values: dc2.large | dc2.8xlarge | ra3.xlplus | ra3.4xlarge | ra3.16xlarge + /// The new node type of the cluster. If you specify a new node type, you must also specify the number of nodes parameter. For more information about resizing clusters, go to [Resizing Clusters in Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/rs-resize-tutorial.html) in the Amazon Redshift Cluster Management Guide. Valid Values: dc2.large | dc2.8xlarge | ra3.large | ra3.xlplus | ra3.4xlarge | ra3.16xlarge public var nodeType: Swift.String? /// The new number of nodes of the cluster. If you specify a new number of nodes, you must also specify the node type parameter. For more information about resizing clusters, go to [Resizing Clusters in Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/rs-resize-tutorial.html) in the Amazon Redshift Cluster Management Guide. Valid Values: Integer greater than 0. public var numberOfNodes: Swift.Int? @@ -12512,6 +12966,79 @@ public struct ModifyEventSubscriptionOutput: Swift.Sendable { } } +public struct ModifyIntegrationInput: Swift.Sendable { + /// A new description for the integration. + public var description: Swift.String? + /// The unique identifier of the integration to modify. + /// This member is required. + public var integrationArn: Swift.String? + /// A new name for the integration. + public var integrationName: Swift.String? + + public init( + description: Swift.String? = nil, + integrationArn: Swift.String? = nil, + integrationName: Swift.String? = nil + ) + { + self.description = description + self.integrationArn = integrationArn + self.integrationName = integrationName + } +} + +public struct ModifyIntegrationOutput: Swift.Sendable { + /// The encryption context for the integration. For more information, see [Encryption context](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) in the Amazon Web Services Key Management Service Developer Guide. + public var additionalEncryptionContext: [Swift.String: Swift.String]? + /// The time (UTC) when the integration was created. + public var createTime: Foundation.Date? + /// The description of the integration. + public var description: Swift.String? + /// Any errors associated with the integration. + public var errors: [RedshiftClientTypes.IntegrationError]? + /// The Amazon Resource Name (ARN) of the integration. + public var integrationArn: Swift.String? + /// The name of the integration. + public var integrationName: Swift.String? + /// The Key Management Service (KMS) key identifier for the key used to encrypt the integration. + public var kmsKeyId: Swift.String? + /// The Amazon Resource Name (ARN) of the database used as the source for replication. + public var sourceArn: Swift.String? + /// The current status of the integration. + public var status: RedshiftClientTypes.ZeroETLIntegrationStatus? + /// The list of tags associated with the integration. + public var tags: [RedshiftClientTypes.Tag]? + /// The Amazon Resource Name (ARN) of the Amazon Redshift data warehouse to use as the target for replication. + public var targetArn: Swift.String? + + public init( + additionalEncryptionContext: [Swift.String: Swift.String]? = nil, + createTime: Foundation.Date? = nil, + description: Swift.String? = nil, + errors: [RedshiftClientTypes.IntegrationError]? = nil, + integrationArn: Swift.String? = nil, + integrationName: Swift.String? = nil, + kmsKeyId: Swift.String? = nil, + sourceArn: Swift.String? = nil, + status: RedshiftClientTypes.ZeroETLIntegrationStatus? = nil, + tags: [RedshiftClientTypes.Tag]? = nil, + targetArn: Swift.String? = nil + ) + { + self.additionalEncryptionContext = additionalEncryptionContext + self.createTime = createTime + self.description = description + self.errors = errors + self.integrationArn = integrationArn + self.integrationName = integrationName + self.kmsKeyId = kmsKeyId + self.sourceArn = sourceArn + self.status = status + self.tags = tags + self.targetArn = targetArn + } +} + public struct ModifyRedshiftIdcApplicationInput: Swift.Sendable { /// The authorized token issuer list for the Amazon Redshift IAM Identity Center application to change. public var authorizedTokenIssuerList: [RedshiftClientTypes.AuthorizedTokenIssuer]? @@ -13767,6 +14294,13 @@ extension CreateHsmConfigurationInput { } } +extension CreateIntegrationInput { + + static func urlPathProvider(_ value: CreateIntegrationInput) -> Swift.String? { + return "/" + } +} + extension CreateRedshiftIdcApplicationInput { static func urlPathProvider(_ value: CreateRedshiftIdcApplicationInput) -> Swift.String? { @@ -13893,6 +14427,13 @@ extension DeleteHsmConfigurationInput { } } +extension DeleteIntegrationInput { + + static func urlPathProvider(_ value: DeleteIntegrationInput) -> Swift.String? { + return "/" + } +} + extension DeletePartnerInput { static func urlPathProvider(_ value: DeletePartnerInput) -> Swift.String? { @@ -14117,6 +14658,13 @@ extension DescribeInboundIntegrationsInput { } } +extension DescribeIntegrationsInput { + + static func urlPathProvider(_ value: DescribeIntegrationsInput) -> Swift.String? { + return "/" + } +} + extension DescribeLoggingStatusInput { static func urlPathProvider(_ value: DescribeLoggingStatusInput) -> Swift.String? { @@ -14404,6 +14952,13 @@ extension ModifyEventSubscriptionInput { } } +extension ModifyIntegrationInput { + + static func urlPathProvider(_ value: ModifyIntegrationInput) -> Swift.String? { + return "/" + } +} + extension ModifyRedshiftIdcApplicationInput { static func urlPathProvider(_ value: ModifyRedshiftIdcApplicationInput) -> Swift.String? { @@ -14857,6 +15412,22 @@ extension CreateHsmConfigurationInput { } } +extension CreateIntegrationInput { + + static func write(value: CreateIntegrationInput?, to writer: SmithyFormURL.Writer) throws { + guard let value else { return } + try writer["AdditionalEncryptionContext"].writeMap(value.additionalEncryptionContext, valueWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + try writer["Description"].write(value.description) + try writer["IntegrationName"].write(value.integrationName) + try writer["KMSKeyId"].write(value.kmsKeyId) + try writer["SourceArn"].write(value.sourceArn) + try writer["TagList"].writeList(value.tagList, memberWritingClosure: RedshiftClientTypes.Tag.write(value:to:), memberNodeInfo: "Tag", isFlattened: false) + try writer["TargetArn"].write(value.targetArn) + try writer["Action"].write("CreateIntegration") + try writer["Version"].write("2012-12-01") + } +} + extension CreateRedshiftIdcApplicationInput { static func write(value: CreateRedshiftIdcApplicationInput?, to writer: SmithyFormURL.Writer) throws { @@ -15070,6 +15641,16 @@ extension DeleteHsmConfigurationInput { } } +extension DeleteIntegrationInput { + + static func write(value: DeleteIntegrationInput?, to writer: SmithyFormURL.Writer) throws { + guard let value else { return } + try writer["IntegrationArn"].write(value.integrationArn) + try writer["Action"].write("DeleteIntegration") + try writer["Version"].write("2012-12-01") + } +} + extension DeletePartnerInput { static func write(value: DeletePartnerInput?, to writer: SmithyFormURL.Writer) throws { @@ -15475,6 +16056,19 @@ extension DescribeInboundIntegrationsInput { } } +extension DescribeIntegrationsInput { + + static func write(value: DescribeIntegrationsInput?, to writer: SmithyFormURL.Writer) throws { + guard let value else { return } + try writer["Filters"].writeList(value.filters, memberWritingClosure: RedshiftClientTypes.DescribeIntegrationsFilter.write(value:to:), memberNodeInfo: "DescribeIntegrationsFilter", isFlattened: false) + try writer["IntegrationArn"].write(value.integrationArn) + try writer["Marker"].write(value.marker) + try writer["MaxRecords"].write(value.maxRecords) + try writer["Action"].write("DescribeIntegrations") + try writer["Version"].write("2012-12-01") + } +} + extension DescribeLoggingStatusInput { static func write(value: DescribeLoggingStatusInput?, to writer: SmithyFormURL.Writer) throws { @@ -16021,6 +16615,18 @@ extension ModifyEventSubscriptionInput { } } +extension ModifyIntegrationInput { + + static func write(value: ModifyIntegrationInput?, to writer: SmithyFormURL.Writer) throws { + guard let value else { return } + try writer["Description"].write(value.description) + try writer["IntegrationArn"].write(value.integrationArn) + try writer["IntegrationName"].write(value.integrationName) + try writer["Action"].write("ModifyIntegration") + try writer["Version"].write("2012-12-01") + } +} + extension ModifyRedshiftIdcApplicationInput { static func write(value: ModifyRedshiftIdcApplicationInput?, to writer: SmithyFormURL.Writer) throws { @@ -16617,6 +17223,28 @@ extension CreateHsmConfigurationOutput { } } +extension CreateIntegrationOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> CreateIntegrationOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyXML.Reader.from(data: data) + let reader = responseReader["CreateIntegrationResult"] + var value = CreateIntegrationOutput() + value.additionalEncryptionContext = try reader["AdditionalEncryptionContext"].readMapIfPresent(valueReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + value.createTime = try reader["CreateTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) + value.description = try reader["Description"].readIfPresent() + value.errors = try reader["Errors"].readListIfPresent(memberReadingClosure: RedshiftClientTypes.IntegrationError.read(from:), memberNodeInfo: "IntegrationError", isFlattened: false) + value.integrationArn = try reader["IntegrationArn"].readIfPresent() + value.integrationName = try reader["IntegrationName"].readIfPresent() + value.kmsKeyId = try reader["KMSKeyId"].readIfPresent() + value.sourceArn = try reader["SourceArn"].readIfPresent() + value.status = try reader["Status"].readIfPresent() + value.tags = try reader["Tags"].readListIfPresent(memberReadingClosure: RedshiftClientTypes.Tag.read(from:), memberNodeInfo: "Tag", isFlattened: false) + value.targetArn = try reader["TargetArn"].readIfPresent() + return value + } +} + extension CreateRedshiftIdcApplicationOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> CreateRedshiftIdcApplicationOutput { @@ -16827,6 +17455,28 @@ extension DeleteHsmConfigurationOutput { } } +extension DeleteIntegrationOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeleteIntegrationOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyXML.Reader.from(data: data) + let reader = responseReader["DeleteIntegrationResult"] + var value = DeleteIntegrationOutput() + value.additionalEncryptionContext = try reader["AdditionalEncryptionContext"].readMapIfPresent(valueReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + value.createTime = try reader["CreateTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) + value.description = try reader["Description"].readIfPresent() + value.errors = try reader["Errors"].readListIfPresent(memberReadingClosure: RedshiftClientTypes.IntegrationError.read(from:), memberNodeInfo: "IntegrationError", isFlattened: false) + value.integrationArn = try reader["IntegrationArn"].readIfPresent() + value.integrationName = try reader["IntegrationName"].readIfPresent() + value.kmsKeyId = try reader["KMSKeyId"].readIfPresent() + value.sourceArn = try reader["SourceArn"].readIfPresent() + value.status = try reader["Status"].readIfPresent() + value.tags = try reader["Tags"].readListIfPresent(memberReadingClosure: RedshiftClientTypes.Tag.read(from:), memberNodeInfo: "Tag", isFlattened: false) + value.targetArn = try reader["TargetArn"].readIfPresent() + return value + } +} + extension DeletePartnerOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DeletePartnerOutput { @@ -17197,6 +17847,19 @@ extension DescribeInboundIntegrationsOutput { } } +extension DescribeIntegrationsOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DescribeIntegrationsOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyXML.Reader.from(data: data) + let reader = responseReader["DescribeIntegrationsResult"] + var value = DescribeIntegrationsOutput() + value.integrations = try reader["Integrations"].readListIfPresent(memberReadingClosure: RedshiftClientTypes.Integration.read(from:), memberNodeInfo: "Integration", isFlattened: false) + value.marker = try reader["Marker"].readIfPresent() + return value + } +} + extension DescribeLoggingStatusOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> DescribeLoggingStatusOutput { @@ -17759,6 +18422,28 @@ extension ModifyEventSubscriptionOutput { } } +extension ModifyIntegrationOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ModifyIntegrationOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyXML.Reader.from(data: data) + let reader = responseReader["ModifyIntegrationResult"] + var value = ModifyIntegrationOutput() + value.additionalEncryptionContext = try reader["AdditionalEncryptionContext"].readMapIfPresent(valueReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + value.createTime = try reader["CreateTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) + value.description = try reader["Description"].readIfPresent() + value.errors = try reader["Errors"].readListIfPresent(memberReadingClosure: RedshiftClientTypes.IntegrationError.read(from:), memberNodeInfo: "IntegrationError", isFlattened: false) + value.integrationArn = try reader["IntegrationArn"].readIfPresent() + value.integrationName = try reader["IntegrationName"].readIfPresent() + value.kmsKeyId = try reader["KMSKeyId"].readIfPresent() + value.sourceArn = try reader["SourceArn"].readIfPresent() + value.status = try reader["Status"].readIfPresent() + value.tags = try reader["Tags"].readListIfPresent(memberReadingClosure: RedshiftClientTypes.Tag.read(from:), memberNodeInfo: "Tag", isFlattened: false) + value.targetArn = try reader["TargetArn"].readIfPresent() + return value + } +} + extension ModifyRedshiftIdcApplicationOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> ModifyRedshiftIdcApplicationOutput { @@ -18447,6 +19132,28 @@ enum CreateHsmConfigurationOutputError { } } +enum CreateIntegrationOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyXML.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSQueryError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "IntegrationAlreadyExistsFault": return try IntegrationAlreadyExistsFault.makeError(baseError: baseError) + case "IntegrationConflictOperationFault": return try IntegrationConflictOperationFault.makeError(baseError: baseError) + case "IntegrationQuotaExceededFault": return try IntegrationQuotaExceededFault.makeError(baseError: baseError) + case "IntegrationSourceNotFoundFault": return try IntegrationSourceNotFoundFault.makeError(baseError: baseError) + case "IntegrationTargetNotFoundFault": return try IntegrationTargetNotFoundFault.makeError(baseError: baseError) + case "InvalidClusterState": return try InvalidClusterStateFault.makeError(baseError: baseError) + case "InvalidTagFault": return try InvalidTagFault.makeError(baseError: baseError) + case "TagLimitExceededFault": return try TagLimitExceededFault.makeError(baseError: baseError) + case "UnsupportedOperation": return try UnsupportedOperationFault.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum CreateRedshiftIdcApplicationOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -18749,6 +19456,23 @@ enum DeleteHsmConfigurationOutputError { } } +enum DeleteIntegrationOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyXML.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSQueryError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "IntegrationConflictOperationFault": return try IntegrationConflictOperationFault.makeError(baseError: baseError) + case "IntegrationConflictStateFault": return try IntegrationConflictStateFault.makeError(baseError: baseError) + case "IntegrationNotFoundFault": return try IntegrationNotFoundFault.makeError(baseError: baseError) + case "UnsupportedOperation": return try UnsupportedOperationFault.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum DeletePartnerOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -19223,6 +19947,21 @@ enum DescribeInboundIntegrationsOutputError { } } +enum DescribeIntegrationsOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyXML.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSQueryError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "IntegrationNotFoundFault": return try IntegrationNotFoundFault.makeError(baseError: baseError) + case "UnsupportedOperation": return try UnsupportedOperationFault.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum DescribeLoggingStatusOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -19915,6 +20654,24 @@ enum ModifyEventSubscriptionOutputError { } } +enum ModifyIntegrationOutputError { + + static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { + let data = try await httpResponse.data() + let responseReader = try SmithyXML.Reader.from(data: data) + let baseError = try AWSClientRuntime.AWSQueryError(httpResponse: httpResponse, responseReader: responseReader, noErrorWrapping: false) + if let error = baseError.customError() { return error } + switch baseError.code { + case "IntegrationAlreadyExistsFault": return try IntegrationAlreadyExistsFault.makeError(baseError: baseError) + case "IntegrationConflictOperationFault": return try IntegrationConflictOperationFault.makeError(baseError: baseError) + case "IntegrationConflictStateFault": return try IntegrationConflictStateFault.makeError(baseError: baseError) + case "IntegrationNotFoundFault": return try IntegrationNotFoundFault.makeError(baseError: baseError) + case "UnsupportedOperation": return try UnsupportedOperationFault.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum ModifyRedshiftIdcApplicationOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -21308,6 +22065,71 @@ extension HsmConfigurationAlreadyExistsFault { } } +extension IntegrationTargetNotFoundFault { + + static func makeError(baseError: AWSClientRuntime.AWSQueryError) throws -> IntegrationTargetNotFoundFault { + let reader = baseError.errorBodyReader + var value = IntegrationTargetNotFoundFault() + value.properties.message = try reader["message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension IntegrationAlreadyExistsFault { + + static func makeError(baseError: AWSClientRuntime.AWSQueryError) throws -> IntegrationAlreadyExistsFault { + let reader = baseError.errorBodyReader + var value = IntegrationAlreadyExistsFault() + value.properties.message = try reader["message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension IntegrationConflictOperationFault { + + static func makeError(baseError: AWSClientRuntime.AWSQueryError) throws -> IntegrationConflictOperationFault { + let reader = baseError.errorBodyReader + var value = IntegrationConflictOperationFault() + value.properties.message = try reader["message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension IntegrationQuotaExceededFault { + + static func makeError(baseError: AWSClientRuntime.AWSQueryError) throws -> IntegrationQuotaExceededFault { + let reader = baseError.errorBodyReader + var value = IntegrationQuotaExceededFault() + value.properties.message = try reader["message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension IntegrationSourceNotFoundFault { + + static func makeError(baseError: AWSClientRuntime.AWSQueryError) throws -> IntegrationSourceNotFoundFault { + let reader = baseError.errorBodyReader + var value = IntegrationSourceNotFoundFault() + value.properties.message = try reader["message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + extension DependentServiceAccessDeniedFault { static func makeError(baseError: AWSClientRuntime.AWSQueryError) throws -> DependentServiceAccessDeniedFault { @@ -21646,6 +22468,32 @@ extension InvalidHsmConfigurationStateFault { } } +extension IntegrationNotFoundFault { + + static func makeError(baseError: AWSClientRuntime.AWSQueryError) throws -> IntegrationNotFoundFault { + let reader = baseError.errorBodyReader + var value = IntegrationNotFoundFault() + value.properties.message = try reader["message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + +extension IntegrationConflictStateFault { + + static func makeError(baseError: AWSClientRuntime.AWSQueryError) throws -> IntegrationConflictStateFault { + let reader = baseError.errorBodyReader + var value = IntegrationConflictStateFault() + value.properties.message = try reader["message"].readIfPresent() + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + extension ScheduledActionNotFoundFault { static func makeError(baseError: AWSClientRuntime.AWSQueryError) throws -> ScheduledActionNotFoundFault { @@ -21711,19 +22559,6 @@ extension UsageLimitNotFoundFault { } } -extension IntegrationNotFoundFault { - - static func makeError(baseError: AWSClientRuntime.AWSQueryError) throws -> IntegrationNotFoundFault { - let reader = baseError.errorBodyReader - var value = IntegrationNotFoundFault() - value.properties.message = try reader["message"].readIfPresent() - value.httpResponse = baseError.httpResponse - value.requestID = baseError.requestID - value.message = baseError.message - return value - } -} - extension AccessToSnapshotDeniedFault { static func makeError(baseError: AWSClientRuntime.AWSQueryError) throws -> AccessToSnapshotDeniedFault { @@ -22670,6 +23505,17 @@ extension RedshiftClientTypes.HsmConfiguration { } } +extension RedshiftClientTypes.IntegrationError { + + static func read(from reader: SmithyXML.Reader) throws -> RedshiftClientTypes.IntegrationError { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = RedshiftClientTypes.IntegrationError() + value.errorCode = try reader["ErrorCode"].readIfPresent() ?? "" + value.errorMessage = try reader["ErrorMessage"].readIfPresent() + return value + } +} + extension RedshiftClientTypes.RedshiftIdcApplication { static func read(from reader: SmithyXML.Reader) throws -> RedshiftClientTypes.RedshiftIdcApplication { @@ -23143,13 +23989,22 @@ extension RedshiftClientTypes.InboundIntegration { } } -extension RedshiftClientTypes.IntegrationError { +extension RedshiftClientTypes.Integration { - static func read(from reader: SmithyXML.Reader) throws -> RedshiftClientTypes.IntegrationError { + static func read(from reader: SmithyXML.Reader) throws -> RedshiftClientTypes.Integration { guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } - var value = RedshiftClientTypes.IntegrationError() - value.errorCode = try reader["ErrorCode"].readIfPresent() ?? "" - value.errorMessage = try reader["ErrorMessage"].readIfPresent() + var value = RedshiftClientTypes.Integration() + value.integrationArn = try reader["IntegrationArn"].readIfPresent() + value.integrationName = try reader["IntegrationName"].readIfPresent() + value.sourceArn = try reader["SourceArn"].readIfPresent() + value.targetArn = try reader["TargetArn"].readIfPresent() + value.status = try reader["Status"].readIfPresent() + value.errors = try reader["Errors"].readListIfPresent(memberReadingClosure: RedshiftClientTypes.IntegrationError.read(from:), memberNodeInfo: "IntegrationError", isFlattened: false) + value.createTime = try reader["CreateTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) + value.description = try reader["Description"].readIfPresent() + value.kmsKeyId = try reader["KMSKeyId"].readIfPresent() + value.additionalEncryptionContext = try reader["AdditionalEncryptionContext"].readMapIfPresent(valueReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + value.tags = try reader["Tags"].readListIfPresent(memberReadingClosure: RedshiftClientTypes.Tag.read(from:), memberNodeInfo: "Tag", isFlattened: false) return value } } @@ -23385,6 +24240,15 @@ extension RedshiftClientTypes.SnapshotSortingEntity { } } +extension RedshiftClientTypes.DescribeIntegrationsFilter { + + static func write(value: RedshiftClientTypes.DescribeIntegrationsFilter?, to writer: SmithyFormURL.Writer) throws { + guard let value else { return } + try writer["Name"].write(value.name) + try writer["Values"].writeList(value.values, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "Value", isFlattened: false) + } +} + extension RedshiftClientTypes.NodeConfigurationOptionsFilter { static func write(value: RedshiftClientTypes.NodeConfigurationOptionsFilter?, to writer: SmithyFormURL.Writer) throws { diff --git a/Sources/Services/AWSRedshift/Sources/AWSRedshift/Paginators.swift b/Sources/Services/AWSRedshift/Sources/AWSRedshift/Paginators.swift index 0f4ec1e09e8..5b83be921c2 100644 --- a/Sources/Services/AWSRedshift/Sources/AWSRedshift/Paginators.swift +++ b/Sources/Services/AWSRedshift/Sources/AWSRedshift/Paginators.swift @@ -701,6 +701,38 @@ extension PaginatorSequence where OperationStackInput == DescribeInboundIntegrat return try await self.asyncCompactMap { item in item.inboundIntegrations } } } +extension RedshiftClient { + /// Paginate over `[DescribeIntegrationsOutput]` 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 `[DescribeIntegrationsInput]` to start pagination + /// - Returns: An `AsyncSequence` that can iterate over `DescribeIntegrationsOutput` + public func describeIntegrationsPaginated(input: DescribeIntegrationsInput) -> ClientRuntime.PaginatorSequence { + return ClientRuntime.PaginatorSequence(input: input, inputKey: \.marker, outputKey: \.marker, paginationFunction: self.describeIntegrations(input:)) + } +} + +extension DescribeIntegrationsInput: ClientRuntime.PaginateToken { + public func usingPaginationToken(_ token: Swift.String) -> DescribeIntegrationsInput { + return DescribeIntegrationsInput( + filters: self.filters, + integrationArn: self.integrationArn, + marker: token, + maxRecords: self.maxRecords + )} +} + +extension PaginatorSequence where OperationStackInput == DescribeIntegrationsInput, OperationStackOutput == DescribeIntegrationsOutput { + /// This paginator transforms the `AsyncSequence` returned by `describeIntegrationsPaginated` + /// to access the nested member `[RedshiftClientTypes.Integration]` + /// - Returns: `[RedshiftClientTypes.Integration]` + public func integrations() async throws -> [RedshiftClientTypes.Integration] { + return try await self.asyncCompactMap { item in item.integrations } + } +} extension RedshiftClient { /// Paginate over `[DescribeNodeConfigurationOptionsOutput]` results. /// diff --git a/Sources/Services/AWSRedshift/Sources/AWSRedshift/RedshiftClient.swift b/Sources/Services/AWSRedshift/Sources/AWSRedshift/RedshiftClient.swift index a218d9b525a..2e738033b48 100644 --- a/Sources/Services/AWSRedshift/Sources/AWSRedshift/RedshiftClient.swift +++ b/Sources/Services/AWSRedshift/Sources/AWSRedshift/RedshiftClient.swift @@ -1816,6 +1816,83 @@ extension RedshiftClient { return try await op.execute(input: input) } + /// Performs the `CreateIntegration` operation on the `RedshiftServiceVersion20121201` service. + /// + /// Creates a zero-ETL integration with Amazon Redshift. + /// + /// - Parameter CreateIntegrationInput : [no documentation found] + /// + /// - Returns: `CreateIntegrationOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `IntegrationAlreadyExistsFault` : The integration you are trying to create already exists. + /// - `IntegrationConflictOperationFault` : A conflicting conditional operation is currently in progress against this resource. This typically occurs when there are multiple requests being made to the same resource at the same time, and these requests conflict with each other. + /// - `IntegrationQuotaExceededFault` : You can't create any more zero-ETL integrations because the quota has been reached. + /// - `IntegrationSourceNotFoundFault` : The specified integration source can't be found. + /// - `IntegrationTargetNotFoundFault` : The specified integration target can't be found. + /// - `InvalidClusterStateFault` : The specified cluster is not in the available state. + /// - `InvalidTagFault` : The tag is invalid. + /// - `TagLimitExceededFault` : You have exceeded the number of tags allowed. + /// - `UnsupportedOperationFault` : The requested operation isn't supported. + public func createIntegration(input: CreateIntegrationInput) async throws -> CreateIntegrationOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "createIntegration") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "redshift") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(CreateIntegrationInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(CreateIntegrationOutput.httpOutput(from:), CreateIntegrationOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: CreateIntegrationInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-www-form-urlencoded")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "Redshift") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "CreateIntegration") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `CreateRedshiftIdcApplication` operation on the `RedshiftServiceVersion20121201` service. /// /// Creates an Amazon Redshift application for use with IAM Identity Center. @@ -3108,6 +3185,78 @@ extension RedshiftClient { return try await op.execute(input: input) } + /// Performs the `DeleteIntegration` operation on the `RedshiftServiceVersion20121201` service. + /// + /// Deletes a zero-ETL integration with Amazon Redshift. + /// + /// - Parameter DeleteIntegrationInput : [no documentation found] + /// + /// - Returns: `DeleteIntegrationOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `IntegrationConflictOperationFault` : A conflicting conditional operation is currently in progress against this resource. This typically occurs when there are multiple requests being made to the same resource at the same time, and these requests conflict with each other. + /// - `IntegrationConflictStateFault` : The integration is in an invalid state and can't perform the requested operation. + /// - `IntegrationNotFoundFault` : The integration can't be found. + /// - `UnsupportedOperationFault` : The requested operation isn't supported. + public func deleteIntegration(input: DeleteIntegrationInput) async throws -> DeleteIntegrationOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "deleteIntegration") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "redshift") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(DeleteIntegrationInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(DeleteIntegrationOutput.httpOutput(from:), DeleteIntegrationOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: DeleteIntegrationInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-www-form-urlencoded")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "Redshift") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "DeleteIntegration") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `DeletePartner` operation on the `RedshiftServiceVersion20121201` service. /// /// Deletes a partner integration from a cluster. Data can still flow to the cluster until the integration is deleted at the partner's website. @@ -5322,6 +5471,76 @@ extension RedshiftClient { return try await op.execute(input: input) } + /// Performs the `DescribeIntegrations` operation on the `RedshiftServiceVersion20121201` service. + /// + /// Describes one or more zero-ETL integrations with Amazon Redshift. + /// + /// - Parameter DescribeIntegrationsInput : [no documentation found] + /// + /// - Returns: `DescribeIntegrationsOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `IntegrationNotFoundFault` : The integration can't be found. + /// - `UnsupportedOperationFault` : The requested operation isn't supported. + public func describeIntegrations(input: DescribeIntegrationsInput) async throws -> DescribeIntegrationsOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "describeIntegrations") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "redshift") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(DescribeIntegrationsInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(DescribeIntegrationsOutput.httpOutput(from:), DescribeIntegrationsOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: DescribeIntegrationsInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-www-form-urlencoded")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "Redshift") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "DescribeIntegrations") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `DescribeLoggingStatus` operation on the `RedshiftServiceVersion20121201` service. /// /// Describes whether information, such as queries and connection attempts, is being logged for the specified Amazon Redshift cluster. @@ -8274,6 +8493,79 @@ extension RedshiftClient { return try await op.execute(input: input) } + /// Performs the `ModifyIntegration` operation on the `RedshiftServiceVersion20121201` service. + /// + /// Modifies a zero-ETL integration with Amazon Redshift. + /// + /// - Parameter ModifyIntegrationInput : [no documentation found] + /// + /// - Returns: `ModifyIntegrationOutput` : [no documentation found] + /// + /// - Throws: One of the exceptions listed below __Possible Exceptions__. + /// + /// __Possible Exceptions:__ + /// - `IntegrationAlreadyExistsFault` : The integration you are trying to create already exists. + /// - `IntegrationConflictOperationFault` : A conflicting conditional operation is currently in progress against this resource. This typically occurs when there are multiple requests being made to the same resource at the same time, and these requests conflict with each other. + /// - `IntegrationConflictStateFault` : The integration is in an invalid state and can't perform the requested operation. + /// - `IntegrationNotFoundFault` : The integration can't be found. + /// - `UnsupportedOperationFault` : The requested operation isn't supported. + public func modifyIntegration(input: ModifyIntegrationInput) async throws -> ModifyIntegrationOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "modifyIntegration") + .withIdempotencyTokenGenerator(value: config.idempotencyTokenGenerator) + .withLogger(value: config.logger) + .withPartitionID(value: config.partitionID) + .withAuthSchemes(value: config.authSchemes ?? []) + .withAuthSchemeResolver(value: config.authSchemeResolver) + .withUnsignedPayloadTrait(value: false) + .withSocketTimeout(value: config.httpClientConfiguration.socketTimeout) + .withIdentityResolver(value: config.bearerTokenIdentityResolver, schemeID: "smithy.api#httpBearerAuth") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4") + .withIdentityResolver(value: config.awsCredentialIdentityResolver, schemeID: "aws.auth#sigv4a") + .withRegion(value: config.region) + .withSigningName(value: "redshift") + .withSigningRegion(value: config.signingRegion) + .build() + let builder = ClientRuntime.OrchestratorBuilder() + config.interceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + config.httpInterceptorProviders.forEach { provider in + builder.interceptors.add(provider.create()) + } + builder.interceptors.add(ClientRuntime.URLPathMiddleware(ModifyIntegrationInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(ModifyIntegrationOutput.httpOutput(from:), ModifyIntegrationOutputError.httpError(from:))) + builder.interceptors.add(ClientRuntime.LoggerMiddleware(clientLogMode: config.clientLogMode)) + builder.retryStrategy(SmithyRetries.DefaultRetryStrategy(options: config.retryStrategyOptions)) + builder.retryErrorInfoProvider(AWSClientRuntime.AWSRetryErrorInfoProvider.errorInfo(for:)) + builder.applySigner(ClientRuntime.SignerMiddleware()) + let endpointParams = EndpointParams(endpoint: config.endpoint, region: config.region, useDualStack: config.useDualStack ?? false, useFIPS: config.useFIPS ?? false) + builder.applyEndpoint(AWSClientRuntime.EndpointResolverMiddleware(endpointResolverBlock: { [config] in try config.endpointResolver.resolve(params: $0) }, endpointParams: endpointParams)) + builder.interceptors.add(AWSClientRuntime.UserAgentMiddleware(serviceID: serviceName, version: "1.0", config: config)) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: ModifyIntegrationInput.write(value:to:))) + builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/x-www-form-urlencoded")) + builder.selectAuthScheme(ClientRuntime.AuthSchemeMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkInvocationIdMiddleware()) + builder.interceptors.add(AWSClientRuntime.AmzSdkRequestMiddleware(maxRetries: config.retryStrategyOptions.maxRetriesBase)) + var metricsAttributes = Smithy.Attributes() + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.service, value: "Redshift") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "ModifyIntegration") + let op = builder.attributes(context) + .telemetry(ClientRuntime.OrchestratorTelemetry( + telemetryProvider: config.telemetryProvider, + metricsAttributes: metricsAttributes, + meterScope: serviceName, + tracerScope: serviceName + )) + .executeRequest(client) + .build() + return try await op.execute(input: input) + } + /// Performs the `ModifyRedshiftIdcApplication` operation on the `RedshiftServiceVersion20121201` service. /// /// Changes an existing Amazon Redshift IAM Identity Center application. @@ -9070,6 +9362,8 @@ extension RedshiftClient { /// /// * dc2.8xlarge /// + /// * ra3.large + /// /// * ra3.xlplus /// /// * ra3.4xlarge diff --git a/Sources/Services/AWSRedshiftServerless/Sources/AWSRedshiftServerless/Models.swift b/Sources/Services/AWSRedshiftServerless/Sources/AWSRedshiftServerless/Models.swift index 7a064bc49c4..5e6ca60cf19 100644 --- a/Sources/Services/AWSRedshiftServerless/Sources/AWSRedshiftServerless/Models.swift +++ b/Sources/Services/AWSRedshiftServerless/Sources/AWSRedshiftServerless/Models.swift @@ -572,6 +572,8 @@ extension RedshiftServerlessClientTypes { public struct NetworkInterface: Swift.Sendable { /// The availability Zone. public var availabilityZone: Swift.String? + /// The IPv6 address of the network interface within the subnet. + public var ipv6Address: Swift.String? /// The unique identifier of the network interface. public var networkInterfaceId: Swift.String? /// The IPv4 address of the network interface within the subnet. @@ -581,12 +583,14 @@ extension RedshiftServerlessClientTypes { public init( availabilityZone: Swift.String? = nil, + ipv6Address: Swift.String? = nil, networkInterfaceId: Swift.String? = nil, privateIpAddress: Swift.String? = nil, subnetId: Swift.String? = nil ) { self.availabilityZone = availabilityZone + self.ipv6Address = ipv6Address self.networkInterfaceId = networkInterfaceId self.privateIpAddress = privateIpAddress self.subnetId = subnetId @@ -969,7 +973,7 @@ public struct CreateScheduledActionInput: Swift.Sendable { /// The name of the namespace for which to create a scheduled action. /// This member is required. public var namespaceName: Swift.String? - /// The ARN of the IAM role to assume to run the scheduled action. This IAM role must have permission to run the Amazon Redshift Serverless API operation in the scheduled action. This IAM role must allow the Amazon Redshift scheduler to schedule creating snapshots. (Principal scheduler.redshift.amazonaws.com) to assume permissions on your behalf. For more information about the IAM role to use with the Amazon Redshift scheduler, see [Using Identity-Based Policies for Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-identity-based.html) in the Amazon Redshift Cluster Management Guide + /// The ARN of the IAM role to assume to run the scheduled action. This IAM role must have permission to run the Amazon Redshift Serverless API operation in the scheduled action. This IAM role must allow the Amazon Redshift scheduler to schedule creating snapshots. (Principal scheduler.redshift.amazonaws.com) to assume permissions on your behalf. For more information about the IAM role to use with the Amazon Redshift scheduler, see [Using Identity-Based Policies for Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-identity-based.html) in the Amazon Redshift Management Guide /// This member is required. public var roleArn: Swift.String? /// The schedule for a one-time (at timestamp format) or recurring (cron format) scheduled action. Schedule invocations must be separated by at least one hour. Times are in UTC. @@ -1053,7 +1057,7 @@ extension RedshiftServerlessClientTypes { public var namespaceName: Swift.String? /// An array of timestamps of when the next scheduled actions will trigger. public var nextInvocations: [Foundation.Date]? - /// The ARN of the IAM role to assume to run the scheduled action. This IAM role must have permission to run the Amazon Redshift Serverless API operation in the scheduled action. This IAM role must allow the Amazon Redshift scheduler to schedule creating snapshots. (Principal scheduler.redshift.amazonaws.com) to assume permissions on your behalf. For more information about the IAM role to use with the Amazon Redshift scheduler, see [Using Identity-Based Policies for Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-identity-based.html) in the Amazon Redshift Cluster Management Guide + /// The ARN of the IAM role to assume to run the scheduled action. This IAM role must have permission to run the Amazon Redshift Serverless API operation in the scheduled action. This IAM role must allow the Amazon Redshift scheduler to schedule creating snapshots. (Principal scheduler.redshift.amazonaws.com) to assume permissions on your behalf. For more information about the IAM role to use with the Amazon Redshift scheduler, see [Using Identity-Based Policies for Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-identity-based.html) in the Amazon Redshift Management Guide public var roleArn: Swift.String? /// The schedule for a one-time (at timestamp format) or recurring (cron format) scheduled action. Schedule invocations must be separated by at least one hour. Times are in UTC. /// @@ -1429,6 +1433,31 @@ public struct InsufficientCapacityException: ClientRuntime.ModeledError, AWSClie } } +/// There are no subnets in your VPC with associated IPv6 CIDR blocks. To use dual-stack mode, associate an IPv6 CIDR block with each subnet in your VPC. +public struct Ipv6CidrBlockNotFoundException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { + + public struct Properties { + /// This member is required. + public internal(set) var message: Swift.String? = nil + } + + public internal(set) var properties = Properties() + public static var typeName: Swift.String { "Ipv6CidrBlockNotFoundException" } + public static var fault: ClientRuntime.ErrorFault { .client } + public static var isRetryable: Swift.Bool { false } + public static var isThrottling: Swift.Bool { false } + public internal(set) var httpResponse = SmithyHTTPAPI.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 + } +} + public struct CreateWorkgroupInput: Swift.Sendable { /// The base data warehouse capacity of the workgroup in Redshift Processing Units (RPUs). public var baseCapacity: Swift.Int? @@ -1436,6 +1465,8 @@ public struct CreateWorkgroupInput: Swift.Sendable { public var configParameters: [RedshiftServerlessClientTypes.ConfigParameter]? /// The value that specifies whether to turn on enhanced virtual private cloud (VPC) routing, which forces Amazon Redshift Serverless to route traffic through your VPC instead of over the internet. public var enhancedVpcRouting: Swift.Bool? + /// The IP address type that the workgroup supports. Possible values are ipv4 and dualstack. + public var ipAddressType: Swift.String? /// The maximum data-warehouse capacity Amazon Redshift Serverless uses to serve queries. The max capacity is specified in RPUs. public var maxCapacity: Swift.Int? /// The name of the namespace to associate with the workgroup. @@ -1459,6 +1490,7 @@ public struct CreateWorkgroupInput: Swift.Sendable { baseCapacity: Swift.Int? = nil, configParameters: [RedshiftServerlessClientTypes.ConfigParameter]? = nil, enhancedVpcRouting: Swift.Bool? = nil, + ipAddressType: Swift.String? = nil, maxCapacity: Swift.Int? = nil, namespaceName: Swift.String? = nil, port: Swift.Int? = nil, @@ -1472,6 +1504,7 @@ public struct CreateWorkgroupInput: Swift.Sendable { self.baseCapacity = baseCapacity self.configParameters = configParameters self.enhancedVpcRouting = enhancedVpcRouting + self.ipAddressType = ipAddressType self.maxCapacity = maxCapacity self.namespaceName = namespaceName self.port = port @@ -1564,6 +1597,8 @@ extension RedshiftServerlessClientTypes { public var endpoint: RedshiftServerlessClientTypes.Endpoint? /// The value that specifies whether to enable enhanced virtual private cloud (VPC) routing, which forces Amazon Redshift Serverless to route traffic through your VPC. public var enhancedVpcRouting: Swift.Bool? + /// The IP address type that the workgroup supports. Possible values are ipv4 and dualstack. + public var ipAddressType: Swift.String? /// The maximum data-warehouse capacity Amazon Redshift Serverless uses to serve queries. The max capacity is specified in RPUs. public var maxCapacity: Swift.Int? /// The namespace the workgroup is associated with. @@ -1599,6 +1634,7 @@ extension RedshiftServerlessClientTypes { customDomainName: Swift.String? = nil, endpoint: RedshiftServerlessClientTypes.Endpoint? = nil, enhancedVpcRouting: Swift.Bool? = nil, + ipAddressType: Swift.String? = nil, maxCapacity: Swift.Int? = nil, namespaceName: Swift.String? = nil, patchVersion: Swift.String? = nil, @@ -1622,6 +1658,7 @@ extension RedshiftServerlessClientTypes { self.customDomainName = customDomainName self.endpoint = endpoint self.enhancedVpcRouting = enhancedVpcRouting + self.ipAddressType = ipAddressType self.maxCapacity = maxCapacity self.namespaceName = namespaceName self.patchVersion = patchVersion @@ -3058,7 +3095,7 @@ public struct UpdateScheduledActionInput: Swift.Sendable { public var enabled: Swift.Bool? /// The end time in UTC of the scheduled action to update. public var endTime: Foundation.Date? - /// The ARN of the IAM role to assume to run the scheduled action. This IAM role must have permission to run the Amazon Redshift Serverless API operation in the scheduled action. This IAM role must allow the Amazon Redshift scheduler to schedule creating snapshots (Principal scheduler.redshift.amazonaws.com) to assume permissions on your behalf. For more information about the IAM role to use with the Amazon Redshift scheduler, see [Using Identity-Based Policies for Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-identity-based.html) in the Amazon Redshift Cluster Management Guide + /// The ARN of the IAM role to assume to run the scheduled action. This IAM role must have permission to run the Amazon Redshift Serverless API operation in the scheduled action. This IAM role must allow the Amazon Redshift scheduler to schedule creating snapshots (Principal scheduler.redshift.amazonaws.com) to assume permissions on your behalf. For more information about the IAM role to use with the Amazon Redshift scheduler, see [Using Identity-Based Policies for Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-identity-based.html) in the Amazon Redshift Management Guide public var roleArn: Swift.String? /// The schedule for a one-time (at timestamp format) or recurring (cron format) scheduled action. Schedule invocations must be separated by at least one hour. Times are in UTC. /// @@ -3426,6 +3463,8 @@ public struct UpdateWorkgroupInput: Swift.Sendable { public var configParameters: [RedshiftServerlessClientTypes.ConfigParameter]? /// The value that specifies whether to turn on enhanced virtual private cloud (VPC) routing, which forces Amazon Redshift Serverless to route traffic through your VPC. public var enhancedVpcRouting: Swift.Bool? + /// The IP address type that the workgroup supports. Possible values are ipv4 and dualstack. + public var ipAddressType: Swift.String? /// The maximum data-warehouse capacity Amazon Redshift Serverless uses to serve queries. The max capacity is specified in RPUs. public var maxCapacity: Swift.Int? /// The custom port to use when connecting to a workgroup. Valid port ranges are 5431-5455 and 8191-8215. The default is 5439. @@ -3444,6 +3483,7 @@ public struct UpdateWorkgroupInput: Swift.Sendable { baseCapacity: Swift.Int? = nil, configParameters: [RedshiftServerlessClientTypes.ConfigParameter]? = nil, enhancedVpcRouting: Swift.Bool? = nil, + ipAddressType: Swift.String? = nil, maxCapacity: Swift.Int? = nil, port: Swift.Int? = nil, publiclyAccessible: Swift.Bool? = nil, @@ -3455,6 +3495,7 @@ public struct UpdateWorkgroupInput: Swift.Sendable { self.baseCapacity = baseCapacity self.configParameters = configParameters self.enhancedVpcRouting = enhancedVpcRouting + self.ipAddressType = ipAddressType self.maxCapacity = maxCapacity self.port = port self.publiclyAccessible = publiclyAccessible @@ -3971,6 +4012,7 @@ extension CreateWorkgroupInput { try writer["baseCapacity"].write(value.baseCapacity) try writer["configParameters"].writeList(value.configParameters, memberWritingClosure: RedshiftServerlessClientTypes.ConfigParameter.write(value:to:), memberNodeInfo: "member", isFlattened: false) try writer["enhancedVpcRouting"].write(value.enhancedVpcRouting) + try writer["ipAddressType"].write(value.ipAddressType) try writer["maxCapacity"].write(value.maxCapacity) try writer["namespaceName"].write(value.namespaceName) try writer["port"].write(value.port) @@ -4421,6 +4463,7 @@ extension UpdateWorkgroupInput { try writer["baseCapacity"].write(value.baseCapacity) try writer["configParameters"].writeList(value.configParameters, memberWritingClosure: RedshiftServerlessClientTypes.ConfigParameter.write(value:to:), memberNodeInfo: "member", isFlattened: false) try writer["enhancedVpcRouting"].write(value.enhancedVpcRouting) + try writer["ipAddressType"].write(value.ipAddressType) try writer["maxCapacity"].write(value.maxCapacity) try writer["port"].write(value.port) try writer["publiclyAccessible"].write(value.publiclyAccessible) @@ -5253,6 +5296,7 @@ enum CreateWorkgroupOutputError { case "ConflictException": return try ConflictException.makeError(baseError: baseError) case "InsufficientCapacityException": return try InsufficientCapacityException.makeError(baseError: baseError) case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "Ipv6CidrBlockNotFoundException": return try Ipv6CidrBlockNotFoundException.makeError(baseError: baseError) case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) case "TooManyTagsException": return try TooManyTagsException.makeError(baseError: baseError) case "ValidationException": return try ValidationException.makeError(baseError: baseError) @@ -6034,6 +6078,7 @@ enum UpdateWorkgroupOutputError { case "ConflictException": return try ConflictException.makeError(baseError: baseError) case "InsufficientCapacityException": return try InsufficientCapacityException.makeError(baseError: baseError) case "InternalServerException": return try InternalServerException.makeError(baseError: baseError) + case "Ipv6CidrBlockNotFoundException": return try Ipv6CidrBlockNotFoundException.makeError(baseError: baseError) case "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) case "ValidationException": return try ValidationException.makeError(baseError: baseError) default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) @@ -6162,6 +6207,19 @@ extension InsufficientCapacityException { } } +extension Ipv6CidrBlockNotFoundException { + + static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> Ipv6CidrBlockNotFoundException { + let reader = baseError.errorBodyReader + var value = Ipv6CidrBlockNotFoundException() + value.properties.message = try reader["message"].readIfPresent() ?? "" + value.httpResponse = baseError.httpResponse + value.requestID = baseError.requestID + value.message = baseError.message + return value + } +} + extension InvalidPaginationException { static func makeError(baseError: AWSClientRuntime.AWSJSONError) throws -> InvalidPaginationException { @@ -6246,6 +6304,7 @@ extension RedshiftServerlessClientTypes.NetworkInterface { value.subnetId = try reader["subnetId"].readIfPresent() value.privateIpAddress = try reader["privateIpAddress"].readIfPresent() value.availabilityZone = try reader["availabilityZone"].readIfPresent() + value.ipv6Address = try reader["ipv6Address"].readIfPresent() return value } } @@ -6450,6 +6509,7 @@ extension RedshiftServerlessClientTypes.Workgroup { value.patchVersion = try reader["patchVersion"].readIfPresent() value.maxCapacity = try reader["maxCapacity"].readIfPresent() value.crossAccountVpcs = try reader["crossAccountVpcs"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) + value.ipAddressType = try reader["ipAddressType"].readIfPresent() return value } } diff --git a/Sources/Services/AWSRedshiftServerless/Sources/AWSRedshiftServerless/RedshiftServerlessClient.swift b/Sources/Services/AWSRedshiftServerless/Sources/AWSRedshiftServerless/RedshiftServerlessClient.swift index ea4d3785eb5..b540e3c438f 100644 --- a/Sources/Services/AWSRedshiftServerless/Sources/AWSRedshiftServerless/RedshiftServerlessClient.swift +++ b/Sources/Services/AWSRedshiftServerless/Sources/AWSRedshiftServerless/RedshiftServerlessClient.swift @@ -803,6 +803,7 @@ extension RedshiftServerlessClient { /// - `ConflictException` : The submitted action has conflicts. /// - `InsufficientCapacityException` : There is an insufficient capacity to perform the action. /// - `InternalServerException` : The request processing has failed because of an unknown error, exception or failure. + /// - `Ipv6CidrBlockNotFoundException` : There are no subnets in your VPC with associated IPv6 CIDR blocks. To use dual-stack mode, associate an IPv6 CIDR block with each subnet in your VPC. /// - `ResourceNotFoundException` : The resource could not be found. /// - `TooManyTagsException` : The request exceeded the number of tags allowed for a resource. /// - `ValidationException` : The input failed to satisfy the constraints specified by an AWS service. @@ -4160,6 +4161,7 @@ extension RedshiftServerlessClient { /// - `ConflictException` : The submitted action has conflicts. /// - `InsufficientCapacityException` : There is an insufficient capacity to perform the action. /// - `InternalServerException` : The request processing has failed because of an unknown error, exception or failure. + /// - `Ipv6CidrBlockNotFoundException` : There are no subnets in your VPC with associated IPv6 CIDR blocks. To use dual-stack mode, associate an IPv6 CIDR block with each subnet in your VPC. /// - `ResourceNotFoundException` : The resource could not be found. /// - `ValidationException` : The input failed to satisfy the constraints specified by an AWS service. public func updateWorkgroup(input: UpdateWorkgroupInput) async throws -> UpdateWorkgroupOutput { diff --git a/Sources/Services/AWSResiliencehub/Sources/AWSResiliencehub/Models.swift b/Sources/Services/AWSResiliencehub/Sources/AWSResiliencehub/Models.swift index bd4f868f2af..613d29c2308 100644 --- a/Sources/Services/AWSResiliencehub/Sources/AWSResiliencehub/Models.swift +++ b/Sources/Services/AWSResiliencehub/Sources/AWSResiliencehub/Models.swift @@ -988,6 +988,8 @@ extension ResiliencehubClientTypes { public var appArn: Swift.String? /// Assessment execution schedule with 'Daily' or 'Disabled' values. public var assessmentSchedule: ResiliencehubClientTypes.AppAssessmentScheduleType? + /// Amazon Resource Name (ARN) of Resource Groups group that is integrated with an AppRegistry application. For more information about ARNs, see [ Amazon Resource Names (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in the Amazon Web Services General Reference guide. + public var awsApplicationArn: Swift.String? /// Current status of compliance for the resiliency policy. public var complianceStatus: ResiliencehubClientTypes.AppComplianceStatusType? /// Date and time when the app was created. @@ -1026,6 +1028,7 @@ extension ResiliencehubClientTypes { public init( appArn: Swift.String? = nil, assessmentSchedule: ResiliencehubClientTypes.AppAssessmentScheduleType? = nil, + awsApplicationArn: Swift.String? = nil, complianceStatus: ResiliencehubClientTypes.AppComplianceStatusType? = nil, creationTime: Foundation.Date? = nil, description: Swift.String? = nil, @@ -1046,6 +1049,7 @@ extension ResiliencehubClientTypes { { self.appArn = appArn self.assessmentSchedule = assessmentSchedule + self.awsApplicationArn = awsApplicationArn self.complianceStatus = complianceStatus self.creationTime = creationTime self.description = description @@ -1068,7 +1072,7 @@ extension ResiliencehubClientTypes { extension ResiliencehubClientTypes.App: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "App(appArn: \(Swift.String(describing: appArn)), assessmentSchedule: \(Swift.String(describing: assessmentSchedule)), complianceStatus: \(Swift.String(describing: complianceStatus)), creationTime: \(Swift.String(describing: creationTime)), description: \(Swift.String(describing: description)), driftStatus: \(Swift.String(describing: driftStatus)), eventSubscriptions: \(Swift.String(describing: eventSubscriptions)), lastAppComplianceEvaluationTime: \(Swift.String(describing: lastAppComplianceEvaluationTime)), lastDriftEvaluationTime: \(Swift.String(describing: lastDriftEvaluationTime)), lastResiliencyScoreEvaluationTime: \(Swift.String(describing: lastResiliencyScoreEvaluationTime)), name: \(Swift.String(describing: name)), permissionModel: \(Swift.String(describing: permissionModel)), policyArn: \(Swift.String(describing: policyArn)), resiliencyScore: \(Swift.String(describing: resiliencyScore)), rpoInSecs: \(Swift.String(describing: rpoInSecs)), rtoInSecs: \(Swift.String(describing: rtoInSecs)), status: \(Swift.String(describing: status)), tags: \"CONTENT_REDACTED\")"} + "App(appArn: \(Swift.String(describing: appArn)), assessmentSchedule: \(Swift.String(describing: assessmentSchedule)), awsApplicationArn: \(Swift.String(describing: awsApplicationArn)), complianceStatus: \(Swift.String(describing: complianceStatus)), creationTime: \(Swift.String(describing: creationTime)), description: \(Swift.String(describing: description)), driftStatus: \(Swift.String(describing: driftStatus)), eventSubscriptions: \(Swift.String(describing: eventSubscriptions)), lastAppComplianceEvaluationTime: \(Swift.String(describing: lastAppComplianceEvaluationTime)), lastDriftEvaluationTime: \(Swift.String(describing: lastDriftEvaluationTime)), lastResiliencyScoreEvaluationTime: \(Swift.String(describing: lastResiliencyScoreEvaluationTime)), name: \(Swift.String(describing: name)), permissionModel: \(Swift.String(describing: permissionModel)), policyArn: \(Swift.String(describing: policyArn)), resiliencyScore: \(Swift.String(describing: resiliencyScore)), rpoInSecs: \(Swift.String(describing: rpoInSecs)), rtoInSecs: \(Swift.String(describing: rtoInSecs)), status: \(Swift.String(describing: status)), tags: \"CONTENT_REDACTED\")"} } extension ResiliencehubClientTypes { @@ -1751,7 +1755,7 @@ extension ResiliencehubClientTypes { public var resourceErrorsDetails: ResiliencehubClientTypes.ResourceErrorsDetails? /// Starting time for the action. public var startTime: Foundation.Date? - /// Indicates a concise summary that provides an overview of the Resilience Hub assessment. + /// Indicates the AI-generated summary for the Resilience Hub assessment, providing a concise overview that highlights the top risks and recommendations. This property is available only in the US East (N. Virginia) Region. public var summary: ResiliencehubClientTypes.AssessmentSummary? /// Tags assigned to the resource. A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key/value pair. public var tags: [Swift.String: Swift.String]? @@ -2029,6 +2033,8 @@ extension ResiliencehubClientTypes { public var appArn: Swift.String? /// Assessment execution schedule with 'Daily' or 'Disabled' values. public var assessmentSchedule: ResiliencehubClientTypes.AppAssessmentScheduleType? + /// Amazon Resource Name (ARN) of Resource Groups group that is integrated with an AppRegistry application. For more information about ARNs, see [ Amazon Resource Names (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in the Amazon Web Services General Reference guide. + public var awsApplicationArn: Swift.String? /// The current status of compliance for the resiliency policy. public var complianceStatus: ResiliencehubClientTypes.AppComplianceStatusType? /// Date and time when the app was created. @@ -2055,6 +2061,7 @@ extension ResiliencehubClientTypes { public init( appArn: Swift.String? = nil, assessmentSchedule: ResiliencehubClientTypes.AppAssessmentScheduleType? = nil, + awsApplicationArn: Swift.String? = nil, complianceStatus: ResiliencehubClientTypes.AppComplianceStatusType? = nil, creationTime: Foundation.Date? = nil, description: Swift.String? = nil, @@ -2069,6 +2076,7 @@ extension ResiliencehubClientTypes { { self.appArn = appArn self.assessmentSchedule = assessmentSchedule + self.awsApplicationArn = awsApplicationArn self.complianceStatus = complianceStatus self.creationTime = creationTime self.description = description @@ -2149,7 +2157,6 @@ extension ResiliencehubClientTypes { /// This member is required. public var excluded: Swift.Bool? /// The operational recommendation item. - /// This member is required. public var item: ResiliencehubClientTypes.UpdateRecommendationStatusItem? /// Reference identifier of the operational recommendation item. /// This member is required. @@ -2225,7 +2232,6 @@ extension ResiliencehubClientTypes { /// This member is required. public var excluded: Swift.Bool? /// The operational recommendation item. - /// This member is required. public var item: ResiliencehubClientTypes.UpdateRecommendationStatusItem? /// Reference identifier of the operational recommendation. /// This member is required. @@ -2274,6 +2280,8 @@ public struct BatchUpdateRecommendationStatusOutput: Swift.Sendable { public struct CreateAppInput: Swift.Sendable { /// Assessment execution schedule with 'Daily' or 'Disabled' values. public var assessmentSchedule: ResiliencehubClientTypes.AppAssessmentScheduleType? + /// Amazon Resource Name (ARN) of Resource Groups group that is integrated with an AppRegistry application. For more information about ARNs, see [ Amazon Resource Names (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in the Amazon Web Services General Reference guide. + public var awsApplicationArn: Swift.String? /// Used for an idempotency token. A client token is a unique, case-sensitive string of up to 64 ASCII characters. You should not reuse the same client token for other API requests. public var clientToken: Swift.String? /// The optional description for an app. @@ -2292,6 +2300,7 @@ public struct CreateAppInput: Swift.Sendable { public init( assessmentSchedule: ResiliencehubClientTypes.AppAssessmentScheduleType? = nil, + awsApplicationArn: Swift.String? = nil, clientToken: Swift.String? = nil, description: Swift.String? = nil, eventSubscriptions: [ResiliencehubClientTypes.EventSubscription]? = nil, @@ -2302,6 +2311,7 @@ public struct CreateAppInput: Swift.Sendable { ) { self.assessmentSchedule = assessmentSchedule + self.awsApplicationArn = awsApplicationArn self.clientToken = clientToken self.description = description self.eventSubscriptions = eventSubscriptions @@ -2314,7 +2324,7 @@ public struct CreateAppInput: Swift.Sendable { extension CreateAppInput: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "CreateAppInput(assessmentSchedule: \(Swift.String(describing: assessmentSchedule)), clientToken: \(Swift.String(describing: clientToken)), description: \(Swift.String(describing: description)), eventSubscriptions: \(Swift.String(describing: eventSubscriptions)), name: \(Swift.String(describing: name)), permissionModel: \(Swift.String(describing: permissionModel)), policyArn: \(Swift.String(describing: policyArn)), tags: \"CONTENT_REDACTED\")"} + "CreateAppInput(assessmentSchedule: \(Swift.String(describing: assessmentSchedule)), awsApplicationArn: \(Swift.String(describing: awsApplicationArn)), clientToken: \(Swift.String(describing: clientToken)), description: \(Swift.String(describing: description)), eventSubscriptions: \(Swift.String(describing: eventSubscriptions)), name: \(Swift.String(describing: name)), permissionModel: \(Swift.String(describing: permissionModel)), policyArn: \(Swift.String(describing: policyArn)), tags: \"CONTENT_REDACTED\")"} } public struct CreateAppOutput: Swift.Sendable { @@ -3582,6 +3592,22 @@ public struct DescribeDraftAppVersionResourcesImportStatusInput: Swift.Sendable } } +extension ResiliencehubClientTypes { + + /// Indicates the error that was encountered while importing a resource. + public struct ErrorDetail: Swift.Sendable { + /// Provides additional information about the error. + public var errorMessage: Swift.String? + + public init( + errorMessage: Swift.String? = nil + ) + { + self.errorMessage = errorMessage + } + } +} + extension ResiliencehubClientTypes { public enum ResourceImportStatusType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { @@ -3624,7 +3650,9 @@ public struct DescribeDraftAppVersionResourcesImportStatusOutput: Swift.Sendable /// The version of the application. /// This member is required. public var appVersion: Swift.String? - /// The returned error message for the request. + /// List of errors that were encountered while importing resources. + public var errorDetails: [ResiliencehubClientTypes.ErrorDetail]? + /// The error message returned for the resource request. public var errorMessage: Swift.String? /// Status of the action. /// This member is required. @@ -3636,6 +3664,7 @@ public struct DescribeDraftAppVersionResourcesImportStatusOutput: Swift.Sendable public init( appArn: Swift.String? = nil, appVersion: Swift.String? = nil, + errorDetails: [ResiliencehubClientTypes.ErrorDetail]? = nil, errorMessage: Swift.String? = nil, status: ResiliencehubClientTypes.ResourceImportStatusType? = nil, statusChangeTime: Foundation.Date? = nil @@ -3643,6 +3672,7 @@ public struct DescribeDraftAppVersionResourcesImportStatusOutput: Swift.Sendable { self.appArn = appArn self.appVersion = appVersion + self.errorDetails = errorDetails self.errorMessage = errorMessage self.status = status self.statusChangeTime = statusChangeTime @@ -4551,6 +4581,8 @@ public struct ListAppInputSourcesOutput: Swift.Sendable { public struct ListAppsInput: Swift.Sendable { /// Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, see [ Amazon Resource Names (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in the Amazon Web Services General Reference guide. public var appArn: Swift.String? + /// Amazon Resource Name (ARN) of Resource Groups group that is integrated with an AppRegistry application. For more information about ARNs, see [ Amazon Resource Names (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in the Amazon Web Services General Reference guide. + public var awsApplicationArn: Swift.String? /// Indicates the lower limit of the range that is used to filter applications based on their last assessment times. public var fromLastAssessmentTime: Foundation.Date? /// Maximum number of results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved. @@ -4566,6 +4598,7 @@ public struct ListAppsInput: Swift.Sendable { public init( appArn: Swift.String? = nil, + awsApplicationArn: Swift.String? = nil, fromLastAssessmentTime: Foundation.Date? = nil, maxResults: Swift.Int? = nil, name: Swift.String? = nil, @@ -4575,6 +4608,7 @@ public struct ListAppsInput: Swift.Sendable { ) { self.appArn = appArn + self.awsApplicationArn = awsApplicationArn self.fromLastAssessmentTime = fromLastAssessmentTime self.maxResults = maxResults self.name = name @@ -6556,6 +6590,10 @@ extension ListAppsInput { static func queryItemProvider(_ value: ListAppsInput) throws -> [Smithy.URIQueryItem] { var items = [Smithy.URIQueryItem]() + if let awsApplicationArn = value.awsApplicationArn { + let awsApplicationArnQueryItem = Smithy.URIQueryItem(name: "awsApplicationArn".urlPercentEncoding(), value: Swift.String(awsApplicationArn).urlPercentEncoding()) + items.append(awsApplicationArnQueryItem) + } if let nextToken = value.nextToken { let nextTokenQueryItem = Smithy.URIQueryItem(name: "nextToken".urlPercentEncoding(), value: Swift.String(nextToken).urlPercentEncoding()) items.append(nextTokenQueryItem) @@ -6921,6 +6959,7 @@ extension CreateAppInput { static func write(value: CreateAppInput?, to writer: SmithyJSON.Writer) throws { guard let value else { return } try writer["assessmentSchedule"].write(value.assessmentSchedule) + try writer["awsApplicationArn"].write(value.awsApplicationArn) try writer["clientToken"].write(value.clientToken) try writer["description"].write(value.description) try writer["eventSubscriptions"].writeList(value.eventSubscriptions, memberWritingClosure: ResiliencehubClientTypes.EventSubscription.write(value:to:), memberNodeInfo: "member", isFlattened: false) @@ -7751,6 +7790,7 @@ extension DescribeDraftAppVersionResourcesImportStatusOutput { var value = DescribeDraftAppVersionResourcesImportStatusOutput() value.appArn = try reader["appArn"].readIfPresent() ?? "" value.appVersion = try reader["appVersion"].readIfPresent() ?? "" + value.errorDetails = try reader["errorDetails"].readListIfPresent(memberReadingClosure: ResiliencehubClientTypes.ErrorDetail.read(from:), memberNodeInfo: "member", isFlattened: false) value.errorMessage = try reader["errorMessage"].readIfPresent() value.status = try reader["status"].readIfPresent() ?? .sdkUnknown("") value.statusChangeTime = try reader["statusChangeTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") @@ -9577,6 +9617,7 @@ extension ResiliencehubClientTypes.App { value.lastDriftEvaluationTime = try reader["lastDriftEvaluationTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) value.rtoInSecs = try reader["rtoInSecs"].readIfPresent() value.rpoInSecs = try reader["rpoInSecs"].readIfPresent() + value.awsApplicationArn = try reader["awsApplicationArn"].readIfPresent() return value } } @@ -9919,6 +9960,16 @@ extension ResiliencehubClientTypes.Cost { } } +extension ResiliencehubClientTypes.ErrorDetail { + + static func read(from reader: SmithyJSON.Reader) throws -> ResiliencehubClientTypes.ErrorDetail { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = ResiliencehubClientTypes.ErrorDetail() + value.errorMessage = try reader["errorMessage"].readIfPresent() + return value + } +} + extension ResiliencehubClientTypes.EksSource { static func write(value: ResiliencehubClientTypes.EksSource?, to writer: SmithyJSON.Writer) throws { @@ -10114,6 +10165,7 @@ extension ResiliencehubClientTypes.AppSummary { value.lastAppComplianceEvaluationTime = try reader["lastAppComplianceEvaluationTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) value.rtoInSecs = try reader["rtoInSecs"].readIfPresent() value.rpoInSecs = try reader["rpoInSecs"].readIfPresent() + value.awsApplicationArn = try reader["awsApplicationArn"].readIfPresent() return value } } diff --git a/Sources/Services/AWSResiliencehub/Sources/AWSResiliencehub/Paginators.swift b/Sources/Services/AWSResiliencehub/Sources/AWSResiliencehub/Paginators.swift index 73dbb7dbb56..d4ee17dc1a4 100644 --- a/Sources/Services/AWSResiliencehub/Sources/AWSResiliencehub/Paginators.swift +++ b/Sources/Services/AWSResiliencehub/Sources/AWSResiliencehub/Paginators.swift @@ -198,6 +198,7 @@ extension ListAppsInput: ClientRuntime.PaginateToken { public func usingPaginationToken(_ token: Swift.String) -> ListAppsInput { return ListAppsInput( appArn: self.appArn, + awsApplicationArn: self.awsApplicationArn, fromLastAssessmentTime: self.fromLastAssessmentTime, maxResults: self.maxResults, name: self.name, diff --git a/Sources/Services/AWSResiliencehub/Sources/AWSResiliencehub/ResiliencehubClient.swift b/Sources/Services/AWSResiliencehub/Sources/AWSResiliencehub/ResiliencehubClient.swift index e78fa141666..ae2f07bdaa3 100644 --- a/Sources/Services/AWSResiliencehub/Sources/AWSResiliencehub/ResiliencehubClient.swift +++ b/Sources/Services/AWSResiliencehub/Sources/AWSResiliencehub/ResiliencehubClient.swift @@ -2222,7 +2222,7 @@ extension ResiliencehubClient { /// Performs the `ListAppAssessmentComplianceDrifts` operation on the `AwsResilienceHub` service. /// - /// List of compliance drifts that were detected while running an assessment. + /// Indicates the list of compliance drifts that were detected while running an assessment. /// /// - Parameter ListAppAssessmentComplianceDriftsInput : [no documentation found] /// diff --git a/Sources/Services/AWSRolesAnywhere/Sources/AWSRolesAnywhere/Models.swift b/Sources/Services/AWSRolesAnywhere/Sources/AWSRolesAnywhere/Models.swift index f503e600673..1d45e2b4ba4 100644 --- a/Sources/Services/AWSRolesAnywhere/Sources/AWSRolesAnywhere/Models.swift +++ b/Sources/Services/AWSRolesAnywhere/Sources/AWSRolesAnywhere/Models.swift @@ -172,6 +172,8 @@ extension RolesAnywhereClientTypes.Tag: Swift.CustomDebugStringConvertible { } public struct CreateProfileInput: Swift.Sendable { + /// Used to determine if a custom role session name will be accepted in a temporary credential request. + public var acceptRoleSessionName: Swift.Bool? /// Used to determine how long sessions vended using this profile are valid for. See the Expiration section of the [CreateSession API documentation](https://docs.aws.amazon.com/rolesanywhere/latest/userguide/authentication-create-session.html#credentials-object) page for more details. In requests, if this value is not provided, the default value will be 3600. public var durationSeconds: Swift.Int? /// Specifies whether the profile is enabled. @@ -192,6 +194,7 @@ public struct CreateProfileInput: Swift.Sendable { public var tags: [RolesAnywhereClientTypes.Tag]? public init( + acceptRoleSessionName: Swift.Bool? = nil, durationSeconds: Swift.Int? = nil, enabled: Swift.Bool? = nil, managedPolicyArns: [Swift.String]? = nil, @@ -202,6 +205,7 @@ public struct CreateProfileInput: Swift.Sendable { tags: [RolesAnywhereClientTypes.Tag]? = nil ) { + self.acceptRoleSessionName = acceptRoleSessionName self.durationSeconds = durationSeconds self.enabled = enabled self.managedPolicyArns = managedPolicyArns @@ -217,6 +221,8 @@ extension RolesAnywhereClientTypes { /// The state of the profile after a read or write operation. public struct ProfileDetail: Swift.Sendable { + /// Used to determine if a custom role session name will be accepted in a temporary credential request. + public var acceptRoleSessionName: Swift.Bool? /// A mapping applied to the authenticating end-entity certificate. public var attributeMappings: [RolesAnywhereClientTypes.AttributeMapping]? /// The ISO-8601 timestamp when the profile was created. @@ -245,6 +251,7 @@ extension RolesAnywhereClientTypes { public var updatedAt: Foundation.Date? public init( + acceptRoleSessionName: Swift.Bool? = nil, attributeMappings: [RolesAnywhereClientTypes.AttributeMapping]? = nil, createdAt: Foundation.Date? = nil, createdBy: Swift.String? = nil, @@ -260,6 +267,7 @@ extension RolesAnywhereClientTypes { updatedAt: Foundation.Date? = nil ) { + self.acceptRoleSessionName = acceptRoleSessionName self.attributeMappings = attributeMappings self.createdAt = createdAt self.createdBy = createdBy @@ -1432,6 +1440,8 @@ public struct PutAttributeMappingOutput: Swift.Sendable { } public struct UpdateProfileInput: Swift.Sendable { + /// Used to determine if a custom role session name will be accepted in a temporary credential request. + public var acceptRoleSessionName: Swift.Bool? /// Used to determine how long sessions vended using this profile are valid for. See the Expiration section of the [CreateSession API documentation](https://docs.aws.amazon.com/rolesanywhere/latest/userguide/authentication-create-session.html#credentials-object) page for more details. In requests, if this value is not provided, the default value will be 3600. public var durationSeconds: Swift.Int? /// A list of managed policy ARNs that apply to the vended session credentials. @@ -1447,6 +1457,7 @@ public struct UpdateProfileInput: Swift.Sendable { public var sessionPolicy: Swift.String? public init( + acceptRoleSessionName: Swift.Bool? = nil, durationSeconds: Swift.Int? = nil, managedPolicyArns: [Swift.String]? = nil, name: Swift.String? = nil, @@ -1455,6 +1466,7 @@ public struct UpdateProfileInput: Swift.Sendable { sessionPolicy: Swift.String? = nil ) { + self.acceptRoleSessionName = acceptRoleSessionName self.durationSeconds = durationSeconds self.managedPolicyArns = managedPolicyArns self.name = name @@ -2013,6 +2025,7 @@ extension CreateProfileInput { static func write(value: CreateProfileInput?, to writer: SmithyJSON.Writer) throws { guard let value else { return } + try writer["acceptRoleSessionName"].write(value.acceptRoleSessionName) try writer["durationSeconds"].write(value.durationSeconds) try writer["enabled"].write(value.enabled) try writer["managedPolicyArns"].writeList(value.managedPolicyArns, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) @@ -2106,6 +2119,7 @@ extension UpdateProfileInput { static func write(value: UpdateProfileInput?, to writer: SmithyJSON.Writer) throws { guard let value else { return } + try writer["acceptRoleSessionName"].write(value.acceptRoleSessionName) try writer["durationSeconds"].write(value.durationSeconds) try writer["managedPolicyArns"].writeList(value.managedPolicyArns, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) try writer["name"].write(value.name) @@ -3007,6 +3021,7 @@ extension RolesAnywhereClientTypes.ProfileDetail { value.createdAt = try reader["createdAt"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) value.updatedAt = try reader["updatedAt"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) value.durationSeconds = try reader["durationSeconds"].readIfPresent() + value.acceptRoleSessionName = try reader["acceptRoleSessionName"].readIfPresent() value.attributeMappings = try reader["attributeMappings"].readListIfPresent(memberReadingClosure: RolesAnywhereClientTypes.AttributeMapping.read(from:), memberNodeInfo: "member", isFlattened: false) return value } diff --git a/Sources/Services/AWSSESv2/Sources/AWSSESv2/Models.swift b/Sources/Services/AWSSESv2/Sources/AWSSESv2/Models.swift index e808cf43757..24453c8f33d 100644 --- a/Sources/Services/AWSSESv2/Sources/AWSSESv2/Models.swift +++ b/Sources/Services/AWSSESv2/Sources/AWSSESv2/Models.swift @@ -1509,16 +1509,20 @@ extension SESv2ClientTypes { /// Used to associate a configuration set with a dedicated IP pool. public struct DeliveryOptions: Swift.Sendable { + /// The maximum amount of time, in seconds, that Amazon SES API v2 will attempt delivery of email. If specified, the value must greater than or equal to 300 seconds (5 minutes) and less than or equal to 50400 seconds (840 minutes). + public var maxDeliverySeconds: Swift.Int? /// The name of the dedicated IP pool to associate with the configuration set. public var sendingPoolName: Swift.String? /// Specifies whether messages that use the configuration set are required to use Transport Layer Security (TLS). If the value is Require, messages are only delivered if a TLS connection can be established. If the value is Optional, messages can be delivered in plain text if a TLS connection can't be established. public var tlsPolicy: SESv2ClientTypes.TlsPolicy? public init( + maxDeliverySeconds: Swift.Int? = nil, sendingPoolName: Swift.String? = nil, tlsPolicy: SESv2ClientTypes.TlsPolicy? = nil ) { + self.maxDeliverySeconds = maxDeliverySeconds self.sendingPoolName = sendingPoolName self.tlsPolicy = tlsPolicy } @@ -6655,6 +6659,8 @@ public struct PutConfigurationSetDeliveryOptionsInput: Swift.Sendable { /// The name of the configuration set to associate with a dedicated IP pool. /// This member is required. public var configurationSetName: Swift.String? + /// The maximum amount of time, in seconds, that Amazon SES API v2 will attempt delivery of email. If specified, the value must greater than or equal to 300 seconds (5 minutes) and less than or equal to 50400 seconds (840 minutes). + public var maxDeliverySeconds: Swift.Int? /// The name of the dedicated IP pool to associate with the configuration set. public var sendingPoolName: Swift.String? /// Specifies whether messages that use the configuration set are required to use Transport Layer Security (TLS). If the value is Require, messages are only delivered if a TLS connection can be established. If the value is Optional, messages can be delivered in plain text if a TLS connection can't be established. @@ -6662,11 +6668,13 @@ public struct PutConfigurationSetDeliveryOptionsInput: Swift.Sendable { public init( configurationSetName: Swift.String? = nil, + maxDeliverySeconds: Swift.Int? = nil, sendingPoolName: Swift.String? = nil, tlsPolicy: SESv2ClientTypes.TlsPolicy? = nil ) { self.configurationSetName = configurationSetName + self.maxDeliverySeconds = maxDeliverySeconds self.sendingPoolName = sendingPoolName self.tlsPolicy = tlsPolicy } @@ -8836,6 +8844,7 @@ extension PutConfigurationSetDeliveryOptionsInput { static func write(value: PutConfigurationSetDeliveryOptionsInput?, to writer: SmithyJSON.Writer) throws { guard let value else { return } + try writer["MaxDeliverySeconds"].write(value.maxDeliverySeconds) try writer["SendingPoolName"].write(value.sendingPoolName) try writer["TlsPolicy"].write(value.tlsPolicy) } @@ -11886,6 +11895,7 @@ extension SESv2ClientTypes.DeliveryOptions { static func write(value: SESv2ClientTypes.DeliveryOptions?, to writer: SmithyJSON.Writer) throws { guard let value else { return } + try writer["MaxDeliverySeconds"].write(value.maxDeliverySeconds) try writer["SendingPoolName"].write(value.sendingPoolName) try writer["TlsPolicy"].write(value.tlsPolicy) } @@ -11895,6 +11905,7 @@ extension SESv2ClientTypes.DeliveryOptions { var value = SESv2ClientTypes.DeliveryOptions() value.tlsPolicy = try reader["TlsPolicy"].readIfPresent() value.sendingPoolName = try reader["SendingPoolName"].readIfPresent() + value.maxDeliverySeconds = try reader["MaxDeliverySeconds"].readIfPresent() return value } } diff --git a/Sources/Services/AWSSecretsManager/Sources/AWSSecretsManager/Models.swift b/Sources/Services/AWSSecretsManager/Sources/AWSSecretsManager/Models.swift index ebc4d1f6b6d..711a73d6b3b 100644 --- a/Sources/Services/AWSSecretsManager/Sources/AWSSecretsManager/Models.swift +++ b/Sources/Services/AWSSecretsManager/Sources/AWSSecretsManager/Models.swift @@ -1668,7 +1668,7 @@ public struct UpdateSecretInput: Swift.Sendable { public var clientRequestToken: Swift.String? /// The description of the secret. public var description: Swift.String? - /// The ARN, key ID, or alias of the KMS key that Secrets Manager uses to encrypt new secret versions as well as any existing versions with the staging labels AWSCURRENT, AWSPENDING, or AWSPREVIOUS. If you don't have kms:Encrypt permission to the new key, Secrets Manager does not re-ecrypt existing secret versions with the new key. For more information about versions and staging labels, see [Concepts: Version](https://docs.aws.amazon.com/secretsmanager/latest/userguide/getting-started.html#term_version). A key alias is always prefixed by alias/, for example alias/aws/secretsmanager. For more information, see [About aliases](https://docs.aws.amazon.com/kms/latest/developerguide/alias-about.html). If you set this to an empty string, Secrets Manager uses the Amazon Web Services managed key aws/secretsmanager. If this key doesn't already exist in your account, then Secrets Manager creates it for you automatically. All users and roles in the Amazon Web Services account automatically have access to use aws/secretsmanager. Creating aws/secretsmanager can result in a one-time significant delay in returning the result. You can only use the Amazon Web Services managed key aws/secretsmanager if you call this operation using credentials from the same Amazon Web Services account that owns the secret. If the secret is in a different account, then you must use a customer managed key and provide the ARN of that KMS key in this field. The user making the call must have permissions to both the secret and the KMS key in their respective accounts. + /// The ARN, key ID, or alias of the KMS key that Secrets Manager uses to encrypt new secret versions as well as any existing versions with the staging labels AWSCURRENT, AWSPENDING, or AWSPREVIOUS. If you don't have kms:Encrypt permission to the new key, Secrets Manager does not re-encrypt existing secret versions with the new key. For more information about versions and staging labels, see [Concepts: Version](https://docs.aws.amazon.com/secretsmanager/latest/userguide/getting-started.html#term_version). A key alias is always prefixed by alias/, for example alias/aws/secretsmanager. For more information, see [About aliases](https://docs.aws.amazon.com/kms/latest/developerguide/alias-about.html). If you set this to an empty string, Secrets Manager uses the Amazon Web Services managed key aws/secretsmanager. If this key doesn't already exist in your account, then Secrets Manager creates it for you automatically. All users and roles in the Amazon Web Services account automatically have access to use aws/secretsmanager. Creating aws/secretsmanager can result in a one-time significant delay in returning the result. You can only use the Amazon Web Services managed key aws/secretsmanager if you call this operation using credentials from the same Amazon Web Services account that owns the secret. If the secret is in a different account, then you must use a customer managed key and provide the ARN of that KMS key in this field. The user making the call must have permissions to both the secret and the KMS key in their respective accounts. public var kmsKeyId: Swift.String? /// The binary data to encrypt and store in the new version of the secret. We recommend that you store your binary data in a file and then pass the contents of the file as a parameter. Either SecretBinary or SecretString must have a value, but not both. You can't access this parameter in the Secrets Manager console. Sensitive: This field contains sensitive information, so the service does not include it in CloudTrail log entries. If you create your own log entries, you must also avoid logging the information in this field. public var secretBinary: Foundation.Data? diff --git a/Sources/Services/AWSSecretsManager/Sources/AWSSecretsManager/SecretsManagerClient.swift b/Sources/Services/AWSSecretsManager/Sources/AWSSecretsManager/SecretsManagerClient.swift index e8c57a74f3a..e7d18a8be26 100644 --- a/Sources/Services/AWSSecretsManager/Sources/AWSSecretsManager/SecretsManagerClient.swift +++ b/Sources/Services/AWSSecretsManager/Sources/AWSSecretsManager/SecretsManagerClient.swift @@ -357,7 +357,7 @@ extension SecretsManagerClient { /// Performs the `CreateSecret` operation on the `secretsmanager` service. /// - /// Creates a new secret. A secret can be a password, a set of credentials such as a user name and password, an OAuth token, or other secret information that you store in an encrypted form in Secrets Manager. The secret also includes the connection information to access a database or other service, which Secrets Manager doesn't encrypt. A secret in Secrets Manager consists of both the protected secret data and the important information needed to manage the secret. For secrets that use managed rotation, you need to create the secret through the managing service. For more information, see [Secrets Manager secrets managed by other Amazon Web Services services](https://docs.aws.amazon.com/secretsmanager/latest/userguide/service-linked-secrets.html). For information about creating a secret in the console, see [Create a secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html). To create a secret, you can provide the secret value to be encrypted in either the SecretString parameter or the SecretBinary parameter, but not both. If you include SecretString or SecretBinary then Secrets Manager creates an initial secret version and automatically attaches the staging label AWSCURRENT to it. For database credentials you want to rotate, for Secrets Manager to be able to rotate the secret, you must make sure the JSON you store in the SecretString matches the [JSON structure of a database secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_secret_json_structure.html). If you don't specify an KMS encryption key, Secrets Manager uses the Amazon Web Services managed key aws/secretsmanager. If this key doesn't already exist in your account, then Secrets Manager creates it for you automatically. All users and roles in the Amazon Web Services account automatically have access to use aws/secretsmanager. Creating aws/secretsmanager can result in a one-time significant delay in returning the result. If the secret is in a different Amazon Web Services account from the credentials calling the API, then you can't use aws/secretsmanager to encrypt the secret, and you must create and use a customer managed KMS key. Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters except SecretBinary or SecretString because it might be logged. For more information, see [Logging Secrets Manager events with CloudTrail](https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html). Required permissions: secretsmanager:CreateSecret. If you include tags in the secret, you also need secretsmanager:TagResource. To add replica Regions, you must also have secretsmanager:ReplicateSecretToRegions. For more information, see [ IAM policy actions for Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions) and [Authentication and access control in Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html). To encrypt the secret with a KMS key other than aws/secretsmanager, you need kms:GenerateDataKey and kms:Decrypt permission to the key. + /// Creates a new secret. A secret can be a password, a set of credentials such as a user name and password, an OAuth token, or other secret information that you store in an encrypted form in Secrets Manager. The secret also includes the connection information to access a database or other service, which Secrets Manager doesn't encrypt. A secret in Secrets Manager consists of both the protected secret data and the important information needed to manage the secret. For secrets that use managed rotation, you need to create the secret through the managing service. For more information, see [Secrets Manager secrets managed by other Amazon Web Services services](https://docs.aws.amazon.com/secretsmanager/latest/userguide/service-linked-secrets.html). For information about creating a secret in the console, see [Create a secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html). To create a secret, you can provide the secret value to be encrypted in either the SecretString parameter or the SecretBinary parameter, but not both. If you include SecretString or SecretBinary then Secrets Manager creates an initial secret version and automatically attaches the staging label AWSCURRENT to it. For database credentials you want to rotate, for Secrets Manager to be able to rotate the secret, you must make sure the JSON you store in the SecretString matches the [JSON structure of a database secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_secret_json_structure.html). If you don't specify an KMS encryption key, Secrets Manager uses the Amazon Web Services managed key aws/secretsmanager. If this key doesn't already exist in your account, then Secrets Manager creates it for you automatically. All users and roles in the Amazon Web Services account automatically have access to use aws/secretsmanager. Creating aws/secretsmanager can result in a one-time significant delay in returning the result. If the secret is in a different Amazon Web Services account from the credentials calling the API, then you can't use aws/secretsmanager to encrypt the secret, and you must create and use a customer managed KMS key. Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters except SecretBinary or SecretString because it might be logged. For more information, see [Logging Secrets Manager events with CloudTrail](https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html). Required permissions: secretsmanager:CreateSecret. If you include tags in the secret, you also need secretsmanager:TagResource. To add replica Regions, you must also have secretsmanager:ReplicateSecretToRegions. For more information, see [ IAM policy actions for Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions) and [Authentication and access control in Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html). To encrypt the secret with a KMS key other than aws/secretsmanager, you need kms:GenerateDataKey and kms:Decrypt permission to the key. When you enter commands in a command shell, there is a risk of the command history being accessed or utilities having access to your command parameters. This is a concern if the command includes the value of a secret. Learn how to [Mitigate the risks of using command-line tools to store Secrets Manager secrets](https://docs.aws.amazon.com/secretsmanager/latest/userguide/security_cli-exposure-risks.html). /// /// - Parameter CreateSecretInput : [no documentation found] /// @@ -1143,7 +1143,7 @@ extension SecretsManagerClient { /// Performs the `PutSecretValue` operation on the `secretsmanager` service. /// - /// Creates a new version with a new encrypted secret value and attaches it to the secret. The version can contain a new SecretString value or a new SecretBinary value. We recommend you avoid calling PutSecretValue at a sustained rate of more than once every 10 minutes. When you update the secret value, Secrets Manager creates a new version of the secret. Secrets Manager removes outdated versions when there are more than 100, but it does not remove versions created less than 24 hours ago. If you call PutSecretValue more than once every 10 minutes, you create more versions than Secrets Manager removes, and you will reach the quota for secret versions. You can specify the staging labels to attach to the new version in VersionStages. If you don't include VersionStages, then Secrets Manager automatically moves the staging label AWSCURRENT to this version. If this operation creates the first version for the secret, then Secrets Manager automatically attaches the staging label AWSCURRENT to it. If this operation moves the staging label AWSCURRENT from another version to this version, then Secrets Manager also automatically moves the staging label AWSPREVIOUS to the version that AWSCURRENT was removed from. This operation is idempotent. If you call this operation with a ClientRequestToken that matches an existing version's VersionId, and you specify the same secret data, the operation succeeds but does nothing. However, if the secret data is different, then the operation fails because you can't modify an existing version; you can only create new ones. Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters except SecretBinary, SecretString, or RotationToken because it might be logged. For more information, see [Logging Secrets Manager events with CloudTrail](https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html). Required permissions: secretsmanager:PutSecretValue. For more information, see [ IAM policy actions for Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions) and [Authentication and access control in Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html). + /// Creates a new version with a new encrypted secret value and attaches it to the secret. The version can contain a new SecretString value or a new SecretBinary value. We recommend you avoid calling PutSecretValue at a sustained rate of more than once every 10 minutes. When you update the secret value, Secrets Manager creates a new version of the secret. Secrets Manager removes outdated versions when there are more than 100, but it does not remove versions created less than 24 hours ago. If you call PutSecretValue more than once every 10 minutes, you create more versions than Secrets Manager removes, and you will reach the quota for secret versions. You can specify the staging labels to attach to the new version in VersionStages. If you don't include VersionStages, then Secrets Manager automatically moves the staging label AWSCURRENT to this version. If this operation creates the first version for the secret, then Secrets Manager automatically attaches the staging label AWSCURRENT to it. If this operation moves the staging label AWSCURRENT from another version to this version, then Secrets Manager also automatically moves the staging label AWSPREVIOUS to the version that AWSCURRENT was removed from. This operation is idempotent. If you call this operation with a ClientRequestToken that matches an existing version's VersionId, and you specify the same secret data, the operation succeeds but does nothing. However, if the secret data is different, then the operation fails because you can't modify an existing version; you can only create new ones. Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters except SecretBinary, SecretString, or RotationToken because it might be logged. For more information, see [Logging Secrets Manager events with CloudTrail](https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html). Required permissions: secretsmanager:PutSecretValue. For more information, see [ IAM policy actions for Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions) and [Authentication and access control in Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html). When you enter commands in a command shell, there is a risk of the command history being accessed or utilities having access to your command parameters. This is a concern if the command includes the value of a secret. Learn how to [Mitigate the risks of using command-line tools to store Secrets Manager secrets](https://docs.aws.amazon.com/secretsmanager/latest/userguide/security_cli-exposure-risks.html). /// /// - Parameter PutSecretValueInput : [no documentation found] /// @@ -1781,7 +1781,7 @@ extension SecretsManagerClient { /// Performs the `UpdateSecret` operation on the `secretsmanager` service. /// - /// Modifies the details of a secret, including metadata and the secret value. To change the secret value, you can also use [PutSecretValue]. To change the rotation configuration of a secret, use [RotateSecret] instead. To change a secret so that it is managed by another service, you need to recreate the secret in that service. See [Secrets Manager secrets managed by other Amazon Web Services services](https://docs.aws.amazon.com/secretsmanager/latest/userguide/service-linked-secrets.html). We recommend you avoid calling UpdateSecret at a sustained rate of more than once every 10 minutes. When you call UpdateSecret to update the secret value, Secrets Manager creates a new version of the secret. Secrets Manager removes outdated versions when there are more than 100, but it does not remove versions created less than 24 hours ago. If you update the secret value more than once every 10 minutes, you create more versions than Secrets Manager removes, and you will reach the quota for secret versions. If you include SecretString or SecretBinary to create a new secret version, Secrets Manager automatically moves the staging label AWSCURRENT to the new version. Then it attaches the label AWSPREVIOUS to the version that AWSCURRENT was removed from. If you call this operation with a ClientRequestToken that matches an existing version's VersionId, the operation results in an error. You can't modify an existing version, you can only create a new version. To remove a version, remove all staging labels from it. See [UpdateSecretVersionStage]. Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters except SecretBinary or SecretString because it might be logged. For more information, see [Logging Secrets Manager events with CloudTrail](https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html). Required permissions: secretsmanager:UpdateSecret. For more information, see [ IAM policy actions for Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions) and [Authentication and access control in Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html). If you use a customer managed key, you must also have kms:GenerateDataKey, kms:Encrypt, and kms:Decrypt permissions on the key. If you change the KMS key and you don't have kms:Encrypt permission to the new key, Secrets Manager does not re-ecrypt existing secret versions with the new key. For more information, see [ Secret encryption and decryption](https://docs.aws.amazon.com/secretsmanager/latest/userguide/security-encryption.html). + /// Modifies the details of a secret, including metadata and the secret value. To change the secret value, you can also use [PutSecretValue]. To change the rotation configuration of a secret, use [RotateSecret] instead. To change a secret so that it is managed by another service, you need to recreate the secret in that service. See [Secrets Manager secrets managed by other Amazon Web Services services](https://docs.aws.amazon.com/secretsmanager/latest/userguide/service-linked-secrets.html). We recommend you avoid calling UpdateSecret at a sustained rate of more than once every 10 minutes. When you call UpdateSecret to update the secret value, Secrets Manager creates a new version of the secret. Secrets Manager removes outdated versions when there are more than 100, but it does not remove versions created less than 24 hours ago. If you update the secret value more than once every 10 minutes, you create more versions than Secrets Manager removes, and you will reach the quota for secret versions. If you include SecretString or SecretBinary to create a new secret version, Secrets Manager automatically moves the staging label AWSCURRENT to the new version. Then it attaches the label AWSPREVIOUS to the version that AWSCURRENT was removed from. If you call this operation with a ClientRequestToken that matches an existing version's VersionId, the operation results in an error. You can't modify an existing version, you can only create a new version. To remove a version, remove all staging labels from it. See [UpdateSecretVersionStage]. Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters except SecretBinary or SecretString because it might be logged. For more information, see [Logging Secrets Manager events with CloudTrail](https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html). Required permissions: secretsmanager:UpdateSecret. For more information, see [ IAM policy actions for Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions) and [Authentication and access control in Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html). If you use a customer managed key, you must also have kms:GenerateDataKey, kms:Encrypt, and kms:Decrypt permissions on the key. If you change the KMS key and you don't have kms:Encrypt permission to the new key, Secrets Manager does not re-encrypt existing secret versions with the new key. For more information, see [ Secret encryption and decryption](https://docs.aws.amazon.com/secretsmanager/latest/userguide/security-encryption.html). When you enter commands in a command shell, there is a risk of the command history being accessed or utilities having access to your command parameters. This is a concern if the command includes the value of a secret. Learn how to [Mitigate the risks of using command-line tools to store Secrets Manager secrets](https://docs.aws.amazon.com/secretsmanager/latest/userguide/security_cli-exposure-risks.html). /// /// - Parameter UpdateSecretInput : [no documentation found] /// diff --git a/Sources/Services/AWSTaxSettings/Sources/AWSTaxSettings/Endpoints.swift b/Sources/Services/AWSTaxSettings/Sources/AWSTaxSettings/Endpoints.swift index 278e0adc70f..0ffde8c93f4 100644 --- a/Sources/Services/AWSTaxSettings/Sources/AWSTaxSettings/Endpoints.swift +++ b/Sources/Services/AWSTaxSettings/Sources/AWSTaxSettings/Endpoints.swift @@ -59,7 +59,7 @@ public protocol EndpointResolver { typealias DefaultEndpointResolver = ClientRuntime.DefaultEndpointResolver extension DefaultEndpointResolver { - private static let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"},\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}],\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}],\"type\":\"tree\"}],\"type\":\"tree\"},{\"conditions\":[],\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Region\"}]}],\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"rules\":[{\"conditions\":[],\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://tax-fips.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}],\"type\":\"tree\"}],\"type\":\"tree\"},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}],\"type\":\"tree\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]},true]}],\"rules\":[{\"conditions\":[],\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://tax-fips.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}],\"type\":\"tree\"}],\"type\":\"tree\"},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}],\"type\":\"tree\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"rules\":[{\"conditions\":[],\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://tax.{Region}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}],\"type\":\"tree\"}],\"type\":\"tree\"},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}],\"type\":\"tree\"},{\"conditions\":[],\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://tax.{Region}.{PartitionResult#dnsSuffix}\",\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}],\"type\":\"tree\"}],\"type\":\"tree\"}],\"type\":\"tree\"},{\"conditions\":[],\"error\":\"Invalid Configuration: Missing Region\",\"type\":\"error\"}],\"type\":\"tree\"}]}" + private static let ruleSet = "{\"version\":\"1.0\",\"parameters\":{\"UseDualStack\":{\"builtIn\":\"AWS::UseDualStack\",\"required\":true,\"default\":false,\"documentation\":\"When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.\",\"type\":\"Boolean\"},\"UseFIPS\":{\"builtIn\":\"AWS::UseFIPS\",\"required\":true,\"default\":false,\"documentation\":\"When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.\",\"type\":\"Boolean\"},\"Endpoint\":{\"builtIn\":\"SDK::Endpoint\",\"required\":false,\"documentation\":\"Override the endpoint used to send this request\",\"type\":\"String\"},\"Region\":{\"builtIn\":\"AWS::Region\",\"required\":false,\"documentation\":\"The AWS region used to dispatch the request.\",\"type\":\"String\"}},\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Endpoint\"}]}],\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]}],\"error\":\"Invalid Configuration: FIPS and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"error\":\"Invalid Configuration: Dualstack and custom endpoint are not supported\",\"type\":\"error\"},{\"conditions\":[],\"endpoint\":{\"url\":{\"ref\":\"Endpoint\"},\"properties\":{},\"headers\":{}},\"type\":\"endpoint\"}],\"type\":\"tree\"}],\"type\":\"tree\"},{\"conditions\":[],\"rules\":[{\"conditions\":[{\"fn\":\"isSet\",\"argv\":[{\"ref\":\"Region\"}]}],\"rules\":[{\"conditions\":[{\"fn\":\"aws.partition\",\"argv\":[{\"ref\":\"Region\"}],\"assign\":\"PartitionResult\"}],\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]}]},{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://tax-fips.{PartitionResult#implicitGlobalRegion}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingRegion\":\"{PartitionResult#implicitGlobalRegion}\"}]},\"headers\":{}},\"type\":\"endpoint\"}],\"type\":\"tree\"},{\"conditions\":[],\"error\":\"FIPS and DualStack are enabled, but this partition does not support one or both\",\"type\":\"error\"}],\"type\":\"tree\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},true]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},false]}],\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsFIPS\"]},true]}],\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://tax-fips.{PartitionResult#implicitGlobalRegion}.{PartitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingRegion\":\"{PartitionResult#implicitGlobalRegion}\"}]},\"headers\":{}},\"type\":\"endpoint\"}],\"type\":\"tree\"},{\"conditions\":[],\"error\":\"FIPS is enabled but this partition does not support FIPS\",\"type\":\"error\"}],\"type\":\"tree\"},{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseFIPS\"},false]},{\"fn\":\"booleanEquals\",\"argv\":[{\"ref\":\"UseDualStack\"},true]}],\"rules\":[{\"conditions\":[{\"fn\":\"booleanEquals\",\"argv\":[true,{\"fn\":\"getAttr\",\"argv\":[{\"ref\":\"PartitionResult\"},\"supportsDualStack\"]}]}],\"rules\":[{\"conditions\":[],\"endpoint\":{\"url\":\"https://tax.{PartitionResult#implicitGlobalRegion}.{PartitionResult#dualStackDnsSuffix}\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingRegion\":\"{PartitionResult#implicitGlobalRegion}\"}]},\"headers\":{}},\"type\":\"endpoint\"}],\"type\":\"tree\"},{\"conditions\":[],\"error\":\"DualStack is enabled but this partition does not support DualStack\",\"type\":\"error\"}],\"type\":\"tree\"},{\"conditions\":[],\"endpoint\":{\"url\":\"https://tax.{PartitionResult#implicitGlobalRegion}.{PartitionResult#dnsSuffix}\",\"properties\":{\"authSchemes\":[{\"name\":\"sigv4\",\"signingRegion\":\"{PartitionResult#implicitGlobalRegion}\"}]},\"headers\":{}},\"type\":\"endpoint\"}],\"type\":\"tree\"}],\"type\":\"tree\"},{\"conditions\":[],\"error\":\"Invalid Configuration: Missing Region\",\"type\":\"error\"}],\"type\":\"tree\"}]}" init() throws { try self.init(partitions: AWSClientRuntime.awsPartitionJSON, ruleSet: Self.ruleSet) diff --git a/Sources/Services/AWSTaxSettings/Tests/AWSTaxSettingsTests/EndpointResolverTest.swift b/Sources/Services/AWSTaxSettings/Tests/AWSTaxSettingsTests/EndpointResolverTest.swift index d4dd4024c86..942eb64252e 100644 --- a/Sources/Services/AWSTaxSettings/Tests/AWSTaxSettingsTests/EndpointResolverTest.swift +++ b/Sources/Services/AWSTaxSettings/Tests/AWSTaxSettingsTests/EndpointResolverTest.swift @@ -20,8 +20,64 @@ class EndpointResolverTest: XCTestCase { SmithyTestUtil.TestInitializer.initialize() } - /// For region us-east-1 with FIPS enabled and DualStack enabled + /// For custom endpoint with region not set and fips disabled func testResolve1() throws { + let endpointParams = EndpointParams( + endpoint: "https://example.com", + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [:] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://example.com", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For custom endpoint with fips enabled + func testResolve2() throws { + let endpointParams = EndpointParams( + endpoint: "https://example.com", + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + XCTAssertThrowsError(try resolver.resolve(params: endpointParams)) { error in + switch error { + case ClientRuntime.EndpointError.unresolved(let message): + XCTAssertEqual("Invalid Configuration: FIPS and custom endpoint are not supported", message) + default: + XCTFail() + } + } + } + + /// For custom endpoint with fips disabled and dualstack enabled + func testResolve3() throws { + let endpointParams = EndpointParams( + endpoint: "https://example.com", + useDualStack: true, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + XCTAssertThrowsError(try resolver.resolve(params: endpointParams)) { error in + switch error { + case ClientRuntime.EndpointError.unresolved(let message): + XCTAssertEqual("Invalid Configuration: Dualstack and custom endpoint are not supported", message) + default: + XCTFail() + } + } + } + + /// For region us-east-1 with FIPS enabled and DualStack enabled + func testResolve4() throws { let endpointParams = EndpointParams( region: "us-east-1", useDualStack: true, @@ -32,7 +88,14 @@ class EndpointResolverTest: XCTestCase { let actual = try resolver.resolve(params: endpointParams) let properties: [String: AnyHashable] = - [:] + [ + "authSchemes": [ + [ + "name": "sigv4", + "signingRegion": "us-east-1" + ] as [String: AnyHashable] + ] as [AnyHashable] + ] let headers = SmithyHTTPAPI.Headers() let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://tax-fips.us-east-1.api.aws", headers: headers, properties: properties) @@ -41,7 +104,7 @@ class EndpointResolverTest: XCTestCase { } /// For region us-east-1 with FIPS enabled and DualStack disabled - func testResolve2() throws { + func testResolve5() throws { let endpointParams = EndpointParams( region: "us-east-1", useDualStack: false, @@ -52,7 +115,14 @@ class EndpointResolverTest: XCTestCase { let actual = try resolver.resolve(params: endpointParams) let properties: [String: AnyHashable] = - [:] + [ + "authSchemes": [ + [ + "name": "sigv4", + "signingRegion": "us-east-1" + ] as [String: AnyHashable] + ] as [AnyHashable] + ] let headers = SmithyHTTPAPI.Headers() let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://tax-fips.us-east-1.amazonaws.com", headers: headers, properties: properties) @@ -61,7 +131,7 @@ class EndpointResolverTest: XCTestCase { } /// For region us-east-1 with FIPS disabled and DualStack enabled - func testResolve3() throws { + func testResolve6() throws { let endpointParams = EndpointParams( region: "us-east-1", useDualStack: true, @@ -72,7 +142,14 @@ class EndpointResolverTest: XCTestCase { let actual = try resolver.resolve(params: endpointParams) let properties: [String: AnyHashable] = - [:] + [ + "authSchemes": [ + [ + "name": "sigv4", + "signingRegion": "us-east-1" + ] as [String: AnyHashable] + ] as [AnyHashable] + ] let headers = SmithyHTTPAPI.Headers() let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://tax.us-east-1.api.aws", headers: headers, properties: properties) @@ -81,7 +158,7 @@ class EndpointResolverTest: XCTestCase { } /// For region us-east-1 with FIPS disabled and DualStack disabled - func testResolve4() throws { + func testResolve7() throws { let endpointParams = EndpointParams( region: "us-east-1", useDualStack: false, @@ -92,7 +169,14 @@ class EndpointResolverTest: XCTestCase { let actual = try resolver.resolve(params: endpointParams) let properties: [String: AnyHashable] = - [:] + [ + "authSchemes": [ + [ + "name": "sigv4", + "signingRegion": "us-east-1" + ] as [String: AnyHashable] + ] as [AnyHashable] + ] let headers = SmithyHTTPAPI.Headers() let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://tax.us-east-1.amazonaws.com", headers: headers, properties: properties) @@ -100,10 +184,10 @@ class EndpointResolverTest: XCTestCase { XCTAssertEqual(expected, actual) } - /// For region cn-north-1 with FIPS enabled and DualStack enabled - func testResolve5() throws { + /// For region cn-northwest-1 with FIPS enabled and DualStack enabled + func testResolve8() throws { let endpointParams = EndpointParams( - region: "cn-north-1", + region: "cn-northwest-1", useDualStack: true, useFIPS: true ) @@ -112,18 +196,25 @@ class EndpointResolverTest: XCTestCase { let actual = try resolver.resolve(params: endpointParams) let properties: [String: AnyHashable] = - [:] + [ + "authSchemes": [ + [ + "name": "sigv4", + "signingRegion": "cn-northwest-1" + ] as [String: AnyHashable] + ] as [AnyHashable] + ] let headers = SmithyHTTPAPI.Headers() - let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://tax-fips.cn-north-1.api.amazonwebservices.com.cn", headers: headers, properties: properties) + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://tax-fips.cn-northwest-1.api.amazonwebservices.com.cn", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region cn-north-1 with FIPS enabled and DualStack disabled - func testResolve6() throws { + /// For region cn-northwest-1 with FIPS enabled and DualStack disabled + func testResolve9() throws { let endpointParams = EndpointParams( - region: "cn-north-1", + region: "cn-northwest-1", useDualStack: false, useFIPS: true ) @@ -132,18 +223,25 @@ class EndpointResolverTest: XCTestCase { let actual = try resolver.resolve(params: endpointParams) let properties: [String: AnyHashable] = - [:] + [ + "authSchemes": [ + [ + "name": "sigv4", + "signingRegion": "cn-northwest-1" + ] as [String: AnyHashable] + ] as [AnyHashable] + ] let headers = SmithyHTTPAPI.Headers() - let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://tax-fips.cn-north-1.amazonaws.com.cn", headers: headers, properties: properties) + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://tax-fips.cn-northwest-1.amazonaws.com.cn", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region cn-north-1 with FIPS disabled and DualStack enabled - func testResolve7() throws { + /// For region cn-northwest-1 with FIPS disabled and DualStack enabled + func testResolve10() throws { let endpointParams = EndpointParams( - region: "cn-north-1", + region: "cn-northwest-1", useDualStack: true, useFIPS: false ) @@ -152,18 +250,25 @@ class EndpointResolverTest: XCTestCase { let actual = try resolver.resolve(params: endpointParams) let properties: [String: AnyHashable] = - [:] + [ + "authSchemes": [ + [ + "name": "sigv4", + "signingRegion": "cn-northwest-1" + ] as [String: AnyHashable] + ] as [AnyHashable] + ] let headers = SmithyHTTPAPI.Headers() - let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://tax.cn-north-1.api.amazonwebservices.com.cn", headers: headers, properties: properties) + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://tax.cn-northwest-1.api.amazonwebservices.com.cn", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region cn-north-1 with FIPS disabled and DualStack disabled - func testResolve8() throws { + /// For region cn-northwest-1 with FIPS disabled and DualStack disabled + func testResolve11() throws { let endpointParams = EndpointParams( - region: "cn-north-1", + region: "cn-northwest-1", useDualStack: false, useFIPS: false ) @@ -172,18 +277,25 @@ class EndpointResolverTest: XCTestCase { let actual = try resolver.resolve(params: endpointParams) let properties: [String: AnyHashable] = - [:] + [ + "authSchemes": [ + [ + "name": "sigv4", + "signingRegion": "cn-northwest-1" + ] as [String: AnyHashable] + ] as [AnyHashable] + ] let headers = SmithyHTTPAPI.Headers() - let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://tax.cn-north-1.amazonaws.com.cn", headers: headers, properties: properties) + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://tax.cn-northwest-1.amazonaws.com.cn", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region us-gov-east-1 with FIPS enabled and DualStack enabled - func testResolve9() throws { + /// For region us-gov-west-1 with FIPS enabled and DualStack enabled + func testResolve12() throws { let endpointParams = EndpointParams( - region: "us-gov-east-1", + region: "us-gov-west-1", useDualStack: true, useFIPS: true ) @@ -192,18 +304,25 @@ class EndpointResolverTest: XCTestCase { let actual = try resolver.resolve(params: endpointParams) let properties: [String: AnyHashable] = - [:] + [ + "authSchemes": [ + [ + "name": "sigv4", + "signingRegion": "us-gov-west-1" + ] as [String: AnyHashable] + ] as [AnyHashable] + ] let headers = SmithyHTTPAPI.Headers() - let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://tax-fips.us-gov-east-1.api.aws", headers: headers, properties: properties) + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://tax-fips.us-gov-west-1.api.aws", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region us-gov-east-1 with FIPS enabled and DualStack disabled - func testResolve10() throws { + /// For region us-gov-west-1 with FIPS enabled and DualStack disabled + func testResolve13() throws { let endpointParams = EndpointParams( - region: "us-gov-east-1", + region: "us-gov-west-1", useDualStack: false, useFIPS: true ) @@ -212,18 +331,25 @@ class EndpointResolverTest: XCTestCase { let actual = try resolver.resolve(params: endpointParams) let properties: [String: AnyHashable] = - [:] + [ + "authSchemes": [ + [ + "name": "sigv4", + "signingRegion": "us-gov-west-1" + ] as [String: AnyHashable] + ] as [AnyHashable] + ] let headers = SmithyHTTPAPI.Headers() - let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://tax-fips.us-gov-east-1.amazonaws.com", headers: headers, properties: properties) + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://tax-fips.us-gov-west-1.amazonaws.com", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region us-gov-east-1 with FIPS disabled and DualStack enabled - func testResolve11() throws { + /// For region us-gov-west-1 with FIPS disabled and DualStack enabled + func testResolve14() throws { let endpointParams = EndpointParams( - region: "us-gov-east-1", + region: "us-gov-west-1", useDualStack: true, useFIPS: false ) @@ -232,18 +358,25 @@ class EndpointResolverTest: XCTestCase { let actual = try resolver.resolve(params: endpointParams) let properties: [String: AnyHashable] = - [:] + [ + "authSchemes": [ + [ + "name": "sigv4", + "signingRegion": "us-gov-west-1" + ] as [String: AnyHashable] + ] as [AnyHashable] + ] let headers = SmithyHTTPAPI.Headers() - let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://tax.us-gov-east-1.api.aws", headers: headers, properties: properties) + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://tax.us-gov-west-1.api.aws", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For region us-gov-east-1 with FIPS disabled and DualStack disabled - func testResolve12() throws { + /// For region us-gov-west-1 with FIPS disabled and DualStack disabled + func testResolve15() throws { let endpointParams = EndpointParams( - region: "us-gov-east-1", + region: "us-gov-west-1", useDualStack: false, useFIPS: false ) @@ -252,16 +385,23 @@ class EndpointResolverTest: XCTestCase { let actual = try resolver.resolve(params: endpointParams) let properties: [String: AnyHashable] = - [:] + [ + "authSchemes": [ + [ + "name": "sigv4", + "signingRegion": "us-gov-west-1" + ] as [String: AnyHashable] + ] as [AnyHashable] + ] let headers = SmithyHTTPAPI.Headers() - let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://tax.us-gov-east-1.amazonaws.com", headers: headers, properties: properties) + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://tax.us-gov-west-1.amazonaws.com", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } /// For region us-iso-east-1 with FIPS enabled and DualStack enabled - func testResolve13() throws { + func testResolve16() throws { let endpointParams = EndpointParams( region: "us-iso-east-1", useDualStack: true, @@ -280,7 +420,7 @@ class EndpointResolverTest: XCTestCase { } /// For region us-iso-east-1 with FIPS enabled and DualStack disabled - func testResolve14() throws { + func testResolve17() throws { let endpointParams = EndpointParams( region: "us-iso-east-1", useDualStack: false, @@ -291,7 +431,14 @@ class EndpointResolverTest: XCTestCase { let actual = try resolver.resolve(params: endpointParams) let properties: [String: AnyHashable] = - [:] + [ + "authSchemes": [ + [ + "name": "sigv4", + "signingRegion": "us-iso-east-1" + ] as [String: AnyHashable] + ] as [AnyHashable] + ] let headers = SmithyHTTPAPI.Headers() let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://tax-fips.us-iso-east-1.c2s.ic.gov", headers: headers, properties: properties) @@ -300,7 +447,7 @@ class EndpointResolverTest: XCTestCase { } /// For region us-iso-east-1 with FIPS disabled and DualStack enabled - func testResolve15() throws { + func testResolve18() throws { let endpointParams = EndpointParams( region: "us-iso-east-1", useDualStack: true, @@ -319,7 +466,7 @@ class EndpointResolverTest: XCTestCase { } /// For region us-iso-east-1 with FIPS disabled and DualStack disabled - func testResolve16() throws { + func testResolve19() throws { let endpointParams = EndpointParams( region: "us-iso-east-1", useDualStack: false, @@ -330,7 +477,14 @@ class EndpointResolverTest: XCTestCase { let actual = try resolver.resolve(params: endpointParams) let properties: [String: AnyHashable] = - [:] + [ + "authSchemes": [ + [ + "name": "sigv4", + "signingRegion": "us-iso-east-1" + ] as [String: AnyHashable] + ] as [AnyHashable] + ] let headers = SmithyHTTPAPI.Headers() let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://tax.us-iso-east-1.c2s.ic.gov", headers: headers, properties: properties) @@ -339,7 +493,7 @@ class EndpointResolverTest: XCTestCase { } /// For region us-isob-east-1 with FIPS enabled and DualStack enabled - func testResolve17() throws { + func testResolve20() throws { let endpointParams = EndpointParams( region: "us-isob-east-1", useDualStack: true, @@ -358,7 +512,7 @@ class EndpointResolverTest: XCTestCase { } /// For region us-isob-east-1 with FIPS enabled and DualStack disabled - func testResolve18() throws { + func testResolve21() throws { let endpointParams = EndpointParams( region: "us-isob-east-1", useDualStack: false, @@ -369,7 +523,14 @@ class EndpointResolverTest: XCTestCase { let actual = try resolver.resolve(params: endpointParams) let properties: [String: AnyHashable] = - [:] + [ + "authSchemes": [ + [ + "name": "sigv4", + "signingRegion": "us-isob-east-1" + ] as [String: AnyHashable] + ] as [AnyHashable] + ] let headers = SmithyHTTPAPI.Headers() let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://tax-fips.us-isob-east-1.sc2s.sgov.gov", headers: headers, properties: properties) @@ -378,7 +539,7 @@ class EndpointResolverTest: XCTestCase { } /// For region us-isob-east-1 with FIPS disabled and DualStack enabled - func testResolve19() throws { + func testResolve22() throws { let endpointParams = EndpointParams( region: "us-isob-east-1", useDualStack: true, @@ -397,7 +558,7 @@ class EndpointResolverTest: XCTestCase { } /// For region us-isob-east-1 with FIPS disabled and DualStack disabled - func testResolve20() throws { + func testResolve23() throws { let endpointParams = EndpointParams( region: "us-isob-east-1", useDualStack: false, @@ -408,7 +569,14 @@ class EndpointResolverTest: XCTestCase { let actual = try resolver.resolve(params: endpointParams) let properties: [String: AnyHashable] = - [:] + [ + "authSchemes": [ + [ + "name": "sigv4", + "signingRegion": "us-isob-east-1" + ] as [String: AnyHashable] + ] as [AnyHashable] + ] let headers = SmithyHTTPAPI.Headers() let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://tax.us-isob-east-1.sc2s.sgov.gov", headers: headers, properties: properties) @@ -416,31 +584,75 @@ class EndpointResolverTest: XCTestCase { XCTAssertEqual(expected, actual) } - /// For custom endpoint with region set and fips disabled and dualstack disabled - func testResolve21() throws { + /// For region eu-isoe-west-1 with FIPS enabled and DualStack enabled + func testResolve24() throws { let endpointParams = EndpointParams( - endpoint: "https://example.com", - region: "us-east-1", + region: "eu-isoe-west-1", + useDualStack: true, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + XCTAssertThrowsError(try resolver.resolve(params: endpointParams)) { error in + switch error { + case ClientRuntime.EndpointError.unresolved(let message): + XCTAssertEqual("FIPS and DualStack are enabled, but this partition does not support one or both", message) + default: + XCTFail() + } + } + } + + /// For region eu-isoe-west-1 with FIPS enabled and DualStack disabled + func testResolve25() throws { + let endpointParams = EndpointParams( + region: "eu-isoe-west-1", useDualStack: false, - useFIPS: false + useFIPS: true ) let resolver = try DefaultEndpointResolver() let actual = try resolver.resolve(params: endpointParams) let properties: [String: AnyHashable] = - [:] + [ + "authSchemes": [ + [ + "name": "sigv4", + "signingRegion": "eu-isoe-west-1" + ] as [String: AnyHashable] + ] as [AnyHashable] + ] let headers = SmithyHTTPAPI.Headers() - let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://example.com", headers: headers, properties: properties) + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://tax-fips.eu-isoe-west-1.cloud.adc-e.uk", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For custom endpoint with region not set and fips disabled and dualstack disabled - func testResolve22() throws { + /// For region eu-isoe-west-1 with FIPS disabled and DualStack enabled + func testResolve26() throws { let endpointParams = EndpointParams( - endpoint: "https://example.com", + region: "eu-isoe-west-1", + useDualStack: true, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + XCTAssertThrowsError(try resolver.resolve(params: endpointParams)) { error in + switch error { + case ClientRuntime.EndpointError.unresolved(let message): + XCTAssertEqual("DualStack is enabled but this partition does not support DualStack", message) + default: + XCTFail() + } + } + } + + /// For region eu-isoe-west-1 with FIPS disabled and DualStack disabled + func testResolve27() throws { + let endpointParams = EndpointParams( + region: "eu-isoe-west-1", useDualStack: false, useFIPS: false ) @@ -449,20 +661,26 @@ class EndpointResolverTest: XCTestCase { let actual = try resolver.resolve(params: endpointParams) let properties: [String: AnyHashable] = - [:] + [ + "authSchemes": [ + [ + "name": "sigv4", + "signingRegion": "eu-isoe-west-1" + ] as [String: AnyHashable] + ] as [AnyHashable] + ] let headers = SmithyHTTPAPI.Headers() - let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://example.com", headers: headers, properties: properties) + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://tax.eu-isoe-west-1.cloud.adc-e.uk", headers: headers, properties: properties) XCTAssertEqual(expected, actual) } - /// For custom endpoint with fips enabled and dualstack disabled - func testResolve23() throws { + /// For region us-isof-south-1 with FIPS enabled and DualStack enabled + func testResolve28() throws { let endpointParams = EndpointParams( - endpoint: "https://example.com", - region: "us-east-1", - useDualStack: false, + region: "us-isof-south-1", + useDualStack: true, useFIPS: true ) let resolver = try DefaultEndpointResolver() @@ -470,18 +688,44 @@ class EndpointResolverTest: XCTestCase { XCTAssertThrowsError(try resolver.resolve(params: endpointParams)) { error in switch error { case ClientRuntime.EndpointError.unresolved(let message): - XCTAssertEqual("Invalid Configuration: FIPS and custom endpoint are not supported", message) + XCTAssertEqual("FIPS and DualStack are enabled, but this partition does not support one or both", message) default: XCTFail() } } } - /// For custom endpoint with fips disabled and dualstack enabled - func testResolve24() throws { + /// For region us-isof-south-1 with FIPS enabled and DualStack disabled + func testResolve29() throws { let endpointParams = EndpointParams( - endpoint: "https://example.com", - region: "us-east-1", + region: "us-isof-south-1", + useDualStack: false, + useFIPS: true + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [ + "authSchemes": [ + [ + "name": "sigv4", + "signingRegion": "us-isof-south-1" + ] as [String: AnyHashable] + ] as [AnyHashable] + ] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://tax-fips.us-isof-south-1.csp.hci.ic.gov", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + + /// For region us-isof-south-1 with FIPS disabled and DualStack enabled + func testResolve30() throws { + let endpointParams = EndpointParams( + region: "us-isof-south-1", useDualStack: true, useFIPS: false ) @@ -490,15 +734,42 @@ class EndpointResolverTest: XCTestCase { XCTAssertThrowsError(try resolver.resolve(params: endpointParams)) { error in switch error { case ClientRuntime.EndpointError.unresolved(let message): - XCTAssertEqual("Invalid Configuration: Dualstack and custom endpoint are not supported", message) + XCTAssertEqual("DualStack is enabled but this partition does not support DualStack", message) default: XCTFail() } } } + /// For region us-isof-south-1 with FIPS disabled and DualStack disabled + func testResolve31() throws { + let endpointParams = EndpointParams( + region: "us-isof-south-1", + useDualStack: false, + useFIPS: false + ) + let resolver = try DefaultEndpointResolver() + + let actual = try resolver.resolve(params: endpointParams) + + let properties: [String: AnyHashable] = + [ + "authSchemes": [ + [ + "name": "sigv4", + "signingRegion": "us-isof-south-1" + ] as [String: AnyHashable] + ] as [AnyHashable] + ] + + let headers = SmithyHTTPAPI.Headers() + let expected = try SmithyHTTPAPI.Endpoint(urlString: "https://tax.us-isof-south-1.csp.hci.ic.gov", headers: headers, properties: properties) + + XCTAssertEqual(expected, actual) + } + /// Missing region - func testResolve25() throws { + func testResolve32() throws { let endpointParams = EndpointParams( ) let resolver = try DefaultEndpointResolver() diff --git a/Sources/Services/AWSTimestreamQuery/Sources/AWSTimestreamQuery/Models.swift b/Sources/Services/AWSTimestreamQuery/Sources/AWSTimestreamQuery/Models.swift index 7cf6cd78b2a..b7b1d7ed70d 100644 --- a/Sources/Services/AWSTimestreamQuery/Sources/AWSTimestreamQuery/Models.swift +++ b/Sources/Services/AWSTimestreamQuery/Sources/AWSTimestreamQuery/Models.swift @@ -1548,7 +1548,7 @@ public struct UntagResourceOutput: Swift.Sendable { public struct UpdateAccountSettingsInput: Swift.Sendable { /// The maximum number of compute units the service will use at any point in time to serve your queries. To run queries, you must set a minimum capacity of 4 TCU. You can set the maximum number of TCU in multiples of 4, for example, 4, 8, 16, 32, and so on. The maximum value supported for MaxQueryTCU is 1000. To request an increase to this soft limit, contact Amazon Web Services Support. For information about the default quota for maxQueryTCU, see [Default quotas](https://docs.aws.amazon.com/timestream/latest/developerguide/ts-limits.html#limits.default). public var maxQueryTCU: Swift.Int? - /// The pricing model for queries in an account. + /// The pricing model for queries in an account. The QueryPricingModel parameter is used by several Timestream operations; however, the UpdateAccountSettings API operation doesn't recognize any values other than COMPUTE_UNITS. public var queryPricingModel: TimestreamQueryClientTypes.QueryPricingModel? public init( diff --git a/Sources/Services/AWSTnb/Sources/AWSTnb/Models.swift b/Sources/Services/AWSTnb/Sources/AWSTnb/Models.swift index 43cc0016b99..07fdfe654d5 100644 --- a/Sources/Services/AWSTnb/Sources/AWSTnb/Models.swift +++ b/Sources/Services/AWSTnb/Sources/AWSTnb/Models.swift @@ -9,6 +9,7 @@ @_spi(SmithyReadWrite) import ClientRuntime import Foundation +import SmithyJSON import class SmithyHTTPAPI.HTTPResponse @_spi(SmithyReadWrite) import class SmithyJSON.Reader @_spi(SmithyReadWrite) import class SmithyJSON.Writer @@ -1193,9 +1194,12 @@ extension TnbClientTypes { case impaired case instantiated case instantiateInProgress + case intentToUpdateInProgress case notInstantiated case stopped case terminateInProgress + case updated + case updateFailed case updateInProgress case sdkUnknown(Swift.String) @@ -1205,9 +1209,12 @@ extension TnbClientTypes { .impaired, .instantiated, .instantiateInProgress, + .intentToUpdateInProgress, .notInstantiated, .stopped, .terminateInProgress, + .updated, + .updateFailed, .updateInProgress ] } @@ -1223,9 +1230,12 @@ extension TnbClientTypes { case .impaired: return "IMPAIRED" case .instantiated: return "INSTANTIATED" case .instantiateInProgress: return "INSTANTIATE_IN_PROGRESS" + case .intentToUpdateInProgress: return "INTENT_TO_UPDATE_IN_PROGRESS" case .notInstantiated: return "NOT_INSTANTIATED" case .stopped: return "STOPPED" case .terminateInProgress: return "TERMINATE_IN_PROGRESS" + case .updated: return "UPDATED" + case .updateFailed: return "UPDATE_FAILED" case .updateInProgress: return "UPDATE_IN_PROGRESS" case let .sdkUnknown(s): return s } @@ -1359,6 +1369,70 @@ extension TnbClientTypes { } } +extension TnbClientTypes { + + /// Metadata related to the configuration properties used during instantiation of the network instance. + public struct InstantiateMetadata: Swift.Sendable { + /// The configurable properties used during instantiation. + public var additionalParamsForNs: Smithy.Document? + /// The network service descriptor used for instantiating the network instance. + /// This member is required. + public var nsdInfoId: Swift.String? + + public init( + additionalParamsForNs: Smithy.Document? = nil, + nsdInfoId: Swift.String? = nil + ) + { + self.additionalParamsForNs = additionalParamsForNs + self.nsdInfoId = nsdInfoId + } + } +} + +extension TnbClientTypes { + + /// Metadata related to the configuration properties used during update of a specific network function in a network instance. + public struct ModifyVnfInfoMetadata: Swift.Sendable { + /// The configurable properties used during update of the network function instance. + /// This member is required. + public var vnfConfigurableProperties: Smithy.Document? + /// The network function instance that was updated in the network instance. + /// This member is required. + public var vnfInstanceId: Swift.String? + + public init( + vnfConfigurableProperties: Smithy.Document? = nil, + vnfInstanceId: Swift.String? = nil + ) + { + self.vnfConfigurableProperties = vnfConfigurableProperties + self.vnfInstanceId = vnfInstanceId + } + } +} + +extension TnbClientTypes { + + /// Metadata related to the configuration properties used during update of a network instance. + public struct UpdateNsMetadata: Swift.Sendable { + /// The configurable properties used during update. + public var additionalParamsForNs: Smithy.Document? + /// The network service descriptor used for updating the network instance. + /// This member is required. + public var nsdInfoId: Swift.String? + + public init( + additionalParamsForNs: Smithy.Document? = nil, + nsdInfoId: Swift.String? = nil + ) + { + self.additionalParamsForNs = additionalParamsForNs + self.nsdInfoId = nsdInfoId + } + } +} + extension TnbClientTypes { /// Metadata related to a network operation occurrence. A network operation is any operation that is done to your network, such as network instance instantiation or termination. @@ -1366,17 +1440,29 @@ extension TnbClientTypes { /// The date that the resource was created. /// This member is required. public var createdAt: Foundation.Date? + /// Metadata related to the network operation occurrence for network instantiation. This is populated only if the lcmOperationType is INSTANTIATE. + public var instantiateMetadata: TnbClientTypes.InstantiateMetadata? /// The date that the resource was last modified. /// This member is required. public var lastModified: Foundation.Date? + /// Metadata related to the network operation occurrence for network function updates in a network instance. This is populated only if the lcmOperationType is UPDATE and the updateType is MODIFY_VNF_INFORMATION. + public var modifyVnfInfoMetadata: TnbClientTypes.ModifyVnfInfoMetadata? + /// Metadata related to the network operation occurrence for network instance updates. This is populated only if the lcmOperationType is UPDATE and the updateType is UPDATE_NS. + public var updateNsMetadata: TnbClientTypes.UpdateNsMetadata? public init( createdAt: Foundation.Date? = nil, - lastModified: Foundation.Date? = nil + instantiateMetadata: TnbClientTypes.InstantiateMetadata? = nil, + lastModified: Foundation.Date? = nil, + modifyVnfInfoMetadata: TnbClientTypes.ModifyVnfInfoMetadata? = nil, + updateNsMetadata: TnbClientTypes.UpdateNsMetadata? = nil ) { self.createdAt = createdAt + self.instantiateMetadata = instantiateMetadata self.lastModified = lastModified + self.modifyVnfInfoMetadata = modifyVnfInfoMetadata + self.updateNsMetadata = updateNsMetadata } } } @@ -1499,6 +1585,35 @@ extension TnbClientTypes { } } +extension TnbClientTypes { + + public enum UpdateSolNetworkType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case modifyVnfInformation + case updateNs + case sdkUnknown(Swift.String) + + public static var allCases: [UpdateSolNetworkType] { + return [ + .modifyVnfInformation, + .updateNs + ] + } + + 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 .modifyVnfInformation: return "MODIFY_VNF_INFORMATION" + case .updateNs: return "UPDATE_NS" + case let .sdkUnknown(s): return s + } + } + } +} + public struct GetSolNetworkOperationOutput: Swift.Sendable { /// Network operation ARN. /// This member is required. @@ -1519,6 +1634,8 @@ public struct GetSolNetworkOperationOutput: Swift.Sendable { public var tags: [Swift.String: Swift.String]? /// All tasks associated with this operation occurrence. public var tasks: [TnbClientTypes.GetSolNetworkOperationTaskDetails]? + /// Type of the update. Only present if the network operation lcmOperationType is UPDATE. + public var updateType: TnbClientTypes.UpdateSolNetworkType? public init( arn: Swift.String? = nil, @@ -1529,7 +1646,8 @@ public struct GetSolNetworkOperationOutput: Swift.Sendable { nsInstanceId: Swift.String? = nil, operationState: TnbClientTypes.NsLcmOperationState? = nil, tags: [Swift.String: Swift.String]? = nil, - tasks: [TnbClientTypes.GetSolNetworkOperationTaskDetails]? = nil + tasks: [TnbClientTypes.GetSolNetworkOperationTaskDetails]? = nil, + updateType: TnbClientTypes.UpdateSolNetworkType? = nil ) { self.arn = arn @@ -1541,12 +1659,13 @@ public struct GetSolNetworkOperationOutput: Swift.Sendable { self.operationState = operationState self.tags = tags self.tasks = tasks + self.updateType = updateType } } extension GetSolNetworkOperationOutput: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "GetSolNetworkOperationOutput(arn: \(Swift.String(describing: arn)), error: \(Swift.String(describing: error)), id: \(Swift.String(describing: id)), lcmOperationType: \(Swift.String(describing: lcmOperationType)), metadata: \(Swift.String(describing: metadata)), nsInstanceId: \(Swift.String(describing: nsInstanceId)), operationState: \(Swift.String(describing: operationState)), tasks: \(Swift.String(describing: tasks)), tags: \"CONTENT_REDACTED\")"} + "GetSolNetworkOperationOutput(arn: \(Swift.String(describing: arn)), error: \(Swift.String(describing: error)), id: \(Swift.String(describing: id)), lcmOperationType: \(Swift.String(describing: lcmOperationType)), metadata: \(Swift.String(describing: metadata)), nsInstanceId: \(Swift.String(describing: nsInstanceId)), operationState: \(Swift.String(describing: operationState)), tasks: \(Swift.String(describing: tasks)), updateType: \(Swift.String(describing: updateType)), tags: \"CONTENT_REDACTED\")"} } public struct GetSolNetworkPackageInput: Swift.Sendable { @@ -1742,7 +1861,7 @@ public struct InstantiateSolNetworkInstanceInput: Swift.Sendable { /// ID of the network instance. /// This member is required. public var nsInstanceId: Swift.String? - /// A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an optional value. When you use this API, the tags are transferred to the network operation that is created. Use tags to search and filter your resources or track your Amazon Web Services costs. + /// A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an optional value. When you use this API, the tags are only applied to the network operation that is created. These tags are not applied to the network instance. Use tags to search and filter your resources or track your Amazon Web Services costs. public var tags: [Swift.String: Swift.String]? public init( @@ -1768,7 +1887,7 @@ public struct InstantiateSolNetworkInstanceOutput: Swift.Sendable { /// The identifier of the network operation. /// This member is required. public var nsLcmOpOccId: Swift.String? - /// A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an optional value. When you use this API, the tags are transferred to the network operation that is created. Use tags to search and filter your resources or track your Amazon Web Services costs. + /// A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an optional value. When you use this API, the tags are only applied to the network operation that is created. These tags are not applied to the network instance. Use tags to search and filter your resources or track your Amazon Web Services costs. public var tags: [Swift.String: Swift.String]? public init( @@ -2113,14 +2232,18 @@ public struct ListSolNetworkOperationsInput: Swift.Sendable { public var maxResults: Swift.Int? /// The token for the next page of results. public var nextToken: Swift.String? + /// Network instance id filter, to retrieve network operations associated to a network instance. + public var nsInstanceId: Swift.String? public init( maxResults: Swift.Int? = nil, - nextToken: Swift.String? = nil + nextToken: Swift.String? = nil, + nsInstanceId: Swift.String? = nil ) { self.maxResults = maxResults self.nextToken = nextToken + self.nsInstanceId = nsInstanceId } } @@ -2134,14 +2257,22 @@ extension TnbClientTypes { /// The date that the resource was last modified. /// This member is required. public var lastModified: Foundation.Date? + /// The network service descriptor id used for the operation. Only present if the updateType is UPDATE_NS. + public var nsdInfoId: Swift.String? + /// The network function id used for the operation. Only present if the updateType is MODIFY_VNF_INFO. + public var vnfInstanceId: Swift.String? public init( createdAt: Foundation.Date? = nil, - lastModified: Foundation.Date? = nil + lastModified: Foundation.Date? = nil, + nsdInfoId: Swift.String? = nil, + vnfInstanceId: Swift.String? = nil ) { self.createdAt = createdAt self.lastModified = lastModified + self.nsdInfoId = nsdInfoId + self.vnfInstanceId = vnfInstanceId } } } @@ -2169,6 +2300,8 @@ extension TnbClientTypes { /// The state of the network operation. /// This member is required. public var operationState: TnbClientTypes.NsLcmOperationState? + /// Type of the update. Only present if the network operation lcmOperationType is UPDATE. + public var updateType: TnbClientTypes.UpdateSolNetworkType? public init( arn: Swift.String? = nil, @@ -2177,7 +2310,8 @@ extension TnbClientTypes { lcmOperationType: TnbClientTypes.LcmOperationType? = nil, metadata: TnbClientTypes.ListSolNetworkOperationsMetadata? = nil, nsInstanceId: Swift.String? = nil, - operationState: TnbClientTypes.NsLcmOperationState? = nil + operationState: TnbClientTypes.NsLcmOperationState? = nil, + updateType: TnbClientTypes.UpdateSolNetworkType? = nil ) { self.arn = arn @@ -2187,6 +2321,7 @@ extension TnbClientTypes { self.metadata = metadata self.nsInstanceId = nsInstanceId self.operationState = operationState + self.updateType = updateType } } } @@ -2381,6 +2516,11 @@ public struct PutSolFunctionPackageContentInput: Swift.Sendable { } } +extension PutSolFunctionPackageContentInput: Swift.CustomDebugStringConvertible { + public var debugDescription: Swift.String { + "PutSolFunctionPackageContentInput(contentType: \(Swift.String(describing: contentType)), vnfPkgId: \(Swift.String(describing: vnfPkgId)), file: \"CONTENT_REDACTED\")"} +} + extension TnbClientTypes { /// Update metadata in a function package. A function package is a .zip file in CSAR (Cloud Service Archive) format that contains a network function (an ETSI standard telecommunication application) and function package descriptor that uses the TOSCA standard to describe how the network functions should run on your network. @@ -2457,6 +2597,11 @@ public struct PutSolNetworkPackageContentInput: Swift.Sendable { } } +extension PutSolNetworkPackageContentInput: Swift.CustomDebugStringConvertible { + public var debugDescription: Swift.String { + "PutSolNetworkPackageContentInput(contentType: \(Swift.String(describing: contentType)), nsdInfoId: \(Swift.String(describing: nsdInfoId)), file: \"CONTENT_REDACTED\")"} +} + extension TnbClientTypes { /// Update metadata in a network package. A network package is a .zip file in CSAR (Cloud Service Archive) format defines the function packages you want to deploy and the Amazon Web Services infrastructure you want to deploy them on. @@ -2548,7 +2693,7 @@ public struct TerminateSolNetworkInstanceInput: Swift.Sendable { /// ID of the network instance. /// This member is required. public var nsInstanceId: Swift.String? - /// A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an optional value. When you use this API, the tags are transferred to the network operation that is created. Use tags to search and filter your resources or track your Amazon Web Services costs. + /// A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an optional value. When you use this API, the tags are only applied to the network operation that is created. These tags are not applied to the network instance. Use tags to search and filter your resources or track your Amazon Web Services costs. public var tags: [Swift.String: Swift.String]? public init( @@ -2569,7 +2714,7 @@ extension TerminateSolNetworkInstanceInput: Swift.CustomDebugStringConvertible { public struct TerminateSolNetworkInstanceOutput: Swift.Sendable { /// The identifier of the network operation. public var nsLcmOpOccId: Swift.String? - /// A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an optional value. When you use this API, the tags are transferred to the network operation that is created. Use tags to search and filter your resources or track your Amazon Web Services costs. + /// A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an optional value. When you use this API, the tags are only applied to the network operation that is created. These tags are not applied to the network instance. Use tags to search and filter your resources or track your Amazon Web Services costs. public var tags: [Swift.String: Swift.String]? public init( @@ -2665,39 +2810,40 @@ extension TnbClientTypes { extension TnbClientTypes { - public enum UpdateSolNetworkType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { - case modifyVnfInformation - case sdkUnknown(Swift.String) - - public static var allCases: [UpdateSolNetworkType] { - return [ - .modifyVnfInformation - ] - } - - public init?(rawValue: Swift.String) { - let value = Self.allCases.first(where: { $0.rawValue == rawValue }) - self = value ?? Self.sdkUnknown(rawValue) - } + /// Information parameters and/or the configurable properties for a network descriptor used for update. + public struct UpdateSolNetworkServiceData: Swift.Sendable { + /// Values for the configurable properties declared in the network service descriptor. + public var additionalParamsForNs: Smithy.Document? + /// ID of the network service descriptor. + /// This member is required. + public var nsdInfoId: Swift.String? - public var rawValue: Swift.String { - switch self { - case .modifyVnfInformation: return "MODIFY_VNF_INFORMATION" - case let .sdkUnknown(s): return s - } + public init( + additionalParamsForNs: Smithy.Document? = nil, + nsdInfoId: Swift.String? = nil + ) + { + self.additionalParamsForNs = additionalParamsForNs + self.nsdInfoId = nsdInfoId } } } public struct UpdateSolNetworkInstanceInput: Swift.Sendable { - /// Identifies the network function information parameters and/or the configurable properties of the network function to be modified. + /// Identifies the network function information parameters and/or the configurable properties of the network function to be modified. Include this property only if the update type is MODIFY_VNF_INFORMATION. public var modifyVnfInfoData: TnbClientTypes.UpdateSolNetworkModify? /// ID of the network instance. /// This member is required. public var nsInstanceId: Swift.String? - /// A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an optional value. When you use this API, the tags are transferred to the network operation that is created. Use tags to search and filter your resources or track your Amazon Web Services costs. + /// A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an optional value. When you use this API, the tags are only applied to the network operation that is created. These tags are not applied to the network instance. Use tags to search and filter your resources or track your Amazon Web Services costs. public var tags: [Swift.String: Swift.String]? + /// Identifies the network service descriptor and the configurable properties of the descriptor, to be used for the update. Include this property only if the update type is UPDATE_NS. + public var updateNs: TnbClientTypes.UpdateSolNetworkServiceData? /// The type of update. + /// + /// * Use the MODIFY_VNF_INFORMATION update type, to update a specific network function configuration, in the network instance. + /// + /// * Use the UPDATE_NS update type, to update the network instance to a new network service descriptor. /// This member is required. public var updateType: TnbClientTypes.UpdateSolNetworkType? @@ -2705,25 +2851,27 @@ public struct UpdateSolNetworkInstanceInput: Swift.Sendable { modifyVnfInfoData: TnbClientTypes.UpdateSolNetworkModify? = nil, nsInstanceId: Swift.String? = nil, tags: [Swift.String: Swift.String]? = nil, + updateNs: TnbClientTypes.UpdateSolNetworkServiceData? = nil, updateType: TnbClientTypes.UpdateSolNetworkType? = nil ) { self.modifyVnfInfoData = modifyVnfInfoData self.nsInstanceId = nsInstanceId self.tags = tags + self.updateNs = updateNs self.updateType = updateType } } extension UpdateSolNetworkInstanceInput: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "UpdateSolNetworkInstanceInput(modifyVnfInfoData: \(Swift.String(describing: modifyVnfInfoData)), nsInstanceId: \(Swift.String(describing: nsInstanceId)), updateType: \(Swift.String(describing: updateType)), tags: \"CONTENT_REDACTED\")"} + "UpdateSolNetworkInstanceInput(modifyVnfInfoData: \(Swift.String(describing: modifyVnfInfoData)), nsInstanceId: \(Swift.String(describing: nsInstanceId)), updateNs: \(Swift.String(describing: updateNs)), updateType: \(Swift.String(describing: updateType)), tags: \"CONTENT_REDACTED\")"} } public struct UpdateSolNetworkInstanceOutput: Swift.Sendable { /// The identifier of the network operation. public var nsLcmOpOccId: Swift.String? - /// A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an optional value. When you use this API, the tags are transferred to the network operation that is created. Use tags to search and filter your resources or track your Amazon Web Services costs. + /// A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an optional value. When you use this API, the tags are only applied to the network operation that is created. These tags are not applied to the network instance. Use tags to search and filter your resources or track your Amazon Web Services costs. public var tags: [Swift.String: Swift.String]? public init( @@ -2794,6 +2942,11 @@ public struct ValidateSolFunctionPackageContentInput: Swift.Sendable { } } +extension ValidateSolFunctionPackageContentInput: Swift.CustomDebugStringConvertible { + public var debugDescription: Swift.String { + "ValidateSolFunctionPackageContentInput(contentType: \(Swift.String(describing: contentType)), vnfPkgId: \(Swift.String(describing: vnfPkgId)), file: \"CONTENT_REDACTED\")"} +} + extension TnbClientTypes { /// Validates function package content metadata. A function package is a .zip file in CSAR (Cloud Service Archive) format that contains a network function (an ETSI standard telecommunication application) and function package descriptor that uses the TOSCA standard to describe how the network functions should run on your network. @@ -2870,6 +3023,11 @@ public struct ValidateSolNetworkPackageContentInput: Swift.Sendable { } } +extension ValidateSolNetworkPackageContentInput: Swift.CustomDebugStringConvertible { + public var debugDescription: Swift.String { + "ValidateSolNetworkPackageContentInput(contentType: \(Swift.String(describing: contentType)), nsdInfoId: \(Swift.String(describing: nsdInfoId)), file: \"CONTENT_REDACTED\")"} +} + extension TnbClientTypes { /// Validates network package content metadata. A network package is a .zip file in CSAR (Cloud Service Archive) format defines the function packages you want to deploy and the Amazon Web Services infrastructure you want to deploy them on. @@ -3215,6 +3373,10 @@ extension ListSolNetworkOperationsInput { static func queryItemProvider(_ value: ListSolNetworkOperationsInput) throws -> [Smithy.URIQueryItem] { var items = [Smithy.URIQueryItem]() + if let nsInstanceId = value.nsInstanceId { + let nsInstanceIdQueryItem = Smithy.URIQueryItem(name: "nsInstanceId".urlPercentEncoding(), value: Swift.String(nsInstanceId).urlPercentEncoding()) + items.append(nsInstanceIdQueryItem) + } if let maxResults = value.maxResults { let maxResultsQueryItem = Smithy.URIQueryItem(name: "max_results".urlPercentEncoding(), value: Swift.String(maxResults).urlPercentEncoding()) items.append(maxResultsQueryItem) @@ -3502,6 +3664,7 @@ extension UpdateSolNetworkInstanceInput { guard let value else { return } try writer["modifyVnfInfoData"].write(value.modifyVnfInfoData, with: TnbClientTypes.UpdateSolNetworkModify.write(value:to:)) try writer["tags"].writeMap(value.tags, valueWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) + try writer["updateNs"].write(value.updateNs, with: TnbClientTypes.UpdateSolNetworkServiceData.write(value:to:)) try writer["updateType"].write(value.updateType) } } @@ -3728,6 +3891,7 @@ extension GetSolNetworkOperationOutput { value.operationState = try reader["operationState"].readIfPresent() value.tags = try reader["tags"].readMapIfPresent(valueReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) value.tasks = try reader["tasks"].readListIfPresent(memberReadingClosure: TnbClientTypes.GetSolNetworkOperationTaskDetails.read(from:), memberNodeInfo: "member", isFlattened: false) + value.updateType = try reader["updateType"].readIfPresent() return value } } @@ -4801,12 +4965,48 @@ extension TnbClientTypes.GetSolNetworkOperationMetadata { static func read(from reader: SmithyJSON.Reader) throws -> TnbClientTypes.GetSolNetworkOperationMetadata { guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } var value = TnbClientTypes.GetSolNetworkOperationMetadata() + value.updateNsMetadata = try reader["updateNsMetadata"].readIfPresent(with: TnbClientTypes.UpdateNsMetadata.read(from:)) + value.modifyVnfInfoMetadata = try reader["modifyVnfInfoMetadata"].readIfPresent(with: TnbClientTypes.ModifyVnfInfoMetadata.read(from:)) + value.instantiateMetadata = try reader["instantiateMetadata"].readIfPresent(with: TnbClientTypes.InstantiateMetadata.read(from:)) value.createdAt = try reader["createdAt"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") value.lastModified = try reader["lastModified"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") return value } } +extension TnbClientTypes.InstantiateMetadata { + + static func read(from reader: SmithyJSON.Reader) throws -> TnbClientTypes.InstantiateMetadata { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = TnbClientTypes.InstantiateMetadata() + value.nsdInfoId = try reader["nsdInfoId"].readIfPresent() ?? "" + value.additionalParamsForNs = try reader["additionalParamsForNs"].readIfPresent() + return value + } +} + +extension TnbClientTypes.ModifyVnfInfoMetadata { + + static func read(from reader: SmithyJSON.Reader) throws -> TnbClientTypes.ModifyVnfInfoMetadata { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = TnbClientTypes.ModifyVnfInfoMetadata() + value.vnfInstanceId = try reader["vnfInstanceId"].readIfPresent() ?? "" + value.vnfConfigurableProperties = try reader["vnfConfigurableProperties"].readIfPresent() ?? [:] + return value + } +} + +extension TnbClientTypes.UpdateNsMetadata { + + static func read(from reader: SmithyJSON.Reader) throws -> TnbClientTypes.UpdateNsMetadata { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = TnbClientTypes.UpdateNsMetadata() + value.nsdInfoId = try reader["nsdInfoId"].readIfPresent() ?? "" + value.additionalParamsForNs = try reader["additionalParamsForNs"].readIfPresent() + return value + } +} + extension TnbClientTypes.GetSolNetworkOperationTaskDetails { static func read(from reader: SmithyJSON.Reader) throws -> TnbClientTypes.GetSolNetworkOperationTaskDetails { @@ -4961,6 +5161,7 @@ extension TnbClientTypes.ListSolNetworkOperationsInfo { value.operationState = try reader["operationState"].readIfPresent() ?? .sdkUnknown("") value.nsInstanceId = try reader["nsInstanceId"].readIfPresent() ?? "" value.lcmOperationType = try reader["lcmOperationType"].readIfPresent() ?? .sdkUnknown("") + value.updateType = try reader["updateType"].readIfPresent() value.error = try reader["error"].readIfPresent(with: TnbClientTypes.ProblemDetails.read(from:)) value.metadata = try reader["metadata"].readIfPresent(with: TnbClientTypes.ListSolNetworkOperationsMetadata.read(from:)) return value @@ -4972,6 +5173,8 @@ extension TnbClientTypes.ListSolNetworkOperationsMetadata { static func read(from reader: SmithyJSON.Reader) throws -> TnbClientTypes.ListSolNetworkOperationsMetadata { guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } var value = TnbClientTypes.ListSolNetworkOperationsMetadata() + value.nsdInfoId = try reader["nsdInfoId"].readIfPresent() + value.vnfInstanceId = try reader["vnfInstanceId"].readIfPresent() value.createdAt = try reader["createdAt"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") value.lastModified = try reader["lastModified"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") return value @@ -5059,4 +5262,13 @@ extension TnbClientTypes.UpdateSolNetworkModify { } } +extension TnbClientTypes.UpdateSolNetworkServiceData { + + static func write(value: TnbClientTypes.UpdateSolNetworkServiceData?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["additionalParamsForNs"].write(value.additionalParamsForNs) + try writer["nsdInfoId"].write(value.nsdInfoId) + } +} + public enum TnbClientTypes {} diff --git a/Sources/Services/AWSTnb/Sources/AWSTnb/Paginators.swift b/Sources/Services/AWSTnb/Sources/AWSTnb/Paginators.swift index 9d6bfaea9e6..c8e8bf29b61 100644 --- a/Sources/Services/AWSTnb/Sources/AWSTnb/Paginators.swift +++ b/Sources/Services/AWSTnb/Sources/AWSTnb/Paginators.swift @@ -118,7 +118,8 @@ extension ListSolNetworkOperationsInput: ClientRuntime.PaginateToken { public func usingPaginationToken(_ token: Swift.String) -> ListSolNetworkOperationsInput { return ListSolNetworkOperationsInput( maxResults: self.maxResults, - nextToken: token + nextToken: token, + nsInstanceId: self.nsInstanceId )} } diff --git a/Sources/Services/AWSTnb/Sources/AWSTnb/TnbClient.swift b/Sources/Services/AWSTnb/Sources/AWSTnb/TnbClient.swift index 3f385376507..a112be46670 100644 --- a/Sources/Services/AWSTnb/Sources/AWSTnb/TnbClient.swift +++ b/Sources/Services/AWSTnb/Sources/AWSTnb/TnbClient.swift @@ -700,7 +700,7 @@ extension TnbClient { /// Performs the `GetSolFunctionInstance` operation on the `TNB` service. /// - /// Gets the details of a network function instance, including the instantation state and metadata from the function package descriptor in the network function package. A network function instance is a function in a function package . + /// Gets the details of a network function instance, including the instantiation state and metadata from the function package descriptor in the network function package. A network function instance is a function in a function package . /// /// - Parameter GetSolFunctionInstanceInput : [no documentation found] /// @@ -2267,7 +2267,7 @@ extension TnbClient { /// Performs the `UpdateSolNetworkInstance` operation on the `TNB` service. /// - /// Update a network instance. A network instance is a single network created in Amazon Web Services TNB that can be deployed and on which life-cycle operations (like terminate, update, and delete) can be performed. + /// Update a network instance. A network instance is a single network created in Amazon Web Services TNB that can be deployed and on which life-cycle operations (like terminate, update, and delete) can be performed. Choose the updateType parameter to target the necessary update of the network instance. /// /// - Parameter UpdateSolNetworkInstanceInput : [no documentation found] /// diff --git a/Sources/Services/AWSTranscribeStreaming/Sources/AWSTranscribeStreaming/Models.swift b/Sources/Services/AWSTranscribeStreaming/Sources/AWSTranscribeStreaming/Models.swift index 216c03e8ea6..76f02fdfe63 100644 --- a/Sources/Services/AWSTranscribeStreaming/Sources/AWSTranscribeStreaming/Models.swift +++ b/Sources/Services/AWSTranscribeStreaming/Sources/AWSTranscribeStreaming/Models.swift @@ -265,7 +265,7 @@ extension TranscribeStreamingClientTypes { extension TranscribeStreamingClientTypes { - /// Allows you to specify additional settings for your streaming Call Analytics post-call request, including output locations for your redacted and unredacted transcript, which IAM role to use, and, optionally, which encryption key to use. ContentRedactionOutput, DataAccessRoleArn, and OutputLocation are required fields. + /// Allows you to specify additional settings for your Call Analytics post-call request, including output locations for your redacted transcript, which IAM role to use, and which encryption key to use. DataAccessRoleArn and OutputLocation are required fields. PostCallAnalyticsSettings provides you with the same insights as a Call Analytics post-call transcription. Refer to [Post-call analytics](https://docs.aws.amazon.com/transcribe/latest/dg/tca-post-call.html) for more information on this feature. public struct PostCallAnalyticsSettings: Swift.Sendable { /// Specify whether you want only a redacted transcript or both a redacted and an unredacted transcript. If you choose redacted and unredacted, two JSON files are generated and stored in the Amazon S3 output location you specify. Note that to include ContentRedactionOutput in your request, you must enable content redaction (ContentRedactionType). public var contentRedactionOutput: TranscribeStreamingClientTypes.ContentRedactionOutput? @@ -290,7 +290,7 @@ extension TranscribeStreamingClientTypes { /// * Use the ARN for the KMS key alias. For example, arn:aws:kms:region:account-ID:alias/ExampleAlias. /// /// - /// Note that the user making the request must have permission to use the specified KMS key. + /// Note that the role making the request must have permission to use the specified KMS key. public var outputEncryptionKMSKeyId: Swift.String? /// The Amazon S3 location where you want your Call Analytics post-call transcription output stored. You can use any of the following formats to specify the output location: /// @@ -323,7 +323,7 @@ extension TranscribeStreamingClientTypes { public struct ConfigurationEvent: Swift.Sendable { /// Indicates which speaker is on which audio channel. public var channelDefinitions: [TranscribeStreamingClientTypes.ChannelDefinition]? - /// Provides additional optional settings for your Call Analytics post-call request, including encryption and output locations for your redacted and unredacted transcript. + /// Provides additional optional settings for your Call Analytics post-call request, including encryption and output locations for your redacted transcript. PostCallAnalyticsSettings provides you with the same insights as a Call Analytics post-call transcription. Refer to [Post-call analytics](https://docs.aws.amazon.com/transcribe/latest/dg/tca-post-call.html) for more information on this feature. public var postCallAnalyticsSettings: TranscribeStreamingClientTypes.PostCallAnalyticsSettings? public init( @@ -349,7 +349,7 @@ extension TranscribeStreamingClientTypes { } } -/// One or more arguments to the StartStreamTranscription, StartMedicalStreamTranscription, or StartCallAnalyticsStreamTranscription operation was not valid. For example, MediaEncoding or LanguageCode used not valid values. Check the specified parameters and try your request again. +/// One or more arguments to the StartStreamTranscription, StartMedicalStreamTranscription, or StartCallAnalyticsStreamTranscription operation was not valid. For example, MediaEncoding or LanguageCode used unsupported values. Check the specified parameters and try your request again. public struct BadRequestException: ClientRuntime.ModeledError, AWSClientRuntime.AWSServiceError, ClientRuntime.HTTPError, Swift.Error { public struct Properties { @@ -776,7 +776,7 @@ extension TranscribeStreamingClientTypes { extension TranscribeStreamingClientTypes { - /// Contains detailed information about your Call Analytics streaming session. These details are provided in the UtteranceEvent and CategoryEvent objects. + /// Contains detailed information about your real-time Call Analytics session. These details are provided in the UtteranceEvent and CategoryEvent objects. public enum CallAnalyticsTranscriptResultStream: Swift.Sendable { /// Contains set of transcription results from one or more audio segments, along with additional information per your request parameters. This can include information relating to channel definitions, partial result stabilization, sentiment, issue detection, and other transcription-related data. case utteranceevent(TranscribeStreamingClientTypes.UtteranceEvent) @@ -841,38 +841,118 @@ extension TranscribeStreamingClientTypes { extension TranscribeStreamingClientTypes { public enum LanguageCode: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case afZa + case arAe + case arSa + case caEs + case csCz + case daDk + case deCh case deDe + case elGr + case enAb case enAu case enGb + case enIe + case enIn + case enNz case enUs + case enWl + case enZa + case esEs case esUs + case euEs + case faIr + case fiFi case frCa case frFr + case glEs + case heIl case hiIn + case hrHr + case idId case itIt case jaJp case koKr + case lvLv + case msMy + case nlNl + case noNo + case plPl case ptBr + case ptPt + case roRo + case ruRu + case skSk + case soSo + case srRs + case svSe case thTh + case tlPh + case ukUa + case viVn case zhCn + case zhHk + case zhTw + case zuZa case sdkUnknown(Swift.String) public static var allCases: [LanguageCode] { return [ + .afZa, + .arAe, + .arSa, + .caEs, + .csCz, + .daDk, + .deCh, .deDe, + .elGr, + .enAb, .enAu, .enGb, + .enIe, + .enIn, + .enNz, .enUs, + .enWl, + .enZa, + .esEs, .esUs, + .euEs, + .faIr, + .fiFi, .frCa, .frFr, + .glEs, + .heIl, .hiIn, + .hrHr, + .idId, .itIt, .jaJp, .koKr, + .lvLv, + .msMy, + .nlNl, + .noNo, + .plPl, .ptBr, + .ptPt, + .roRo, + .ruRu, + .skSk, + .soSo, + .srRs, + .svSe, .thTh, - .zhCn + .tlPh, + .ukUa, + .viVn, + .zhCn, + .zhHk, + .zhTw, + .zuZa ] } @@ -883,20 +963,60 @@ extension TranscribeStreamingClientTypes { public var rawValue: Swift.String { switch self { + case .afZa: return "af-ZA" + case .arAe: return "ar-AE" + case .arSa: return "ar-SA" + case .caEs: return "ca-ES" + case .csCz: return "cs-CZ" + case .daDk: return "da-DK" + case .deCh: return "de-CH" case .deDe: return "de-DE" + case .elGr: return "el-GR" + case .enAb: return "en-AB" case .enAu: return "en-AU" case .enGb: return "en-GB" + case .enIe: return "en-IE" + case .enIn: return "en-IN" + case .enNz: return "en-NZ" case .enUs: return "en-US" + case .enWl: return "en-WL" + case .enZa: return "en-ZA" + case .esEs: return "es-ES" case .esUs: return "es-US" + case .euEs: return "eu-ES" + case .faIr: return "fa-IR" + case .fiFi: return "fi-FI" case .frCa: return "fr-CA" case .frFr: return "fr-FR" + case .glEs: return "gl-ES" + case .heIl: return "he-IL" case .hiIn: return "hi-IN" + case .hrHr: return "hr-HR" + case .idId: return "id-ID" case .itIt: return "it-IT" case .jaJp: return "ja-JP" case .koKr: return "ko-KR" + case .lvLv: return "lv-LV" + case .msMy: return "ms-MY" + case .nlNl: return "nl-NL" + case .noNo: return "no-NO" + case .plPl: return "pl-PL" case .ptBr: return "pt-BR" + case .ptPt: return "pt-PT" + case .roRo: return "ro-RO" + case .ruRu: return "ru-RU" + case .skSk: return "sk-SK" + case .soSo: return "so-SO" + case .srRs: return "sr-RS" + case .svSe: return "sv-SE" case .thTh: return "th-TH" + case .tlPh: return "tl-PH" + case .ukUa: return "uk-UA" + case .viVn: return "vi-VN" case .zhCn: return "zh-CN" + case .zhHk: return "zh-HK" + case .zhTw: return "zh-TW" + case .zuZa: return "zu-ZA" case let .sdkUnknown(s): return s } } @@ -1304,13 +1424,13 @@ public struct StartCallAnalyticsStreamTranscriptionInput: Swift.Sendable { /// An encoded stream of audio blobs. Audio streams are encoded as either HTTP/2 or WebSocket data frames. For more information, see [Transcribing streaming audio](https://docs.aws.amazon.com/transcribe/latest/dg/streaming.html). /// This member is required. public var audioStream: AsyncThrowingStream? - /// Labels all personally identifiable information (PII) identified in your transcript. Content identification is performed at the segment level; PII specified in PiiEntityTypes is flagged upon complete transcription of an audio segment. You can’t set ContentIdentificationType and ContentRedactionType in the same request. If you set both, your request returns a BadRequestException. For more information, see [Redacting or identifying personally identifiable information](https://docs.aws.amazon.com/transcribe/latest/dg/pii-redaction.html). + /// Labels all personally identifiable information (PII) identified in your transcript. Content identification is performed at the segment level; PII specified in PiiEntityTypes is flagged upon complete transcription of an audio segment. If you don't include PiiEntityTypes in your request, all PII is identified. You can’t set ContentIdentificationType and ContentRedactionType in the same request. If you set both, your request returns a BadRequestException. For more information, see [Redacting or identifying personally identifiable information](https://docs.aws.amazon.com/transcribe/latest/dg/pii-redaction.html). public var contentIdentificationType: TranscribeStreamingClientTypes.ContentIdentificationType? - /// Redacts all personally identifiable information (PII) identified in your transcript. Content redaction is performed at the segment level; PII specified in PiiEntityTypes is redacted upon complete transcription of an audio segment. You can’t set ContentRedactionType and ContentIdentificationType in the same request. If you set both, your request returns a BadRequestException. For more information, see [Redacting or identifying personally identifiable information](https://docs.aws.amazon.com/transcribe/latest/dg/pii-redaction.html). + /// Redacts all personally identifiable information (PII) identified in your transcript. Content redaction is performed at the segment level; PII specified in PiiEntityTypes is redacted upon complete transcription of an audio segment. If you don't include PiiEntityTypes in your request, all PII is redacted. You can’t set ContentRedactionType and ContentIdentificationType in the same request. If you set both, your request returns a BadRequestException. For more information, see [Redacting or identifying personally identifiable information](https://docs.aws.amazon.com/transcribe/latest/dg/pii-redaction.html). public var contentRedactionType: TranscribeStreamingClientTypes.ContentRedactionType? /// Enables partial result stabilization for your transcription. Partial result stabilization can reduce latency in your output, but may impact accuracy. For more information, see [Partial-result stabilization](https://docs.aws.amazon.com/transcribe/latest/dg/streaming.html#streaming-partial-result-stabilization). public var enablePartialResultsStabilization: Swift.Bool? - /// Specify the language code that represents the language spoken in your audio. If you're unsure of the language spoken in your audio, consider using IdentifyLanguage to enable automatic language identification. For a list of languages supported with streaming Call Analytics, refer to the [Supported languages](https://docs.aws.amazon.com/transcribe/latest/dg/supported-languages.html) table. + /// Specify the language code that represents the language spoken in your audio. For a list of languages supported with real-time Call Analytics, refer to the [Supported languages](https://docs.aws.amazon.com/transcribe/latest/dg/supported-languages.html) table. /// This member is required. public var languageCode: TranscribeStreamingClientTypes.CallAnalyticsLanguageCode? /// Specify the name of the custom language model that you want to use when processing your transcription. Note that language model names are case sensitive. The language of the specified language model must match the language code you specify in your transcription request. If the languages don't match, the custom language model isn't applied. There are no errors or warnings associated with a language mismatch. For more information, see [Custom language models](https://docs.aws.amazon.com/transcribe/latest/dg/custom-language-models.html). @@ -1332,9 +1452,9 @@ public struct StartCallAnalyticsStreamTranscriptionInput: Swift.Sendable { public var mediaSampleRateHertz: Swift.Int? /// Specify the level of stability to use when you enable partial results stabilization (EnablePartialResultsStabilization). Low stability provides the highest accuracy. High stability transcribes faster, but with slightly lower accuracy. For more information, see [Partial-result stabilization](https://docs.aws.amazon.com/transcribe/latest/dg/streaming.html#streaming-partial-result-stabilization). public var partialResultsStability: TranscribeStreamingClientTypes.PartialResultsStability? - /// Specify which types of personally identifiable information (PII) you want to redact in your transcript. You can include as many types as you'd like, or you can select ALL. To include PiiEntityTypes in your Call Analytics request, you must also include either ContentIdentificationType or ContentRedactionType. Values must be comma-separated and can include: BANK_ACCOUNT_NUMBER, BANK_ROUTING, CREDIT_DEBIT_NUMBER, CREDIT_DEBIT_CVV, CREDIT_DEBIT_EXPIRY, PIN, EMAIL, ADDRESS, NAME, PHONE, SSN, or ALL. + /// Specify which types of personally identifiable information (PII) you want to redact in your transcript. You can include as many types as you'd like, or you can select ALL. Values must be comma-separated and can include: ADDRESS, BANK_ACCOUNT_NUMBER, BANK_ROUTING, CREDIT_DEBIT_CVV, CREDIT_DEBIT_EXPIRY, CREDIT_DEBIT_NUMBER, EMAIL, NAME, PHONE, PIN, SSN, or ALL. Note that if you include PiiEntityTypes in your request, you must also include ContentIdentificationType or ContentRedactionType. If you include ContentRedactionType or ContentIdentificationType in your request, but do not include PiiEntityTypes, all PII is redacted or identified. public var piiEntityTypes: Swift.String? - /// Specify a name for your Call Analytics transcription session. If you don't include this parameter in your request, Amazon Transcribe generates an ID and returns it in the response. You can use a session ID to retry a streaming session. + /// Specify a name for your Call Analytics transcription session. If you don't include this parameter in your request, Amazon Transcribe generates an ID and returns it in the response. public var sessionId: Swift.String? /// Specify how you want your vocabulary filter applied to your transcript. To replace words with ***, choose mask. To delete words, choose remove. To flag words without changing them, choose tag. public var vocabularyFilterMethod: TranscribeStreamingClientTypes.VocabularyFilterMethod? @@ -1378,7 +1498,7 @@ public struct StartCallAnalyticsStreamTranscriptionInput: Swift.Sendable { } public struct StartCallAnalyticsStreamTranscriptionOutput: Swift.Sendable { - /// Provides detailed information about your Call Analytics streaming session. + /// Provides detailed information about your real-time Call Analytics session. public var callAnalyticsTranscriptResultStream: AsyncThrowingStream? /// Shows whether content identification was enabled for your Call Analytics transcription. public var contentIdentificationType: TranscribeStreamingClientTypes.ContentIdentificationType? @@ -1398,7 +1518,7 @@ public struct StartCallAnalyticsStreamTranscriptionOutput: Swift.Sendable { public var partialResultsStability: TranscribeStreamingClientTypes.PartialResultsStability? /// Lists the PII entity types you specified in your Call Analytics request. public var piiEntityTypes: Swift.String? - /// Provides the identifier for your Call Analytics streaming request. + /// Provides the identifier for your real-time Call Analytics request. public var requestId: Swift.String? /// Provides the identifier for your Call Analytics transcription session. public var sessionId: Swift.String? @@ -1480,7 +1600,7 @@ public struct StartMedicalStreamTranscriptionInput: Swift.Sendable { public var audioStream: AsyncThrowingStream? /// Labels all personal health information (PHI) identified in your transcript. Content identification is performed at the segment level; PHI is flagged upon complete transcription of an audio segment. For more information, see [Identifying personal health information (PHI) in a transcription](https://docs.aws.amazon.com/transcribe/latest/dg/phi-id.html). public var contentIdentificationType: TranscribeStreamingClientTypes.MedicalContentIdentificationType? - /// Enables channel identification in multi-channel audio. Channel identification transcribes the audio on each channel independently, then appends the output for each channel into one transcript. If you have multi-channel audio and do not enable channel identification, your audio is transcribed in a continuous manner and your transcript is not separated by channel. For more information, see [Transcribing multi-channel audio](https://docs.aws.amazon.com/transcribe/latest/dg/channel-id.html). + /// Enables channel identification in multi-channel audio. Channel identification transcribes the audio on each channel independently, then appends the output for each channel into one transcript. If you have multi-channel audio and do not enable channel identification, your audio is transcribed in a continuous manner and your transcript is not separated by channel. If you include EnableChannelIdentification in your request, you must also include NumberOfChannels. For more information, see [Transcribing multi-channel audio](https://docs.aws.amazon.com/transcribe/latest/dg/channel-id.html). public var enableChannelIdentification: Swift.Bool? /// Specify the language code that represents the language spoken in your audio. Amazon Transcribe Medical only supports US English (en-US). /// This member is required. @@ -1500,9 +1620,9 @@ public struct StartMedicalStreamTranscriptionInput: Swift.Sendable { /// The sample rate of the input audio (in hertz). Amazon Transcribe Medical supports a range from 16,000 Hz to 48,000 Hz. Note that the sample rate you specify must match that of your audio. /// This member is required. public var mediaSampleRateHertz: Swift.Int? - /// Specify the number of channels in your audio stream. Up to two channels are supported. + /// Specify the number of channels in your audio stream. This value must be 2, as only two channels are supported. If your audio doesn't contain multiple channels, do not include this parameter in your request. If you include NumberOfChannels in your request, you must also include EnableChannelIdentification. public var numberOfChannels: Swift.Int? - /// Specify a name for your transcription session. If you don't include this parameter in your request, Amazon Transcribe Medical generates an ID and returns it in the response. You can use a session ID to retry a streaming session. + /// Specify a name for your transcription session. If you don't include this parameter in your request, Amazon Transcribe Medical generates an ID and returns it in the response. public var sessionId: Swift.String? /// Enables speaker partitioning (diarization) in your transcription output. Speaker partitioning labels the speech from individual speakers in your media file. For more information, see [Partitioning speakers (diarization)](https://docs.aws.amazon.com/transcribe/latest/dg/diarization.html). public var showSpeakerLabel: Swift.Bool? @@ -1609,23 +1729,23 @@ public struct StartStreamTranscriptionInput: Swift.Sendable { /// An encoded stream of audio blobs. Audio streams are encoded as either HTTP/2 or WebSocket data frames. For more information, see [Transcribing streaming audio](https://docs.aws.amazon.com/transcribe/latest/dg/streaming.html). /// This member is required. public var audioStream: AsyncThrowingStream? - /// Labels all personally identifiable information (PII) identified in your transcript. Content identification is performed at the segment level; PII specified in PiiEntityTypes is flagged upon complete transcription of an audio segment. You can’t set ContentIdentificationType and ContentRedactionType in the same request. If you set both, your request returns a BadRequestException. For more information, see [Redacting or identifying personally identifiable information](https://docs.aws.amazon.com/transcribe/latest/dg/pii-redaction.html). + /// Labels all personally identifiable information (PII) identified in your transcript. Content identification is performed at the segment level; PII specified in PiiEntityTypes is flagged upon complete transcription of an audio segment. If you don't include PiiEntityTypes in your request, all PII is identified. You can’t set ContentIdentificationType and ContentRedactionType in the same request. If you set both, your request returns a BadRequestException. For more information, see [Redacting or identifying personally identifiable information](https://docs.aws.amazon.com/transcribe/latest/dg/pii-redaction.html). public var contentIdentificationType: TranscribeStreamingClientTypes.ContentIdentificationType? - /// Redacts all personally identifiable information (PII) identified in your transcript. Content redaction is performed at the segment level; PII specified in PiiEntityTypes is redacted upon complete transcription of an audio segment. You can’t set ContentRedactionType and ContentIdentificationType in the same request. If you set both, your request returns a BadRequestException. For more information, see [Redacting or identifying personally identifiable information](https://docs.aws.amazon.com/transcribe/latest/dg/pii-redaction.html). + /// Redacts all personally identifiable information (PII) identified in your transcript. Content redaction is performed at the segment level; PII specified in PiiEntityTypes is redacted upon complete transcription of an audio segment. If you don't include PiiEntityTypes in your request, all PII is redacted. You can’t set ContentRedactionType and ContentIdentificationType in the same request. If you set both, your request returns a BadRequestException. For more information, see [Redacting or identifying personally identifiable information](https://docs.aws.amazon.com/transcribe/latest/dg/pii-redaction.html). public var contentRedactionType: TranscribeStreamingClientTypes.ContentRedactionType? - /// Enables channel identification in multi-channel audio. Channel identification transcribes the audio on each channel independently, then appends the output for each channel into one transcript. If you have multi-channel audio and do not enable channel identification, your audio is transcribed in a continuous manner and your transcript is not separated by channel. For more information, see [Transcribing multi-channel audio](https://docs.aws.amazon.com/transcribe/latest/dg/channel-id.html). + /// Enables channel identification in multi-channel audio. Channel identification transcribes the audio on each channel independently, then appends the output for each channel into one transcript. If you have multi-channel audio and do not enable channel identification, your audio is transcribed in a continuous manner and your transcript is not separated by channel. If you include EnableChannelIdentification in your request, you must also include NumberOfChannels. For more information, see [Transcribing multi-channel audio](https://docs.aws.amazon.com/transcribe/latest/dg/channel-id.html). public var enableChannelIdentification: Swift.Bool? /// Enables partial result stabilization for your transcription. Partial result stabilization can reduce latency in your output, but may impact accuracy. For more information, see [Partial-result stabilization](https://docs.aws.amazon.com/transcribe/latest/dg/streaming.html#streaming-partial-result-stabilization). public var enablePartialResultsStabilization: Swift.Bool? - /// Enables automatic language identification for your transcription. If you include IdentifyLanguage, you can optionally include a list of language codes, using LanguageOptions, that you think may be present in your audio stream. Including language options can improve transcription accuracy. You can also include a preferred language using PreferredLanguage. Adding a preferred language can help Amazon Transcribe identify the language faster than if you omit this parameter. If you have multi-channel audio that contains different languages on each channel, and you've enabled channel identification, automatic language identification identifies the dominant language on each audio channel. Note that you must include either LanguageCode or IdentifyLanguage or IdentifyMultipleLanguages in your request. If you include more than one of these parameters, your transcription job fails. Streaming language identification can't be combined with custom language models or redaction. + /// Enables automatic language identification for your transcription. If you include IdentifyLanguage, you must include a list of language codes, using LanguageOptions, that you think may be present in your audio stream. You can also include a preferred language using PreferredLanguage. Adding a preferred language can help Amazon Transcribe identify the language faster than if you omit this parameter. If you have multi-channel audio that contains different languages on each channel, and you've enabled channel identification, automatic language identification identifies the dominant language on each audio channel. Note that you must include either LanguageCode or IdentifyLanguage or IdentifyMultipleLanguages in your request. If you include more than one of these parameters, your transcription job fails. Streaming language identification can't be combined with custom language models or redaction. public var identifyLanguage: Swift.Bool? - /// Enables automatic multi-language identification in your transcription job request. Use this parameter if your stream contains more than one language. If your stream contains only one language, use IdentifyLanguage instead. If you include IdentifyMultipleLanguages, you can optionally include a list of language codes, using LanguageOptions, that you think may be present in your stream. Including LanguageOptions restricts IdentifyMultipleLanguages to only the language options that you specify, which can improve transcription accuracy. If you want to apply a custom vocabulary or a custom vocabulary filter to your automatic multiple language identification request, include VocabularyNames or VocabularyFilterNames. Note that you must include one of LanguageCode, IdentifyLanguage, or IdentifyMultipleLanguages in your request. If you include more than one of these parameters, your transcription job fails. + /// Enables automatic multi-language identification in your transcription job request. Use this parameter if your stream contains more than one language. If your stream contains only one language, use IdentifyLanguage instead. If you include IdentifyMultipleLanguages, you must include a list of language codes, using LanguageOptions, that you think may be present in your stream. If you want to apply a custom vocabulary or a custom vocabulary filter to your automatic multiple language identification request, include VocabularyNames or VocabularyFilterNames. Note that you must include one of LanguageCode, IdentifyLanguage, or IdentifyMultipleLanguages in your request. If you include more than one of these parameters, your transcription job fails. public var identifyMultipleLanguages: Swift.Bool? /// Specify the language code that represents the language spoken in your audio. If you're unsure of the language spoken in your audio, consider using IdentifyLanguage to enable automatic language identification. For a list of languages supported with Amazon Transcribe streaming, refer to the [Supported languages](https://docs.aws.amazon.com/transcribe/latest/dg/supported-languages.html) table. public var languageCode: TranscribeStreamingClientTypes.LanguageCode? /// Specify the name of the custom language model that you want to use when processing your transcription. Note that language model names are case sensitive. The language of the specified language model must match the language code you specify in your transcription request. If the languages don't match, the custom language model isn't applied. There are no errors or warnings associated with a language mismatch. For more information, see [Custom language models](https://docs.aws.amazon.com/transcribe/latest/dg/custom-language-models.html). public var languageModelName: Swift.String? - /// Specify two or more language codes that represent the languages you think may be present in your media; including more than five is not recommended. If you're unsure what languages are present, do not include this parameter. Including language options can improve the accuracy of language identification. If you include LanguageOptions in your request, you must also include IdentifyLanguage. For a list of languages supported with Amazon Transcribe streaming, refer to the [Supported languages](https://docs.aws.amazon.com/transcribe/latest/dg/supported-languages.html) table. You can only include one language dialect per language per stream. For example, you cannot include en-US and en-AU in the same request. + /// Specify two or more language codes that represent the languages you think may be present in your media; including more than five is not recommended. Including language options can improve the accuracy of language identification. If you include LanguageOptions in your request, you must also include IdentifyLanguage or IdentifyMultipleLanguages. For a list of languages supported with Amazon Transcribe streaming, refer to the [Supported languages](https://docs.aws.amazon.com/transcribe/latest/dg/supported-languages.html) table. You can only include one language dialect per language per stream. For example, you cannot include en-US and en-AU in the same request. public var languageOptions: Swift.String? /// Specify the encoding of your input audio. Supported formats are: /// @@ -1642,15 +1762,15 @@ public struct StartStreamTranscriptionInput: Swift.Sendable { /// The sample rate of the input audio (in hertz). Low-quality audio, such as telephone audio, is typically around 8,000 Hz. High-quality audio typically ranges from 16,000 Hz to 48,000 Hz. Note that the sample rate you specify must match that of your audio. /// This member is required. public var mediaSampleRateHertz: Swift.Int? - /// Specify the number of channels in your audio stream. Up to two channels are supported. + /// Specify the number of channels in your audio stream. This value must be 2, as only two channels are supported. If your audio doesn't contain multiple channels, do not include this parameter in your request. If you include NumberOfChannels in your request, you must also include EnableChannelIdentification. public var numberOfChannels: Swift.Int? /// Specify the level of stability to use when you enable partial results stabilization (EnablePartialResultsStabilization). Low stability provides the highest accuracy. High stability transcribes faster, but with slightly lower accuracy. For more information, see [Partial-result stabilization](https://docs.aws.amazon.com/transcribe/latest/dg/streaming.html#streaming-partial-result-stabilization). public var partialResultsStability: TranscribeStreamingClientTypes.PartialResultsStability? - /// Specify which types of personally identifiable information (PII) you want to redact in your transcript. You can include as many types as you'd like, or you can select ALL. To include PiiEntityTypes in your request, you must also include either ContentIdentificationType or ContentRedactionType. Values must be comma-separated and can include: BANK_ACCOUNT_NUMBER, BANK_ROUTING, CREDIT_DEBIT_NUMBER, CREDIT_DEBIT_CVV, CREDIT_DEBIT_EXPIRY, PIN, EMAIL, ADDRESS, NAME, PHONE, SSN, or ALL. + /// Specify which types of personally identifiable information (PII) you want to redact in your transcript. You can include as many types as you'd like, or you can select ALL. Values must be comma-separated and can include: ADDRESS, BANK_ACCOUNT_NUMBER, BANK_ROUTING, CREDIT_DEBIT_CVV, CREDIT_DEBIT_EXPIRY, CREDIT_DEBIT_NUMBER, EMAIL, NAME, PHONE, PIN, SSN, or ALL. Note that if you include PiiEntityTypes in your request, you must also include ContentIdentificationType or ContentRedactionType. If you include ContentRedactionType or ContentIdentificationType in your request, but do not include PiiEntityTypes, all PII is redacted or identified. public var piiEntityTypes: Swift.String? /// Specify a preferred language from the subset of languages codes you specified in LanguageOptions. You can only use this parameter if you've included IdentifyLanguage and LanguageOptions in your request. public var preferredLanguage: TranscribeStreamingClientTypes.LanguageCode? - /// Specify a name for your transcription session. If you don't include this parameter in your request, Amazon Transcribe generates an ID and returns it in the response. You can use a session ID to retry a streaming session. + /// Specify a name for your transcription session. If you don't include this parameter in your request, Amazon Transcribe generates an ID and returns it in the response. public var sessionId: Swift.String? /// Enables speaker partitioning (diarization) in your transcription output. Speaker partitioning labels the speech from individual speakers in your media file. For more information, see [Partitioning speakers (diarization)](https://docs.aws.amazon.com/transcribe/latest/dg/diarization.html). public var showSpeakerLabel: Swift.Bool? diff --git a/Sources/Services/AWSTranscribeStreaming/Sources/AWSTranscribeStreaming/TranscribeStreamingClient.swift b/Sources/Services/AWSTranscribeStreaming/Sources/AWSTranscribeStreaming/TranscribeStreamingClient.swift index 8d4c74af2af..eef5ca96ec7 100644 --- a/Sources/Services/AWSTranscribeStreaming/Sources/AWSTranscribeStreaming/TranscribeStreamingClient.swift +++ b/Sources/Services/AWSTranscribeStreaming/Sources/AWSTranscribeStreaming/TranscribeStreamingClient.swift @@ -212,7 +212,7 @@ extension TranscribeStreamingClient { /// - Throws: One of the exceptions listed below __Possible Exceptions__. /// /// __Possible Exceptions:__ - /// - `BadRequestException` : One or more arguments to the StartStreamTranscription, StartMedicalStreamTranscription, or StartCallAnalyticsStreamTranscription operation was not valid. For example, MediaEncoding or LanguageCode used not valid values. Check the specified parameters and try your request again. + /// - `BadRequestException` : One or more arguments to the StartStreamTranscription, StartMedicalStreamTranscription, or StartCallAnalyticsStreamTranscription operation was not valid. For example, MediaEncoding or LanguageCode used unsupported values. Check the specified parameters and try your request again. /// - `ConflictException` : A new stream started with the same session ID. The current stream has been terminated. /// - `InternalFailureException` : A problem occurred while processing the audio. Amazon Transcribe terminated processing. /// - `LimitExceededException` : Your client has exceeded one of the Amazon Transcribe limits. This is typically the audio length limit. Break your audio stream into smaller chunks and try your request again. @@ -296,7 +296,7 @@ extension TranscribeStreamingClient { /// - Throws: One of the exceptions listed below __Possible Exceptions__. /// /// __Possible Exceptions:__ - /// - `BadRequestException` : One or more arguments to the StartStreamTranscription, StartMedicalStreamTranscription, or StartCallAnalyticsStreamTranscription operation was not valid. For example, MediaEncoding or LanguageCode used not valid values. Check the specified parameters and try your request again. + /// - `BadRequestException` : One or more arguments to the StartStreamTranscription, StartMedicalStreamTranscription, or StartCallAnalyticsStreamTranscription operation was not valid. For example, MediaEncoding or LanguageCode used unsupported values. Check the specified parameters and try your request again. /// - `ConflictException` : A new stream started with the same session ID. The current stream has been terminated. /// - `InternalFailureException` : A problem occurred while processing the audio. Amazon Transcribe terminated processing. /// - `LimitExceededException` : Your client has exceeded one of the Amazon Transcribe limits. This is typically the audio length limit. Break your audio stream into smaller chunks and try your request again. @@ -380,7 +380,7 @@ extension TranscribeStreamingClient { /// - Throws: One of the exceptions listed below __Possible Exceptions__. /// /// __Possible Exceptions:__ - /// - `BadRequestException` : One or more arguments to the StartStreamTranscription, StartMedicalStreamTranscription, or StartCallAnalyticsStreamTranscription operation was not valid. For example, MediaEncoding or LanguageCode used not valid values. Check the specified parameters and try your request again. + /// - `BadRequestException` : One or more arguments to the StartStreamTranscription, StartMedicalStreamTranscription, or StartCallAnalyticsStreamTranscription operation was not valid. For example, MediaEncoding or LanguageCode used unsupported values. Check the specified parameters and try your request again. /// - `ConflictException` : A new stream started with the same session ID. The current stream has been terminated. /// - `InternalFailureException` : A problem occurred while processing the audio. Amazon Transcribe terminated processing. /// - `LimitExceededException` : Your client has exceeded one of the Amazon Transcribe limits. This is typically the audio length limit. Break your audio stream into smaller chunks and try your request again. diff --git a/Sources/Services/AWSWorkSpacesThinClient/Sources/AWSWorkSpacesThinClient/Models.swift b/Sources/Services/AWSWorkSpacesThinClient/Sources/AWSWorkSpacesThinClient/Models.swift index 93c819916b7..8a08bab23ef 100644 --- a/Sources/Services/AWSWorkSpacesThinClient/Sources/AWSWorkSpacesThinClient/Models.swift +++ b/Sources/Services/AWSWorkSpacesThinClient/Sources/AWSWorkSpacesThinClient/Models.swift @@ -1111,7 +1111,7 @@ extension WorkSpacesThinClientClientTypes { public var desktopEndpoint: Swift.String? /// The type of streaming desktop for the environment. public var desktopType: WorkSpacesThinClientClientTypes.DesktopType? - /// "The tag keys and optional values for the newly created devices for this environment." + /// The tag keys and optional values for the newly created devices for this environment. public var deviceCreationTags: [Swift.String: Swift.String]? /// The ID of the environment. public var id: Swift.String?