From 2d2160a099af801078b36a5fe2978b4bc7ab771f Mon Sep 17 00:00:00 2001 From: AWS SDK Swift Automation Date: Wed, 2 Oct 2024 19:01:23 +0000 Subject: [PATCH] chore: Updates version to 1.0.11 --- Package.version | 2 +- Package.version.next | 2 +- .../Sources/AWSAppStream/Models.swift | 3 + .../AWSB2bi/Sources/AWSB2bi/B2biClient.swift | 172 ++- .../AWSB2bi/Sources/AWSB2bi/Models.swift | 1319 ++++++++++++++++- .../AWSBedrockAgentRuntime/Models.swift | 92 +- .../Sources/AWSBedrockRuntime/Models.swift | 227 ++- .../Sources/AWSIVSRealTime/Models.swift | 43 +- .../IotDeviceAdvisorClient.swift | 2 + .../Sources/AWSIotDeviceAdvisor/Models.swift | 5 + .../Services/AWSS3/Sources/AWSS3/Models.swift | 151 +- .../AWSS3/Sources/AWSS3/S3Client.swift | 4 +- .../Sources/AWSSageMaker/Models.swift | 17 + .../Sources/AWSWorkSpaces/Models.swift | 6 +- .../AWSWorkSpaces/WorkSpacesClient.swift | 2 +- 15 files changed, 1863 insertions(+), 184 deletions(-) diff --git a/Package.version b/Package.version index 437d26b11e8..86844988ea9 100644 --- a/Package.version +++ b/Package.version @@ -1 +1 @@ -1.0.10 \ No newline at end of file +1.0.11 \ No newline at end of file diff --git a/Package.version.next b/Package.version.next index 86844988ea9..492b167a6de 100644 --- a/Package.version.next +++ b/Package.version.next @@ -1 +1 @@ -1.0.11 \ No newline at end of file +1.0.12 \ No newline at end of file diff --git a/Sources/Services/AWSAppStream/Sources/AWSAppStream/Models.swift b/Sources/Services/AWSAppStream/Sources/AWSAppStream/Models.swift index 0e257ddb32a..d218631036c 100644 --- a/Sources/Services/AWSAppStream/Sources/AWSAppStream/Models.swift +++ b/Sources/Services/AWSAppStream/Sources/AWSAppStream/Models.swift @@ -77,6 +77,7 @@ extension AppStreamClientTypes { extension AppStreamClientTypes { public enum Action: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case autoTimeZoneRedirection case clipboardCopyFromLocalDevice case clipboardCopyToLocalDevice case domainPasswordSignin @@ -88,6 +89,7 @@ extension AppStreamClientTypes { public static var allCases: [Action] { return [ + .autoTimeZoneRedirection, .clipboardCopyFromLocalDevice, .clipboardCopyToLocalDevice, .domainPasswordSignin, @@ -105,6 +107,7 @@ extension AppStreamClientTypes { public var rawValue: Swift.String { switch self { + case .autoTimeZoneRedirection: return "AUTO_TIME_ZONE_REDIRECTION" case .clipboardCopyFromLocalDevice: return "CLIPBOARD_COPY_FROM_LOCAL_DEVICE" case .clipboardCopyToLocalDevice: return "CLIPBOARD_COPY_TO_LOCAL_DEVICE" case .domainPasswordSignin: return "DOMAIN_PASSWORD_SIGNIN" diff --git a/Sources/Services/AWSB2bi/Sources/AWSB2bi/B2biClient.swift b/Sources/Services/AWSB2bi/Sources/AWSB2bi/B2biClient.swift index 6ab366fdfbc..e93c82ed0f9 100644 --- a/Sources/Services/AWSB2bi/Sources/AWSB2bi/B2biClient.swift +++ b/Sources/Services/AWSB2bi/Sources/AWSB2bi/B2biClient.swift @@ -427,9 +427,95 @@ extension B2biClient { return try await op.execute(input: input) } + /// Performs the `CreateStarterMappingTemplate` operation on the `B2BI` service. + /// + /// Amazon Web Services B2B Data Interchange uses a mapping template in JSONata or XSLT format to transform a customer input file into a JSON or XML file that can be converted to EDI. If you provide a sample EDI file with the same structure as the EDI files that you wish to generate, then the service can generate a mapping template. The starter template contains placeholder values which you can replace with JSONata or XSLT expressions to take data from your input file and insert it into the JSON or XML file that is used to generate the EDI. If you do not provide a sample EDI file, then the service can generate a mapping template based on the EDI settings in the templateDetails parameter. Currently, we only support generating a template that can generate the input to produce an Outbound X12 EDI file. + /// + /// - Parameter CreateStarterMappingTemplateInput : [no documentation found] + /// + /// - Returns: `CreateStarterMappingTemplateOutput` : [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` : This exception is thrown when an error occurs in the Amazon Web Services B2B Data Interchange service. + /// - `ResourceNotFoundException` : Occurs when the requested resource does not exist, or cannot be found. In some cases, the resource exists in a region other than the region specified in the API call. + /// - `ValidationException` : Occurs when a B2BI object cannot be validated against a request from another object. + public func createStarterMappingTemplate(input: CreateStarterMappingTemplateInput) async throws -> CreateStarterMappingTemplateOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "createStarterMappingTemplate") + .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: "b2bi") + .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(CreateStarterMappingTemplateInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(CreateStarterMappingTemplateOutput.httpOutput(from:), CreateStarterMappingTemplateOutputError.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: "B2BI.CreateStarterMappingTemplate")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: CreateStarterMappingTemplateInput.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: "B2bi") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "CreateStarterMappingTemplate") + 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 `CreateTransformer` operation on the `B2BI` service. /// - /// Creates a transformer. A transformer describes how to process the incoming EDI documents and extract the necessary information to the output file. + /// Creates a transformer. Amazon Web Services B2B Data Interchange currently supports two scenarios: + /// + /// * Inbound EDI: the Amazon Web Services customer receives an EDI file from their trading partner. Amazon Web Services B2B Data Interchange converts this EDI file into a JSON or XML file with a service-defined structure. A mapping template provided by the customer, in JSONata or XSLT format, is optionally applied to this file to produce a JSON or XML file with the structure the customer requires. + /// + /// * Outbound EDI: the Amazon Web Services customer has a JSON or XML file containing data that they wish to use in an EDI file. A mapping template, provided by the customer (in either JSONata or XSLT format) is applied to this file to generate a JSON or XML file in the service-defined structure. This file is then converted to an EDI file. + /// + /// + /// The following fields are provided for backwards compatibility only: fileFormat, mappingTemplate, ediType, and sampleDocument. + /// + /// * Use the mapping data type in place of mappingTemplate and fileFormat + /// + /// * Use the sampleDocuments data type in place of sampleDocument + /// + /// * Use either the inputConversion or outputConversion in place of ediType /// /// - Parameter CreateTransformerInput : [no documentation found] /// @@ -731,7 +817,7 @@ extension B2biClient { /// Performs the `DeleteTransformer` operation on the `B2BI` service. /// - /// Deletes the specified transformer. A transformer describes how to process the incoming EDI documents and extract the necessary information to the output file. + /// Deletes the specified transformer. A transformer can take an EDI file as input and transform it into a JSON-or XML-formatted document. Alternatively, a transformer can take a JSON-or XML-formatted document as input and transform it into an EDI file. /// /// - Parameter DeleteTransformerInput : [no documentation found] /// @@ -1028,7 +1114,7 @@ extension B2biClient { /// Performs the `GetTransformer` operation on the `B2BI` service. /// - /// Retrieves the details for the transformer specified by the transformer ID. A transformer describes how to process the incoming EDI documents and extract the necessary information to the output file. + /// Retrieves the details for the transformer specified by the transformer ID. A transformer can take an EDI file as input and transform it into a JSON-or XML-formatted document. Alternatively, a transformer can take a JSON-or XML-formatted document as input and transform it into an EDI file. /// /// - Parameter GetTransformerInput : [no documentation found] /// @@ -1472,7 +1558,7 @@ extension B2biClient { /// Performs the `ListTransformers` operation on the `B2BI` service. /// - /// Lists the available transformers. A transformer describes how to process the incoming EDI documents and extract the necessary information to the output file. + /// Lists the available transformers. A transformer can take an EDI file as input and transform it into a JSON-or XML-formatted document. Alternatively, a transformer can take a JSON-or XML-formatted document as input and transform it into an EDI file. /// /// - Parameter ListTransformersInput : [no documentation found] /// @@ -1546,7 +1632,7 @@ extension B2biClient { /// Performs the `StartTransformerJob` operation on the `B2BI` service. /// - /// Runs a job, using a transformer, to parse input EDI (electronic data interchange) file into the output structures used by Amazon Web Services B2BI Data Interchange. If you only want to transform EDI (electronic data interchange) documents, you don't need to create profiles, partnerships or capabilities. Just create and configure a transformer, and then run the StartTransformerJob API to process your files. + /// Runs a job, using a transformer, to parse input EDI (electronic data interchange) file into the output structures used by Amazon Web Services B2B Data Interchange. If you only want to transform EDI (electronic data interchange) documents, you don't need to create profiles, partnerships or capabilities. Just create and configure a transformer, and then run the StartTransformerJob API to process your files. /// /// - Parameter StartTransformerJobInput : [no documentation found] /// @@ -1693,6 +1779,80 @@ extension B2biClient { return try await op.execute(input: input) } + /// Performs the `TestConversion` operation on the `B2BI` service. + /// + /// This operation mimics the latter half of a typical Outbound EDI request. It takes an input JSON/XML in the B2Bi shape as input, converts it to an X12 EDI string, and return that string. + /// + /// - Parameter TestConversionInput : [no documentation found] + /// + /// - Returns: `TestConversionOutput` : [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` : This exception is thrown when an error occurs in the Amazon Web Services B2B Data Interchange service. + /// - `ResourceNotFoundException` : Occurs when the requested resource does not exist, or cannot be found. In some cases, the resource exists in a region other than the region specified in the API call. + /// - `ThrottlingException` : The request was denied due to throttling: the data speed and rendering may be limited depending on various parameters and conditions. + /// - `ValidationException` : Occurs when a B2BI object cannot be validated against a request from another object. + public func testConversion(input: TestConversionInput) async throws -> TestConversionOutput { + let context = Smithy.ContextBuilder() + .withMethod(value: .post) + .withServiceName(value: serviceName) + .withOperation(value: "testConversion") + .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: "b2bi") + .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(TestConversionInput.urlPathProvider(_:))) + builder.interceptors.add(ClientRuntime.URLHostMiddleware()) + builder.interceptors.add(ClientRuntime.ContentLengthMiddleware()) + builder.deserialize(ClientRuntime.DeserializeMiddleware(TestConversionOutput.httpOutput(from:), TestConversionOutputError.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: "B2BI.TestConversion")) + builder.serialize(ClientRuntime.BodyMiddleware(rootNodeInfo: "", inputWritingClosure: TestConversionInput.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: "B2bi") + metricsAttributes.set(key: ClientRuntime.OrchestratorMetricsAttributesKeys.method, value: "TestConversion") + 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 `TestMapping` operation on the `B2BI` service. /// /// Maps the input file according to the provided template file. The API call downloads the file contents from the Amazon S3 location, and passes the contents in as a string, to the inputFileContent parameter. @@ -2144,7 +2304,7 @@ extension B2biClient { /// Performs the `UpdateTransformer` operation on the `B2BI` service. /// - /// Updates the specified parameters for a transformer. A transformer describes how to process the incoming EDI documents and extract the necessary information to the output file. + /// Updates the specified parameters for a transformer. A transformer can take an EDI file as input and transform it into a JSON-or XML-formatted document. Alternatively, a transformer can take a JSON-or XML-formatted document as input and transform it into an EDI file. /// /// - Parameter UpdateTransformerInput : [no documentation found] /// diff --git a/Sources/Services/AWSB2bi/Sources/AWSB2bi/Models.swift b/Sources/Services/AWSB2bi/Sources/AWSB2bi/Models.swift index f0ad99b5116..867e36456a7 100644 --- a/Sources/Services/AWSB2bi/Sources/AWSB2bi/Models.swift +++ b/Sources/Services/AWSB2bi/Sources/AWSB2bi/Models.swift @@ -263,7 +263,36 @@ public struct ValidationException: ClientRuntime.ModeledError, AWSClientRuntime. extension B2biClientTypes { - /// Specifies the details for the Amazon S3 file location that is being used with Amazon Web Services B2BI Data Interchange. File locations in Amazon S3 are identified using a combination of the bucket and key. + public enum CapabilityDirection: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case inbound + case outbound + case sdkUnknown(Swift.String) + + public static var allCases: [CapabilityDirection] { + return [ + .inbound, + .outbound + ] + } + + 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 .inbound: return "INBOUND" + case .outbound: return "OUTBOUND" + case let .sdkUnknown(s): return s + } + } + } +} + +extension B2biClientTypes { + + /// Specifies the details for the Amazon S3 file location that is being used with Amazon Web Services B2B Data Interchange. File locations in Amazon S3 are identified using a combination of the bucket and key. public struct S3Location: Swift.Sendable { /// Specifies the name of the Amazon S3 bucket. public var bucketName: Swift.String? @@ -598,6 +627,8 @@ extension B2biClientTypes { /// Specifies the details for the EDI (electronic data interchange) transformation. public struct EdiConfiguration: Swift.Sendable { + /// Specifies whether this is capability is for inbound or outbound transformations. + public var capabilityDirection: B2biClientTypes.CapabilityDirection? /// Contains the Amazon S3 bucket and prefix for the location of the input file, which is contained in an S3Location object. /// This member is required. public var inputLocation: B2biClientTypes.S3Location? @@ -612,12 +643,14 @@ extension B2biClientTypes { public var type: B2biClientTypes.EdiType? public init( + capabilityDirection: B2biClientTypes.CapabilityDirection? = nil, inputLocation: B2biClientTypes.S3Location? = nil, outputLocation: B2biClientTypes.S3Location? = nil, transformerId: Swift.String? = nil, type: B2biClientTypes.EdiType? = nil ) { + self.capabilityDirection = capabilityDirection self.inputLocation = inputLocation self.outputLocation = outputLocation self.transformerId = transformerId @@ -973,6 +1006,80 @@ public struct UpdateCapabilityOutput: Swift.Sendable { } } +extension B2biClientTypes { + + public enum MappingType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case jsonata + case xslt + case sdkUnknown(Swift.String) + + public static var allCases: [MappingType] { + return [ + .jsonata, + .xslt + ] + } + + 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 .jsonata: return "JSONATA" + case .xslt: return "XSLT" + case let .sdkUnknown(s): return s + } + } + } +} + +extension B2biClientTypes { + + /// A data structure that contains the information to use when generating a mapping template. + public enum TemplateDetails: Swift.Sendable { + /// A structure that contains the X12 transaction set and version. The X12 structure is used when the system transforms an EDI (electronic data interchange) file. If an EDI input file contains more than one transaction, each transaction must have the same transaction set and version, for example 214/4010. If not, the transformer cannot parse the file. + case x12(B2biClientTypes.X12Details) + case sdkUnknown(Swift.String) + } +} + +public struct CreateStarterMappingTemplateInput: Swift.Sendable { + /// Specify the format for the mapping template: either JSONATA or XSLT. + /// This member is required. + public var mappingType: B2biClientTypes.MappingType? + /// Specify the location of the sample EDI file that is used to generate the mapping template. + public var outputSampleLocation: B2biClientTypes.S3Location? + /// Describes the details needed for generating the template. Specify the X12 transaction set and version for which the template is used: currently, we only support X12. + /// This member is required. + public var templateDetails: B2biClientTypes.TemplateDetails? + + public init( + mappingType: B2biClientTypes.MappingType? = nil, + outputSampleLocation: B2biClientTypes.S3Location? = nil, + templateDetails: B2biClientTypes.TemplateDetails? = nil + ) + { + self.mappingType = mappingType + self.outputSampleLocation = outputSampleLocation + self.templateDetails = templateDetails + } +} + +public struct CreateStarterMappingTemplateOutput: Swift.Sendable { + /// Returns a string that represents the mapping template. + /// This member is required. + public var mappingTemplate: Swift.String? + + public init( + mappingTemplate: Swift.String? = nil + ) + { + self.mappingTemplate = mappingTemplate + } +} + public struct GetTransformerJobInput: Swift.Sendable { /// Specifies the system-assigned unique identifier for the transformer. /// This member is required. @@ -1069,10 +1176,182 @@ public struct ListTagsForResourceOutput: Swift.Sendable { } } +extension B2biClientTypes { + + /// In X12 EDI messages, delimiters are used to mark the end of segments or elements, and are defined in the interchange control header. The delimiters are part of the message's syntax and divide up its different elements. + public struct X12Delimiters: Swift.Sendable { + /// The component, or sub-element, separator. The default value is : (colon). + public var componentSeparator: Swift.String? + /// The data element separator. The default value is * (asterisk). + public var dataElementSeparator: Swift.String? + /// The segment terminator. The default value is ~ (tilde). + public var segmentTerminator: Swift.String? + + public init( + componentSeparator: Swift.String? = nil, + dataElementSeparator: Swift.String? = nil, + segmentTerminator: Swift.String? = nil + ) + { + self.componentSeparator = componentSeparator + self.dataElementSeparator = dataElementSeparator + self.segmentTerminator = segmentTerminator + } + } +} + +extension B2biClientTypes { + + /// Part of the X12 message structure. These are the functional group headers for the X12 EDI object. + public struct X12FunctionalGroupHeaders: Swift.Sendable { + /// A value representing the code used to identify the party receiving a message, at position GS-03. + public var applicationReceiverCode: Swift.String? + /// A value representing the code used to identify the party transmitting a message, at position GS-02. + public var applicationSenderCode: Swift.String? + /// A code that identifies the issuer of the standard, at position GS-07. + public var responsibleAgencyCode: Swift.String? + + public init( + applicationReceiverCode: Swift.String? = nil, + applicationSenderCode: Swift.String? = nil, + responsibleAgencyCode: Swift.String? = nil + ) + { + self.applicationReceiverCode = applicationReceiverCode + self.applicationSenderCode = applicationSenderCode + self.responsibleAgencyCode = responsibleAgencyCode + } + } +} + +extension B2biClientTypes { + + /// In X12, the Interchange Control Header is the first segment of an EDI document and is part of the Interchange Envelope. It contains information about the sender and receiver, the date and time of transmission, and the X12 version being used. It also includes delivery information, such as the sender and receiver IDs. + public struct X12InterchangeControlHeaders: Swift.Sendable { + /// Located at position ISA-14 in the header. The value "1" indicates that the sender is requesting an interchange acknowledgment at receipt of the interchange. The value "0" is used otherwise. + public var acknowledgmentRequestedCode: Swift.String? + /// Located at position ISA-08 in the header. This value (along with the receiverIdQualifier) identifies the intended recipient of the interchange. + public var receiverId: Swift.String? + /// Located at position ISA-07 in the header. Qualifier for the receiver ID. Together, the ID and qualifier uniquely identify the receiving trading partner. + public var receiverIdQualifier: Swift.String? + /// Located at position ISA-11 in the header. This string makes it easier when you need to group similar adjacent element values together without using extra segments. This parameter is only honored for version greater than 401 (VERSION_4010 and higher). For versions less than 401, this field is called [StandardsId](https://www.stedi.com/edi/x12-004010/segment/ISA#ISA-11), in which case our service sets the value to U. + public var repetitionSeparator: Swift.String? + /// Located at position ISA-06 in the header. This value (along with the senderIdQualifier) identifies the sender of the interchange. + public var senderId: Swift.String? + /// Located at position ISA-05 in the header. Qualifier for the sender ID. Together, the ID and qualifier uniquely identify the sending trading partner. + public var senderIdQualifier: Swift.String? + /// Located at position ISA-15 in the header. Specifies how this interchange is being used: + /// + /// * T indicates this interchange is for testing. + /// + /// * P indicates this interchange is for production. + /// + /// * I indicates this interchange is informational. + public var usageIndicatorCode: Swift.String? + + public init( + acknowledgmentRequestedCode: Swift.String? = nil, + receiverId: Swift.String? = nil, + receiverIdQualifier: Swift.String? = nil, + repetitionSeparator: Swift.String? = nil, + senderId: Swift.String? = nil, + senderIdQualifier: Swift.String? = nil, + usageIndicatorCode: Swift.String? = nil + ) + { + self.acknowledgmentRequestedCode = acknowledgmentRequestedCode + self.receiverId = receiverId + self.receiverIdQualifier = receiverIdQualifier + self.repetitionSeparator = repetitionSeparator + self.senderId = senderId + self.senderIdQualifier = senderIdQualifier + self.usageIndicatorCode = usageIndicatorCode + } + } +} + +extension B2biClientTypes { + + /// A structure containing the details for an outbound EDI object. + public struct X12OutboundEdiHeaders: Swift.Sendable { + /// The delimiters, for example semicolon (;), that separates sections of the headers for the X12 object. + public var delimiters: B2biClientTypes.X12Delimiters? + /// The functional group headers for the X12 object. + public var functionalGroupHeaders: B2biClientTypes.X12FunctionalGroupHeaders? + /// In X12 EDI messages, delimiters are used to mark the end of segments or elements, and are defined in the interchange control header. + public var interchangeControlHeaders: B2biClientTypes.X12InterchangeControlHeaders? + /// Specifies whether or not to validate the EDI for this X12 object: TRUE or FALSE. + public var validateEdi: Swift.Bool? + + public init( + delimiters: B2biClientTypes.X12Delimiters? = nil, + functionalGroupHeaders: B2biClientTypes.X12FunctionalGroupHeaders? = nil, + interchangeControlHeaders: B2biClientTypes.X12InterchangeControlHeaders? = nil, + validateEdi: Swift.Bool? = nil + ) + { + self.delimiters = delimiters + self.functionalGroupHeaders = functionalGroupHeaders + self.interchangeControlHeaders = interchangeControlHeaders + self.validateEdi = validateEdi + } + } +} + +extension B2biClientTypes { + + /// A wrapper structure for an X12 definition object. the X12 envelope ensures the integrity of the data and the efficiency of the information exchange. The X12 message structure has hierarchical levels. From highest to the lowest, they are: + /// + /// * Interchange Envelope + /// + /// * Functional Group + /// + /// * Transaction Set + public struct X12Envelope: Swift.Sendable { + /// A container for the X12 outbound EDI headers. + public var common: B2biClientTypes.X12OutboundEdiHeaders? + + public init( + common: B2biClientTypes.X12OutboundEdiHeaders? = nil + ) + { + self.common = common + } + } +} + +extension B2biClientTypes { + + /// A container for outbound EDI options. + public enum OutboundEdiOptions: Swift.Sendable { + /// A structure that contains an X12 envelope structure. + case x12(B2biClientTypes.X12Envelope) + case sdkUnknown(Swift.String) + } +} + +extension B2biClientTypes { + + /// Contains the details for an Outbound EDI capability. + public struct CapabilityOptions: Swift.Sendable { + /// A structure that contains the outbound EDI options. + public var outboundEdi: B2biClientTypes.OutboundEdiOptions? + + public init( + outboundEdi: B2biClientTypes.OutboundEdiOptions? = nil + ) + { + self.outboundEdi = outboundEdi + } + } +} + public struct CreatePartnershipInput: Swift.Sendable { /// Specifies a list of the capabilities associated with this partnership. /// This member is required. public var capabilities: [Swift.String]? + /// Specify the structure that contains the details for the associated capabilities. + public var capabilityOptions: B2biClientTypes.CapabilityOptions? /// Reserved for future use. public var clientToken: Swift.String? /// Specifies the email address associated with this trading partner. @@ -1091,6 +1370,7 @@ public struct CreatePartnershipInput: Swift.Sendable { public init( capabilities: [Swift.String]? = nil, + capabilityOptions: B2biClientTypes.CapabilityOptions? = nil, clientToken: Swift.String? = nil, email: Swift.String? = nil, name: Swift.String? = nil, @@ -1100,6 +1380,7 @@ public struct CreatePartnershipInput: Swift.Sendable { ) { self.capabilities = capabilities + self.capabilityOptions = capabilityOptions self.clientToken = clientToken self.email = email self.name = name @@ -1111,12 +1392,14 @@ public struct CreatePartnershipInput: Swift.Sendable { extension CreatePartnershipInput: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "CreatePartnershipInput(capabilities: \(Swift.String(describing: capabilities)), clientToken: \(Swift.String(describing: clientToken)), name: \(Swift.String(describing: name)), profileId: \(Swift.String(describing: profileId)), tags: \(Swift.String(describing: tags)), email: \"CONTENT_REDACTED\", phone: \"CONTENT_REDACTED\")"} + "CreatePartnershipInput(capabilities: \(Swift.String(describing: capabilities)), capabilityOptions: \(Swift.String(describing: capabilityOptions)), clientToken: \(Swift.String(describing: clientToken)), name: \(Swift.String(describing: name)), profileId: \(Swift.String(describing: profileId)), tags: \(Swift.String(describing: tags)), email: \"CONTENT_REDACTED\", phone: \"CONTENT_REDACTED\")"} } public struct CreatePartnershipOutput: Swift.Sendable { /// Returns one or more capabilities associated with this partnership. public var capabilities: [Swift.String]? + /// Returns the structure that contains the details for the associated capabilities. + public var capabilityOptions: B2biClientTypes.CapabilityOptions? /// Returns a timestamp for creation date and time of the partnership. /// This member is required. public var createdAt: Foundation.Date? @@ -1140,6 +1423,7 @@ public struct CreatePartnershipOutput: Swift.Sendable { public init( capabilities: [Swift.String]? = nil, + capabilityOptions: B2biClientTypes.CapabilityOptions? = nil, createdAt: Foundation.Date? = nil, email: Swift.String? = nil, name: Swift.String? = nil, @@ -1151,6 +1435,7 @@ public struct CreatePartnershipOutput: Swift.Sendable { ) { self.capabilities = capabilities + self.capabilityOptions = capabilityOptions self.createdAt = createdAt self.email = email self.name = name @@ -1164,7 +1449,7 @@ public struct CreatePartnershipOutput: Swift.Sendable { extension CreatePartnershipOutput: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "CreatePartnershipOutput(capabilities: \(Swift.String(describing: capabilities)), createdAt: \(Swift.String(describing: createdAt)), name: \(Swift.String(describing: name)), partnershipArn: \(Swift.String(describing: partnershipArn)), partnershipId: \(Swift.String(describing: partnershipId)), profileId: \(Swift.String(describing: profileId)), tradingPartnerId: \(Swift.String(describing: tradingPartnerId)), email: \"CONTENT_REDACTED\", phone: \"CONTENT_REDACTED\")"} + "CreatePartnershipOutput(capabilities: \(Swift.String(describing: capabilities)), capabilityOptions: \(Swift.String(describing: capabilityOptions)), createdAt: \(Swift.String(describing: createdAt)), name: \(Swift.String(describing: name)), partnershipArn: \(Swift.String(describing: partnershipArn)), partnershipId: \(Swift.String(describing: partnershipId)), profileId: \(Swift.String(describing: profileId)), tradingPartnerId: \(Swift.String(describing: tradingPartnerId)), email: \"CONTENT_REDACTED\", phone: \"CONTENT_REDACTED\")"} } public struct DeletePartnershipInput: Swift.Sendable { @@ -1196,6 +1481,8 @@ public struct GetPartnershipInput: Swift.Sendable { public struct GetPartnershipOutput: Swift.Sendable { /// Returns one or more capabilities associated with this partnership. public var capabilities: [Swift.String]? + /// Contains the details for an Outbound EDI capability. + public var capabilityOptions: B2biClientTypes.CapabilityOptions? /// Returns a timestamp for creation date and time of the partnership. /// This member is required. public var createdAt: Foundation.Date? @@ -1221,6 +1508,7 @@ public struct GetPartnershipOutput: Swift.Sendable { public init( capabilities: [Swift.String]? = nil, + capabilityOptions: B2biClientTypes.CapabilityOptions? = nil, createdAt: Foundation.Date? = nil, email: Swift.String? = nil, modifiedAt: Foundation.Date? = nil, @@ -1233,6 +1521,7 @@ public struct GetPartnershipOutput: Swift.Sendable { ) { self.capabilities = capabilities + self.capabilityOptions = capabilityOptions self.createdAt = createdAt self.email = email self.modifiedAt = modifiedAt @@ -1247,7 +1536,7 @@ public struct GetPartnershipOutput: Swift.Sendable { extension GetPartnershipOutput: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "GetPartnershipOutput(capabilities: \(Swift.String(describing: capabilities)), createdAt: \(Swift.String(describing: createdAt)), modifiedAt: \(Swift.String(describing: modifiedAt)), name: \(Swift.String(describing: name)), partnershipArn: \(Swift.String(describing: partnershipArn)), partnershipId: \(Swift.String(describing: partnershipId)), profileId: \(Swift.String(describing: profileId)), tradingPartnerId: \(Swift.String(describing: tradingPartnerId)), email: \"CONTENT_REDACTED\", phone: \"CONTENT_REDACTED\")"} + "GetPartnershipOutput(capabilities: \(Swift.String(describing: capabilities)), capabilityOptions: \(Swift.String(describing: capabilityOptions)), createdAt: \(Swift.String(describing: createdAt)), modifiedAt: \(Swift.String(describing: modifiedAt)), name: \(Swift.String(describing: name)), partnershipArn: \(Swift.String(describing: partnershipArn)), partnershipId: \(Swift.String(describing: partnershipId)), profileId: \(Swift.String(describing: profileId)), tradingPartnerId: \(Swift.String(describing: tradingPartnerId)), email: \"CONTENT_REDACTED\", phone: \"CONTENT_REDACTED\")"} } public struct ListPartnershipsInput: Swift.Sendable { @@ -1276,6 +1565,8 @@ extension B2biClientTypes { public struct PartnershipSummary: Swift.Sendable { /// Returns one or more capabilities associated with this partnership. public var capabilities: [Swift.String]? + /// Contains the details for an Outbound EDI capability. + public var capabilityOptions: B2biClientTypes.CapabilityOptions? /// Returns a timestamp for creation date and time of the partnership. /// This member is required. public var createdAt: Foundation.Date? @@ -1294,6 +1585,7 @@ extension B2biClientTypes { public init( capabilities: [Swift.String]? = nil, + capabilityOptions: B2biClientTypes.CapabilityOptions? = nil, createdAt: Foundation.Date? = nil, modifiedAt: Foundation.Date? = nil, name: Swift.String? = nil, @@ -1303,6 +1595,7 @@ extension B2biClientTypes { ) { self.capabilities = capabilities + self.capabilityOptions = capabilityOptions self.createdAt = createdAt self.modifiedAt = modifiedAt self.name = name @@ -1333,6 +1626,8 @@ public struct ListPartnershipsOutput: Swift.Sendable { public struct UpdatePartnershipInput: Swift.Sendable { /// List of the capabilities associated with this partnership. public var capabilities: [Swift.String]? + /// To update, specify the structure that contains the details for the associated capabilities. + public var capabilityOptions: B2biClientTypes.CapabilityOptions? /// The name of the partnership, used to identify it. public var name: Swift.String? /// Specifies the unique, system-generated identifier for a partnership. @@ -1341,11 +1636,13 @@ public struct UpdatePartnershipInput: Swift.Sendable { public init( capabilities: [Swift.String]? = nil, + capabilityOptions: B2biClientTypes.CapabilityOptions? = nil, name: Swift.String? = nil, partnershipId: Swift.String? = nil ) { self.capabilities = capabilities + self.capabilityOptions = capabilityOptions self.name = name self.partnershipId = partnershipId } @@ -1354,6 +1651,8 @@ public struct UpdatePartnershipInput: Swift.Sendable { public struct UpdatePartnershipOutput: Swift.Sendable { /// Returns one or more capabilities associated with this partnership. public var capabilities: [Swift.String]? + /// Returns the structure that contains the details for the associated capabilities. + public var capabilityOptions: B2biClientTypes.CapabilityOptions? /// Returns a timestamp that identifies the most recent date and time that the partnership was modified. /// This member is required. public var createdAt: Foundation.Date? @@ -1379,6 +1678,7 @@ public struct UpdatePartnershipOutput: Swift.Sendable { public init( capabilities: [Swift.String]? = nil, + capabilityOptions: B2biClientTypes.CapabilityOptions? = nil, createdAt: Foundation.Date? = nil, email: Swift.String? = nil, modifiedAt: Foundation.Date? = nil, @@ -1391,6 +1691,7 @@ public struct UpdatePartnershipOutput: Swift.Sendable { ) { self.capabilities = capabilities + self.capabilityOptions = capabilityOptions self.createdAt = createdAt self.email = email self.modifiedAt = modifiedAt @@ -1405,7 +1706,7 @@ public struct UpdatePartnershipOutput: Swift.Sendable { extension UpdatePartnershipOutput: Swift.CustomDebugStringConvertible { public var debugDescription: Swift.String { - "UpdatePartnershipOutput(capabilities: \(Swift.String(describing: capabilities)), createdAt: \(Swift.String(describing: createdAt)), modifiedAt: \(Swift.String(describing: modifiedAt)), name: \(Swift.String(describing: name)), partnershipArn: \(Swift.String(describing: partnershipArn)), partnershipId: \(Swift.String(describing: partnershipId)), profileId: \(Swift.String(describing: profileId)), tradingPartnerId: \(Swift.String(describing: tradingPartnerId)), email: \"CONTENT_REDACTED\", phone: \"CONTENT_REDACTED\")"} + "UpdatePartnershipOutput(capabilities: \(Swift.String(describing: capabilities)), capabilityOptions: \(Swift.String(describing: capabilityOptions)), createdAt: \(Swift.String(describing: createdAt)), modifiedAt: \(Swift.String(describing: modifiedAt)), name: \(Swift.String(describing: name)), partnershipArn: \(Swift.String(describing: partnershipArn)), partnershipId: \(Swift.String(describing: partnershipId)), profileId: \(Swift.String(describing: profileId)), tradingPartnerId: \(Swift.String(describing: tradingPartnerId)), email: \"CONTENT_REDACTED\", phone: \"CONTENT_REDACTED\")"} } extension B2biClientTypes { @@ -1850,16 +2151,185 @@ public struct TagResourceInput: Swift.Sendable { } } +extension B2biClientTypes { + + public enum ConversionSourceFormat: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case json + case xml + case sdkUnknown(Swift.String) + + public static var allCases: [ConversionSourceFormat] { + return [ + .json, + .xml + ] + } + + 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 .json: return "JSON" + case .xml: return "XML" + case let .sdkUnknown(s): return s + } + } + } +} + +extension B2biClientTypes { + + /// The input file to use for an outbound transformation. + public enum InputFileSource: Swift.Sendable { + /// Specify the input contents, as a string, for the source of an outbound transformation. + case filecontent(Swift.String) + case sdkUnknown(Swift.String) + } +} + +extension B2biClientTypes { + + /// Describes the input for an outbound transformation. + public struct ConversionSource: Swift.Sendable { + /// The format for the input file: either JSON or XML. + /// This member is required. + public var fileFormat: B2biClientTypes.ConversionSourceFormat? + /// File to be converted + /// This member is required. + public var inputFile: B2biClientTypes.InputFileSource? + + public init( + fileFormat: B2biClientTypes.ConversionSourceFormat? = nil, + inputFile: B2biClientTypes.InputFileSource? = nil + ) + { + self.fileFormat = fileFormat + self.inputFile = inputFile + } + } +} + +extension B2biClientTypes { + + public enum ConversionTargetFormat: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case x12 + case sdkUnknown(Swift.String) + + public static var allCases: [ConversionTargetFormat] { + return [ + .x12 + ] + } + + 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 .x12: return "X12" + case let .sdkUnknown(s): return s + } + } + } +} + +extension B2biClientTypes { + + /// Contains a structure describing the X12 details for the conversion target. + public enum ConversionTargetFormatDetails: Swift.Sendable { + /// A structure that contains the X12 transaction set and version. The X12 structure is used when the system transforms an EDI (electronic data interchange) file. If an EDI input file contains more than one transaction, each transaction must have the same transaction set and version, for example 214/4010. If not, the transformer cannot parse the file. + case x12(B2biClientTypes.X12Details) + case sdkUnknown(Swift.String) + } +} + +extension B2biClientTypes { + + /// Container for the location of a sample file used for outbound transformations. + public enum OutputSampleFileSource: Swift.Sendable { + /// Specifies the details for the Amazon S3 file location that is being used with Amazon Web Services B2B Data Interchange. File locations in Amazon S3 are identified using a combination of the bucket and key. + case filelocation(B2biClientTypes.S3Location) + case sdkUnknown(Swift.String) + } +} + +extension B2biClientTypes { + + /// Provide a sample of what the output of the transformation should look like. + public struct ConversionTarget: Swift.Sendable { + /// Currently, only X12 format is supported. + /// This member is required. + public var fileFormat: B2biClientTypes.ConversionTargetFormat? + /// A structure that contains the formatting details for the conversion target. + public var formatDetails: B2biClientTypes.ConversionTargetFormatDetails? + /// Customer uses this to provide a sample on what should file look like after conversion X12 EDI use case around this would be discovering the file syntax + public var outputSampleFile: B2biClientTypes.OutputSampleFileSource? + + public init( + fileFormat: B2biClientTypes.ConversionTargetFormat? = nil, + formatDetails: B2biClientTypes.ConversionTargetFormatDetails? = nil, + outputSampleFile: B2biClientTypes.OutputSampleFileSource? = nil + ) + { + self.fileFormat = fileFormat + self.formatDetails = formatDetails + self.outputSampleFile = outputSampleFile + } + } +} + +public struct TestConversionInput: Swift.Sendable { + /// Specify the source file for an outbound EDI request. + /// This member is required. + public var source: B2biClientTypes.ConversionSource? + /// Specify the format (X12 is the only currently supported format), and other details for the conversion target. + /// This member is required. + public var target: B2biClientTypes.ConversionTarget? + + public init( + source: B2biClientTypes.ConversionSource? = nil, + target: B2biClientTypes.ConversionTarget? = nil + ) + { + self.source = source + self.target = target + } +} + +public struct TestConversionOutput: Swift.Sendable { + /// Returns the converted file content. + /// This member is required. + public var convertedFileContent: Swift.String? + /// Returns an array of strings, each containing a message that Amazon Web Services B2B Data Interchange generates during the conversion. + public var validationMessages: [Swift.String]? + + public init( + convertedFileContent: Swift.String? = nil, + validationMessages: [Swift.String]? = nil + ) + { + self.convertedFileContent = convertedFileContent + self.validationMessages = validationMessages + } +} + extension B2biClientTypes { public enum FileFormat: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { case json + case notUsed case xml case sdkUnknown(Swift.String) public static var allCases: [FileFormat] { return [ .json, + .notUsed, .xml ] } @@ -1872,6 +2342,7 @@ extension B2biClientTypes { public var rawValue: Swift.String { switch self { case .json: return "JSON" + case .notUsed: return "NOT_USED" case .xml: return "XML" case let .sdkUnknown(s): return s } @@ -1886,7 +2357,7 @@ public struct TestMappingInput: Swift.Sendable { /// Specify the contents of the EDI (electronic data interchange) XML or JSON file that is used as input for the transform. /// This member is required. public var inputFileContent: Swift.String? - /// Specifies the mapping template for the transformer. This template is used to map the parsed EDI file using JSONata or XSLT. + /// Specifies the mapping template for the transformer. This template is used to map the parsed EDI file using JSONata or XSLT. This parameter is available for backwards compatibility. Use the [Mapping](https://docs.aws.amazon.com/b2bi/latest/APIReference/API_Mapping.html) data type instead. /// This member is required. public var mappingTemplate: Swift.String? @@ -1951,23 +2422,228 @@ public struct TestParsingOutput: Swift.Sendable { } } -public struct CreateTransformerInput: Swift.Sendable { - /// Reserved for future use. - public var clientToken: Swift.String? - /// Specifies the details for the EDI standard that is being used for the transformer. Currently, only X12 is supported. X12 is a set of standards and corresponding messages that define specific business documents. - /// This member is required. - public var ediType: B2biClientTypes.EdiType? - /// Specifies that the currently supported file formats for EDI transformations are JSON and XML. - /// This member is required. - public var fileFormat: B2biClientTypes.FileFormat? - /// Specifies the mapping template for the transformer. This template is used to map the parsed EDI file using JSONata or XSLT. - /// This member is required. - public var mappingTemplate: Swift.String? - /// Specifies the name of the transformer, used to identify it. +extension B2biClientTypes { + + /// A structure that contains the X12 transaction set and version. + public enum FormatOptions: Swift.Sendable { + /// A structure that contains the X12 transaction set and version. The X12 structure is used when the system transforms an EDI (electronic data interchange) file. If an EDI input file contains more than one transaction, each transaction must have the same transaction set and version, for example 214/4010. If not, the transformer cannot parse the file. + case x12(B2biClientTypes.X12Details) + case sdkUnknown(Swift.String) + } +} + +extension B2biClientTypes { + + public enum FromFormat: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case x12 + case sdkUnknown(Swift.String) + + public static var allCases: [FromFormat] { + return [ + .x12 + ] + } + + 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 .x12: return "X12" + case let .sdkUnknown(s): return s + } + } + } +} + +extension B2biClientTypes { + + /// Contains the input formatting options for an inbound transformer (takes an X12-formatted EDI document as input and converts it to JSON or XML. + public struct InputConversion: Swift.Sendable { + /// A structure that contains the formatting options for an inbound transformer. + public var formatOptions: B2biClientTypes.FormatOptions? + /// The format for the transformer input: currently on X12 is supported. + /// This member is required. + public var fromFormat: B2biClientTypes.FromFormat? + + public init( + formatOptions: B2biClientTypes.FormatOptions? = nil, + fromFormat: B2biClientTypes.FromFormat? = nil + ) + { + self.formatOptions = formatOptions + self.fromFormat = fromFormat + } + } +} + +extension B2biClientTypes { + + public enum MappingTemplateLanguage: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case jsonata + case xslt + case sdkUnknown(Swift.String) + + public static var allCases: [MappingTemplateLanguage] { + return [ + .jsonata, + .xslt + ] + } + + 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 .jsonata: return "JSONATA" + case .xslt: return "XSLT" + case let .sdkUnknown(s): return s + } + } + } +} + +extension B2biClientTypes { + + /// Specifies the mapping template for the transformer. This template is used to map the parsed EDI file using JSONata or XSLT. + public struct Mapping: Swift.Sendable { + /// A string that represents the mapping template, in the transformation language specified in templateLanguage. + public var template: Swift.String? + /// The transformation language for the template, either XSLT or JSONATA. + /// This member is required. + public var templateLanguage: B2biClientTypes.MappingTemplateLanguage? + + public init( + template: Swift.String? = nil, + templateLanguage: B2biClientTypes.MappingTemplateLanguage? = nil + ) + { + self.template = template + self.templateLanguage = templateLanguage + } + } +} + +extension B2biClientTypes { + + public enum ToFormat: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case x12 + case sdkUnknown(Swift.String) + + public static var allCases: [ToFormat] { + return [ + .x12 + ] + } + + 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 .x12: return "X12" + case let .sdkUnknown(s): return s + } + } + } +} + +extension B2biClientTypes { + + /// Contains the formatting options for an outbound transformer (takes JSON or XML as input and converts it to an EDI document (currently only X12 format is supported). + public struct OutputConversion: Swift.Sendable { + /// A structure that contains the X12 transaction set and version for the transformer output. + public var formatOptions: B2biClientTypes.FormatOptions? + /// The format for the output from an outbound transformer: only X12 is currently supported. + /// This member is required. + public var toFormat: B2biClientTypes.ToFormat? + + public init( + formatOptions: B2biClientTypes.FormatOptions? = nil, + toFormat: B2biClientTypes.ToFormat? = nil + ) + { + self.formatOptions = formatOptions + self.toFormat = toFormat + } + } +} + +extension B2biClientTypes { + + /// An array of the Amazon S3 keys used to identify the location for your sample documents. + public struct SampleDocumentKeys: Swift.Sendable { + /// An array of keys for your input sample documents. + public var input: Swift.String? + /// An array of keys for your output sample documents. + public var output: Swift.String? + + public init( + input: Swift.String? = nil, + output: Swift.String? = nil + ) + { + self.input = input + self.output = output + } + } +} + +extension B2biClientTypes { + + /// Describes a structure that contains the Amazon S3 bucket and an array of the corresponding keys used to identify the location for your sample documents. + public struct SampleDocuments: Swift.Sendable { + /// Contains the Amazon S3 bucket that is used to hold your sample documents. + /// This member is required. + public var bucketName: Swift.String? + /// Contains an array of the Amazon S3 keys used to identify the location for your sample documents. + /// This member is required. + public var keys: [B2biClientTypes.SampleDocumentKeys]? + + public init( + bucketName: Swift.String? = nil, + keys: [B2biClientTypes.SampleDocumentKeys]? = nil + ) + { + self.bucketName = bucketName + self.keys = keys + } + } +} + +public struct CreateTransformerInput: Swift.Sendable { + /// Reserved for future use. + public var clientToken: Swift.String? + /// Specifies the details for the EDI standard that is being used for the transformer. Currently, only X12 is supported. X12 is a set of standards and corresponding messages that define specific business documents. + @available(*, deprecated, message: "This is a legacy trait. Please use input-conversion or output-conversion.") + public var ediType: B2biClientTypes.EdiType? + /// Specifies that the currently supported file formats for EDI transformations are JSON and XML. + @available(*, deprecated, message: "This is a legacy trait. Please use input-conversion or output-conversion.") + public var fileFormat: B2biClientTypes.FileFormat? + /// Specify the InputConversion object, which contains the format options for the inbound transformation. + public var inputConversion: B2biClientTypes.InputConversion? + /// Specify the structure that contains the mapping template and its language (either XSLT or JSONATA). + public var mapping: B2biClientTypes.Mapping? + /// Specifies the mapping template for the transformer. This template is used to map the parsed EDI file using JSONata or XSLT. This parameter is available for backwards compatibility. Use the [Mapping](https://docs.aws.amazon.com/b2bi/latest/APIReference/API_Mapping.html) data type instead. + @available(*, deprecated, message: "This is a legacy trait. Please use input-conversion or output-conversion.") + public var mappingTemplate: Swift.String? + /// Specifies the name of the transformer, used to identify it. /// This member is required. public var name: Swift.String? + /// A structure that contains the OutputConversion object, which contains the format options for the outbound transformation. + public var outputConversion: B2biClientTypes.OutputConversion? /// Specifies a sample EDI document that is used by a transformer as a guide for processing the EDI data. + @available(*, deprecated, message: "This is a legacy trait. Please use input-conversion or output-conversion.") public var sampleDocument: Swift.String? + /// Specify a structure that contains the Amazon S3 bucket and an array of the corresponding keys used to identify the location for your sample documents. + public var sampleDocuments: B2biClientTypes.SampleDocuments? /// Specifies the key-value pairs assigned to ARNs that you can use to group and search for resources by type. You can attach this metadata to resources (capabilities, partnerships, and so on) for any purpose. public var tags: [B2biClientTypes.Tag]? @@ -1975,18 +2651,26 @@ public struct CreateTransformerInput: Swift.Sendable { clientToken: Swift.String? = nil, ediType: B2biClientTypes.EdiType? = nil, fileFormat: B2biClientTypes.FileFormat? = nil, + inputConversion: B2biClientTypes.InputConversion? = nil, + mapping: B2biClientTypes.Mapping? = nil, mappingTemplate: Swift.String? = nil, name: Swift.String? = nil, + outputConversion: B2biClientTypes.OutputConversion? = nil, sampleDocument: Swift.String? = nil, + sampleDocuments: B2biClientTypes.SampleDocuments? = nil, tags: [B2biClientTypes.Tag]? = nil ) { self.clientToken = clientToken self.ediType = ediType self.fileFormat = fileFormat + self.inputConversion = inputConversion + self.mapping = mapping self.mappingTemplate = mappingTemplate self.name = name + self.outputConversion = outputConversion self.sampleDocument = sampleDocument + self.sampleDocuments = sampleDocuments self.tags = tags } } @@ -2025,19 +2709,28 @@ public struct CreateTransformerOutput: Swift.Sendable { /// This member is required. public var createdAt: Foundation.Date? /// Returns the details for the EDI standard that is being used for the transformer. Currently, only X12 is supported. X12 is a set of standards and corresponding messages that define specific business documents. - /// This member is required. + @available(*, deprecated, message: "This is a legacy trait. Please use input-conversion or output-conversion.") public var ediType: B2biClientTypes.EdiType? /// Returns that the currently supported file formats for EDI transformations are JSON and XML. - /// This member is required. + @available(*, deprecated, message: "This is a legacy trait. Please use input-conversion or output-conversion.") public var fileFormat: B2biClientTypes.FileFormat? + /// Returns the InputConversion object, which contains the format options for the inbound transformation. + public var inputConversion: B2biClientTypes.InputConversion? + /// Returns the structure that contains the mapping template and its language (either XSLT or JSONATA). + public var mapping: B2biClientTypes.Mapping? /// Returns the mapping template for the transformer. This template is used to map the parsed EDI file using JSONata or XSLT. - /// This member is required. + @available(*, deprecated, message: "This is a legacy trait. Please use input-conversion or output-conversion.") public var mappingTemplate: Swift.String? /// Returns the name of the transformer, used to identify it. /// This member is required. public var name: Swift.String? + /// Returns the OutputConversion object, which contains the format options for the outbound transformation. + public var outputConversion: B2biClientTypes.OutputConversion? /// Returns a sample EDI document that is used by a transformer as a guide for processing the EDI data. + @available(*, deprecated, message: "This is a legacy trait. Please use input-conversion or output-conversion.") public var sampleDocument: Swift.String? + /// Returns a structure that contains the Amazon S3 bucket and an array of the corresponding keys used to identify the location for your sample documents. + public var sampleDocuments: B2biClientTypes.SampleDocuments? /// Returns the state of the newly created transformer. The transformer can be either active or inactive. For the transformer to be used in a capability, its status must active. /// This member is required. public var status: B2biClientTypes.TransformerStatus? @@ -2051,10 +2744,14 @@ public struct CreateTransformerOutput: Swift.Sendable { public init( createdAt: Foundation.Date? = nil, ediType: B2biClientTypes.EdiType? = nil, - fileFormat: B2biClientTypes.FileFormat? = nil, - mappingTemplate: Swift.String? = nil, + fileFormat: B2biClientTypes.FileFormat? = .notUsed, + inputConversion: B2biClientTypes.InputConversion? = nil, + mapping: B2biClientTypes.Mapping? = nil, + mappingTemplate: Swift.String? = "NOT_USED", name: Swift.String? = nil, + outputConversion: B2biClientTypes.OutputConversion? = nil, sampleDocument: Swift.String? = nil, + sampleDocuments: B2biClientTypes.SampleDocuments? = nil, status: B2biClientTypes.TransformerStatus? = nil, transformerArn: Swift.String? = nil, transformerId: Swift.String? = nil @@ -2063,9 +2760,13 @@ public struct CreateTransformerOutput: Swift.Sendable { self.createdAt = createdAt self.ediType = ediType self.fileFormat = fileFormat + self.inputConversion = inputConversion + self.mapping = mapping self.mappingTemplate = mappingTemplate self.name = name + self.outputConversion = outputConversion self.sampleDocument = sampleDocument + self.sampleDocuments = sampleDocuments self.status = status self.transformerArn = transformerArn self.transformerId = transformerId @@ -2103,21 +2804,30 @@ public struct GetTransformerOutput: Swift.Sendable { /// This member is required. public var createdAt: Foundation.Date? /// Returns the details for the EDI standard that is being used for the transformer. Currently, only X12 is supported. X12 is a set of standards and corresponding messages that define specific business documents. - /// This member is required. + @available(*, deprecated, message: "This is a legacy trait. Please use input-conversion or output-conversion.") public var ediType: B2biClientTypes.EdiType? /// Returns that the currently supported file formats for EDI transformations are JSON and XML. - /// This member is required. + @available(*, deprecated, message: "This is a legacy trait. Please use input-conversion or output-conversion.") public var fileFormat: B2biClientTypes.FileFormat? + /// Returns the InputConversion object, which contains the format options for the inbound transformation. + public var inputConversion: B2biClientTypes.InputConversion? + /// Returns the structure that contains the mapping template and its language (either XSLT or JSONATA). + public var mapping: B2biClientTypes.Mapping? /// Returns the mapping template for the transformer. This template is used to map the parsed EDI file using JSONata or XSLT. - /// This member is required. + @available(*, deprecated, message: "This is a legacy trait. Please use input-conversion or output-conversion.") public var mappingTemplate: Swift.String? /// Returns a timestamp for last time the transformer was modified. public var modifiedAt: Foundation.Date? /// Returns the name of the transformer, used to identify it. /// This member is required. public var name: Swift.String? + /// Returns the OutputConversion object, which contains the format options for the outbound transformation. + public var outputConversion: B2biClientTypes.OutputConversion? /// Returns a sample EDI document that is used by a transformer as a guide for processing the EDI data. + @available(*, deprecated, message: "This is a legacy trait. Please use input-conversion or output-conversion.") public var sampleDocument: Swift.String? + /// Returns a structure that contains the Amazon S3 bucket and an array of the corresponding keys used to identify the location for your sample documents. + public var sampleDocuments: B2biClientTypes.SampleDocuments? /// Returns the state of the newly created transformer. The transformer can be either active or inactive. For the transformer to be used in a capability, its status must active. /// This member is required. public var status: B2biClientTypes.TransformerStatus? @@ -2131,11 +2841,15 @@ public struct GetTransformerOutput: Swift.Sendable { public init( createdAt: Foundation.Date? = nil, ediType: B2biClientTypes.EdiType? = nil, - fileFormat: B2biClientTypes.FileFormat? = nil, - mappingTemplate: Swift.String? = nil, + fileFormat: B2biClientTypes.FileFormat? = .notUsed, + inputConversion: B2biClientTypes.InputConversion? = nil, + mapping: B2biClientTypes.Mapping? = nil, + mappingTemplate: Swift.String? = "NOT_USED", modifiedAt: Foundation.Date? = nil, name: Swift.String? = nil, + outputConversion: B2biClientTypes.OutputConversion? = nil, sampleDocument: Swift.String? = nil, + sampleDocuments: B2biClientTypes.SampleDocuments? = nil, status: B2biClientTypes.TransformerStatus? = nil, transformerArn: Swift.String? = nil, transformerId: Swift.String? = nil @@ -2144,10 +2858,14 @@ public struct GetTransformerOutput: Swift.Sendable { self.createdAt = createdAt self.ediType = ediType self.fileFormat = fileFormat + self.inputConversion = inputConversion + self.mapping = mapping self.mappingTemplate = mappingTemplate self.modifiedAt = modifiedAt self.name = name + self.outputConversion = outputConversion self.sampleDocument = sampleDocument + self.sampleDocuments = sampleDocuments self.status = status self.transformerArn = transformerArn self.transformerId = transformerId @@ -2172,27 +2890,36 @@ public struct ListTransformersInput: Swift.Sendable { extension B2biClientTypes { - /// Contains the details for a transformer object. A transformer describes how to process the incoming EDI documents and extract the necessary information to the output file. + /// Contains the details for a transformer object. A transformer can take an EDI file as input and transform it into a JSON-or XML-formatted document. Alternatively, a transformer can take a JSON-or XML-formatted document as input and transform it into an EDI file. public struct TransformerSummary: Swift.Sendable { /// Returns a timestamp indicating when the transformer was created. For example, 2023-07-20T19:58:44.624Z. /// This member is required. public var createdAt: Foundation.Date? /// Returns the details for the EDI standard that is being used for the transformer. Currently, only X12 is supported. X12 is a set of standards and corresponding messages that define specific business documents. - /// This member is required. + @available(*, deprecated, message: "This is a legacy trait. Please use input-conversion or output-conversion.") public var ediType: B2biClientTypes.EdiType? /// Returns that the currently supported file formats for EDI transformations are JSON and XML. - /// This member is required. + @available(*, deprecated, message: "This is a legacy trait. Please use input-conversion or output-conversion.") public var fileFormat: B2biClientTypes.FileFormat? + /// Returns a structure that contains the format options for the transformation. + public var inputConversion: B2biClientTypes.InputConversion? + /// Returns the structure that contains the mapping template and its language (either XSLT or JSONATA). + public var mapping: B2biClientTypes.Mapping? /// Returns the mapping template for the transformer. This template is used to map the parsed EDI file using JSONata or XSLT. - /// This member is required. + @available(*, deprecated, message: "This is a legacy trait. Please use input-conversion or output-conversion.") public var mappingTemplate: Swift.String? /// Returns a timestamp representing the date and time for the most recent change for the transformer object. public var modifiedAt: Foundation.Date? /// Returns the descriptive name for the transformer. /// This member is required. public var name: Swift.String? + /// Returns the OutputConversion object, which contains the format options for the outbound transformation. + public var outputConversion: B2biClientTypes.OutputConversion? /// Returns a sample EDI document that is used by a transformer as a guide for processing the EDI data. + @available(*, deprecated, message: "This is a legacy trait. Please use input-conversion or output-conversion.") public var sampleDocument: Swift.String? + /// Returns a structure that contains the Amazon S3 bucket and an array of the corresponding keys used to identify the location for your sample documents. + public var sampleDocuments: B2biClientTypes.SampleDocuments? /// Returns the state of the newly created transformer. The transformer can be either active or inactive. For the transformer to be used in a capability, its status must active. /// This member is required. public var status: B2biClientTypes.TransformerStatus? @@ -2203,11 +2930,15 @@ extension B2biClientTypes { public init( createdAt: Foundation.Date? = nil, ediType: B2biClientTypes.EdiType? = nil, - fileFormat: B2biClientTypes.FileFormat? = nil, - mappingTemplate: Swift.String? = nil, + fileFormat: B2biClientTypes.FileFormat? = .notUsed, + inputConversion: B2biClientTypes.InputConversion? = nil, + mapping: B2biClientTypes.Mapping? = nil, + mappingTemplate: Swift.String? = "NOT_USED", modifiedAt: Foundation.Date? = nil, name: Swift.String? = nil, + outputConversion: B2biClientTypes.OutputConversion? = nil, sampleDocument: Swift.String? = nil, + sampleDocuments: B2biClientTypes.SampleDocuments? = nil, status: B2biClientTypes.TransformerStatus? = nil, transformerId: Swift.String? = nil ) @@ -2215,10 +2946,14 @@ extension B2biClientTypes { self.createdAt = createdAt self.ediType = ediType self.fileFormat = fileFormat + self.inputConversion = inputConversion + self.mapping = mapping self.mappingTemplate = mappingTemplate self.modifiedAt = modifiedAt self.name = name + self.outputConversion = outputConversion self.sampleDocument = sampleDocument + self.sampleDocuments = sampleDocuments self.status = status self.transformerId = transformerId } @@ -2244,15 +2979,27 @@ public struct ListTransformersOutput: Swift.Sendable { public struct UpdateTransformerInput: Swift.Sendable { /// Specifies the details for the EDI standard that is being used for the transformer. Currently, only X12 is supported. X12 is a set of standards and corresponding messages that define specific business documents. + @available(*, deprecated, message: "This is a legacy trait. Please use input-conversion or output-conversion.") public var ediType: B2biClientTypes.EdiType? /// Specifies that the currently supported file formats for EDI transformations are JSON and XML. + @available(*, deprecated, message: "This is a legacy trait. Please use input-conversion or output-conversion.") public var fileFormat: B2biClientTypes.FileFormat? - /// Specifies the mapping template for the transformer. This template is used to map the parsed EDI file using JSONata or XSLT. + /// To update, specify the InputConversion object, which contains the format options for the inbound transformation. + public var inputConversion: B2biClientTypes.InputConversion? + /// Specify the structure that contains the mapping template and its language (either XSLT or JSONATA). + public var mapping: B2biClientTypes.Mapping? + /// Specifies the mapping template for the transformer. This template is used to map the parsed EDI file using JSONata or XSLT. This parameter is available for backwards compatibility. Use the [Mapping](https://docs.aws.amazon.com/b2bi/latest/APIReference/API_Mapping.html) data type instead. + @available(*, deprecated, message: "This is a legacy trait. Please use input-conversion or output-conversion.") public var mappingTemplate: Swift.String? /// Specify a new name for the transformer, if you want to update it. public var name: Swift.String? + /// To update, specify the OutputConversion object, which contains the format options for the outbound transformation. + public var outputConversion: B2biClientTypes.OutputConversion? /// Specifies a sample EDI document that is used by a transformer as a guide for processing the EDI data. + @available(*, deprecated, message: "This is a legacy trait. Please use input-conversion or output-conversion.") public var sampleDocument: Swift.String? + /// Specify a structure that contains the Amazon S3 bucket and an array of the corresponding keys used to identify the location for your sample documents. + public var sampleDocuments: B2biClientTypes.SampleDocuments? /// Specifies the transformer's status. You can update the state of the transformer, from active to inactive, or inactive to active. public var status: B2biClientTypes.TransformerStatus? /// Specifies the system-assigned unique identifier for the transformer. @@ -2262,18 +3009,26 @@ public struct UpdateTransformerInput: Swift.Sendable { public init( ediType: B2biClientTypes.EdiType? = nil, fileFormat: B2biClientTypes.FileFormat? = nil, + inputConversion: B2biClientTypes.InputConversion? = nil, + mapping: B2biClientTypes.Mapping? = nil, mappingTemplate: Swift.String? = nil, name: Swift.String? = nil, + outputConversion: B2biClientTypes.OutputConversion? = nil, sampleDocument: Swift.String? = nil, + sampleDocuments: B2biClientTypes.SampleDocuments? = nil, status: B2biClientTypes.TransformerStatus? = nil, transformerId: Swift.String? = nil ) { self.ediType = ediType self.fileFormat = fileFormat + self.inputConversion = inputConversion + self.mapping = mapping self.mappingTemplate = mappingTemplate self.name = name + self.outputConversion = outputConversion self.sampleDocument = sampleDocument + self.sampleDocuments = sampleDocuments self.status = status self.transformerId = transformerId } @@ -2284,13 +3039,17 @@ public struct UpdateTransformerOutput: Swift.Sendable { /// This member is required. public var createdAt: Foundation.Date? /// Returns the details for the EDI standard that is being used for the transformer. Currently, only X12 is supported. X12 is a set of standards and corresponding messages that define specific business documents. - /// This member is required. + @available(*, deprecated, message: "This is a legacy trait. Please use input-conversion or output-conversion.") public var ediType: B2biClientTypes.EdiType? /// Returns that the currently supported file formats for EDI transformations are JSON and XML. - /// This member is required. + @available(*, deprecated, message: "This is a legacy trait. Please use input-conversion or output-conversion.") public var fileFormat: B2biClientTypes.FileFormat? + /// Returns the InputConversion object, which contains the format options for the inbound transformation. + public var inputConversion: B2biClientTypes.InputConversion? + /// Returns the structure that contains the mapping template and its language (either XSLT or JSONATA). + public var mapping: B2biClientTypes.Mapping? /// Returns the mapping template for the transformer. This template is used to map the parsed EDI file using JSONata or XSLT. - /// This member is required. + @available(*, deprecated, message: "This is a legacy trait. Please use input-conversion or output-conversion.") public var mappingTemplate: Swift.String? /// Returns a timestamp for last time the transformer was modified. /// This member is required. @@ -2298,8 +3057,13 @@ public struct UpdateTransformerOutput: Swift.Sendable { /// Returns the name of the transformer. /// This member is required. public var name: Swift.String? + /// Returns the OutputConversion object, which contains the format options for the outbound transformation. + public var outputConversion: B2biClientTypes.OutputConversion? /// Returns a sample EDI document that is used by a transformer as a guide for processing the EDI data. + @available(*, deprecated, message: "This is a legacy trait. Please use input-conversion or output-conversion.") public var sampleDocument: Swift.String? + /// Returns a structure that contains the Amazon S3 bucket and an array of the corresponding keys used to identify the location for your sample documents. + public var sampleDocuments: B2biClientTypes.SampleDocuments? /// Returns the state of the newly created transformer. The transformer can be either active or inactive. For the transformer to be used in a capability, its status must active. /// This member is required. public var status: B2biClientTypes.TransformerStatus? @@ -2313,11 +3077,15 @@ public struct UpdateTransformerOutput: Swift.Sendable { public init( createdAt: Foundation.Date? = nil, ediType: B2biClientTypes.EdiType? = nil, - fileFormat: B2biClientTypes.FileFormat? = nil, - mappingTemplate: Swift.String? = nil, + fileFormat: B2biClientTypes.FileFormat? = .notUsed, + inputConversion: B2biClientTypes.InputConversion? = nil, + mapping: B2biClientTypes.Mapping? = nil, + mappingTemplate: Swift.String? = "NOT_USED", modifiedAt: Foundation.Date? = nil, name: Swift.String? = nil, + outputConversion: B2biClientTypes.OutputConversion? = nil, sampleDocument: Swift.String? = nil, + sampleDocuments: B2biClientTypes.SampleDocuments? = nil, status: B2biClientTypes.TransformerStatus? = nil, transformerArn: Swift.String? = nil, transformerId: Swift.String? = nil @@ -2326,10 +3094,14 @@ public struct UpdateTransformerOutput: Swift.Sendable { self.createdAt = createdAt self.ediType = ediType self.fileFormat = fileFormat + self.inputConversion = inputConversion + self.mapping = mapping self.mappingTemplate = mappingTemplate self.modifiedAt = modifiedAt self.name = name + self.outputConversion = outputConversion self.sampleDocument = sampleDocument + self.sampleDocuments = sampleDocuments self.status = status self.transformerArn = transformerArn self.transformerId = transformerId @@ -2375,6 +3147,13 @@ extension CreateProfileInput { } } +extension CreateStarterMappingTemplateInput { + + static func urlPathProvider(_ value: CreateStarterMappingTemplateInput) -> Swift.String? { + return "/" + } +} + extension CreateTransformerInput { static func urlPathProvider(_ value: CreateTransformerInput) -> Swift.String? { @@ -2529,6 +3308,13 @@ extension TagResourceInput { } } +extension TestConversionInput { + + static func urlPathProvider(_ value: TestConversionInput) -> Swift.String? { + return "/" + } +} + extension TestMappingInput { static func urlPathProvider(_ value: TestMappingInput) -> Swift.String? { @@ -2603,6 +3389,7 @@ extension CreatePartnershipInput { static func write(value: CreatePartnershipInput?, to writer: SmithyJSON.Writer) throws { guard let value else { return } try writer["capabilities"].writeList(value.capabilities, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["capabilityOptions"].write(value.capabilityOptions, with: B2biClientTypes.CapabilityOptions.write(value:to:)) try writer["clientToken"].write(value.clientToken) try writer["email"].write(value.email) try writer["name"].write(value.name) @@ -2626,6 +3413,16 @@ extension CreateProfileInput { } } +extension CreateStarterMappingTemplateInput { + + static func write(value: CreateStarterMappingTemplateInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["mappingType"].write(value.mappingType) + try writer["outputSampleLocation"].write(value.outputSampleLocation, with: B2biClientTypes.S3Location.write(value:to:)) + try writer["templateDetails"].write(value.templateDetails, with: B2biClientTypes.TemplateDetails.write(value:to:)) + } +} + extension CreateTransformerInput { static func write(value: CreateTransformerInput?, to writer: SmithyJSON.Writer) throws { @@ -2633,9 +3430,13 @@ extension CreateTransformerInput { try writer["clientToken"].write(value.clientToken) try writer["ediType"].write(value.ediType, with: B2biClientTypes.EdiType.write(value:to:)) try writer["fileFormat"].write(value.fileFormat) + try writer["inputConversion"].write(value.inputConversion, with: B2biClientTypes.InputConversion.write(value:to:)) + try writer["mapping"].write(value.mapping, with: B2biClientTypes.Mapping.write(value:to:)) try writer["mappingTemplate"].write(value.mappingTemplate) try writer["name"].write(value.name) + try writer["outputConversion"].write(value.outputConversion, with: B2biClientTypes.OutputConversion.write(value:to:)) try writer["sampleDocument"].write(value.sampleDocument) + try writer["sampleDocuments"].write(value.sampleDocuments, with: B2biClientTypes.SampleDocuments.write(value:to:)) try writer["tags"].writeList(value.tags, memberWritingClosure: B2biClientTypes.Tag.write(value:to:), memberNodeInfo: "member", isFlattened: false) } } @@ -2771,6 +3572,15 @@ extension TagResourceInput { } } +extension TestConversionInput { + + static func write(value: TestConversionInput?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["source"].write(value.source, with: B2biClientTypes.ConversionSource.write(value:to:)) + try writer["target"].write(value.target, with: B2biClientTypes.ConversionTarget.write(value:to:)) + } +} + extension TestMappingInput { static func write(value: TestMappingInput?, to writer: SmithyJSON.Writer) throws { @@ -2814,6 +3624,7 @@ extension UpdatePartnershipInput { static func write(value: UpdatePartnershipInput?, to writer: SmithyJSON.Writer) throws { guard let value else { return } try writer["capabilities"].writeList(value.capabilities, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) + try writer["capabilityOptions"].write(value.capabilityOptions, with: B2biClientTypes.CapabilityOptions.write(value:to:)) try writer["name"].write(value.name) } } @@ -2835,9 +3646,13 @@ extension UpdateTransformerInput { guard let value else { return } try writer["ediType"].write(value.ediType, with: B2biClientTypes.EdiType.write(value:to:)) try writer["fileFormat"].write(value.fileFormat) + try writer["inputConversion"].write(value.inputConversion, with: B2biClientTypes.InputConversion.write(value:to:)) + try writer["mapping"].write(value.mapping, with: B2biClientTypes.Mapping.write(value:to:)) try writer["mappingTemplate"].write(value.mappingTemplate) try writer["name"].write(value.name) + try writer["outputConversion"].write(value.outputConversion, with: B2biClientTypes.OutputConversion.write(value:to:)) try writer["sampleDocument"].write(value.sampleDocument) + try writer["sampleDocuments"].write(value.sampleDocuments, with: B2biClientTypes.SampleDocuments.write(value:to:)) try writer["status"].write(value.status) } } @@ -2868,6 +3683,7 @@ extension CreatePartnershipOutput { let reader = responseReader var value = CreatePartnershipOutput() value.capabilities = try reader["capabilities"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) + value.capabilityOptions = try reader["capabilityOptions"].readIfPresent(with: B2biClientTypes.CapabilityOptions.read(from:)) value.createdAt = try reader["createdAt"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") value.email = try reader["email"].readIfPresent() value.name = try reader["name"].readIfPresent() @@ -2900,6 +3716,18 @@ extension CreateProfileOutput { } } +extension CreateStarterMappingTemplateOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> CreateStarterMappingTemplateOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = CreateStarterMappingTemplateOutput() + value.mappingTemplate = try reader["mappingTemplate"].readIfPresent() ?? "" + return value + } +} + extension CreateTransformerOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> CreateTransformerOutput { @@ -2909,10 +3737,14 @@ extension CreateTransformerOutput { var value = CreateTransformerOutput() value.createdAt = try reader["createdAt"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") value.ediType = try reader["ediType"].readIfPresent(with: B2biClientTypes.EdiType.read(from:)) - value.fileFormat = try reader["fileFormat"].readIfPresent() ?? .sdkUnknown("") - value.mappingTemplate = try reader["mappingTemplate"].readIfPresent() ?? "" + value.fileFormat = try reader["fileFormat"].readIfPresent() ?? .notUsed + value.inputConversion = try reader["inputConversion"].readIfPresent(with: B2biClientTypes.InputConversion.read(from:)) + value.mapping = try reader["mapping"].readIfPresent(with: B2biClientTypes.Mapping.read(from:)) + value.mappingTemplate = try reader["mappingTemplate"].readIfPresent() ?? "NOT_USED" value.name = try reader["name"].readIfPresent() ?? "" + value.outputConversion = try reader["outputConversion"].readIfPresent(with: B2biClientTypes.OutputConversion.read(from:)) value.sampleDocument = try reader["sampleDocument"].readIfPresent() + value.sampleDocuments = try reader["sampleDocuments"].readIfPresent(with: B2biClientTypes.SampleDocuments.read(from:)) value.status = try reader["status"].readIfPresent() ?? .sdkUnknown("") value.transformerArn = try reader["transformerArn"].readIfPresent() ?? "" value.transformerId = try reader["transformerId"].readIfPresent() ?? "" @@ -2975,6 +3807,7 @@ extension GetPartnershipOutput { let reader = responseReader var value = GetPartnershipOutput() value.capabilities = try reader["capabilities"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) + value.capabilityOptions = try reader["capabilityOptions"].readIfPresent(with: B2biClientTypes.CapabilityOptions.read(from:)) value.createdAt = try reader["createdAt"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") value.email = try reader["email"].readIfPresent() value.modifiedAt = try reader["modifiedAt"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) @@ -3018,11 +3851,15 @@ extension GetTransformerOutput { var value = GetTransformerOutput() value.createdAt = try reader["createdAt"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") value.ediType = try reader["ediType"].readIfPresent(with: B2biClientTypes.EdiType.read(from:)) - value.fileFormat = try reader["fileFormat"].readIfPresent() ?? .sdkUnknown("") - value.mappingTemplate = try reader["mappingTemplate"].readIfPresent() ?? "" + value.fileFormat = try reader["fileFormat"].readIfPresent() ?? .notUsed + value.inputConversion = try reader["inputConversion"].readIfPresent(with: B2biClientTypes.InputConversion.read(from:)) + value.mapping = try reader["mapping"].readIfPresent(with: B2biClientTypes.Mapping.read(from:)) + value.mappingTemplate = try reader["mappingTemplate"].readIfPresent() ?? "NOT_USED" value.modifiedAt = try reader["modifiedAt"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) value.name = try reader["name"].readIfPresent() ?? "" + value.outputConversion = try reader["outputConversion"].readIfPresent(with: B2biClientTypes.OutputConversion.read(from:)) value.sampleDocument = try reader["sampleDocument"].readIfPresent() + value.sampleDocuments = try reader["sampleDocuments"].readIfPresent(with: B2biClientTypes.SampleDocuments.read(from:)) value.status = try reader["status"].readIfPresent() ?? .sdkUnknown("") value.transformerArn = try reader["transformerArn"].readIfPresent() ?? "" value.transformerId = try reader["transformerId"].readIfPresent() ?? "" @@ -3127,6 +3964,19 @@ extension TagResourceOutput { } } +extension TestConversionOutput { + + static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> TestConversionOutput { + let data = try await httpResponse.data() + let responseReader = try SmithyJSON.Reader.from(data: data) + let reader = responseReader + var value = TestConversionOutput() + value.convertedFileContent = try reader["convertedFileContent"].readIfPresent() ?? "" + value.validationMessages = try reader["validationMessages"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) + return value + } +} + extension TestMappingOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> TestMappingOutput { @@ -3185,6 +4035,7 @@ extension UpdatePartnershipOutput { let reader = responseReader var value = UpdatePartnershipOutput() value.capabilities = try reader["capabilities"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) + value.capabilityOptions = try reader["capabilityOptions"].readIfPresent(with: B2biClientTypes.CapabilityOptions.read(from:)) value.createdAt = try reader["createdAt"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") value.email = try reader["email"].readIfPresent() value.modifiedAt = try reader["modifiedAt"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) @@ -3228,11 +4079,15 @@ extension UpdateTransformerOutput { var value = UpdateTransformerOutput() value.createdAt = try reader["createdAt"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") value.ediType = try reader["ediType"].readIfPresent(with: B2biClientTypes.EdiType.read(from:)) - value.fileFormat = try reader["fileFormat"].readIfPresent() ?? .sdkUnknown("") - value.mappingTemplate = try reader["mappingTemplate"].readIfPresent() ?? "" + value.fileFormat = try reader["fileFormat"].readIfPresent() ?? .notUsed + value.inputConversion = try reader["inputConversion"].readIfPresent(with: B2biClientTypes.InputConversion.read(from:)) + value.mapping = try reader["mapping"].readIfPresent(with: B2biClientTypes.Mapping.read(from:)) + value.mappingTemplate = try reader["mappingTemplate"].readIfPresent() ?? "NOT_USED" value.modifiedAt = try reader["modifiedAt"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") value.name = try reader["name"].readIfPresent() ?? "" + value.outputConversion = try reader["outputConversion"].readIfPresent(with: B2biClientTypes.OutputConversion.read(from:)) value.sampleDocument = try reader["sampleDocument"].readIfPresent() + value.sampleDocuments = try reader["sampleDocuments"].readIfPresent(with: B2biClientTypes.SampleDocuments.read(from:)) value.status = try reader["status"].readIfPresent() ?? .sdkUnknown("") value.transformerArn = try reader["transformerArn"].readIfPresent() ?? "" value.transformerId = try reader["transformerId"].readIfPresent() ?? "" @@ -3300,6 +4155,23 @@ enum CreateProfileOutputError { } } +enum CreateStarterMappingTemplateOutputError { + + 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 "ResourceNotFoundException": return try ResourceNotFoundException.makeError(baseError: baseError) + case "ValidationException": return try ValidationException.makeError(baseError: baseError) + default: return try AWSClientRuntime.UnknownAWSHTTPServiceError.makeError(baseError: baseError) + } + } +} + enum CreateTransformerOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -3607,6 +4479,24 @@ enum TagResourceOutputError { } } +enum TestConversionOutputError { + + 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 "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 TestMappingOutputError { static func httpError(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> Swift.Error { @@ -3870,6 +4760,7 @@ extension B2biClientTypes.EdiConfiguration { static func write(value: B2biClientTypes.EdiConfiguration?, to writer: SmithyJSON.Writer) throws { guard let value else { return } + try writer["capabilityDirection"].write(value.capabilityDirection) try writer["inputLocation"].write(value.inputLocation, with: B2biClientTypes.S3Location.write(value:to:)) try writer["outputLocation"].write(value.outputLocation, with: B2biClientTypes.S3Location.write(value:to:)) try writer["transformerId"].write(value.transformerId) @@ -3879,6 +4770,7 @@ extension B2biClientTypes.EdiConfiguration { static func read(from reader: SmithyJSON.Reader) throws -> B2biClientTypes.EdiConfiguration { guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } var value = B2biClientTypes.EdiConfiguration() + value.capabilityDirection = try reader["capabilityDirection"].readIfPresent() value.type = try reader["type"].readIfPresent(with: B2biClientTypes.EdiType.read(from:)) value.inputLocation = try reader["inputLocation"].readIfPresent(with: B2biClientTypes.S3Location.read(from:)) value.outputLocation = try reader["outputLocation"].readIfPresent(with: B2biClientTypes.S3Location.read(from:)) @@ -3945,6 +4837,255 @@ extension B2biClientTypes.X12Details { } } +extension B2biClientTypes.CapabilityOptions { + + static func write(value: B2biClientTypes.CapabilityOptions?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["outboundEdi"].write(value.outboundEdi, with: B2biClientTypes.OutboundEdiOptions.write(value:to:)) + } + + static func read(from reader: SmithyJSON.Reader) throws -> B2biClientTypes.CapabilityOptions { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = B2biClientTypes.CapabilityOptions() + value.outboundEdi = try reader["outboundEdi"].readIfPresent(with: B2biClientTypes.OutboundEdiOptions.read(from:)) + return value + } +} + +extension B2biClientTypes.OutboundEdiOptions { + + static func write(value: B2biClientTypes.OutboundEdiOptions?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + switch value { + case let .x12(x12): + try writer["x12"].write(x12, with: B2biClientTypes.X12Envelope.write(value:to:)) + case let .sdkUnknown(sdkUnknown): + try writer["sdkUnknown"].write(sdkUnknown) + } + } + + static func read(from reader: SmithyJSON.Reader) throws -> B2biClientTypes.OutboundEdiOptions { + 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 "x12": + return .x12(try reader["x12"].read(with: B2biClientTypes.X12Envelope.read(from:))) + default: + return .sdkUnknown(name ?? "") + } + } +} + +extension B2biClientTypes.X12Envelope { + + static func write(value: B2biClientTypes.X12Envelope?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["common"].write(value.common, with: B2biClientTypes.X12OutboundEdiHeaders.write(value:to:)) + } + + static func read(from reader: SmithyJSON.Reader) throws -> B2biClientTypes.X12Envelope { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = B2biClientTypes.X12Envelope() + value.common = try reader["common"].readIfPresent(with: B2biClientTypes.X12OutboundEdiHeaders.read(from:)) + return value + } +} + +extension B2biClientTypes.X12OutboundEdiHeaders { + + static func write(value: B2biClientTypes.X12OutboundEdiHeaders?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["delimiters"].write(value.delimiters, with: B2biClientTypes.X12Delimiters.write(value:to:)) + try writer["functionalGroupHeaders"].write(value.functionalGroupHeaders, with: B2biClientTypes.X12FunctionalGroupHeaders.write(value:to:)) + try writer["interchangeControlHeaders"].write(value.interchangeControlHeaders, with: B2biClientTypes.X12InterchangeControlHeaders.write(value:to:)) + try writer["validateEdi"].write(value.validateEdi) + } + + static func read(from reader: SmithyJSON.Reader) throws -> B2biClientTypes.X12OutboundEdiHeaders { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = B2biClientTypes.X12OutboundEdiHeaders() + value.interchangeControlHeaders = try reader["interchangeControlHeaders"].readIfPresent(with: B2biClientTypes.X12InterchangeControlHeaders.read(from:)) + value.functionalGroupHeaders = try reader["functionalGroupHeaders"].readIfPresent(with: B2biClientTypes.X12FunctionalGroupHeaders.read(from:)) + value.delimiters = try reader["delimiters"].readIfPresent(with: B2biClientTypes.X12Delimiters.read(from:)) + value.validateEdi = try reader["validateEdi"].readIfPresent() + return value + } +} + +extension B2biClientTypes.X12Delimiters { + + static func write(value: B2biClientTypes.X12Delimiters?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["componentSeparator"].write(value.componentSeparator) + try writer["dataElementSeparator"].write(value.dataElementSeparator) + try writer["segmentTerminator"].write(value.segmentTerminator) + } + + static func read(from reader: SmithyJSON.Reader) throws -> B2biClientTypes.X12Delimiters { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = B2biClientTypes.X12Delimiters() + value.componentSeparator = try reader["componentSeparator"].readIfPresent() + value.dataElementSeparator = try reader["dataElementSeparator"].readIfPresent() + value.segmentTerminator = try reader["segmentTerminator"].readIfPresent() + return value + } +} + +extension B2biClientTypes.X12FunctionalGroupHeaders { + + static func write(value: B2biClientTypes.X12FunctionalGroupHeaders?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["applicationReceiverCode"].write(value.applicationReceiverCode) + try writer["applicationSenderCode"].write(value.applicationSenderCode) + try writer["responsibleAgencyCode"].write(value.responsibleAgencyCode) + } + + static func read(from reader: SmithyJSON.Reader) throws -> B2biClientTypes.X12FunctionalGroupHeaders { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = B2biClientTypes.X12FunctionalGroupHeaders() + value.applicationSenderCode = try reader["applicationSenderCode"].readIfPresent() + value.applicationReceiverCode = try reader["applicationReceiverCode"].readIfPresent() + value.responsibleAgencyCode = try reader["responsibleAgencyCode"].readIfPresent() + return value + } +} + +extension B2biClientTypes.X12InterchangeControlHeaders { + + static func write(value: B2biClientTypes.X12InterchangeControlHeaders?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["acknowledgmentRequestedCode"].write(value.acknowledgmentRequestedCode) + try writer["receiverId"].write(value.receiverId) + try writer["receiverIdQualifier"].write(value.receiverIdQualifier) + try writer["repetitionSeparator"].write(value.repetitionSeparator) + try writer["senderId"].write(value.senderId) + try writer["senderIdQualifier"].write(value.senderIdQualifier) + try writer["usageIndicatorCode"].write(value.usageIndicatorCode) + } + + static func read(from reader: SmithyJSON.Reader) throws -> B2biClientTypes.X12InterchangeControlHeaders { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = B2biClientTypes.X12InterchangeControlHeaders() + value.senderIdQualifier = try reader["senderIdQualifier"].readIfPresent() + value.senderId = try reader["senderId"].readIfPresent() + value.receiverIdQualifier = try reader["receiverIdQualifier"].readIfPresent() + value.receiverId = try reader["receiverId"].readIfPresent() + value.repetitionSeparator = try reader["repetitionSeparator"].readIfPresent() + value.acknowledgmentRequestedCode = try reader["acknowledgmentRequestedCode"].readIfPresent() + value.usageIndicatorCode = try reader["usageIndicatorCode"].readIfPresent() + return value + } +} + +extension B2biClientTypes.InputConversion { + + static func write(value: B2biClientTypes.InputConversion?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["formatOptions"].write(value.formatOptions, with: B2biClientTypes.FormatOptions.write(value:to:)) + try writer["fromFormat"].write(value.fromFormat) + } + + static func read(from reader: SmithyJSON.Reader) throws -> B2biClientTypes.InputConversion { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = B2biClientTypes.InputConversion() + value.fromFormat = try reader["fromFormat"].readIfPresent() ?? .sdkUnknown("") + value.formatOptions = try reader["formatOptions"].readIfPresent(with: B2biClientTypes.FormatOptions.read(from:)) + return value + } +} + +extension B2biClientTypes.FormatOptions { + + static func write(value: B2biClientTypes.FormatOptions?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + switch value { + case let .x12(x12): + try writer["x12"].write(x12, with: B2biClientTypes.X12Details.write(value:to:)) + case let .sdkUnknown(sdkUnknown): + try writer["sdkUnknown"].write(sdkUnknown) + } + } + + static func read(from reader: SmithyJSON.Reader) throws -> B2biClientTypes.FormatOptions { + 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 "x12": + return .x12(try reader["x12"].read(with: B2biClientTypes.X12Details.read(from:))) + default: + return .sdkUnknown(name ?? "") + } + } +} + +extension B2biClientTypes.Mapping { + + static func write(value: B2biClientTypes.Mapping?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["template"].write(value.template) + try writer["templateLanguage"].write(value.templateLanguage) + } + + static func read(from reader: SmithyJSON.Reader) throws -> B2biClientTypes.Mapping { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = B2biClientTypes.Mapping() + value.templateLanguage = try reader["templateLanguage"].readIfPresent() ?? .sdkUnknown("") + value.template = try reader["template"].readIfPresent() + return value + } +} + +extension B2biClientTypes.OutputConversion { + + static func write(value: B2biClientTypes.OutputConversion?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["formatOptions"].write(value.formatOptions, with: B2biClientTypes.FormatOptions.write(value:to:)) + try writer["toFormat"].write(value.toFormat) + } + + static func read(from reader: SmithyJSON.Reader) throws -> B2biClientTypes.OutputConversion { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = B2biClientTypes.OutputConversion() + value.toFormat = try reader["toFormat"].readIfPresent() ?? .sdkUnknown("") + value.formatOptions = try reader["formatOptions"].readIfPresent(with: B2biClientTypes.FormatOptions.read(from:)) + return value + } +} + +extension B2biClientTypes.SampleDocuments { + + static func write(value: B2biClientTypes.SampleDocuments?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["bucketName"].write(value.bucketName) + try writer["keys"].writeList(value.keys, memberWritingClosure: B2biClientTypes.SampleDocumentKeys.write(value:to:), memberNodeInfo: "member", isFlattened: false) + } + + static func read(from reader: SmithyJSON.Reader) throws -> B2biClientTypes.SampleDocuments { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = B2biClientTypes.SampleDocuments() + value.bucketName = try reader["bucketName"].readIfPresent() ?? "" + value.keys = try reader["keys"].readListIfPresent(memberReadingClosure: B2biClientTypes.SampleDocumentKeys.read(from:), memberNodeInfo: "member", isFlattened: false) ?? [] + return value + } +} + +extension B2biClientTypes.SampleDocumentKeys { + + static func write(value: B2biClientTypes.SampleDocumentKeys?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["input"].write(value.input) + try writer["output"].write(value.output) + } + + static func read(from reader: SmithyJSON.Reader) throws -> B2biClientTypes.SampleDocumentKeys { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = B2biClientTypes.SampleDocumentKeys() + value.input = try reader["input"].readIfPresent() + value.output = try reader["output"].readIfPresent() + return value + } +} + extension B2biClientTypes.CapabilitySummary { static func read(from reader: SmithyJSON.Reader) throws -> B2biClientTypes.CapabilitySummary { @@ -3968,6 +5109,7 @@ extension B2biClientTypes.PartnershipSummary { value.partnershipId = try reader["partnershipId"].readIfPresent() ?? "" value.name = try reader["name"].readIfPresent() value.capabilities = try reader["capabilities"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) + value.capabilityOptions = try reader["capabilityOptions"].readIfPresent(with: B2biClientTypes.CapabilityOptions.read(from:)) value.tradingPartnerId = try reader["tradingPartnerId"].readIfPresent() value.createdAt = try reader["createdAt"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") value.modifiedAt = try reader["modifiedAt"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) @@ -4015,15 +5157,90 @@ extension B2biClientTypes.TransformerSummary { var value = B2biClientTypes.TransformerSummary() value.transformerId = try reader["transformerId"].readIfPresent() ?? "" value.name = try reader["name"].readIfPresent() ?? "" - value.fileFormat = try reader["fileFormat"].readIfPresent() ?? .sdkUnknown("") - value.mappingTemplate = try reader["mappingTemplate"].readIfPresent() ?? "" value.status = try reader["status"].readIfPresent() ?? .sdkUnknown("") - value.ediType = try reader["ediType"].readIfPresent(with: B2biClientTypes.EdiType.read(from:)) - value.sampleDocument = try reader["sampleDocument"].readIfPresent() value.createdAt = try reader["createdAt"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) ?? SmithyTimestamps.TimestampFormatter(format: .dateTime).date(from: "1970-01-01T00:00:00Z") value.modifiedAt = try reader["modifiedAt"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.dateTime) + value.fileFormat = try reader["fileFormat"].readIfPresent() ?? .notUsed + value.mappingTemplate = try reader["mappingTemplate"].readIfPresent() ?? "NOT_USED" + value.ediType = try reader["ediType"].readIfPresent(with: B2biClientTypes.EdiType.read(from:)) + value.sampleDocument = try reader["sampleDocument"].readIfPresent() + value.inputConversion = try reader["inputConversion"].readIfPresent(with: B2biClientTypes.InputConversion.read(from:)) + value.mapping = try reader["mapping"].readIfPresent(with: B2biClientTypes.Mapping.read(from:)) + value.outputConversion = try reader["outputConversion"].readIfPresent(with: B2biClientTypes.OutputConversion.read(from:)) + value.sampleDocuments = try reader["sampleDocuments"].readIfPresent(with: B2biClientTypes.SampleDocuments.read(from:)) return value } } +extension B2biClientTypes.TemplateDetails { + + static func write(value: B2biClientTypes.TemplateDetails?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + switch value { + case let .x12(x12): + try writer["x12"].write(x12, with: B2biClientTypes.X12Details.write(value:to:)) + case let .sdkUnknown(sdkUnknown): + try writer["sdkUnknown"].write(sdkUnknown) + } + } +} + +extension B2biClientTypes.ConversionSource { + + static func write(value: B2biClientTypes.ConversionSource?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["fileFormat"].write(value.fileFormat) + try writer["inputFile"].write(value.inputFile, with: B2biClientTypes.InputFileSource.write(value:to:)) + } +} + +extension B2biClientTypes.InputFileSource { + + static func write(value: B2biClientTypes.InputFileSource?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + switch value { + case let .filecontent(filecontent): + try writer["fileContent"].write(filecontent) + case let .sdkUnknown(sdkUnknown): + try writer["sdkUnknown"].write(sdkUnknown) + } + } +} + +extension B2biClientTypes.ConversionTarget { + + static func write(value: B2biClientTypes.ConversionTarget?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + try writer["fileFormat"].write(value.fileFormat) + try writer["formatDetails"].write(value.formatDetails, with: B2biClientTypes.ConversionTargetFormatDetails.write(value:to:)) + try writer["outputSampleFile"].write(value.outputSampleFile, with: B2biClientTypes.OutputSampleFileSource.write(value:to:)) + } +} + +extension B2biClientTypes.OutputSampleFileSource { + + static func write(value: B2biClientTypes.OutputSampleFileSource?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + switch value { + case let .filelocation(filelocation): + try writer["fileLocation"].write(filelocation, with: B2biClientTypes.S3Location.write(value:to:)) + case let .sdkUnknown(sdkUnknown): + try writer["sdkUnknown"].write(sdkUnknown) + } + } +} + +extension B2biClientTypes.ConversionTargetFormatDetails { + + static func write(value: B2biClientTypes.ConversionTargetFormatDetails?, to writer: SmithyJSON.Writer) throws { + guard let value else { return } + switch value { + case let .x12(x12): + try writer["x12"].write(x12, with: B2biClientTypes.X12Details.write(value:to:)) + case let .sdkUnknown(sdkUnknown): + try writer["sdkUnknown"].write(sdkUnknown) + } + } +} + public enum B2biClientTypes {} diff --git a/Sources/Services/AWSBedrockAgentRuntime/Sources/AWSBedrockAgentRuntime/Models.swift b/Sources/Services/AWSBedrockAgentRuntime/Sources/AWSBedrockAgentRuntime/Models.swift index 86212e55588..826e9f192ea 100644 --- a/Sources/Services/AWSBedrockAgentRuntime/Sources/AWSBedrockAgentRuntime/Models.swift +++ b/Sources/Services/AWSBedrockAgentRuntime/Sources/AWSBedrockAgentRuntime/Models.swift @@ -3090,17 +3090,25 @@ extension BedrockAgentRuntimeClientTypes { /// The foundation model output from the post-processing step. public struct PostProcessingModelInvocationOutput: Swift.Sendable { + /// Provides details of the foundation model. + public var metadata: BedrockAgentRuntimeClientTypes.Metadata? /// Details about the response from the Lambda parsing of the output of the post-processing step. public var parsedResponse: BedrockAgentRuntimeClientTypes.PostProcessingParsedResponse? + /// Contains the raw output from the foundation model. + public var rawResponse: BedrockAgentRuntimeClientTypes.RawResponse? /// The unique identifier of the trace. public var traceId: Swift.String? public init( + metadata: BedrockAgentRuntimeClientTypes.Metadata? = nil, parsedResponse: BedrockAgentRuntimeClientTypes.PostProcessingParsedResponse? = nil, + rawResponse: BedrockAgentRuntimeClientTypes.RawResponse? = nil, traceId: Swift.String? = nil ) { + self.metadata = metadata self.parsedResponse = parsedResponse + self.rawResponse = rawResponse self.traceId = traceId } } @@ -3160,17 +3168,25 @@ extension BedrockAgentRuntimeClientTypes { /// The foundation model output from the pre-processing step. public struct PreProcessingModelInvocationOutput: Swift.Sendable { + /// Provides details of the foundation model. + public var metadata: BedrockAgentRuntimeClientTypes.Metadata? /// Details about the response from the Lambda parsing of the output of the pre-processing step. public var parsedResponse: BedrockAgentRuntimeClientTypes.PreProcessingParsedResponse? + /// Contains the raw output from the foundation model. + public var rawResponse: BedrockAgentRuntimeClientTypes.RawResponse? /// The unique identifier of the trace. public var traceId: Swift.String? public init( + metadata: BedrockAgentRuntimeClientTypes.Metadata? = nil, parsedResponse: BedrockAgentRuntimeClientTypes.PreProcessingParsedResponse? = nil, + rawResponse: BedrockAgentRuntimeClientTypes.RawResponse? = nil, traceId: Swift.String? = nil ) { + self.metadata = metadata self.parsedResponse = parsedResponse + self.rawResponse = rawResponse self.traceId = traceId } } @@ -3701,10 +3717,10 @@ extension BedrockAgentRuntimeClientTypes { public struct ExternalSourcesRetrieveAndGenerateConfiguration: Swift.Sendable { /// The prompt used with the external source wrapper object with the retrieveAndGenerate function. public var generationConfiguration: BedrockAgentRuntimeClientTypes.ExternalSourcesGenerationConfiguration? - /// The modelArn used with the external source wrapper object in the retrieveAndGenerate function. + /// The model Amazon Resource Name (ARN) for the external source wrapper object in the retrieveAndGenerate function. /// This member is required. public var modelArn: Swift.String? - /// The document used with the external source wrapper object in the retrieveAndGenerate function. + /// The document for the external source wrapper object in the retrieveAndGenerate function. /// This member is required. public var sources: [BedrockAgentRuntimeClientTypes.ExternalSource]? @@ -4220,11 +4236,11 @@ extension BedrockAgentRuntimeClientTypes { /// /// * [RetrieveAndGenerate request](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html#API_agent-runtime_RetrieveAndGenerate_RequestSyntax) – in the retrieveAndGenerateConfiguration field public struct RetrieveAndGenerateConfiguration: Swift.Sendable { - /// The configuration used with the external source wrapper object in the retrieveAndGenerate function. + /// The configuration for the external source wrapper object in the retrieveAndGenerate function. public var externalSourcesConfiguration: BedrockAgentRuntimeClientTypes.ExternalSourcesRetrieveAndGenerateConfiguration? - /// Contains details about the resource being queried. + /// Contains details about the knowledge base for retrieving information and generating responses. public var knowledgeBaseConfiguration: BedrockAgentRuntimeClientTypes.KnowledgeBaseRetrieveAndGenerateConfiguration? - /// The type of resource that is queried by the request. + /// The type of resource that contains your data for retrieving information and generating responses. If you choose ot use EXTERNAL_SOURCES, then currently only Claude 3 Sonnet models for knowledge bases are supported. /// This member is required. public var type: BedrockAgentRuntimeClientTypes.RetrieveAndGenerateType? @@ -5295,6 +5311,39 @@ extension BedrockAgentRuntimeClientTypes.PostProcessingModelInvocationOutput { var value = BedrockAgentRuntimeClientTypes.PostProcessingModelInvocationOutput() value.traceId = try reader["traceId"].readIfPresent() value.parsedResponse = try reader["parsedResponse"].readIfPresent(with: BedrockAgentRuntimeClientTypes.PostProcessingParsedResponse.read(from:)) + value.rawResponse = try reader["rawResponse"].readIfPresent(with: BedrockAgentRuntimeClientTypes.RawResponse.read(from:)) + value.metadata = try reader["metadata"].readIfPresent(with: BedrockAgentRuntimeClientTypes.Metadata.read(from:)) + return value + } +} + +extension BedrockAgentRuntimeClientTypes.Metadata { + + static func read(from reader: SmithyJSON.Reader) throws -> BedrockAgentRuntimeClientTypes.Metadata { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = BedrockAgentRuntimeClientTypes.Metadata() + value.usage = try reader["usage"].readIfPresent(with: BedrockAgentRuntimeClientTypes.Usage.read(from:)) + return value + } +} + +extension BedrockAgentRuntimeClientTypes.Usage { + + static func read(from reader: SmithyJSON.Reader) throws -> BedrockAgentRuntimeClientTypes.Usage { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = BedrockAgentRuntimeClientTypes.Usage() + value.inputTokens = try reader["inputTokens"].readIfPresent() + value.outputTokens = try reader["outputTokens"].readIfPresent() + return value + } +} + +extension BedrockAgentRuntimeClientTypes.RawResponse { + + static func read(from reader: SmithyJSON.Reader) throws -> BedrockAgentRuntimeClientTypes.RawResponse { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = BedrockAgentRuntimeClientTypes.RawResponse() + value.content = try reader["content"].readIfPresent() return value } } @@ -5373,37 +5422,6 @@ extension BedrockAgentRuntimeClientTypes.OrchestrationModelInvocationOutput { } } -extension BedrockAgentRuntimeClientTypes.Metadata { - - static func read(from reader: SmithyJSON.Reader) throws -> BedrockAgentRuntimeClientTypes.Metadata { - guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } - var value = BedrockAgentRuntimeClientTypes.Metadata() - value.usage = try reader["usage"].readIfPresent(with: BedrockAgentRuntimeClientTypes.Usage.read(from:)) - return value - } -} - -extension BedrockAgentRuntimeClientTypes.Usage { - - static func read(from reader: SmithyJSON.Reader) throws -> BedrockAgentRuntimeClientTypes.Usage { - guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } - var value = BedrockAgentRuntimeClientTypes.Usage() - value.inputTokens = try reader["inputTokens"].readIfPresent() - value.outputTokens = try reader["outputTokens"].readIfPresent() - return value - } -} - -extension BedrockAgentRuntimeClientTypes.RawResponse { - - static func read(from reader: SmithyJSON.Reader) throws -> BedrockAgentRuntimeClientTypes.RawResponse { - guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } - var value = BedrockAgentRuntimeClientTypes.RawResponse() - value.content = try reader["content"].readIfPresent() - return value - } -} - extension BedrockAgentRuntimeClientTypes.Observation { static func read(from reader: SmithyJSON.Reader) throws -> BedrockAgentRuntimeClientTypes.Observation { @@ -5658,6 +5676,8 @@ extension BedrockAgentRuntimeClientTypes.PreProcessingModelInvocationOutput { var value = BedrockAgentRuntimeClientTypes.PreProcessingModelInvocationOutput() value.traceId = try reader["traceId"].readIfPresent() value.parsedResponse = try reader["parsedResponse"].readIfPresent(with: BedrockAgentRuntimeClientTypes.PreProcessingParsedResponse.read(from:)) + value.rawResponse = try reader["rawResponse"].readIfPresent(with: BedrockAgentRuntimeClientTypes.RawResponse.read(from:)) + value.metadata = try reader["metadata"].readIfPresent(with: BedrockAgentRuntimeClientTypes.Metadata.read(from:)) return value } } diff --git a/Sources/Services/AWSBedrockRuntime/Sources/AWSBedrockRuntime/Models.swift b/Sources/Services/AWSBedrockRuntime/Sources/AWSBedrockRuntime/Models.swift index c6139233c2e..4808c6542a2 100644 --- a/Sources/Services/AWSBedrockRuntime/Sources/AWSBedrockRuntime/Models.swift +++ b/Sources/Services/AWSBedrockRuntime/Sources/AWSBedrockRuntime/Models.swift @@ -391,6 +391,41 @@ extension BedrockRuntimeClientTypes { } } +extension BedrockRuntimeClientTypes { + + public enum GuardrailContentFilterStrength: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case high + case low + case medium + case `none` + case sdkUnknown(Swift.String) + + public static var allCases: [GuardrailContentFilterStrength] { + return [ + .high, + .low, + .medium, + .none + ] + } + + 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 .high: return "HIGH" + case .low: return "LOW" + case .medium: return "MEDIUM" + case .none: return "NONE" + case let .sdkUnknown(s): return s + } + } + } +} + extension BedrockRuntimeClientTypes { public enum GuardrailContentFilterType: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { @@ -442,6 +477,8 @@ extension BedrockRuntimeClientTypes { /// The guardrail confidence. /// This member is required. public var confidence: BedrockRuntimeClientTypes.GuardrailContentFilterConfidence? + /// The filter strength setting for the guardrail content filter. + public var filterStrength: BedrockRuntimeClientTypes.GuardrailContentFilterStrength? /// The guardrail type. /// This member is required. public var type: BedrockRuntimeClientTypes.GuardrailContentFilterType? @@ -449,11 +486,13 @@ extension BedrockRuntimeClientTypes { public init( action: BedrockRuntimeClientTypes.GuardrailContentPolicyAction? = nil, confidence: BedrockRuntimeClientTypes.GuardrailContentFilterConfidence? = nil, + filterStrength: BedrockRuntimeClientTypes.GuardrailContentFilterStrength? = nil, type: BedrockRuntimeClientTypes.GuardrailContentFilterType? = nil ) { self.action = action self.confidence = confidence + self.filterStrength = filterStrength self.type = type } } @@ -582,6 +621,108 @@ extension BedrockRuntimeClientTypes { } } +extension BedrockRuntimeClientTypes { + + /// The guardrail coverage for the text characters. + public struct GuardrailTextCharactersCoverage: Swift.Sendable { + /// The text characters that were guarded by the guardrail coverage. + public var guarded: Swift.Int? + /// The total text characters by the guardrail coverage. + public var total: Swift.Int? + + public init( + guarded: Swift.Int? = nil, + total: Swift.Int? = nil + ) + { + self.guarded = guarded + self.total = total + } + } +} + +extension BedrockRuntimeClientTypes { + + /// The action of the guardrail coverage details. + public struct GuardrailCoverage: Swift.Sendable { + /// The text characters of the guardrail coverage details. + public var textCharacters: BedrockRuntimeClientTypes.GuardrailTextCharactersCoverage? + + public init( + textCharacters: BedrockRuntimeClientTypes.GuardrailTextCharactersCoverage? = nil + ) + { + self.textCharacters = textCharacters + } + } +} + +extension BedrockRuntimeClientTypes { + + /// The details on the use of the guardrail. + public struct GuardrailUsage: Swift.Sendable { + /// The content policy units processed by the guardrail. + /// This member is required. + public var contentPolicyUnits: Swift.Int? + /// The contextual grounding policy units processed by the guardrail. + /// This member is required. + public var contextualGroundingPolicyUnits: Swift.Int? + /// The sensitive information policy free units processed by the guardrail. + /// This member is required. + public var sensitiveInformationPolicyFreeUnits: Swift.Int? + /// The sensitive information policy units processed by the guardrail. + /// This member is required. + public var sensitiveInformationPolicyUnits: Swift.Int? + /// The topic policy units processed by the guardrail. + /// This member is required. + public var topicPolicyUnits: Swift.Int? + /// The word policy units processed by the guardrail. + /// This member is required. + public var wordPolicyUnits: Swift.Int? + + public init( + contentPolicyUnits: Swift.Int? = nil, + contextualGroundingPolicyUnits: Swift.Int? = nil, + sensitiveInformationPolicyFreeUnits: Swift.Int? = nil, + sensitiveInformationPolicyUnits: Swift.Int? = nil, + topicPolicyUnits: Swift.Int? = nil, + wordPolicyUnits: Swift.Int? = nil + ) + { + self.contentPolicyUnits = contentPolicyUnits + self.contextualGroundingPolicyUnits = contextualGroundingPolicyUnits + self.sensitiveInformationPolicyFreeUnits = sensitiveInformationPolicyFreeUnits + self.sensitiveInformationPolicyUnits = sensitiveInformationPolicyUnits + self.topicPolicyUnits = topicPolicyUnits + self.wordPolicyUnits = wordPolicyUnits + } + } +} + +extension BedrockRuntimeClientTypes { + + /// The invocation metrics for the guardrail. + public struct GuardrailInvocationMetrics: Swift.Sendable { + /// The coverage details for the guardrail invocation metrics. + public var guardrailCoverage: BedrockRuntimeClientTypes.GuardrailCoverage? + /// The processing latency details for the guardrail invocation metrics. + public var guardrailProcessingLatency: Swift.Int? + /// The usage details for the guardrail invocation metrics. + public var usage: BedrockRuntimeClientTypes.GuardrailUsage? + + public init( + guardrailCoverage: BedrockRuntimeClientTypes.GuardrailCoverage? = nil, + guardrailProcessingLatency: Swift.Int? = nil, + usage: BedrockRuntimeClientTypes.GuardrailUsage? = nil + ) + { + self.guardrailCoverage = guardrailCoverage + self.guardrailProcessingLatency = guardrailProcessingLatency + self.usage = usage + } + } +} + extension BedrockRuntimeClientTypes { public enum GuardrailSensitiveInformationPolicyAction: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { @@ -1032,6 +1173,8 @@ extension BedrockRuntimeClientTypes { public var contentPolicy: BedrockRuntimeClientTypes.GuardrailContentPolicyAssessment? /// The contextual grounding policy used for the guardrail assessment. public var contextualGroundingPolicy: BedrockRuntimeClientTypes.GuardrailContextualGroundingPolicyAssessment? + /// The invocation metrics for the guardrail assessment. + public var invocationMetrics: BedrockRuntimeClientTypes.GuardrailInvocationMetrics? /// The sensitive information policy. public var sensitiveInformationPolicy: BedrockRuntimeClientTypes.GuardrailSensitiveInformationPolicyAssessment? /// The topic policy. @@ -1042,6 +1185,7 @@ extension BedrockRuntimeClientTypes { public init( contentPolicy: BedrockRuntimeClientTypes.GuardrailContentPolicyAssessment? = nil, contextualGroundingPolicy: BedrockRuntimeClientTypes.GuardrailContextualGroundingPolicyAssessment? = nil, + invocationMetrics: BedrockRuntimeClientTypes.GuardrailInvocationMetrics? = nil, sensitiveInformationPolicy: BedrockRuntimeClientTypes.GuardrailSensitiveInformationPolicyAssessment? = nil, topicPolicy: BedrockRuntimeClientTypes.GuardrailTopicPolicyAssessment? = nil, wordPolicy: BedrockRuntimeClientTypes.GuardrailWordPolicyAssessment? = nil @@ -1049,6 +1193,7 @@ extension BedrockRuntimeClientTypes { { self.contentPolicy = contentPolicy self.contextualGroundingPolicy = contextualGroundingPolicy + self.invocationMetrics = invocationMetrics self.sensitiveInformationPolicy = sensitiveInformationPolicy self.topicPolicy = topicPolicy self.wordPolicy = wordPolicy @@ -1072,48 +1217,6 @@ extension BedrockRuntimeClientTypes { } } -extension BedrockRuntimeClientTypes { - - /// The details on the use of the guardrail. - public struct GuardrailUsage: Swift.Sendable { - /// The content policy units processed by the guardrail. - /// This member is required. - public var contentPolicyUnits: Swift.Int? - /// The contextual grounding policy units processed by the guardrail. - /// This member is required. - public var contextualGroundingPolicyUnits: Swift.Int? - /// The sensitive information policy free units processed by the guardrail. - /// This member is required. - public var sensitiveInformationPolicyFreeUnits: Swift.Int? - /// The sensitive information policy units processed by the guardrail. - /// This member is required. - public var sensitiveInformationPolicyUnits: Swift.Int? - /// The topic policy units processed by the guardrail. - /// This member is required. - public var topicPolicyUnits: Swift.Int? - /// The word policy units processed by the guardrail. - /// This member is required. - public var wordPolicyUnits: Swift.Int? - - public init( - contentPolicyUnits: Swift.Int? = nil, - contextualGroundingPolicyUnits: Swift.Int? = nil, - sensitiveInformationPolicyFreeUnits: Swift.Int? = nil, - sensitiveInformationPolicyUnits: Swift.Int? = nil, - topicPolicyUnits: Swift.Int? = nil, - wordPolicyUnits: Swift.Int? = nil - ) - { - self.contentPolicyUnits = contentPolicyUnits - self.contextualGroundingPolicyUnits = contextualGroundingPolicyUnits - self.sensitiveInformationPolicyFreeUnits = sensitiveInformationPolicyFreeUnits - self.sensitiveInformationPolicyUnits = sensitiveInformationPolicyUnits - self.topicPolicyUnits = topicPolicyUnits - self.wordPolicyUnits = wordPolicyUnits - } - } -} - public struct ApplyGuardrailOutput: Swift.Sendable { /// The action taken in the response from the guardrail. /// This member is required. @@ -1121,6 +1224,8 @@ public struct ApplyGuardrailOutput: Swift.Sendable { /// The assessment details in the response from the guardrail. /// This member is required. public var assessments: [BedrockRuntimeClientTypes.GuardrailAssessment]? + /// The guardrail coverage details in the apply guardrail response. + public var guardrailCoverage: BedrockRuntimeClientTypes.GuardrailCoverage? /// The output details in the response from the guardrail. /// This member is required. public var outputs: [BedrockRuntimeClientTypes.GuardrailOutputContent]? @@ -1131,12 +1236,14 @@ public struct ApplyGuardrailOutput: Swift.Sendable { public init( action: BedrockRuntimeClientTypes.GuardrailAction? = nil, assessments: [BedrockRuntimeClientTypes.GuardrailAssessment]? = nil, + guardrailCoverage: BedrockRuntimeClientTypes.GuardrailCoverage? = nil, outputs: [BedrockRuntimeClientTypes.GuardrailOutputContent]? = nil, usage: BedrockRuntimeClientTypes.GuardrailUsage? = nil ) { self.action = action self.assessments = assessments + self.guardrailCoverage = guardrailCoverage self.outputs = outputs self.usage = usage } @@ -2860,6 +2967,7 @@ extension ApplyGuardrailOutput { var value = ApplyGuardrailOutput() value.action = try reader["action"].readIfPresent() ?? .sdkUnknown("") value.assessments = try reader["assessments"].readListIfPresent(memberReadingClosure: BedrockRuntimeClientTypes.GuardrailAssessment.read(from:), memberNodeInfo: "member", isFlattened: false) ?? [] + value.guardrailCoverage = try reader["guardrailCoverage"].readIfPresent(with: BedrockRuntimeClientTypes.GuardrailCoverage.read(from:)) value.outputs = try reader["outputs"].readListIfPresent(memberReadingClosure: BedrockRuntimeClientTypes.GuardrailOutputContent.read(from:), memberNodeInfo: "member", isFlattened: false) ?? [] value.usage = try reader["usage"].readIfPresent(with: BedrockRuntimeClientTypes.GuardrailUsage.read(from:)) return value @@ -3335,6 +3443,40 @@ extension BedrockRuntimeClientTypes.GuardrailAssessment { value.wordPolicy = try reader["wordPolicy"].readIfPresent(with: BedrockRuntimeClientTypes.GuardrailWordPolicyAssessment.read(from:)) value.sensitiveInformationPolicy = try reader["sensitiveInformationPolicy"].readIfPresent(with: BedrockRuntimeClientTypes.GuardrailSensitiveInformationPolicyAssessment.read(from:)) value.contextualGroundingPolicy = try reader["contextualGroundingPolicy"].readIfPresent(with: BedrockRuntimeClientTypes.GuardrailContextualGroundingPolicyAssessment.read(from:)) + value.invocationMetrics = try reader["invocationMetrics"].readIfPresent(with: BedrockRuntimeClientTypes.GuardrailInvocationMetrics.read(from:)) + return value + } +} + +extension BedrockRuntimeClientTypes.GuardrailInvocationMetrics { + + static func read(from reader: SmithyJSON.Reader) throws -> BedrockRuntimeClientTypes.GuardrailInvocationMetrics { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = BedrockRuntimeClientTypes.GuardrailInvocationMetrics() + value.guardrailProcessingLatency = try reader["guardrailProcessingLatency"].readIfPresent() + value.usage = try reader["usage"].readIfPresent(with: BedrockRuntimeClientTypes.GuardrailUsage.read(from:)) + value.guardrailCoverage = try reader["guardrailCoverage"].readIfPresent(with: BedrockRuntimeClientTypes.GuardrailCoverage.read(from:)) + return value + } +} + +extension BedrockRuntimeClientTypes.GuardrailCoverage { + + static func read(from reader: SmithyJSON.Reader) throws -> BedrockRuntimeClientTypes.GuardrailCoverage { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = BedrockRuntimeClientTypes.GuardrailCoverage() + value.textCharacters = try reader["textCharacters"].readIfPresent(with: BedrockRuntimeClientTypes.GuardrailTextCharactersCoverage.read(from:)) + return value + } +} + +extension BedrockRuntimeClientTypes.GuardrailTextCharactersCoverage { + + static func read(from reader: SmithyJSON.Reader) throws -> BedrockRuntimeClientTypes.GuardrailTextCharactersCoverage { + guard reader.hasContent else { throw SmithyReadWrite.ReaderError.requiredValueNotPresent } + var value = BedrockRuntimeClientTypes.GuardrailTextCharactersCoverage() + value.guarded = try reader["guarded"].readIfPresent() + value.total = try reader["total"].readIfPresent() return value } } @@ -3449,6 +3591,7 @@ extension BedrockRuntimeClientTypes.GuardrailContentFilter { var value = BedrockRuntimeClientTypes.GuardrailContentFilter() value.type = try reader["type"].readIfPresent() ?? .sdkUnknown("") value.confidence = try reader["confidence"].readIfPresent() ?? .sdkUnknown("") + value.filterStrength = try reader["filterStrength"].readIfPresent() value.action = try reader["action"].readIfPresent() ?? .sdkUnknown("") return value } diff --git a/Sources/Services/AWSIVSRealTime/Sources/AWSIVSRealTime/Models.swift b/Sources/Services/AWSIVSRealTime/Sources/AWSIVSRealTime/Models.swift index 903d13bb5e2..3964a9e5fcf 100644 --- a/Sources/Services/AWSIVSRealTime/Sources/AWSIVSRealTime/Models.swift +++ b/Sources/Services/AWSIVSRealTime/Sources/AWSIVSRealTime/Models.swift @@ -212,9 +212,9 @@ extension IVSRealTimeClientTypes { public var bitrate: Swift.Int? /// Video frame rate, in fps. Default: 30. public var framerate: Swift.Float? - /// Video-resolution height. Note that the maximum value is determined by width times height, such that the maximum total pixels is 2073600 (1920x1080 or 1080x1920). Default: 720. + /// Video-resolution height. This must be an even number. Note that the maximum value is determined by width times height, such that the maximum total pixels is 2073600 (1920x1080 or 1080x1920). Default: 720. public var height: Swift.Int? - /// Video-resolution width. Note that the maximum value is determined by width times height, such that the maximum total pixels is 2073600 (1920x1080 or 1080x1920). Default: 1280. + /// Video-resolution width. This must be an even number. Note that the maximum value is determined by width times height, such that the maximum total pixels is 2073600 (1920x1080 or 1080x1920). Default: 1280. public var width: Swift.Int? public init( @@ -2288,8 +2288,11 @@ extension IVSRealTimeClientTypes { public enum EventErrorCode: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { case bitrateExceeded + case bFramePresent case insufficientCapabilities + case internalServerException case invalidAudioCodec + case invalidInput case invalidProtocol case invalidStreamKey case invalidVideoCodec @@ -2303,8 +2306,11 @@ extension IVSRealTimeClientTypes { public static var allCases: [EventErrorCode] { return [ .bitrateExceeded, + .bFramePresent, .insufficientCapabilities, + .internalServerException, .invalidAudioCodec, + .invalidInput, .invalidProtocol, .invalidStreamKey, .invalidVideoCodec, @@ -2324,8 +2330,11 @@ extension IVSRealTimeClientTypes { public var rawValue: Swift.String { switch self { case .bitrateExceeded: return "BITRATE_EXCEEDED" + case .bFramePresent: return "B_FRAME_PRESENT" case .insufficientCapabilities: return "INSUFFICIENT_CAPABILITIES" + case .internalServerException: return "INTERNAL_SERVER_EXCEPTION" case .invalidAudioCodec: return "INVALID_AUDIO_CODEC" + case .invalidInput: return "INVALID_INPUT" case .invalidProtocol: return "INVALID_PROTOCOL" case .invalidStreamKey: return "INVALID_STREAM_KEY" case .invalidVideoCodec: return "INVALID_VIDEO_CODEC" @@ -2394,7 +2403,35 @@ extension IVSRealTimeClientTypes { /// An occurrence during a stage session. public struct Event: Swift.Sendable { - /// If the event is an error event, the error code is provided to give insight into the specific error that occurred. If the event is not an error event, this field is null. INSUFFICIENT_CAPABILITIES indicates that the participant tried to take an action that the participant’s token is not allowed to do. For more information about participant capabilities, see the capabilities field in [CreateParticipantToken]. QUOTA_EXCEEDED indicates that the number of participants who want to publish/subscribe to a stage exceeds the quota; for more information, see [Service Quotas](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/service-quotas.html). PUBLISHER_NOT_FOUND indicates that the participant tried to subscribe to a publisher that doesn’t exist. + /// If the event is an error event, the error code is provided to give insight into the specific error that occurred. If the event is not an error event, this field is null. + /// + /// * B_FRAME_PRESENT — The participant's stream includes B-frames. For details, see [ IVS RTMP Publishing](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/rt-rtmp-publishing.html). + /// + /// * BITRATE_EXCEEDED — The participant exceeded the maximum supported bitrate. For details, see [ Service Quotas](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/service-quotas.html). + /// + /// * INSUFFICIENT_CAPABILITIES — The participant tried to take an action that the participant’s token is not allowed to do. For details on participant capabilities, see the capabilities field in [CreateParticipantToken]. + /// + /// * INTERNAL_SERVER_EXCEPTION — The participant failed to publish to the stage due to an internal server error. + /// + /// * INVALID_AUDIO_CODEC — The participant is using an invalid audio codec. For details, see [ Stream Ingest](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/rt-stream-ingest.html). + /// + /// * INVALID_INPUT — The participant is using an invalid input stream. + /// + /// * INVALID_PROTOCOL — The participant's IngestConfiguration resource is configured for RTMPS but they tried streaming with RTMP. For details, see [ IVS RTMP Publishing](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/rt-rtmp-publishing.html). + /// + /// * INVALID_STREAM_KEY — The participant is using an invalid stream key. For details, see [ IVS RTMP Publishing](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/rt-rtmp-publishing.html). + /// + /// * INVALID_VIDEO_CODEC — The participant is using an invalid video codec. For details, see [ Stream Ingest](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/rt-stream-ingest.html). + /// + /// * PUBLISHER_NOT_FOUND — The participant tried to subscribe to a publisher that doesn’t exist. + /// + /// * QUOTA_EXCEEDED — The number of participants who want to publish/subscribe to a stage exceeds the quota. For details, see [ Service Quotas](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/service-quotas.html). + /// + /// * RESOLUTION_EXCEEDED — The participant exceeded the maximum supported resolution. For details, see [ Service Quotas](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/service-quotas.html). + /// + /// * REUSE_OF_STREAM_KEY — The participant tried to use a stream key that is associated with another active stage session. + /// + /// * STREAM_DURATION_EXCEEDED — The participant exceeded the maximum allowed stream duration. For details, see [ Service Quotas](https://docs.aws.amazon.com/ivs/latest/RealTimeUserGuide/service-quotas.html). public var errorCode: IVSRealTimeClientTypes.EventErrorCode? /// ISO 8601 timestamp (returned as a string) for when the event occurred. public var eventTime: Foundation.Date? diff --git a/Sources/Services/AWSIotDeviceAdvisor/Sources/AWSIotDeviceAdvisor/IotDeviceAdvisorClient.swift b/Sources/Services/AWSIotDeviceAdvisor/Sources/AWSIotDeviceAdvisor/IotDeviceAdvisorClient.swift index 29027885d46..6bfbe7bd670 100644 --- a/Sources/Services/AWSIotDeviceAdvisor/Sources/AWSIotDeviceAdvisor/IotDeviceAdvisorClient.swift +++ b/Sources/Services/AWSIotDeviceAdvisor/Sources/AWSIotDeviceAdvisor/IotDeviceAdvisorClient.swift @@ -50,6 +50,7 @@ import struct ClientRuntime.AuthSchemeMiddleware 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 @@ -233,6 +234,7 @@ extension IotDeviceAdvisorClient { config.httpInterceptorProviders.forEach { provider in builder.interceptors.add(provider.create()) } + builder.interceptors.add(ClientRuntime.IdempotencyTokenMiddleware(keyPath: \.clientToken)) builder.interceptors.add(ClientRuntime.URLPathMiddleware(CreateSuiteDefinitionInput.urlPathProvider(_:))) builder.interceptors.add(ClientRuntime.URLHostMiddleware()) builder.interceptors.add(ClientRuntime.ContentTypeMiddleware(contentType: "application/json")) diff --git a/Sources/Services/AWSIotDeviceAdvisor/Sources/AWSIotDeviceAdvisor/Models.swift b/Sources/Services/AWSIotDeviceAdvisor/Sources/AWSIotDeviceAdvisor/Models.swift index 2e5245c3594..ec78e0d6a70 100644 --- a/Sources/Services/AWSIotDeviceAdvisor/Sources/AWSIotDeviceAdvisor/Models.swift +++ b/Sources/Services/AWSIotDeviceAdvisor/Sources/AWSIotDeviceAdvisor/Models.swift @@ -234,6 +234,8 @@ extension IotDeviceAdvisorClientTypes { } public struct CreateSuiteDefinitionInput: Swift.Sendable { + /// The client token for the test suite definition creation. This token is used for tracking test suite definition creation using retries and obtaining its status. This parameter is optional. + public var clientToken: Swift.String? /// Creates a Device Advisor test suite with suite definition configuration. /// This member is required. public var suiteDefinitionConfiguration: IotDeviceAdvisorClientTypes.SuiteDefinitionConfiguration? @@ -241,10 +243,12 @@ public struct CreateSuiteDefinitionInput: Swift.Sendable { public var tags: [Swift.String: Swift.String]? public init( + clientToken: Swift.String? = nil, suiteDefinitionConfiguration: IotDeviceAdvisorClientTypes.SuiteDefinitionConfiguration? = nil, tags: [Swift.String: Swift.String]? = nil ) { + self.clientToken = clientToken self.suiteDefinitionConfiguration = suiteDefinitionConfiguration self.tags = tags } @@ -1465,6 +1469,7 @@ extension CreateSuiteDefinitionInput { static func write(value: CreateSuiteDefinitionInput?, to writer: SmithyJSON.Writer) throws { guard let value else { return } + try writer["clientToken"].write(value.clientToken) try writer["suiteDefinitionConfiguration"].write(value.suiteDefinitionConfiguration, with: IotDeviceAdvisorClientTypes.SuiteDefinitionConfiguration.write(value:to:)) try writer["tags"].writeMap(value.tags, valueWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), keyNodeInfo: "key", valueNodeInfo: "value", isFlattened: false) } diff --git a/Sources/Services/AWSS3/Sources/AWSS3/Models.swift b/Sources/Services/AWSS3/Sources/AWSS3/Models.swift index 5bfc8b7f278..3ce65aa4f0f 100644 --- a/Sources/Services/AWSS3/Sources/AWSS3/Models.swift +++ b/Sources/Services/AWSS3/Sources/AWSS3/Models.swift @@ -175,11 +175,6 @@ public struct PutBucketInventoryConfigurationOutput: Swift.Sendable { public init() { } } -public struct PutBucketLifecycleConfigurationOutput: Swift.Sendable { - - public init() { } -} - public struct PutBucketLoggingOutput: Swift.Sendable { public init() { } @@ -660,9 +655,9 @@ extension S3ClientTypes { /// Details of the parts that were uploaded. public struct CompletedPart: Swift.Sendable { - /// The base64-encoded, 32-bit CRC32 checksum of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) in the Amazon S3 User Guide. + /// The base64-encoded, 32-bit CRC-32 checksum of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) in the Amazon S3 User Guide. public var checksumCRC32: Swift.String? - /// The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) in the Amazon S3 User Guide. + /// The base64-encoded, 32-bit CRC-32C checksum of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) in the Amazon S3 User Guide. public var checksumCRC32C: Swift.String? /// The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded with the object. When you use the API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) in the Amazon S3 User Guide. public var checksumSHA1: Swift.String? @@ -716,9 +711,9 @@ public struct CompleteMultipartUploadInput: Swift.Sendable { /// Name of the bucket to which the multipart upload was initiated. Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format Bucket_name.s3express-az_id.region.amazonaws.com. Path-style requests are not supported. Directory bucket names must be unique in the chosen Availability Zone. Bucket names must follow the format bucket_base_name--az-id--x-s3 (for example, DOC-EXAMPLE-BUCKET--usw2-az1--x-s3). For information about bucket naming restrictions, see [Directory bucket naming rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html) in the Amazon S3 User Guide. Access points - When you use this action with an access point, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see [Using access points](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) in the Amazon S3 User Guide. Access points and Object Lambda access points are not supported by directory buckets. S3 on Outposts - When you use this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts access point ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see [What is S3 on Outposts?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html) in the Amazon S3 User Guide. /// This member is required. public var bucket: Swift.String? - /// This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the base64-encoded, 32-bit CRC32 checksum of the object. For more information, see [Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) in the Amazon S3 User Guide. + /// This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the base64-encoded, 32-bit CRC-32 checksum of the object. For more information, see [Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) in the Amazon S3 User Guide. public var checksumCRC32: Swift.String? - /// This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the base64-encoded, 32-bit CRC32C checksum of the object. For more information, see [Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) in the Amazon S3 User Guide. + /// This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the base64-encoded, 32-bit CRC-32C checksum of the object. For more information, see [Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) in the Amazon S3 User Guide. public var checksumCRC32C: Swift.String? /// This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the base64-encoded, 160-bit SHA-1 digest of the object. For more information, see [Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) in the Amazon S3 User Guide. public var checksumSHA1: Swift.String? @@ -821,9 +816,9 @@ public struct CompleteMultipartUploadOutput: Swift.Sendable { public var bucket: Swift.String? /// Indicates whether the multipart upload uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS). public var bucketKeyEnabled: Swift.Bool? - /// The base64-encoded, 32-bit CRC32 checksum of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) in the Amazon S3 User Guide. + /// The base64-encoded, 32-bit CRC-32 checksum of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) in the Amazon S3 User Guide. public var checksumCRC32: Swift.String? - /// The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) in the Amazon S3 User Guide. + /// The base64-encoded, 32-bit CRC-32C checksum of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) in the Amazon S3 User Guide. public var checksumCRC32C: Swift.String? /// The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded with the object. When you use the API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) in the Amazon S3 User Guide. public var checksumSHA1: Swift.String? @@ -1445,9 +1440,9 @@ extension S3ClientTypes { /// Container for all response elements. public struct CopyObjectResult: Swift.Sendable { - /// The base64-encoded, 32-bit CRC32 checksum of the object. This will only be present if it was uploaded with the object. For more information, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) in the Amazon S3 User Guide. + /// The base64-encoded, 32-bit CRC-32 checksum of the object. This will only be present if it was uploaded with the object. For more information, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) in the Amazon S3 User Guide. public var checksumCRC32: Swift.String? - /// The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded with the object. For more information, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) in the Amazon S3 User Guide. + /// The base64-encoded, 32-bit CRC-32C checksum of the object. This will only be present if it was uploaded with the object. For more information, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) in the Amazon S3 User Guide. public var checksumCRC32C: Swift.String? /// The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded with the object. For more information, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) in the Amazon S3 User Guide. public var checksumSHA1: Swift.String? @@ -5352,15 +5347,55 @@ extension S3ClientTypes { } } +extension S3ClientTypes { + + public enum TransitionDefaultMinimumObjectSize: Swift.Sendable, Swift.Equatable, Swift.RawRepresentable, Swift.CaseIterable, Swift.Hashable { + case allStorageClasses128k + case variesByStorageClass + case sdkUnknown(Swift.String) + + public static var allCases: [TransitionDefaultMinimumObjectSize] { + return [ + .allStorageClasses128k, + .variesByStorageClass + ] + } + + 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 .allStorageClasses128k: return "all_storage_classes_128K" + case .variesByStorageClass: return "varies_by_storage_class" + case let .sdkUnknown(s): return s + } + } + } +} + public struct GetBucketLifecycleConfigurationOutput: Swift.Sendable { /// Container for a lifecycle rule. public var rules: [S3ClientTypes.LifecycleRule]? + /// Indicates which default minimum object size behavior is applied to the lifecycle configuration. + /// + /// * all_storage_classes_128K - Objects smaller than 128 KB will not transition to any storage class by default. + /// + /// * varies_by_storage_class - Objects smaller than 128 KB will transition to Glacier Flexible Retrieval or Glacier Deep Archive storage classes. By default, all other storage classes will prevent transitions smaller than 128 KB. + /// + /// + /// To customize the minimum object size for any transition you can add a filter that specifies a custom ObjectSizeGreaterThan or ObjectSizeLessThan in the body of your transition rule. Custom filters always take precedence over the default transition behavior. + public var transitionDefaultMinimumObjectSize: S3ClientTypes.TransitionDefaultMinimumObjectSize? public init( - rules: [S3ClientTypes.LifecycleRule]? = nil + rules: [S3ClientTypes.LifecycleRule]? = nil, + transitionDefaultMinimumObjectSize: S3ClientTypes.TransitionDefaultMinimumObjectSize? = nil ) { self.rules = rules + self.transitionDefaultMinimumObjectSize = transitionDefaultMinimumObjectSize } } @@ -7314,9 +7349,9 @@ public struct GetObjectOutput: Swift.Sendable { public var bucketKeyEnabled: Swift.Bool? /// Specifies caching behavior along the request/reply chain. public var cacheControl: Swift.String? - /// The base64-encoded, 32-bit CRC32 checksum of the object. This will only be present if it was uploaded with the object. For more information, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) in the Amazon S3 User Guide. + /// The base64-encoded, 32-bit CRC-32 checksum of the object. This will only be present if it was uploaded with the object. For more information, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) in the Amazon S3 User Guide. public var checksumCRC32: Swift.String? - /// The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded with the object. For more information, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) in the Amazon S3 User Guide. + /// The base64-encoded, 32-bit CRC-32C checksum of the object. This will only be present if it was uploaded with the object. For more information, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) in the Amazon S3 User Guide. public var checksumCRC32C: Swift.String? /// The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded with the object. For more information, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) in the Amazon S3 User Guide. public var checksumSHA1: Swift.String? @@ -7618,9 +7653,9 @@ extension S3ClientTypes { /// Contains all the possible checksum or digest values for an object. public struct Checksum: Swift.Sendable { - /// The base64-encoded, 32-bit CRC32 checksum of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) in the Amazon S3 User Guide. + /// The base64-encoded, 32-bit CRC-32 checksum of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) in the Amazon S3 User Guide. public var checksumCRC32: Swift.String? - /// The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) in the Amazon S3 User Guide. + /// The base64-encoded, 32-bit CRC-32C checksum of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) in the Amazon S3 User Guide. public var checksumCRC32C: Swift.String? /// The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded with the object. When you use the API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) in the Amazon S3 User Guide. public var checksumSHA1: Swift.String? @@ -7646,9 +7681,9 @@ extension S3ClientTypes { /// A container for elements related to an individual part. public struct ObjectPart: Swift.Sendable { - /// This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the base64-encoded, 32-bit CRC32 checksum of the object. For more information, see [Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) in the Amazon S3 User Guide. + /// This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the base64-encoded, 32-bit CRC-32 checksum of the object. For more information, see [Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) in the Amazon S3 User Guide. public var checksumCRC32: Swift.String? - /// The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) in the Amazon S3 User Guide. + /// The base64-encoded, 32-bit CRC-32C checksum of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) in the Amazon S3 User Guide. public var checksumCRC32C: Swift.String? /// The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded with the object. When you use the API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) in the Amazon S3 User Guide. public var checksumSHA1: Swift.String? @@ -8405,9 +8440,9 @@ public struct HeadObjectOutput: Swift.Sendable { public var bucketKeyEnabled: Swift.Bool? /// Specifies caching behavior along the request/reply chain. public var cacheControl: Swift.String? - /// The base64-encoded, 32-bit CRC32 checksum of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) in the Amazon S3 User Guide. + /// The base64-encoded, 32-bit CRC-32 checksum of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) in the Amazon S3 User Guide. public var checksumCRC32: Swift.String? - /// The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) in the Amazon S3 User Guide. + /// The base64-encoded, 32-bit CRC-32C checksum of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) in the Amazon S3 User Guide. public var checksumCRC32C: Swift.String? /// The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded with the object. When you use the API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) in the Amazon S3 User Guide. public var checksumSHA1: Swift.String? @@ -9686,9 +9721,9 @@ extension S3ClientTypes { /// Container for elements related to a part. public struct Part: Swift.Sendable { - /// This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the base64-encoded, 32-bit CRC32 checksum of the object. For more information, see [Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) in the Amazon S3 User Guide. + /// This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the base64-encoded, 32-bit CRC-32 checksum of the object. For more information, see [Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) in the Amazon S3 User Guide. public var checksumCRC32: Swift.String? - /// The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) in the Amazon S3 User Guide. + /// The base64-encoded, 32-bit CRC-32C checksum of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) in the Amazon S3 User Guide. public var checksumCRC32C: Swift.String? /// The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded with the object. When you use the API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) in the Amazon S3 User Guide. public var checksumSHA1: Swift.String? @@ -10054,18 +10089,48 @@ public struct PutBucketLifecycleConfigurationInput: Swift.Sendable { public var expectedBucketOwner: Swift.String? /// Container for lifecycle rules. You can add as many as 1,000 rules. public var lifecycleConfiguration: S3ClientTypes.BucketLifecycleConfiguration? + /// Indicates which default minimum object size behavior is applied to the lifecycle configuration. + /// + /// * all_storage_classes_128K - Objects smaller than 128 KB will not transition to any storage class by default. + /// + /// * varies_by_storage_class - Objects smaller than 128 KB will transition to Glacier Flexible Retrieval or Glacier Deep Archive storage classes. By default, all other storage classes will prevent transitions smaller than 128 KB. + /// + /// + /// To customize the minimum object size for any transition you can add a filter that specifies a custom ObjectSizeGreaterThan or ObjectSizeLessThan in the body of your transition rule. Custom filters always take precedence over the default transition behavior. + public var transitionDefaultMinimumObjectSize: S3ClientTypes.TransitionDefaultMinimumObjectSize? public init( bucket: Swift.String? = nil, checksumAlgorithm: S3ClientTypes.ChecksumAlgorithm? = nil, expectedBucketOwner: Swift.String? = nil, - lifecycleConfiguration: S3ClientTypes.BucketLifecycleConfiguration? = nil + lifecycleConfiguration: S3ClientTypes.BucketLifecycleConfiguration? = nil, + transitionDefaultMinimumObjectSize: S3ClientTypes.TransitionDefaultMinimumObjectSize? = nil ) { self.bucket = bucket self.checksumAlgorithm = checksumAlgorithm self.expectedBucketOwner = expectedBucketOwner self.lifecycleConfiguration = lifecycleConfiguration + self.transitionDefaultMinimumObjectSize = transitionDefaultMinimumObjectSize + } +} + +public struct PutBucketLifecycleConfigurationOutput: Swift.Sendable { + /// Indicates which default minimum object size behavior is applied to the lifecycle configuration. + /// + /// * all_storage_classes_128K - Objects smaller than 128 KB will not transition to any storage class by default. + /// + /// * varies_by_storage_class - Objects smaller than 128 KB will transition to Glacier Flexible Retrieval or Glacier Deep Archive storage classes. By default, all other storage classes will prevent transitions smaller than 128 KB. + /// + /// + /// To customize the minimum object size for any transition you can add a filter that specifies a custom ObjectSizeGreaterThan or ObjectSizeLessThan in the body of your transition rule. Custom filters always take precedence over the default transition behavior. + public var transitionDefaultMinimumObjectSize: S3ClientTypes.TransitionDefaultMinimumObjectSize? + + public init( + transitionDefaultMinimumObjectSize: S3ClientTypes.TransitionDefaultMinimumObjectSize? = nil + ) + { + self.transitionDefaultMinimumObjectSize = transitionDefaultMinimumObjectSize } } @@ -10565,9 +10630,9 @@ public struct PutObjectInput: Swift.Sendable { /// /// For more information, see [Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) in the Amazon S3 User Guide. If the individual checksum value you provide through x-amz-checksum-algorithm doesn't match the checksum algorithm you set through x-amz-sdk-checksum-algorithm, Amazon S3 ignores any provided ChecksumAlgorithm parameter and uses the checksum algorithm that matches the provided value in x-amz-checksum-algorithm . For directory buckets, when you use Amazon Web Services SDKs, CRC32 is the default checksum algorithm that's used for performance. public var checksumAlgorithm: S3ClientTypes.ChecksumAlgorithm? - /// This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the base64-encoded, 32-bit CRC32 checksum of the object. For more information, see [Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) in the Amazon S3 User Guide. + /// This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the base64-encoded, 32-bit CRC-32 checksum of the object. For more information, see [Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) in the Amazon S3 User Guide. public var checksumCRC32: Swift.String? - /// This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the base64-encoded, 32-bit CRC32C checksum of the object. For more information, see [Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) in the Amazon S3 User Guide. + /// This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the base64-encoded, 32-bit CRC-32C checksum of the object. For more information, see [Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) in the Amazon S3 User Guide. public var checksumCRC32C: Swift.String? /// This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the base64-encoded, 160-bit SHA-1 digest of the object. For more information, see [Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) in the Amazon S3 User Guide. public var checksumSHA1: Swift.String? @@ -10745,9 +10810,9 @@ extension PutObjectInput: Swift.CustomDebugStringConvertible { public struct PutObjectOutput: Swift.Sendable { /// Indicates whether the uploaded object uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS). public var bucketKeyEnabled: Swift.Bool? - /// The base64-encoded, 32-bit CRC32 checksum of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) in the Amazon S3 User Guide. + /// The base64-encoded, 32-bit CRC-32 checksum of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) in the Amazon S3 User Guide. public var checksumCRC32: Swift.String? - /// The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) in the Amazon S3 User Guide. + /// The base64-encoded, 32-bit CRC-32C checksum of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) in the Amazon S3 User Guide. public var checksumCRC32C: Swift.String? /// The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded with the object. When you use the API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) in the Amazon S3 User Guide. public var checksumSHA1: Swift.String? @@ -12043,9 +12108,9 @@ public struct UploadPartInput: Swift.Sendable { public var bucket: Swift.String? /// Indicates the algorithm used to create the checksum for the object when you use the SDK. This header will not provide any additional functionality if you don't use the SDK. When you send this header, there must be a corresponding x-amz-checksum or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request. For more information, see [Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) in the Amazon S3 User Guide. If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm parameter. This checksum algorithm must be the same for all parts and it match the checksum value supplied in the CreateMultipartUpload request. public var checksumAlgorithm: S3ClientTypes.ChecksumAlgorithm? - /// This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the base64-encoded, 32-bit CRC32 checksum of the object. For more information, see [Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) in the Amazon S3 User Guide. + /// This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the base64-encoded, 32-bit CRC-32 checksum of the object. For more information, see [Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) in the Amazon S3 User Guide. public var checksumCRC32: Swift.String? - /// This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the base64-encoded, 32-bit CRC32C checksum of the object. For more information, see [Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) in the Amazon S3 User Guide. + /// This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the base64-encoded, 32-bit CRC-32C checksum of the object. For more information, see [Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) in the Amazon S3 User Guide. public var checksumCRC32C: Swift.String? /// This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the base64-encoded, 160-bit SHA-1 digest of the object. For more information, see [Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) in the Amazon S3 User Guide. public var checksumSHA1: Swift.String? @@ -12123,9 +12188,9 @@ extension UploadPartInput: Swift.CustomDebugStringConvertible { public struct UploadPartOutput: Swift.Sendable { /// Indicates whether the multipart upload uses an S3 Bucket Key for server-side encryption with Key Management Service (KMS) keys (SSE-KMS). public var bucketKeyEnabled: Swift.Bool? - /// The base64-encoded, 32-bit CRC32 checksum of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) in the Amazon S3 User Guide. + /// The base64-encoded, 32-bit CRC-32 checksum of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) in the Amazon S3 User Guide. public var checksumCRC32: Swift.String? - /// The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) in the Amazon S3 User Guide. + /// The base64-encoded, 32-bit CRC-32C checksum of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) in the Amazon S3 User Guide. public var checksumCRC32C: Swift.String? /// The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded with the object. When you use the API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) in the Amazon S3 User Guide. public var checksumSHA1: Swift.String? @@ -12289,9 +12354,9 @@ extension S3ClientTypes { /// Container for all response elements. public struct CopyPartResult: Swift.Sendable { - /// The base64-encoded, 32-bit CRC32 checksum of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) in the Amazon S3 User Guide. + /// The base64-encoded, 32-bit CRC-32 checksum of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) in the Amazon S3 User Guide. public var checksumCRC32: Swift.String? - /// The base64-encoded, 32-bit CRC32C checksum of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) in the Amazon S3 User Guide. + /// The base64-encoded, 32-bit CRC-32C checksum of the object. This will only be present if it was uploaded with the object. When you use an API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) in the Amazon S3 User Guide. public var checksumCRC32C: Swift.String? /// The base64-encoded, 160-bit SHA-1 digest of the object. This will only be present if it was uploaded with the object. When you use the API operation on an object that was uploaded using multipart uploads, this value may not be a direct checksum value of the full object. Instead, it's a calculation based on the checksum values of each individual part. For more information about how checksums are calculated with multipart uploads, see [ Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums) in the Amazon S3 User Guide. public var checksumSHA1: Swift.String? @@ -12375,9 +12440,9 @@ public struct WriteGetObjectResponseInput: Swift.Sendable { public var bucketKeyEnabled: Swift.Bool? /// Specifies caching behavior along the request/reply chain. public var cacheControl: Swift.String? - /// This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This specifies the base64-encoded, 32-bit CRC32 checksum of the object returned by the Object Lambda function. This may not match the checksum for the object stored in Amazon S3. Amazon S3 will perform validation of the checksum values only when the original GetObject request required checksum validation. For more information about checksums, see [Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) in the Amazon S3 User Guide. Only one checksum header can be specified at a time. If you supply multiple checksum headers, this request will fail. + /// This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This specifies the base64-encoded, 32-bit CRC-32 checksum of the object returned by the Object Lambda function. This may not match the checksum for the object stored in Amazon S3. Amazon S3 will perform validation of the checksum values only when the original GetObject request required checksum validation. For more information about checksums, see [Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) in the Amazon S3 User Guide. Only one checksum header can be specified at a time. If you supply multiple checksum headers, this request will fail. public var checksumCRC32: Swift.String? - /// This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This specifies the base64-encoded, 32-bit CRC32C checksum of the object returned by the Object Lambda function. This may not match the checksum for the object stored in Amazon S3. Amazon S3 will perform validation of the checksum values only when the original GetObject request required checksum validation. For more information about checksums, see [Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) in the Amazon S3 User Guide. Only one checksum header can be specified at a time. If you supply multiple checksum headers, this request will fail. + /// This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This specifies the base64-encoded, 32-bit CRC-32C checksum of the object returned by the Object Lambda function. This may not match the checksum for the object stored in Amazon S3. Amazon S3 will perform validation of the checksum values only when the original GetObject request required checksum validation. For more information about checksums, see [Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) in the Amazon S3 User Guide. Only one checksum header can be specified at a time. If you supply multiple checksum headers, this request will fail. public var checksumCRC32C: Swift.String? /// This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This specifies the base64-encoded, 160-bit SHA-1 digest of the object returned by the Object Lambda function. This may not match the checksum for the object stored in Amazon S3. Amazon S3 will perform validation of the checksum values only when the original GetObject request required checksum validation. For more information about checksums, see [Checking object integrity](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html) in the Amazon S3 User Guide. Only one checksum header can be specified at a time. If you supply multiple checksum headers, this request will fail. public var checksumSHA1: Swift.String? @@ -15261,6 +15326,9 @@ extension PutBucketLifecycleConfigurationInput { if let expectedBucketOwner = value.expectedBucketOwner { items.add(SmithyHTTPAPI.Header(name: "x-amz-expected-bucket-owner", value: Swift.String(expectedBucketOwner))) } + if let transitionDefaultMinimumObjectSize = value.transitionDefaultMinimumObjectSize { + items.add(SmithyHTTPAPI.Header(name: "x-amz-transition-default-minimum-object-size", value: Swift.String(transitionDefaultMinimumObjectSize.rawValue))) + } return items } } @@ -17046,6 +17114,9 @@ extension GetBucketLifecycleConfigurationOutput { let responseReader = try SmithyXML.Reader.from(data: data) let reader = responseReader var value = GetBucketLifecycleConfigurationOutput() + if let transitionDefaultMinimumObjectSizeHeaderValue = httpResponse.headers.value(for: "x-amz-transition-default-minimum-object-size") { + value.transitionDefaultMinimumObjectSize = S3ClientTypes.TransitionDefaultMinimumObjectSize(rawValue: transitionDefaultMinimumObjectSizeHeaderValue) + } value.rules = try reader["Rule"].readListIfPresent(memberReadingClosure: S3ClientTypes.LifecycleRule.read(from:), memberNodeInfo: "member", isFlattened: true) return value } @@ -17870,7 +17941,11 @@ extension PutBucketInventoryConfigurationOutput { extension PutBucketLifecycleConfigurationOutput { static func httpOutput(from httpResponse: SmithyHTTPAPI.HTTPResponse) async throws -> PutBucketLifecycleConfigurationOutput { - return PutBucketLifecycleConfigurationOutput() + var value = PutBucketLifecycleConfigurationOutput() + if let transitionDefaultMinimumObjectSizeHeaderValue = httpResponse.headers.value(for: "x-amz-transition-default-minimum-object-size") { + value.transitionDefaultMinimumObjectSize = S3ClientTypes.TransitionDefaultMinimumObjectSize(rawValue: transitionDefaultMinimumObjectSizeHeaderValue) + } + return value } } diff --git a/Sources/Services/AWSS3/Sources/AWSS3/S3Client.swift b/Sources/Services/AWSS3/Sources/AWSS3/S3Client.swift index 5b49e9ac50b..97185542b1a 100644 --- a/Sources/Services/AWSS3/Sources/AWSS3/S3Client.swift +++ b/Sources/Services/AWSS3/Sources/AWSS3/S3Client.swift @@ -4399,7 +4399,7 @@ extension S3Client { /// /// The HEAD operation retrieves metadata from an object without returning the object itself. This operation is useful if you're interested only in an object's metadata. A HEAD request has the same options as a GET operation on an object. The response is identical to the GET response except that there is no response body. Because of this, if the HEAD request generates an error, it returns a generic code, such as 400 Bad Request, 403 Forbidden, 404 Not Found, 405 Method Not Allowed, 412 Precondition Failed, or 304 Not Modified. It's not possible to retrieve the exact exception of these error codes. Request headers are limited to 8 KB in size. For more information, see [Common Request Headers](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonRequestHeaders.html). Permissions /// - /// * General purpose bucket permissions - To use HEAD, you must have the s3:GetObject permission. You need the relevant read object (or version) permission for this operation. For more information, see [Actions, resources, and condition keys for Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html) in the Amazon S3 User Guide. If the object you request doesn't exist, the error that Amazon S3 returns depends on whether you also have the s3:ListBucket permission. + /// * General purpose bucket permissions - To use HEAD, you must have the s3:GetObject permission. You need the relevant read object (or version) permission for this operation. For more information, see [Actions, resources, and condition keys for Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html) in the Amazon S3 User Guide. For more information about the permissions to S3 API operations by S3 resource types, see [Required permissions for Amazon S3 API operations] in the Amazon S3 User Guide. If the object you request doesn't exist, the error that Amazon S3 returns depends on whether you also have the s3:ListBucket permission. /// /// * If you have the s3:ListBucket permission on the bucket, Amazon S3 returns an HTTP status code 404 Not Found error. /// @@ -6027,7 +6027,7 @@ extension S3Client { /// Performs the `PutBucketLifecycleConfiguration` operation on the `AmazonS3` service. /// - /// This operation is not supported by directory buckets. Creates a new lifecycle configuration for the bucket or replaces an existing lifecycle configuration. Keep in mind that this will overwrite an existing lifecycle configuration, so if you want to retain any configuration details, they must be included in the new lifecycle configuration. For information about lifecycle configuration, see [Managing your storage lifecycle](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html). Bucket lifecycle configuration now supports specifying a lifecycle rule using an object key name prefix, one or more object tags, object size, or any combination of these. Accordingly, this section describes the latest API. The previous version of the API supported filtering based only on an object key name prefix, which is supported for backward compatibility. For the related API description, see [PutBucketLifecycle](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html). Rules You specify the lifecycle configuration in your request body. The lifecycle configuration is specified as XML consisting of one or more rules. An Amazon S3 Lifecycle configuration can have up to 1,000 rules. This limit is not adjustable. Each rule consists of the following: + /// This operation is not supported by directory buckets. Creates a new lifecycle configuration for the bucket or replaces an existing lifecycle configuration. Keep in mind that this will overwrite an existing lifecycle configuration, so if you want to retain any configuration details, they must be included in the new lifecycle configuration. For information about lifecycle configuration, see [Managing your storage lifecycle](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html). Rules You specify the lifecycle configuration in your request body. The lifecycle configuration is specified as XML consisting of one or more rules. An Amazon S3 Lifecycle configuration can have up to 1,000 rules. This limit is not adjustable. Bucket lifecycle configuration supports specifying a lifecycle rule using an object key name prefix, one or more object tags, object size, or any combination of these. Accordingly, this section describes the latest API. The previous version of the API supported filtering based only on an object key name prefix, which is supported for backward compatibility. For the related API description, see [PutBucketLifecycle](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html). A lifecycle rule consists of the following: /// /// * A filter identifying a subset of objects to which the rule applies. The filter can be based on a key name prefix, object tags, object size, or any combination of these. /// diff --git a/Sources/Services/AWSSageMaker/Sources/AWSSageMaker/Models.swift b/Sources/Services/AWSSageMaker/Sources/AWSSageMaker/Models.swift index 25020e4c3d8..5a54eb1ceec 100644 --- a/Sources/Services/AWSSageMaker/Sources/AWSSageMaker/Models.swift +++ b/Sources/Services/AWSSageMaker/Sources/AWSSageMaker/Models.swift @@ -10214,6 +10214,8 @@ extension SageMakerClientTypes { public struct CodeEditorAppSettings: Swift.Sendable { /// Settings that are used to configure and manage the lifecycle of CodeEditor applications. public var appLifecycleManagement: SageMakerClientTypes.AppLifecycleManagement? + /// The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + public var builtInLifecycleConfigArn: Swift.String? /// A list of custom SageMaker images that are configured to run as a Code Editor app. public var customImages: [SageMakerClientTypes.CustomImage]? /// Specifies the ARN's of a SageMaker image and SageMaker image version, and the instance type that the version runs on. @@ -10223,12 +10225,14 @@ extension SageMakerClientTypes { public init( appLifecycleManagement: SageMakerClientTypes.AppLifecycleManagement? = nil, + builtInLifecycleConfigArn: Swift.String? = nil, customImages: [SageMakerClientTypes.CustomImage]? = nil, defaultResourceSpec: SageMakerClientTypes.ResourceSpec? = nil, lifecycleConfigArns: [Swift.String]? = nil ) { self.appLifecycleManagement = appLifecycleManagement + self.builtInLifecycleConfigArn = builtInLifecycleConfigArn self.customImages = customImages self.defaultResourceSpec = defaultResourceSpec self.lifecycleConfigArns = lifecycleConfigArns @@ -13482,6 +13486,8 @@ extension SageMakerClientTypes { public struct JupyterLabAppSettings: Swift.Sendable { /// Indicates whether idle shutdown is activated for JupyterLab applications. public var appLifecycleManagement: SageMakerClientTypes.AppLifecycleManagement? + /// The lifecycle configuration that runs before the default lifecycle configuration. It can override changes made in the default lifecycle configuration. + public var builtInLifecycleConfigArn: Swift.String? /// A list of Git repositories that SageMaker automatically displays to users for cloning in the JupyterLab application. public var codeRepositories: [SageMakerClientTypes.CodeRepository]? /// A list of custom SageMaker images that are configured to run as a JupyterLab app. @@ -13495,6 +13501,7 @@ extension SageMakerClientTypes { public init( appLifecycleManagement: SageMakerClientTypes.AppLifecycleManagement? = nil, + builtInLifecycleConfigArn: Swift.String? = nil, codeRepositories: [SageMakerClientTypes.CodeRepository]? = nil, customImages: [SageMakerClientTypes.CustomImage]? = nil, defaultResourceSpec: SageMakerClientTypes.ResourceSpec? = nil, @@ -13503,6 +13510,7 @@ extension SageMakerClientTypes { ) { self.appLifecycleManagement = appLifecycleManagement + self.builtInLifecycleConfigArn = builtInLifecycleConfigArn self.codeRepositories = codeRepositories self.customImages = customImages self.defaultResourceSpec = defaultResourceSpec @@ -26110,6 +26118,8 @@ public struct DescribeAppOutput: Swift.Sendable { public var appName: Swift.String? /// The type of app. public var appType: SageMakerClientTypes.AppType? + /// The lifecycle configuration that runs before the default lifecycle configuration + public var builtInLifecycleConfigArn: Swift.String? /// The creation time of the application. After an application has been shut down for 24 hours, SageMaker deletes all metadata for the application. To be considered an update and retain application metadata, applications must be restarted within 24 hours after the previous application has been shut down. After this time window, creation of an application is considered a new application rather than an update of the previous application. public var creationTime: Foundation.Date? /// The domain ID. @@ -26133,6 +26143,7 @@ public struct DescribeAppOutput: Swift.Sendable { appArn: Swift.String? = nil, appName: Swift.String? = nil, appType: SageMakerClientTypes.AppType? = nil, + builtInLifecycleConfigArn: Swift.String? = nil, creationTime: Foundation.Date? = nil, domainId: Swift.String? = nil, failureReason: Swift.String? = nil, @@ -26147,6 +26158,7 @@ public struct DescribeAppOutput: Swift.Sendable { self.appArn = appArn self.appName = appName self.appType = appType + self.builtInLifecycleConfigArn = builtInLifecycleConfigArn self.creationTime = creationTime self.domainId = domainId self.failureReason = failureReason @@ -56954,6 +56966,7 @@ extension DescribeAppOutput { value.appArn = try reader["AppArn"].readIfPresent() value.appName = try reader["AppName"].readIfPresent() value.appType = try reader["AppType"].readIfPresent() + value.builtInLifecycleConfigArn = try reader["BuiltInLifecycleConfigArn"].readIfPresent() value.creationTime = try reader["CreationTime"].readTimestampIfPresent(format: SmithyTimestamps.TimestampFormat.epochSeconds) value.domainId = try reader["DomainId"].readIfPresent() value.failureReason = try reader["FailureReason"].readIfPresent() @@ -67521,6 +67534,7 @@ extension SageMakerClientTypes.JupyterLabAppSettings { static func write(value: SageMakerClientTypes.JupyterLabAppSettings?, to writer: SmithyJSON.Writer) throws { guard let value else { return } try writer["AppLifecycleManagement"].write(value.appLifecycleManagement, with: SageMakerClientTypes.AppLifecycleManagement.write(value:to:)) + try writer["BuiltInLifecycleConfigArn"].write(value.builtInLifecycleConfigArn) try writer["CodeRepositories"].writeList(value.codeRepositories, memberWritingClosure: SageMakerClientTypes.CodeRepository.write(value:to:), memberNodeInfo: "member", isFlattened: false) try writer["CustomImages"].writeList(value.customImages, memberWritingClosure: SageMakerClientTypes.CustomImage.write(value:to:), memberNodeInfo: "member", isFlattened: false) try writer["DefaultResourceSpec"].write(value.defaultResourceSpec, with: SageMakerClientTypes.ResourceSpec.write(value:to:)) @@ -67537,6 +67551,7 @@ extension SageMakerClientTypes.JupyterLabAppSettings { value.codeRepositories = try reader["CodeRepositories"].readListIfPresent(memberReadingClosure: SageMakerClientTypes.CodeRepository.read(from:), memberNodeInfo: "member", isFlattened: false) value.appLifecycleManagement = try reader["AppLifecycleManagement"].readIfPresent(with: SageMakerClientTypes.AppLifecycleManagement.read(from:)) value.emrSettings = try reader["EmrSettings"].readIfPresent(with: SageMakerClientTypes.EmrSettings.read(from:)) + value.builtInLifecycleConfigArn = try reader["BuiltInLifecycleConfigArn"].readIfPresent() return value } } @@ -67633,6 +67648,7 @@ extension SageMakerClientTypes.CodeEditorAppSettings { static func write(value: SageMakerClientTypes.CodeEditorAppSettings?, to writer: SmithyJSON.Writer) throws { guard let value else { return } try writer["AppLifecycleManagement"].write(value.appLifecycleManagement, with: SageMakerClientTypes.AppLifecycleManagement.write(value:to:)) + try writer["BuiltInLifecycleConfigArn"].write(value.builtInLifecycleConfigArn) try writer["CustomImages"].writeList(value.customImages, memberWritingClosure: SageMakerClientTypes.CustomImage.write(value:to:), memberNodeInfo: "member", isFlattened: false) try writer["DefaultResourceSpec"].write(value.defaultResourceSpec, with: SageMakerClientTypes.ResourceSpec.write(value:to:)) try writer["LifecycleConfigArns"].writeList(value.lifecycleConfigArns, memberWritingClosure: SmithyReadWrite.WritingClosures.writeString(value:to:), memberNodeInfo: "member", isFlattened: false) @@ -67645,6 +67661,7 @@ extension SageMakerClientTypes.CodeEditorAppSettings { value.customImages = try reader["CustomImages"].readListIfPresent(memberReadingClosure: SageMakerClientTypes.CustomImage.read(from:), memberNodeInfo: "member", isFlattened: false) value.lifecycleConfigArns = try reader["LifecycleConfigArns"].readListIfPresent(memberReadingClosure: SmithyReadWrite.ReadingClosures.readString(from:), memberNodeInfo: "member", isFlattened: false) value.appLifecycleManagement = try reader["AppLifecycleManagement"].readIfPresent(with: SageMakerClientTypes.AppLifecycleManagement.read(from:)) + value.builtInLifecycleConfigArn = try reader["BuiltInLifecycleConfigArn"].readIfPresent() return value } } diff --git a/Sources/Services/AWSWorkSpaces/Sources/AWSWorkSpaces/Models.swift b/Sources/Services/AWSWorkSpaces/Sources/AWSWorkSpaces/Models.swift index 918a36969ef..1b710da0759 100644 --- a/Sources/Services/AWSWorkSpaces/Sources/AWSWorkSpaces/Models.swift +++ b/Sources/Services/AWSWorkSpaces/Sources/AWSWorkSpaces/Models.swift @@ -2755,7 +2755,7 @@ extension WorkSpacesClientTypes { /// /// * Only available for WorkSpaces created with PCoIP bundles. /// - /// * The Protocols property is case sensitive. Ensure you use PCOIP or WSP. + /// * The Protocols property is case sensitive. Ensure you use PCOIP or DCV (formerly WSP). /// /// * Unavailable for Windows 7 WorkSpaces and WorkSpaces using GPU-based bundles (Graphics, GraphicsPro, Graphics.g4dn, and GraphicsPro.g4dn). public var protocols: [WorkSpacesClientTypes.ModelProtocol]? @@ -6624,7 +6624,7 @@ public struct ImportWorkspaceImageInput: Swift.Sendable { /// /// * Although this parameter is an array, only one item is allowed at this time. /// - /// * During the image import process, non-GPU WSP WorkSpaces with Windows 11 support only Microsoft_Office_2019. GPU WSP WorkSpaces with Windows 11 do not support Office installation. + /// * During the image import process, non-GPU DCV (formerly WSP) WorkSpaces with Windows 11 support only Microsoft_Office_2019. GPU DCV (formerly WSP) WorkSpaces with Windows 11 do not support Office installation. public var applications: [WorkSpacesClientTypes.Application]? /// The identifier of the EC2 image. /// This member is required. @@ -6635,7 +6635,7 @@ public struct ImportWorkspaceImageInput: Swift.Sendable { /// The name of the WorkSpace image. /// This member is required. public var imageName: Swift.String? - /// The ingestion process to be used when importing the image, depending on which protocol you want to use for your BYOL Workspace image, either PCoIP, WorkSpaces Streaming Protocol (WSP), or bring your own protocol (BYOP). To use WSP, specify a value that ends in _WSP. To use PCoIP, specify a value that does not end in _WSP. To use BYOP, specify a value that ends in _BYOP. For non-GPU-enabled bundles (bundles other than Graphics or GraphicsPro), specify BYOL_REGULAR, BYOL_REGULAR_WSP, or BYOL_REGULAR_BYOP, depending on the protocol. The BYOL_REGULAR_BYOP and BYOL_GRAPHICS_G4DN_BYOP values are only supported by Amazon WorkSpaces Core. Contact your account team to be allow-listed to use these values. For more information, see [Amazon WorkSpaces Core](http://aws.amazon.com/workspaces/core/). + /// The ingestion process to be used when importing the image, depending on which protocol you want to use for your BYOL Workspace image, either PCoIP, DCV, or bring your own protocol (BYOP). To use WSP, specify a value that ends in _DCV. To use PCoIP, specify a value that does not end in _DCV. To use BYOP, specify a value that ends in _BYOP. For non-GPU-enabled bundles (bundles other than Graphics or GraphicsPro), specify BYOL_REGULAR, BYOL_REGULAR_DCV, or BYOL_REGULAR_BYOP, depending on the protocol. The BYOL_REGULAR_BYOP and BYOL_GRAPHICS_G4DN_BYOP values are only supported by Amazon WorkSpaces Core. Contact your account team to be allow-listed to use these values. For more information, see [Amazon WorkSpaces Core](http://aws.amazon.com/workspaces/core/). /// This member is required. public var ingestionProcess: WorkSpacesClientTypes.WorkspaceImageIngestionProcess? /// The tags. Each WorkSpaces resource can have a maximum of 50 tags. diff --git a/Sources/Services/AWSWorkSpaces/Sources/AWSWorkSpaces/WorkSpacesClient.swift b/Sources/Services/AWSWorkSpaces/Sources/AWSWorkSpaces/WorkSpacesClient.swift index f99e8f972f6..42a54e10f2b 100644 --- a/Sources/Services/AWSWorkSpaces/Sources/AWSWorkSpaces/WorkSpacesClient.swift +++ b/Sources/Services/AWSWorkSpaces/Sources/AWSWorkSpaces/WorkSpacesClient.swift @@ -1328,7 +1328,7 @@ extension WorkSpacesClient { /// /// * The MANUAL running mode value is only supported by Amazon WorkSpaces Core. Contact your account team to be allow-listed to use this value. For more information, see [Amazon WorkSpaces Core](http://aws.amazon.com/workspaces/core/). /// - /// * You don't need to specify the PCOIP protocol for Linux bundles because WSP is the default protocol for those bundles. + /// * You don't need to specify the PCOIP protocol for Linux bundles because DCV (formerly WSP) is the default protocol for those bundles. /// /// * User-decoupled WorkSpaces are only supported by Amazon WorkSpaces Core. ///